From d2dafa3289848c623dac06033766fccb428a4ad7 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 15 Feb 2024 09:02:06 -0500 Subject: [PATCH] zink: promote a conditional on gfx shader destroy it only makes sense to run these loops in the cases where they might be true Reviewed-by: Dave Airlie Part-of: --- src/gallium/drivers/zink/zink_compiler.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index 212787809a6..99310cf6f17 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -5799,13 +5799,14 @@ zink_gfx_shader_free(struct zink_screen *screen, struct zink_shader *shader) zink_gfx_shader_free(screen, shader->non_fs.generated_tcs); shader->non_fs.generated_tcs = NULL; } - for (unsigned int i = 0; i < ARRAY_SIZE(shader->non_fs.generated_gs); i++) { - for (int j = 0; j < ARRAY_SIZE(shader->non_fs.generated_gs[0]); j++) { - if (shader->info.stage != MESA_SHADER_FRAGMENT && - shader->non_fs.generated_gs[i][j]) { - /* automatically destroy generated gs shaders when owner is destroyed */ - zink_gfx_shader_free(screen, shader->non_fs.generated_gs[i][j]); - shader->non_fs.generated_gs[i][j] = NULL; + if (shader->info.stage != MESA_SHADER_FRAGMENT) { + for (unsigned int i = 0; i < ARRAY_SIZE(shader->non_fs.generated_gs); i++) { + for (int j = 0; j < ARRAY_SIZE(shader->non_fs.generated_gs[0]); j++) { + if (shader->non_fs.generated_gs[i][j]) { + /* automatically destroy generated gs shaders when owner is destroyed */ + zink_gfx_shader_free(screen, shader->non_fs.generated_gs[i][j]); + shader->non_fs.generated_gs[i][j] = NULL; + } } } }