[Mesa-dev] [PATCH] intel: Apply Geminilake "Barrier Mode" workaround.

Kenneth Graunke kenneth at whitecape.org
Tue Jan 9 18:16:33 UTC 2018


On Monday, January 8, 2018 3:00:30 PM PST Rafael Antognolli wrote:
> On Thu, Jan 04, 2018 at 11:36:48AM -0800, Kenneth Graunke wrote:
> > Apparently, Geminilake requires you to whack a chicken bit to select
> > either compute or tessellation mode for barriers.  The recommendation
> > is to switch between them at PIPELINE_SELECT time.
> > 
> > We may not need to do this all the time, but I don't know that it hurts
> > either.  PIPELINE_SELECT is already a pretty giant stall.
> > 
> > This appears to fix hangs in tessellation control shaders with barriers
> > on Geminilake.  Note that this requires a corresponding kernel change,
> > 
> >     drm/i915: Whitelist SLICE_COMMON_ECO_CHICKEN1 on Geminilake.
> > 
> > in order for the register write to actually happen.  Without an updated
> > kernel, this register write will be noop'd and the fix will not work.
> > ---
> >  src/intel/genxml/gen9.xml                  |  8 ++++++++
> >  src/intel/vulkan/genX_cmd_buffer.c         | 21 +++++++++++++++++++++
> >  src/mesa/drivers/dri/i965/brw_defines.h    |  5 +++++
> >  src/mesa/drivers/dri/i965/brw_misc_state.c | 15 +++++++++++++++
> >  4 files changed, 49 insertions(+)
> > 
> > diff --git a/src/intel/genxml/gen9.xml b/src/intel/genxml/gen9.xml
> > index 1422463693d..019d264fb70 100644
> > --- a/src/intel/genxml/gen9.xml
> > +++ b/src/intel/genxml/gen9.xml
> > @@ -3710,6 +3710,14 @@
> >      <field name="Color Compression Disable Mask" start="31" end="31" type="bool"/>
> >    </register>
> >  
> > +  <register name="SLICE_COMMON_ECO_CHICKEN1" length="1" num="0x731c">
> > +    <field name="GLK Barrier Mode" start="7" end="7" type="bool">
> 
> Kind of nitpicking, but this field means more than a simple
> enable/disable kind of boolean. In other similar places we used "uint"
> instead of "bool" to represent that, specially since you are assigning
> value names to it. For instance, Floating Point Mode is like that, but
> there are other examples. Maybe we should decide one or another way and
> making it more consistent.
> 
> Regardless of that, this patch is
> 
> Reviewed-by: Rafael Antognolli <rafael.antognolli at intel.com>

Oops...I agree, uint makes more sense than bool for values with
enumerations.  I think that was just a mistake on my part.  I
changed it to uint before pushing.

Thanks for reviewing this!
-------------- 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/20180109/06113246/attachment.sig>


More information about the mesa-dev mailing list