Issue 16 of the ARB_program_interface_query spec gives an example:
For example, in the following code:
uniform Block1 {
int member1;
};
uniform Block2 {
int member2;
} instance2;
uniform Block3 {
int member3;
} instance3[2]; // uses two separate buffer bindings
the three uniforms (if active) are enumerated as "member1",
"Block2.member2", and "Block3.member3".
From this it's pretty clear that the array index should not be included.
Cc: [email protected]
Signed-off-by: Kenneth Graunke <[email protected]>
---
src/compiler/glsl/linker.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp
index 6d45a02..bf11cb4 100644
--- a/src/compiler/glsl/linker.cpp
+++ b/src/compiler/glsl/linker.cpp
@@ -3800,7 +3800,8 @@ add_shader_variable(struct gl_shader_program *shProg,
unsigned stage_mask,
*/
const char *prefixed_name = (var->data.from_named_ifc_block &&
!is_gl_identifier(var->name))
- ? ralloc_asprintf(shProg, "%s.%s", var->get_interface_type()->name,
+ ? ralloc_asprintf(shProg, "%s.%s",
+ var->get_interface_type()->without_array()->name,
name)
: name;
--
2.9.2
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev