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 da719792ad)
This commit is contained in:
Timur Kristóf 2022-02-12 17:27:41 +01:00 committed by Dylan Baker
parent db7f26a944
commit 47c9c42764
2 changed files with 6 additions and 1 deletions

View file

@ -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
},

View file

@ -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 =