panvk: Skip dispatch on empty workgroup

Fix "dEQP-VK.compute.pipeline.basic.empty_workgroup_*" crashes.

Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29872>
This commit is contained in:
Mary Guillemard 2024-06-24 08:52:51 +02:00 committed by Marge Bot
parent 653a4dc58f
commit b0fa3fda3a

View file

@ -40,6 +40,9 @@ panvk_per_arch(CmdDispatchBase)(VkCommandBuffer commandBuffer,
VK_FROM_HANDLE(panvk_cmd_buffer, cmdbuf, commandBuffer);
const struct panvk_shader *shader = cmdbuf->state.compute.shader;
if (groupCountX == 0 || groupCountY == 0 || groupCountZ == 0)
return;
/* If there's no compute shader, we can skip the dispatch. */
if (!panvk_priv_mem_dev_addr(shader->rsd))
return;