summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimur Kristóf <timur.kristof@gmail.com>2022-02-12 17:27:41 +0100
committerDylan Baker <dylan.c.baker@intel.com>2022-02-24 14:56:51 -0800
commit47c9c42764f25eaf11e002c6ec7187508f994429 (patch)
tree6f54c2dd3ecb594d90632466941015b1398d5fe7
parentdb7f26a94475b01da3896b4ce5403f7d6878e8ae (diff)
radv: Disable IB2 on compute queues.
The "IB2" indirect buffer command is not supported on compute queues according to PAL, and it indeed causes GPU hangs when task shaders are used together with vkCmdExecuteCommands. Cc: mesa-stable Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15006> (cherry picked from commit da719792ad2b7f50824fd1ba500f8b87e4b3b448)
-rw-r--r--.pick_status.json2
-rw-r--r--src/amd/vulkan/radv_cmd_buffer.c5
2 files changed, 6 insertions, 1 deletions
diff --git a/.pick_status.json b/.pick_status.json
index 9a4c1295538..fc9440f2058 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -40,7 +40,7 @@
"description": "radv: Disable IB2 on compute queues.",
"nominated": true,
"nomination_type": 0,
- "resolution": 0,
+ "resolution": 1,
"main_sha": null,
"because_sha": null
},
diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c
index 405c98bd17e..85326820a73 100644
--- a/src/amd/vulkan/radv_cmd_buffer.c
+++ b/src/amd/vulkan/radv_cmd_buffer.c
@@ -5607,6 +5607,11 @@ radv_CmdExecuteCommands(VkCommandBuffer commandBuffer, uint32_t commandBufferCou
allow_ib2 = false;
}
+ if (secondary->queue_family_index == RADV_QUEUE_COMPUTE) {
+ /* IB2 packets are not supported on compute queues according to PAL. */
+ allow_ib2 = false;
+ }
+
primary->scratch_size_per_wave_needed =
MAX2(primary->scratch_size_per_wave_needed, secondary->scratch_size_per_wave_needed);
primary->scratch_waves_wanted =