[Mesa-dev] [PATCH 15/18] Revert "glsl/linker: Don't include interface name for built-in blocks"

Kenneth Graunke kenneth at whitecape.org
Mon Aug 1 17:29:42 UTC 2016


This reverts commit 79bbff9defd98167bf14336a44985088e2fd3f37.

Issue 16 of the ARB_program_interface_query spec clearly states:

   For tessellation control, tessellation evaluation, and geometry shaders,
   per-vertex built-in inputs like gl_Position are in a block with an
   instance name of "gl_in[]".  Additionally, for tessellation control
   shaders, per-vertex built-in outputs like gl_Position are in a block
   with an instance name of "gl_out[]".  In these cases, applying the
   standard rules would result in an enumerated name of
   "gl_PerVertex.gl_Position".

So we should add "gl_PerVertex.gl_Position", not "gl_Position".
I believe the reverted commit was hacking around broken Piglit tests;
it looks like Ian fixed those Piglit tests in piglit commit
1ea15c92fa41cbe62bd32e77b616e2560107a34f, but never landed a fix
to Mesa.  This fixes spec/arb_program_interface_query/resource-query.

Cc: mesa-stable at lists.freedesktop.org
Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
---
 src/compiler/glsl/linker.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp
index bf11cb4..b10b872 100644
--- a/src/compiler/glsl/linker.cpp
+++ b/src/compiler/glsl/linker.cpp
@@ -3798,8 +3798,7 @@ 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 &&
-                                   !is_gl_identifier(var->name))
+      const char *prefixed_name = var->data.from_named_ifc_block
          ? ralloc_asprintf(shProg, "%s.%s",
                            var->get_interface_type()->without_array()->name,
                            name)
-- 
2.9.2



More information about the mesa-dev mailing list