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 <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27358>
This commit is contained in:
Mike Blumenkrantz
2024-02-15 09:02:06 -05:00
parent 08176d9d16
commit d2dafa3289

View File

@@ -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); zink_gfx_shader_free(screen, shader->non_fs.generated_tcs);
shader->non_fs.generated_tcs = NULL; shader->non_fs.generated_tcs = NULL;
} }
for (unsigned int i = 0; i < ARRAY_SIZE(shader->non_fs.generated_gs); i++) { if (shader->info.stage != MESA_SHADER_FRAGMENT) {
for (int j = 0; j < ARRAY_SIZE(shader->non_fs.generated_gs[0]); j++) { for (unsigned int i = 0; i < ARRAY_SIZE(shader->non_fs.generated_gs); i++) {
if (shader->info.stage != MESA_SHADER_FRAGMENT && for (int j = 0; j < ARRAY_SIZE(shader->non_fs.generated_gs[0]); j++) {
shader->non_fs.generated_gs[i][j]) { if (shader->non_fs.generated_gs[i][j]) {
/* automatically destroy generated gs shaders when owner is destroyed */ /* automatically destroy generated gs shaders when owner is destroyed */
zink_gfx_shader_free(screen, shader->non_fs.generated_gs[i][j]); zink_gfx_shader_free(screen, shader->non_fs.generated_gs[i][j]);
shader->non_fs.generated_gs[i][j] = NULL; shader->non_fs.generated_gs[i][j] = NULL;
}
} }
} }
} }