diff options
author | Mike Blumenkrantz <michael.blumenkrantz@gmail.com> | 2022-06-07 14:23:07 -0400 |
---|---|---|
committer | Dylan Baker <dylan.c.baker@intel.com> | 2022-06-15 16:12:59 -0700 |
commit | 96574ecba3b50f10c6ea58c2c00d76e0bb9066b0 (patch) | |
tree | ba89df8594276c77d68e6eef52063770f056a830 | |
parent | 6d41869f1ee874234261f09d43d6abb7e3bf25f1 (diff) |
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 <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17010>
(cherry picked from commit 338d98643906141322432874c91a1a8528a85e3a)
-rw-r--r-- | .pick_status.json | 2 | ||||
-rw-r--r-- | src/gallium/drivers/zink/zink_program.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/.pick_status.json b/.pick_status.json index 9ccda941de8..436455d1c47 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1210,7 +1210,7 @@ "description": "zink: fix generated tcs update path", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/gallium/drivers/zink/zink_program.c b/src/gallium/drivers/zink/zink_program.c index 85ed5e3e0cc..29dffd49589 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); |