[Mesa-dev] [PATCH 3/3] i965: Port Gen4-5 VS_STATE to genxml.
Kenneth Graunke
kenneth at whitecape.org
Thu May 11 23:52:28 UTC 2017
On Thursday, May 11, 2017 9:54:13 AM PDT Rafael Antognolli wrote:
> On Wed, May 10, 2017 at 12:41:39PM -0700, Kenneth Graunke wrote:
[snip]
> > - struct brw_vs_unit_state *vs;
>
> It looks like brw_vs_unit_state is not used anywhere else, so maybe we could
> delete it too. Also, it looks weird that some fields in vs->thread0 don't
> really match the dw1 in the docs for gen5 at least, but they are not used
> anyway.
Good call, I'll delete that!
[snip]
> > -const struct brw_tracked_state brw_vs_unit = {
> > - .dirty = {
> > - .mesa = 0,
> > - .brw = BRW_NEW_BATCH |
>
> If I understood correctly, BRW_NEW_BATCH will get covered by BRW_NEW_CONTEXT
> when needed, right?
BRW_NEW_BATCH is necessary here - VS_STATE is indirect state stuffed
into the "data" portion of the batch via brw_state_batch(). It's
pointed to via 3DSTATE_PIPELINED_POINTERS. We need to re-emit VS_STATE
and 3DSTATE_PIPELINED_POINTERS on every new batch, so we don't have
dangling pointers to previous batches.
BRW_NEW_BATCH is stronger than BRW_NEW_CONTEXT - if you have
BRW_NEW_BATCH you don't need BRW_NEW_CONTEXT.
[snip]
> > +#if GEN_GEN < 6
> > + vs.GRFRegisterCount = DIV_ROUND_UP(vue_prog_data->total_grf, 16) - 1;
> > + vs.ConstantURBEntryReadLength = stage_prog_data->curb_read_length;
> > + vs.ConstantURBEntryReadOffset = brw->curbe.vs_start * 2;
> > +
> > + vs.NumberofURBEntries = brw->urb.nr_vs_entries >> (GEN_GEN == 5 ? 2 : 0);
>
> I was looking and it seems that NumberofURBEntries should be bits 11:17, while
> bit 18 should be MBZ. It shouldn't matter much here, just the checks that
> genX_pack.h do. Also it's my fault, since I submitted the xml without checking
> everything, so I can send a patch to fix that if you prefer.
Oh, good call - "Number of URB Entries" is 18:11 on Gen4, but 17:11 with
18 MBZ on G45 and Gen5. At least in VS_STATE (I didn't check GS_STATE).
Feel free to send a patch to fix that. Thanks!
> Anyway, this patch is:
> Reviewed-by: Rafael Antognolli <rafael.antognolli at intel.com>
Awesome, thanks!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170511/a5948001/attachment.sig>
More information about the mesa-dev
mailing list