diff options
author | Timur Kristóf <timur.kristof@gmail.com> | 2022-02-12 17:27:41 +0100 |
---|---|---|
committer | Dylan Baker <dylan.c.baker@intel.com> | 2022-02-24 14:56:51 -0800 |
commit | 47c9c42764f25eaf11e002c6ec7187508f994429 (patch) | |
tree | 6f54c2dd3ecb594d90632466941015b1398d5fe7 | |
parent | db7f26a94475b01da3896b4ce5403f7d6878e8ae (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.json | 2 | ||||
-rw-r--r-- | src/amd/vulkan/radv_cmd_buffer.c | 5 |
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 = |