diff options
author | Kenneth Graunke <[email protected]> | 2013-07-18 15:10:49 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2013-07-18 16:57:24 -0700 |
commit | 4da1504c0fd0cfccbff514ed03c4dc5deb24cf73 (patch) | |
tree | f7f5475ead39c5734c9f9ec17821ee7ec57f573f | |
parent | 5e5e12040beb40ff93797d55c913ebe6cd00c2ae (diff) |
glsl: Add ir_variable fields for explicit bindings.
These are not used yet, but they exist and are copied appropriately.
v2: Add an explicit "int binding" variable rather than reusing
constant_value, as suggested by Paul Berry.
Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Paul Berry <[email protected]>
-rw-r--r-- | src/glsl/ir.h | 15 | ||||
-rw-r--r-- | src/glsl/ir_clone.cpp | 2 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/glsl/ir.h b/src/glsl/ir.h index 1f0dc0906a1..7ac291cf40e 100644 --- a/src/glsl/ir.h +++ b/src/glsl/ir.h @@ -471,6 +471,14 @@ public: unsigned explicit_index:1; /** + * Was an initial binding explicitly set in the shader? + * + * If so, constant_value contains an integer ir_constant representing the + * initial binding point. + */ + unsigned explicit_binding:1; + + /** * Does this variable have an initializer? * * This is used by the linker to cross-validiate initializers of global @@ -528,6 +536,13 @@ public: int index; /** + * Initial binding point for a sampler or UBO. + * + * For array types, this represents the binding point for the first element. + */ + int binding; + + /** * Built-in state that backs this uniform * * Once set at variable creation, \c state_slots must remain invariant. diff --git a/src/glsl/ir_clone.cpp b/src/glsl/ir_clone.cpp index 5b42935f8e8..9d4178de8b1 100644 --- a/src/glsl/ir_clone.cpp +++ b/src/glsl/ir_clone.cpp @@ -50,11 +50,13 @@ ir_variable::clone(void *mem_ctx, struct hash_table *ht) const var->interpolation = this->interpolation; var->location = this->location; var->index = this->index; + var->binding = this->binding; var->warn_extension = this->warn_extension; var->origin_upper_left = this->origin_upper_left; var->pixel_center_integer = this->pixel_center_integer; var->explicit_location = this->explicit_location; var->explicit_index = this->explicit_index; + var->explicit_binding = this->explicit_binding; var->has_initializer = this->has_initializer; var->depth_layout = this->depth_layout; |