glsl: inline link_varyings()
Most code has already been moved to the NIR linker. Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22846>
This commit is contained in:

committed by
Marge Bot

parent
bc66c2588a
commit
0d7b5f8b30
@@ -3447,36 +3447,6 @@ verify_subroutine_associated_funcs(struct gl_shader_program *prog)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
|
||||||
link_varyings(const struct gl_constants *consts, struct gl_shader_program *prog,
|
|
||||||
void *mem_ctx)
|
|
||||||
{
|
|
||||||
/* Mark all generic shader inputs and outputs as unpaired. */
|
|
||||||
for (unsigned i = MESA_SHADER_VERTEX; i <= MESA_SHADER_FRAGMENT; i++) {
|
|
||||||
if (prog->_LinkedShaders[i] != NULL) {
|
|
||||||
link_invalidate_variable_locations(prog->_LinkedShaders[i]->ir);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
prog->last_vert_prog = NULL;
|
|
||||||
for (int i = MESA_SHADER_GEOMETRY; i >= MESA_SHADER_VERTEX; i--) {
|
|
||||||
if (prog->_LinkedShaders[i] == NULL)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
prog->last_vert_prog = prog->_LinkedShaders[i]->Program;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
|
|
||||||
if (prog->_LinkedShaders[i] == NULL)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
lower_vector_derefs(prog->_LinkedShaders[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
|
link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
|
||||||
{
|
{
|
||||||
@@ -3818,8 +3788,28 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
|
|||||||
|
|
||||||
store_fragdepth_layout(prog);
|
store_fragdepth_layout(prog);
|
||||||
|
|
||||||
if(!link_varyings(consts, prog, mem_ctx))
|
/* Mark all generic shader inputs and outputs as unpaired. */
|
||||||
goto done;
|
for (unsigned i = MESA_SHADER_VERTEX; i <= MESA_SHADER_FRAGMENT; i++) {
|
||||||
|
if (prog->_LinkedShaders[i] != NULL) {
|
||||||
|
link_invalidate_variable_locations(prog->_LinkedShaders[i]->ir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
prog->last_vert_prog = NULL;
|
||||||
|
for (int i = MESA_SHADER_GEOMETRY; i >= MESA_SHADER_VERTEX; i--) {
|
||||||
|
if (prog->_LinkedShaders[i] == NULL)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
prog->last_vert_prog = prog->_LinkedShaders[i]->Program;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
|
||||||
|
if (prog->_LinkedShaders[i] == NULL)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
lower_vector_derefs(prog->_LinkedShaders[i]);
|
||||||
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
|
for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
|
||||||
|
Reference in New Issue
Block a user