[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