Module: Mesa Branch: master Commit: 11096ecc39fdc6e075527c225710ee57b8fb40d1 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=11096ecc39fdc6e075527c225710ee57b8fb40d1
Author: Ian Romanick <[email protected]> Date: Fri May 13 17:45:49 2016 -0700 glsl/linker: Include the interface name for input and output blocks On my oes_shader_io_blocks branch, this fixes 71 dEQP-GLES31.functional.program_interface_query.* tests. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Cc: [email protected] --- src/compiler/glsl/linker.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp index 920dd94..bf30b82 100644 --- a/src/compiler/glsl/linker.cpp +++ b/src/compiler/glsl/linker.cpp @@ -3654,6 +3654,21 @@ add_shader_variable(struct gl_shader_program *shProg, unsigned stage_mask, } default: { + /* Issue #16 of the ARB_program_interface_query spec says: + * + * "* If a variable is a member of an interface block without an + * instance name, it is enumerated using just the variable name. + * + * * If a variable is a member of an interface block with an instance + * name, it is enumerated as "BlockName.Member", where "BlockName" is + * the name of the interface block (not the instance name) and + * "Member" is the name of the variable." + */ + const char *prefixed_name = var->data.from_named_ifc_block + ? ralloc_asprintf(shProg, "%s.%s", var->get_interface_type()->name, + name) + : name; + /* The ARB_program_interface_query spec says: * * "For an active variable declared as a single instance of a basic @@ -3661,7 +3676,7 @@ add_shader_variable(struct gl_shader_program *shProg, unsigned stage_mask, * from the shader source." */ gl_shader_variable *sha_v = - create_shader_variable(shProg, var, name, type, + create_shader_variable(shProg, var, prefixed_name, type, use_implicit_location, location); if (!sha_v) return false; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
