On Tue, Oct 27, 2015 at 01:18:42PM +0200, Tapani P?lli wrote: > This makes sure that user is still able to query properties about > variables that have gotten removed by opt_dead_builtin_varyings pass. > > Fixes following OpenGL ES 3.1 test: > ES31-CTS.program_interface_query.output-layout > > No Piglit regressions. > > Signed-off-by: Tapani Pälli <tapani.pa...@intel.com> > --- > src/glsl/linker.cpp | 29 +++++++++++++++++++++++++++++ > 1 file changed, 29 insertions(+) > > diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp > index cfd8f81..e9660fc 100644 > --- a/src/glsl/linker.cpp > +++ b/src/glsl/linker.cpp > @@ -3386,6 +3386,12 @@ add_interface_variables(struct gl_shader_program > *shProg, > if (strncmp(var->name, "packed:", 7) == 0) > continue; > > + /* Skip fragdata arrays, these are handled separately > + * by add_fragdata_arrays. > + */ > + if (strncmp(var->name, "gl_out_FragData", 15) == 0) > + continue; > + > if (!add_program_resource(shProg, programInterface, var, > build_stageref(shProg, var->name, > var->data.mode) | mask)) > @@ -3425,6 +3431,26 @@ add_packed_varyings(struct gl_shader_program *shProg, > int stage) > return true; > } > > +static bool > +add_fragdata_arrays(struct gl_shader_program *shProg) > +{ > + struct gl_shader *sh = shProg->_LinkedShaders[MESA_SHADER_FRAGMENT]; > + > + if (!sh || !sh->fragdata_arrays) > + return true; > + > + foreach_in_list(ir_instruction, node, sh->fragdata_arrays) { > + ir_variable *var = node->as_variable(); > + if (var) { > + assert(var->data.mode == ir_var_shader_out); > + if (!add_program_resource(shProg, GL_PROGRAM_OUTPUT, var, > + (1 << MESA_SHADER_FRAGMENT)))
You can drop the extra (). _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev