[Mesa-dev] [PATCH 3/4] anv: Disable the vertex cache when tessellating on SKL GT4

Kenneth Graunke kenneth at whitecape.org
Fri Sep 7 20:10:14 UTC 2018


On Tuesday, August 21, 2018 6:57:50 PM PDT Jason Ekstrand wrote:
> I have no idea if I'm correct about what's going wrong or if this is the
> correct fix.  However, in my multiple weeks of banging my head on this
> hang, a VUE reference counting bug seems to match all the symptoms and
> it definitely fixes the hang.
> 
> Cc: mesa-stable at lists.freedesktop.org
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107280
> ---
>  src/intel/vulkan/genX_pipeline.c | 23 ++++++++++++++++++++++-
>  1 file changed, 22 insertions(+), 1 deletion(-)
> 
> diff --git a/src/intel/vulkan/genX_pipeline.c b/src/intel/vulkan/genX_pipeline.c
> index 03a68ab0bf3..197c1ef4d8a 100644
> --- a/src/intel/vulkan/genX_pipeline.c
> +++ b/src/intel/vulkan/genX_pipeline.c
> @@ -1141,7 +1141,28 @@ emit_3dstate_vs(struct anv_pipeline *pipeline)
>        vs.IllegalOpcodeExceptionEnable = false;
>        vs.SoftwareExceptionEnable    = false;
>        vs.MaximumNumberofThreads     = devinfo->max_vs_threads - 1;
> -      vs.VertexCacheDisable         = false;
> +
> +      if (GEN_GEN == 9 && devinfo->gt == 4 &&
> +          anv_pipeline_has_stage(pipeline, MESA_SHADER_TESS_EVAL)) {
> +         /* On Sky Lake GT4, we have experienced some hangs related to the VS
> +          * cache and tessellation.  It is unknown exactly what is happening
> +          * but the Haswell docs for the "VS Reference Count Full Force Miss
> +          * Enable" field of the "Thread Mode" register refer to a HSW bug in
> +          * which the VUE handle reference count would overflow resulting in
> +          * internal reference counting bugs.  My (Jason's) best guess is that
> +          * this bug cropped back up on SKL GT4 when we suddenly had more
> +          * threads in play than any previous gen9 hardware.
> +          *
> +          * What we do know for sure is that setting this bit when
> +          * tessellation shaders are in use fixes a GPU hang in Batman: Arkham
> +          * City when playing with DXVK (https://bugs.freedesktop.org/107280).
> +          * Disabling the vertex cache with tessellation shaders should only
> +          * have a minor performance impact as the tessellation shaders are
> +          * likely generating and processing far more geometry than the vertex
> +          * stage.
> +          */
> +         vs.VertexCacheDisable = true;
> +      }
>  
>        vs.VertexURBEntryReadLength      = vs_prog_data->base.urb_read_length;
>        vs.VertexURBEntryReadOffset      = 0;
> 

I can't really ask for any more due diligence to be done here.
Nobody understands it, and that's probably the best we can do.

Acked-by: Kenneth Graunke <kenneth at whitecape.org>
-------------- 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/20180907/1f14800b/attachment.sig>


More information about the mesa-dev mailing list