diff options
Diffstat (limited to 'src/compiler/glsl/link_uniforms.cpp')
-rw-r--r-- | src/compiler/glsl/link_uniforms.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/compiler/glsl/link_uniforms.cpp b/src/compiler/glsl/link_uniforms.cpp index deaba94df1c..fb915c9e5f1 100644 --- a/src/compiler/glsl/link_uniforms.cpp +++ b/src/compiler/glsl/link_uniforms.cpp @@ -194,6 +194,9 @@ program_resource_visitor::recursion(const glsl_type *t, char **name, if (t->fields.structure[i].type->is_record()) this->visit_field(&t->fields.structure[i]); + if (t->is_interface() && t->fields.structure[i].offset != -1) + this->set_buffer_offset(t->fields.structure[i].offset); + /* Append '.field' to the current variable name. */ if (name_length == 0) { ralloc_asprintf_rewrite_tail(name, &new_length, "%s", field); @@ -298,6 +301,11 @@ program_resource_visitor::leave_record(const glsl_type *, const char *, bool, } void +program_resource_visitor::set_buffer_offset(unsigned) +{ +} + +void program_resource_visitor::set_record_array_count(unsigned) { } @@ -676,6 +684,11 @@ private: } } + virtual void set_buffer_offset(unsigned offset) + { + this->ubo_byte_offset = offset; + } + virtual void set_record_array_count(unsigned record_array_count) { this->record_array_count = record_array_count; |