st/nir: Call st_glsl_to_nir_post_opts before interface unification

Since 95415a54c0 st_finalize_nir_before_variants
calls to nir_shader_gather_info, so finalization should be moved
before interface unification.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3482
Fixes: 95415a54c0
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6647>
This commit is contained in:
Danylo Piliaiev 2020-09-08 13:22:12 +03:00 committed by Marge Bot
parent cdc025c9ef
commit 03eec294b9

View file

@ -807,6 +807,8 @@ st_link_nir(struct gl_context *ctx,
struct gl_linked_shader *shader = linked_shader[i];
struct shader_info *info = &shader->Program->nir->info;
st_glsl_to_nir_post_opts(st, shader->Program, shader_program);
if (prev_info &&
ctx->Const.ShaderCompilerOptions[shader->Stage].NirOptions->unify_interfaces) {
prev_info->outputs_written |= info->inputs_read &
@ -824,7 +826,6 @@ st_link_nir(struct gl_context *ctx,
struct gl_linked_shader *shader = linked_shader[i];
struct gl_program *prog = shader->Program;
struct st_program *stp = st_program(prog);
st_glsl_to_nir_post_opts(st, prog, shader_program);
/* Initialize st_vertex_program members. */
if (shader->Stage == MESA_SHADER_VERTEX)