summaryrefslogtreecommitdiffstats
path: root/src/glsl/ir.h
diff options
context:
space:
mode:
authorPaul Berry <[email protected]>2013-09-25 14:07:37 -0700
committerPaul Berry <[email protected]>2013-10-09 16:49:48 -0700
commit15e05b999b779dc48a8e768184b9c69e859c203b (patch)
treec671c33943fe7fc9f06e3873ac811fad05b9a64b /src/glsl/ir.h
parent45e46b2e371e59f11f19b9169aa79ce2b1dffd6f (diff)
glsl: Modify array_sizing_visitor to handle unnamed interface blocks.
We were already setting the array size of unsized arrays that appeared inside unnamed interface blocks, but we weren't updating ir_variable::interface_type to reflect the new array size, causing bogus link errors. This patch causes array_sizing_visitor to keep track of all the unnamed interface types it sees, and the ir_variables corresponding to each one. After the visitor runs, a new function, fixup_unnamed_interface_types(), adjusts each unnamed interface type to correctly correspond with the array sizes in the ir_variables. Fixes piglit tests: - spec/glsl-1.50/execution/unsized-in-unnamed-interface-block-gs - spec/glsl-1.50/execution/unsized-in-unnamed-interface-block-multiple Reviewed-by: Jordan Justen <[email protected]>
Diffstat (limited to 'src/glsl/ir.h')
-rw-r--r--src/glsl/ir.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/glsl/ir.h b/src/glsl/ir.h
index 2a0afada1ea..0f8e9a15d96 100644
--- a/src/glsl/ir.h
+++ b/src/glsl/ir.h
@@ -406,8 +406,8 @@ public:
/**
* Change this->interface_type on a variable that previously had a
- * different interface_type. This is used during linking to set the size
- * of arrays in interface blocks.
+ * different, but compatible, interface_type. This is used during linking
+ * to set the size of arrays in interface blocks.
*/
void change_interface_type(const struct glsl_type *type)
{