From 01608a4067b9919ebef77e65a75e1b7a56dc75c3 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 30 Sep 2024 08:53:33 -0400 Subject: [PATCH] zink: stop leaking precompiled generated tcs this may have been created during precompile when using shader objects cc: mesa-stable Part-of: --- src/gallium/drivers/zink/zink_program.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/zink/zink_program.c b/src/gallium/drivers/zink/zink_program.c index 29e97705159..9d9bb79125a 100644 --- a/src/gallium/drivers/zink/zink_program.c +++ b/src/gallium/drivers/zink/zink_program.c @@ -1111,9 +1111,9 @@ gfx_program_create(struct zink_context *ctx, } if (stages[MESA_SHADER_TESS_EVAL] && !stages[MESA_SHADER_TESS_CTRL]) { util_queue_fence_wait(&stages[MESA_SHADER_TESS_EVAL]->precompile.fence); - prog->shaders[MESA_SHADER_TESS_EVAL]->non_fs.generated_tcs = - prog->shaders[MESA_SHADER_TESS_CTRL] = - zink_shader_tcs_create(screen, vertices_per_patch); + if (!prog->shaders[MESA_SHADER_TESS_EVAL]->non_fs.generated_tcs) + prog->shaders[MESA_SHADER_TESS_EVAL]->non_fs.generated_tcs = zink_shader_tcs_create(screen, vertices_per_patch); + prog->shaders[MESA_SHADER_TESS_CTRL] = prog->shaders[MESA_SHADER_TESS_EVAL]->non_fs.generated_tcs; prog->stages_present |= BITFIELD_BIT(MESA_SHADER_TESS_CTRL); } prog->stages_remaining = prog->stages_present;