On Fri, 28 Oct 2011 10:42:39 -0700, "Ian Romanick" <i...@freedesktop.org> wrote: > From: Ian Romanick <ian.d.roman...@intel.com> > > This is just the infrastructure and the code. It's not used yet. > > Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> > --- > src/glsl/link_uniforms.cpp | 95 > ++++++++++++++++++++++++++++++++++++++++++++ > src/glsl/linker.h | 3 + > 2 files changed, 98 insertions(+), 0 deletions(-) > > diff --git a/src/glsl/link_uniforms.cpp b/src/glsl/link_uniforms.cpp > index 54af326..a87e69f 100644 > --- a/src/glsl/link_uniforms.cpp > +++ b/src/glsl/link_uniforms.cpp > + /* First pass: Count the uniform resources used by the user-defined > + * uniforms. While this happens, each active uniform will have an index > + * assined to it.
"assigned" > + * Note: this is *NOT* the index that is returned to the application by > + * glGetUnfiormLocation. "Uniform" > + */ > + count_uniform_usage usage(prog->UniformHash); > + for (unsigned i = 0; i < MESA_SHADER_TYPES; i++) { > + if (prog->_LinkedShaders[i] == NULL) > + continue; > + > + foreach_list(node, prog->_LinkedShaders[i]->ir) { > + ir_variable *const var = ((ir_instruction *) node)->as_variable(); > + > + if ((var == NULL) || (var->mode != ir_var_uniform)) > + continue; > + > + /* FINISHME: Update code to process built-in uniforms! > + */ > + if (strncmp("gl_", var->name, 3) == 0) > + continue; > + > + usage.process(var); > + } > + } > + > + const unsigned num_user_uniforms = usage.num_active_uniforms; > + const unsigned num_data_slots = usage.num_values; > + > + /* On the outside chance that there were no uniforms, bail out. > + */ > + if (num_user_uniforms == 0) > + return; No need to set NumUserUniformStorage?
pgpmrBtkoM1LQ.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev