From 6d040df750fbf76b2d7cb22c95ec16e70ea04d0a Mon Sep 17 00:00:00 2001 From: Mary Guillemard Date: Tue, 24 Feb 2026 21:21:15 +0100 Subject: [PATCH] hk: Fix crash in hk_handle_passthrough_gs We should be returning if no GS is needed and no GS shader is bound. This fix various segfaults introduced by the original fix. Signed-off-by: Mary Guillemard Fixes: e10f29399fb4 ("hk: fix passthrough GS key invalidation") Reviewed-by: Eric Engestrom Reviewed-by: Janne Grunau Part-of: --- src/asahi/vulkan/hk_cmd_draw.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/asahi/vulkan/hk_cmd_draw.c b/src/asahi/vulkan/hk_cmd_draw.c index b5e35905fd6..1c3128b046d 100644 --- a/src/asahi/vulkan/hk_cmd_draw.c +++ b/src/asahi/vulkan/hk_cmd_draw.c @@ -3226,9 +3226,11 @@ hk_handle_passthrough_gs(struct hk_cmd_buffer *cmd, struct agx_draw draw) bool needs_gs = xfb_outputs; /* If we don't need a GS but we do have a passthrough, unbind it */ - if (!needs_gs && gs != NULL) { - assert(!needs_gs && gs->is_passthrough); - hk_cmd_bind_graphics_shader(cmd, MESA_SHADER_GEOMETRY, NULL); + if (!needs_gs) { + if (gs != NULL) { + assert(gs->is_passthrough); + hk_cmd_bind_graphics_shader(cmd, MESA_SHADER_GEOMETRY, NULL); + } return; }