glsl/linker: Don't include interface name for built-in blocks
authorIan Romanick <ian.d.romanick@intel.com>
Tue, 17 May 2016 20:30:46 +0000 (13:30 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Wed, 18 May 2016 17:53:34 +0000 (10:53 -0700)
Commit 11096ec introduced a regression in some piglit tests (e.g.,
arb_program_interface_query-resource-query).  I did not notice this
regression because other (unrelated) problems caused failed assertions
in those same tests on my system... so they crashed before getting to
the new failure.

v2: Use is_gl_identifier.  Suggested by Tim.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
Cc: mesa-stable@lists.freedesktop.org
src/compiler/glsl/linker.cpp

index 7f54433b30701f7ba4c70d14c0a54d05b72c8a44..6246944b0b4e912360ddbefb9ca839747250e772 100644 (file)
@@ -3664,7 +3664,8 @@ add_shader_variable(struct gl_shader_program *shProg, unsigned stage_mask,
        *    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
+      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,
                            name)
          : name;