summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/zink/zink_compiler.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/zink/zink_compiler.c')
-rw-r--r--src/gallium/drivers/zink/zink_compiler.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c
index 167150efa95..87ca8933df7 100644
--- a/src/gallium/drivers/zink/zink_compiler.c
+++ b/src/gallium/drivers/zink/zink_compiler.c
@@ -2239,9 +2239,11 @@ zink_shader_free(struct zink_context *ctx, struct zink_shader *shader)
prog->base.removed = true;
}
prog->shaders[pstage] = NULL;
- if (shader->nir->info.stage == MESA_SHADER_TESS_EVAL && shader->generated)
+ if (shader->nir->info.stage == MESA_SHADER_TESS_EVAL && shader->generated) {
/* automatically destroy generated tcs shaders when tes is destroyed */
zink_shader_free(ctx, shader->generated);
+ shader->generated = NULL;
+ }
zink_gfx_program_reference(ctx, &prog, NULL);
}
}