diff --git a/src/asahi/vulkan/hk_cmd_buffer.h b/src/asahi/vulkan/hk_cmd_buffer.h index c9c3bf3b178..20573a98e32 100644 --- a/src/asahi/vulkan/hk_cmd_buffer.h +++ b/src/asahi/vulkan/hk_cmd_buffer.h @@ -793,6 +793,9 @@ hk_dispatch_with_local_size(struct hk_cmd_buffer *cmd, struct hk_cs *cs, struct hk_shader *s, struct agx_grid grid, struct agx_workgroup local_size) { + if (agx_is_shader_empty(&s->b)) + return; + struct hk_device *dev = hk_cmd_buffer_device(cmd); uint32_t usc = hk_upload_usc_words(cmd, s, s->only_linked); diff --git a/src/asahi/vulkan/hk_cmd_dispatch.c b/src/asahi/vulkan/hk_cmd_dispatch.c index 0fe522aaa70..615ba970d7f 100644 --- a/src/asahi/vulkan/hk_cmd_dispatch.c +++ b/src/asahi/vulkan/hk_cmd_dispatch.c @@ -87,6 +87,9 @@ static void dispatch(struct hk_cmd_buffer *cmd, struct agx_grid grid) { struct hk_shader *s = hk_only_variant(cmd->state.cs.shader); + if (agx_is_shader_empty(&s->b)) + return; + struct hk_cs *cs = hk_cmd_buffer_get_cs(cmd, true /* compute */); if (!cs) return;