From e44a776f4751d665efc447d8fe8e6c01d25a60c5 Mon Sep 17 00:00:00 2001 From: Aitor Camacho Date: Fri, 31 Oct 2025 08:58:21 +0900 Subject: [PATCH] kk: Avoid Metal validation error due to empty calls Reviewed-by: Arcady Goldmints-Orlov Part-of: --- src/kosmickrisp/vulkan/kk_cmd_dispatch.c | 4 ++++ src/kosmickrisp/vulkan/kk_cmd_draw.c | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/src/kosmickrisp/vulkan/kk_cmd_dispatch.c b/src/kosmickrisp/vulkan/kk_cmd_dispatch.c index 338766ef12d..640d4970a1d 100644 --- a/src/kosmickrisp/vulkan/kk_cmd_dispatch.c +++ b/src/kosmickrisp/vulkan/kk_cmd_dispatch.c @@ -60,6 +60,10 @@ VKAPI_ATTR void VKAPI_CALL kk_CmdDispatch(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) { + /* Metal validation dislikes empty disptaches */ + if (groupCountX * groupCountY * groupCountZ == 0) + return; + kk_CmdDispatchBase(commandBuffer, 0, 0, 0, groupCountX, groupCountY, groupCountZ); } diff --git a/src/kosmickrisp/vulkan/kk_cmd_draw.c b/src/kosmickrisp/vulkan/kk_cmd_draw.c index f3c6e3c6e77..b66d992e8e7 100644 --- a/src/kosmickrisp/vulkan/kk_cmd_draw.c +++ b/src/kosmickrisp/vulkan/kk_cmd_draw.c @@ -849,6 +849,10 @@ VKAPI_ATTR void VKAPI_CALL kk_CmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) { + /* Metal validation dislikes empty calls */ + if (instanceCount == 0 || vertexCount == 0) + return; + VK_FROM_HANDLE(kk_cmd_buffer, cmd, commandBuffer); kk_flush_draw_state(cmd); @@ -891,6 +895,10 @@ kk_CmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) { + /* Metal validation dislikes empty calls */ + if (instanceCount == 0 || indexCount == 0) + return; + VK_FROM_HANDLE(kk_cmd_buffer, cmd, commandBuffer); kk_flush_draw_state(cmd);