Module: Mesa Branch: staging/22.2 Commit: 3b11e414895de721ec529ea74fbca65783c87286 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3b11e414895de721ec529ea74fbca65783c87286
Author: Marcin Ĺšlusarz <[email protected]> Date: Thu Apr 21 19:28:55 2022 +0200 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 <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16197> (cherry picked from commit 4eaecd79657f0cd99f6536fd55a7a14958d6624b) --- .pick_status.json | 4 ++-- src/intel/vulkan/genX_pipeline.c | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 70efe24da1f..bdd27b70e45 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -9436,7 +9436,7 @@ "description": "anv: disable task redistribution", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "ef04caea9b8b98187340fd0ec6550aed06424b60" }, @@ -9463,7 +9463,7 @@ "description": "Revert \"nir/lower_task_shader: don't use base index for shared memory intrinsics\"", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "e5970fe22a66bf1727d8b677f4e3c93fe2172a71" }, diff --git a/src/intel/vulkan/genX_pipeline.c b/src/intel/vulkan/genX_pipeline.c index 2ab9b2c61f5..6eac4457833 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; } }
