mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
glsl: Pass stage to add_interface_variables().
add_interface_variables is supposed to add variables from either the first or last stage of a linked shader. But it has no way of knowing the stage it's being asked to process, which makes it impossible to produce correct stagerefs. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
This commit is contained in:
parent
2c5afe1fa9
commit
356c99b4e7
1 changed files with 5 additions and 5 deletions
|
|
@ -3519,8 +3519,10 @@ create_shader_variable(struct gl_shader_program *shProg, const ir_variable *in)
|
|||
|
||||
static bool
|
||||
add_interface_variables(struct gl_shader_program *shProg,
|
||||
exec_list *ir, GLenum programInterface)
|
||||
unsigned stage, GLenum programInterface)
|
||||
{
|
||||
exec_list *ir = shProg->_LinkedShaders[stage]->ir;
|
||||
|
||||
foreach_in_list(ir_instruction, node, ir) {
|
||||
ir_variable *var = node->as_variable();
|
||||
uint8_t mask = 0;
|
||||
|
|
@ -3893,12 +3895,10 @@ build_program_resource_list(struct gl_context *ctx,
|
|||
return;
|
||||
|
||||
/* Add inputs and outputs to the resource list. */
|
||||
if (!add_interface_variables(shProg, shProg->_LinkedShaders[input_stage]->ir,
|
||||
GL_PROGRAM_INPUT))
|
||||
if (!add_interface_variables(shProg, input_stage, GL_PROGRAM_INPUT))
|
||||
return;
|
||||
|
||||
if (!add_interface_variables(shProg, shProg->_LinkedShaders[output_stage]->ir,
|
||||
GL_PROGRAM_OUTPUT))
|
||||
if (!add_interface_variables(shProg, output_stage, GL_PROGRAM_OUTPUT))
|
||||
return;
|
||||
|
||||
/* Add transform feedback varyings. */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue