From 4eaecd79657f0cd99f6536fd55a7a14958d6624b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20=C5=9Alusarz?= Date: Thu, 21 Apr 2022 19:28:55 +0200 Subject: [PATCH] anv: disable task redistribution If task redistribution is enabled, then some mesh shaders read garbage from task payload. It may be a hardware bug, or it may be our bug. Who knows :( This change will probably negatively affect performance of task shader-enabled workloads on multi-slice GPUs, because mesh shaders will be executed only on the slice where task shader was spawned. Fixes: ef04caea9b8 ("anv: Implement Mesh Shading pipeline") Acked-by: Caio Oliveira Part-of: --- src/intel/vulkan/genX_pipeline.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/intel/vulkan/genX_pipeline.c b/src/intel/vulkan/genX_pipeline.c index 6cacf07175d..ffcf91134d0 100644 --- a/src/intel/vulkan/genX_pipeline.c +++ b/src/intel/vulkan/genX_pipeline.c @@ -2216,7 +2216,12 @@ emit_task_state(struct anv_graphics_pipeline *pipeline) redistrib.SmallTaskThreshold = 1; /* 2^N */ redistrib.TargetMeshBatchSize = devinfo->num_slices > 2 ? 3 : 5; /* 2^N */ redistrib.TaskRedistributionLevel = TASKREDISTRIB_BOM; - redistrib.TaskRedistributionMode = TASKREDISTRIB_RR_STRICT; + + /* TODO: We have an unknown issue with Task Payload when task redistribution + * is enabled. Disable it for now. + * See https://gitlab.freedesktop.org/mesa/mesa/-/issues/7141 + */ + redistrib.TaskRedistributionMode = TASKREDISTRIB_OFF; } }