[Intel-gfx] [PATCH] drm/i915: Add more registers to the whitelist for mesa

Daniel Vetter daniel at ffwll.ch
Wed Apr 9 18:46:44 CEST 2014


On Wed, Apr 09, 2014 at 09:22:19AM -0700, Kenneth Graunke wrote:
> On 04/08/2014 02:18 PM, bradley.d.volkin at intel.com wrote:
> > From: Brad Volkin <bradley.d.volkin at intel.com>
> > 
> > These are additional registers needed for performance monitoring and
> > ARB_draw_indirect extensions in mesa.
> 
> Whoops...I totally missed this.  Thanks!
> 
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76719
> > Cc: Kenneth Graunke <kenneth at whitecape.org>
> > Signed-off-by: Brad Volkin <bradley.d.volkin at intel.com>
> > ---
> >  drivers/gpu/drm/i915/i915_cmd_parser.c | 9 +++++++++
> >  drivers/gpu/drm/i915/i915_reg.h        | 8 ++++++++
> >  2 files changed, 17 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_cmd_parser.c b/drivers/gpu/drm/i915/i915_cmd_parser.c
> > index 29184d6..3486ef7 100644
> > --- a/drivers/gpu/drm/i915/i915_cmd_parser.c
> > +++ b/drivers/gpu/drm/i915/i915_cmd_parser.c
> > @@ -408,10 +408,19 @@ static const u32 gen7_render_regs[] = {
> >  	REG64(PS_INVOCATION_COUNT),
> >  	REG64(PS_DEPTH_COUNT),
> >  	OACONTROL, /* Only allowed for LRI and SRM. See below. */
> 
> It would be great to add:
> 
>       GEN7_3DPRIM_END_OFFSET,
> 
> which is the other ARB_draw_indirect register.  I have no idea why we
> don't use it - sure seems like we should...
> 
> > +	GEN7_3DPRIM_START_VERTEX,
> > +	GEN7_3DPRIM_VERTEX_COUNT,
> > +	GEN7_3DPRIM_INSTANCE_COUNT,
> > +	GEN7_3DPRIM_START_INSTANCE,
> > +	GEN7_3DPRIM_BASE_VERTEX,
> >  	REG64(GEN7_SO_NUM_PRIMS_WRITTEN(0)),
> >  	REG64(GEN7_SO_NUM_PRIMS_WRITTEN(1)),
> >  	REG64(GEN7_SO_NUM_PRIMS_WRITTEN(2)),
> >  	REG64(GEN7_SO_NUM_PRIMS_WRITTEN(3)),
> > +	REG64(GEN7_SO_PRIM_STORAGE_NEEDED(0)),
> > +	REG64(GEN7_SO_PRIM_STORAGE_NEEDED(1)),
> > +	REG64(GEN7_SO_PRIM_STORAGE_NEEDED(2)),
> > +	REG64(GEN7_SO_PRIM_STORAGE_NEEDED(3)),
> 
> FWIW, I don't think we actually need to write these...we just read them.
>  Though, there's not much harm in it.
> 
> >  	GEN7_SO_WRITE_OFFSET(0),
> >  	GEN7_SO_WRITE_OFFSET(1),
> >  	GEN7_SO_WRITE_OFFSET(2),
> > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> > index 8e60737..533ec0a 100644
> > --- a/drivers/gpu/drm/i915/i915_reg.h
> > +++ b/drivers/gpu/drm/i915/i915_reg.h
> > @@ -427,6 +427,14 @@
> >  /* There are the 4 64-bit counter registers, one for each stream output */
> >  #define GEN7_SO_NUM_PRIMS_WRITTEN(n) (0x5200 + (n) * 8)
> >  
> > +#define GEN7_SO_PRIM_STORAGE_NEEDED(n)  (0x5240 + (n) * 8)
> > +
> 
> #define GEN7_3DPRIM_END_OFFSET          0x2420
> 
> > +#define GEN7_3DPRIM_START_VERTEX        0x2430
> > +#define GEN7_3DPRIM_VERTEX_COUNT        0x2434
> > +#define GEN7_3DPRIM_INSTANCE_COUNT      0x2438
> > +#define GEN7_3DPRIM_START_INSTANCE      0x243C
> > +#define GEN7_3DPRIM_BASE_VERTEX         0x2440
> > +
> >  #define OACONTROL 0x2360
> >  
> >  #define _GEN7_PIPEA_DE_LOAD_SL	0x70068
> 
> With END_OFFSET added, this would get a:
> Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

Brad I've already pulled this in for my rebasing tree to unblock mesa
testing. Feel free to either supply a fixup for me to squash in or a
replacement patch, I can handle either.

Thanks, Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch



More information about the Intel-gfx mailing list