From 024143cca4776c430c69d8b1392e4796f88e9d22 Mon Sep 17 00:00:00 2001 From: Aitor Camacho Date: Thu, 22 Jan 2026 19:12:51 +0900 Subject: [PATCH] kk: Correctly release pipeline handles at shader destroy The condition to release Metal pipelines incorrectly checks which shader stage we are destroying leading to leads when graphics pipelines had to be released. Signed-off-by: Aitor Camacho (cherry picked from commit 622ebba4763b1cf4909d3630f0329a53a04b7923) Part-of: --- .pick_status.json | 2 +- src/kosmickrisp/vulkan/kk_shader.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 5b47eeea8b1..40b5bfadf7a 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -15984,7 +15984,7 @@ "description": "kk: Correctly release pipeline handles at shader destroy", "nominated": false, "nomination_type": 0, - "resolution": 4, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/kosmickrisp/vulkan/kk_shader.c b/src/kosmickrisp/vulkan/kk_shader.c index 44c0fc3ed3f..feebae532e4 100644 --- a/src/kosmickrisp/vulkan/kk_shader.c +++ b/src/kosmickrisp/vulkan/kk_shader.c @@ -569,9 +569,9 @@ kk_shader_destroy(struct vk_device *vk_dev, struct vk_shader *vk_shader, struct kk_device *dev = container_of(vk_dev, struct kk_device, vk); struct kk_shader *shader = container_of(vk_shader, struct kk_shader, vk); - if (shader->pipeline.cs) { + if (shader->info.stage == MESA_SHADER_COMPUTE) { mtl_release(shader->pipeline.cs); - } else if (shader->pipeline.gfx.handle) { + } else if (shader->info.stage == MESA_SHADER_VERTEX) { mtl_release(shader->pipeline.gfx.handle); if (shader->pipeline.gfx.mtl_depth_stencil_state_handle) mtl_release(shader->pipeline.gfx.mtl_depth_stencil_state_handle);