zink: fix edgeflags check on program creation

can't check the shaders before the shaders are set

Fixes: a93685ef55 ("zink: add `has_edgeflags` flag to zink_shader and zink_gfx_program")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37239>
(cherry picked from commit 683e3ea0af)
This commit is contained in:
Mike Blumenkrantz 2025-09-03 13:26:23 -04:00 committed by Eric Engestrom
parent af7f3d1dbb
commit f8a88724ad
2 changed files with 3 additions and 3 deletions

View file

@ -7404,7 +7404,7 @@
"description": "zink: fix edgeflags check on program creation",
"nominated": true,
"nomination_type": 2,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "a93685ef5577219a08c28470b25b622eef63d4ed",
"notes": null

View file

@ -1106,8 +1106,6 @@ gfx_program_create(struct zink_context *ctx,
prog->base.removed = true;
prog->optimal_keys = screen->optimal_keys;
prog->has_edgeflags = prog->shaders[MESA_SHADER_VERTEX] &&
prog->shaders[MESA_SHADER_VERTEX]->has_edgeflags;
for (int i = 0; i < ZINK_GFX_SHADER_COUNT; ++i) {
util_dynarray_init(&prog->shader_cache[i][0][0], prog->base.ralloc_ctx);
util_dynarray_init(&prog->shader_cache[i][0][1], prog->base.ralloc_ctx);
@ -1145,6 +1143,8 @@ gfx_program_create(struct zink_context *ctx,
prog->last_vertex_stage = stages[MESA_SHADER_TESS_EVAL];
else
prog->last_vertex_stage = stages[MESA_SHADER_VERTEX];
prog->has_edgeflags = prog->shaders[MESA_SHADER_VERTEX] &&
prog->shaders[MESA_SHADER_VERTEX]->has_edgeflags;
for (int i = 0; i < ARRAY_SIZE(prog->pipelines); ++i) {
_mesa_hash_table_init(&prog->pipelines[i], prog->base.ralloc_ctx, NULL, zink_get_gfx_pipeline_eq_func(screen, prog));