[Mesa-dev] [PATCH 05/11] i965/inst: Add notify and gateway_subfuncid fields

Kenneth Graunke kenneth at whitecape.org
Sun Mar 29 17:47:45 PDT 2015


On Wednesday, March 25, 2015 05:53:43 PM Ben Widawsky wrote:
> On Sun, Mar 22, 2015 at 06:49:15PM -0700, Jordan Justen wrote:
> > These fields will be used when emitting a send for the barrier function.
> > 
> > Reference: IVB PRM Volume 4, Part 2, Section 1.1.1 Message Descriptor
> > 
> > Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
> > Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>
> > ---
> >  src/mesa/drivers/dri/i965/brw_inst.h | 18 +++++++++++++++---
> >  1 file changed, 15 insertions(+), 3 deletions(-)
> > 
> > diff --git a/src/mesa/drivers/dri/i965/brw_inst.h 
b/src/mesa/drivers/dri/i965/brw_inst.h
> > index 372aa2b..8701771 100644
> > --- a/src/mesa/drivers/dri/i965/brw_inst.h
> > +++ b/src/mesa/drivers/dri/i965/brw_inst.h
> > @@ -322,6 +322,9 @@ FJ(gen4_jump_count, 111,  96, brw->gen < 6)
> >  FC(gen4_pop_count,  115, 112, brw->gen < 6)
> >  /** @} */
> >  
> > +/* Message descriptor bits */
> > +#define MD(x) (x + 96)
> > +
> >  /**
> >   * Fields for SEND messages:
> >   *  @{
> > @@ -347,6 +350,12 @@ FF(header_present,
> >     /* 6:   */ 115, 115,
> >     /* 7:   */ 115, 115,
> >     /* 8:   */ 115, 115)
> > +FF(notify,
> > +   /* 4: doesn't exist */ -1, -1, -1, -1,
> > +   /* 5: doesn't exist */ -1, -1,
> > +   /* 6: doesn't exist */ -1, -1,
> > +   /* 7:   */ MD(16), MD(15),
> > +   /* 8:   */ MD(16), MD(15))
> 
> I'm pretty sure notify has existed for much longer than Gen7. I understand 
that
> you don't implement it, but "doesn't exist is at least a little confusing."
> (Also, if it does exist all the way back, you could potentially just use 
F())

The "Notify" bit in the "Message Gateway" message descriptor has existed
since the original 965 - it is 16:15 on all generations.

So I agree with Ben, this should be F(notify, MD(16), MD(15)).

Since this only applies to Message Gateway messages, it might make sense
to call it gateway_notify or some such...I've tried to prefix the other
descriptor bits with "math_", "sampler_", "urb_", and so on.

> If you end up modifying stuff, should you throw in AckReq?
> 
> >  FF(function_control,
> >     /* 4:   */ 111,  96,
> >     /* 4.5: */ 111,  96,
> > @@ -354,6 +363,12 @@ FF(function_control,
> >     /* 6:   */ 114,  96,
> >     /* 7:   */ 114,  96,
> >     /* 8:   */ 114,  96)
> > +FF(gateway_subfuncid,
> > +   /* 4: doesn't exist */  -1, -1, -1, -1,
> > +   /* 5: doesn't exist */  -1, -1,
> > +   /* 6: doesn't exist */  -1, -1,
> > +   /* 7:   */  MD(2),  MD(0),
> > +   /* 8:   */  MD(2),  MD(0))

Likewise, these exist on older platforms too...

FF(gateway_subfuncid,
   /* 4:   */  MD(1),  MD(0),
   /* 4.5: */  MD(1),  MD(0),
   /* 5:   */  MD(1),  MD(0), /* 2:0, but bit 2 is reserved MBZ */
   /* 6:   */  MD(2),  MD(0),
   /* 7:   */  MD(2),  MD(0),
   /* 8:   */  MD(2),  MD(0))

With those changes, this would get a:
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

> >  FF(sfid,
> >     /* 4:   */ 123, 120, /* called msg_target */
> >     /* 4.5  */ 123, 120,
> > @@ -364,9 +379,6 @@ FF(sfid,
> >  FC(base_mrf,   27,  24, brw->gen < 6);
> >  /** @} */
> >  
> > -/* Message descriptor bits */
> > -#define MD(x) (x + 96)
> > -
> >  /**
> >   * URB message function control bits:
> >   *  @{
> 
> I am not a huge fan of MD(x) but I suppose you didn't create that yourself. 
I'd
> be in favor of killing it at some point.
> 
> Patches up through this one are:
> Reviewed-by: Ben Widawsky <ben at bwidawsk.net>
> 
> (I think 1 & 2 make more sense as a single patch, but meh)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150329/b643f12c/attachment.sig>


More information about the mesa-dev mailing list