From 338d98643906141322432874c91a1a8528a85e3a Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 7 Jun 2022 14:23:07 -0400 Subject: [PATCH] zink: fix generated tcs update path is_generated is in a union with the generated tcs pointer for tes shaders, so check the shader stage too cc: mesa-stable Reviewed-by: Adam Jackson Part-of: --- src/gallium/drivers/zink/zink_program.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/zink/zink_program.c b/src/gallium/drivers/zink/zink_program.c index 242c225..c86a2e4 100644 --- a/src/gallium/drivers/zink/zink_program.c +++ b/src/gallium/drivers/zink/zink_program.c @@ -128,7 +128,7 @@ get_shader_module_for_stage(struct zink_context *ctx, struct zink_screen *screen if (!zm) { return NULL; } - if (zs->is_generated && zs->spirv) { + if (pstage == PIPE_SHADER_TESS_CTRL && zs->is_generated && zs->spirv) { assert(ctx); //TODO async mod = zink_shader_tcs_compile(screen, zs, zink_get_tcs_key(ctx)->patch_vertices); } else { @@ -155,7 +155,7 @@ get_shader_module_for_stage(struct zink_context *ctx, struct zink_screen *screen zm->has_nonseamless = !!nonseamless_size; if (inline_size) memcpy(zm->key + key->size + nonseamless_size, key->base.inlined_uniform_values, inline_size * sizeof(uint32_t)); - if (zs->is_generated) + if (pstage == PIPE_SHADER_TESS_CTRL && zs->is_generated) zm->hash = zink_get_tcs_key(ctx)->patch_vertices; else zm->hash = shader_module_hash(zm); -- 2.7.4