Fwiw I remember having trouble finding justification for the comments in that issue, and iirc the opposite seemed to be indicated by the spec text. (E.g.that array indices should be maintained.) I suspect there are also AoA interactions.
I guess my point here is to double check this, as well as what other drivers do in this and similar situations. On Aug 1, 2016 12:31 PM, "Kenneth Graunke" <kenn...@whitecape.org> wrote: 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: mesa-sta...@lists.freedesktop.org Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> --- 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 mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev