diff options
author | Ian Romanick <[email protected]> | 2013-01-21 22:41:13 -0500 |
---|---|---|
committer | Ian Romanick <[email protected]> | 2013-01-25 09:07:34 -0500 |
commit | 141e9d42f518fb113dcaf01fcb0c82b14726ebd6 (patch) | |
tree | a6c7ad21707060d1db13fedaf3d5b488d0e1dadd /src/glsl | |
parent | 6a0c1bc16334b72de25e57d0c7e0a72dcd7c5ecf (diff) |
glsl: Modify uniform_field_visitor::visit_field to take a row_major parameter
Not used yet, but the UBO layout visitor will use this.
v2: Remove a spruious hunk. This is moved to the patch "glsl: Remove
ir_variable::uniform_block". Suggested by Carl Worth.
Signed-off-by: Ian Romanick <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/glsl')
-rw-r--r-- | src/glsl/link_uniforms.cpp | 14 | ||||
-rw-r--r-- | src/glsl/linker.h | 4 |
2 files changed, 13 insertions, 5 deletions
diff --git a/src/glsl/link_uniforms.cpp b/src/glsl/link_uniforms.cpp index c5661bb2f47..90d46da0721 100644 --- a/src/glsl/link_uniforms.cpp +++ b/src/glsl/link_uniforms.cpp @@ -73,7 +73,7 @@ uniform_field_visitor::process(ir_variable *var) recursion(var->type, &name, strlen(name), false); ralloc_free(name); } else { - this->visit_field(t, var->name); + this->visit_field(t, var->name, false); } } @@ -109,7 +109,7 @@ uniform_field_visitor::recursion(const glsl_type *t, char **name, t->fields.structure[i].row_major); } } else { - this->visit_field(t, *name); + this->visit_field(t, *name, row_major); } } @@ -159,11 +159,14 @@ public: unsigned num_shader_uniform_components; private: - virtual void visit_field(const glsl_type *type, const char *name) + virtual void visit_field(const glsl_type *type, const char *name, + bool row_major) { assert(!type->is_record()); assert(!(type->is_array() && type->fields.array->is_record())); + (void) row_major; + /* Count the number of samplers regardless of whether the uniform is * already in the hash table. The hash table prevents adding the same * uniform for multiple shader targets, but in this case we want to @@ -263,11 +266,14 @@ public: int ubo_byte_offset; private: - virtual void visit_field(const glsl_type *type, const char *name) + virtual void visit_field(const glsl_type *type, const char *name, + bool row_major) { assert(!type->is_record()); assert(!(type->is_array() && type->fields.array->is_record())); + (void) row_major; + unsigned id; bool found = this->map->get(id, name); assert(found); diff --git a/src/glsl/linker.h b/src/glsl/linker.h index e69098afdc3..0ad217f841c 100644 --- a/src/glsl/linker.h +++ b/src/glsl/linker.h @@ -90,8 +90,10 @@ protected: * * \param type Type of the field. * \param name Fully qualified name of the field. + * \param row_major For a matrix type, is it stored row-major. */ - virtual void visit_field(const glsl_type *type, const char *name) = 0; + virtual void visit_field(const glsl_type *type, const char *name, + bool row_major) = 0; private: /** |