From 1a78e9a7e8ba8adfd31d26e260207a75d0f85224 Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Wed, 20 Mar 2024 15:02:19 +1100 Subject: [PATCH] glsl: move some linking calls to gl_nir_link_glsl() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is a more logical place for them and will avoid us adding more function validtion calls to the st glsl to nir file in future patches. Acked-by: Marek Olšák Part-of: --- src/compiler/glsl/gl_nir_linker.c | 12 ++++++++++++ src/mesa/state_tracker/st_glsl_to_nir.cpp | 6 ------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/compiler/glsl/gl_nir_linker.c b/src/compiler/glsl/gl_nir_linker.c index 70a671a1358..6b7455f96f4 100644 --- a/src/compiler/glsl/gl_nir_linker.c +++ b/src/compiler/glsl/gl_nir_linker.c @@ -1677,6 +1677,18 @@ gl_nir_link_glsl(const struct gl_constants *consts, MESA_TRACE_FUNC(); + for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) { + if (prog->_LinkedShaders[i] == NULL) + continue; + + gl_nir_detect_recursion_linked(prog, + prog->_LinkedShaders[i]->Program->nir); + if (!prog->data->LinkStatus) + return false; + + gl_nir_inline_functions(prog->_LinkedShaders[i]->Program->nir); + } + resize_tes_inputs(consts, prog); /* Validate the inputs of each stage with the output of the preceding diff --git a/src/mesa/state_tracker/st_glsl_to_nir.cpp b/src/mesa/state_tracker/st_glsl_to_nir.cpp index a2084f03eb0..548bcb8976f 100644 --- a/src/mesa/state_tracker/st_glsl_to_nir.cpp +++ b/src/mesa/state_tracker/st_glsl_to_nir.cpp @@ -542,12 +542,6 @@ st_link_glsl_to_nir(struct gl_context *ctx, } prog->nir = glsl_to_nir(&st->ctx->Const, shader_program, shader->Stage, options); - - gl_nir_detect_recursion_linked(shader_program, prog->nir); - if (!shader_program->data->LinkStatus) - return GL_FALSE; - - gl_nir_inline_functions(prog->nir); } memcpy(prog->nir->info.source_sha1, shader->linked_source_sha1,