NAK.

The problem is this will end up making the test fail on the Nvidia blob.
Technically neither is incorrect, but the test does show Mesa's failure to detect the unused element. Again this is not technically a failure of the spec as it's dependent on the implementations ability to detect active array elements. However I'd rather leave this than work around our substandard detection of inactive elements.

See [1] for more information, and note I also rejected the Mesa solution proposed by Andrii in the bug report because it was too much code for something that didn't actually remove the unused components but just hid them from the resource list.

I think if we actually want to fix this properly then we could do it by making a NIR linker for GLSL.

[1] https://bugs.freedesktop.org/show_bug.cgi?id=92822

On 9/2/19 3:59 am, Andres Gomez wrote:
Naming conventions, from the GL_ARB_program_interface_query extension:

  "   * For an active variable declared as an array of an aggregate
        data type (structures or arrays), a separate entry will be
        generated for each active array element, unless noted
        immediately below.  The name of each entry is formed by
        concatenating the name of the array, the "[" character, an
        integer identifying the element number, and the "]" character.
        These enumeration rules are applied recursively, treating each
        enumerated array element as a separate active variable."

Cc: Timothy Arceri <tarc...@itsqueeze.com>
Cc: Martin Peres <martin.pe...@linux.intel.com>
Signed-off-by: Andres Gomez <ago...@igalia.com>
---
  .../spec/arb_program_interface_query/getprogramresourceindex.c  | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/spec/arb_program_interface_query/getprogramresourceindex.c 
b/tests/spec/arb_program_interface_query/getprogramresourceindex.c
index 16b38e2d5..2afc9eeb9 100755
--- a/tests/spec/arb_program_interface_query/getprogramresourceindex.c
+++ b/tests/spec/arb_program_interface_query/getprogramresourceindex.c
@@ -167,7 +167,7 @@ static const struct subtest_index_t index_subtests[] = {
        {   vs_aofa,              GL_PROGRAM_INPUT,          "vs_input2", 
false, -1, GL_NO_ERROR },
        {   vs_aofa,              GL_PROGRAM_INPUT,       "vs_input2[0]",  
true, -1, GL_NO_ERROR },
        {   vs_aofa,              GL_PROGRAM_INPUT,    "vs_input2[0][0]",  
true, -1, GL_NO_ERROR },
-       {   vs_aofa,              GL_PROGRAM_INPUT,    "vs_input2[1][0]", 
false, -1, GL_NO_ERROR },
+       {   vs_aofa,              GL_PROGRAM_INPUT,    "vs_input2[1][0]",  
true, -1, GL_NO_ERROR },
        {   vs_aofa,              GL_PROGRAM_INPUT,    "vs_input2[0][1]", 
false, -1, GL_NO_ERROR },
        {    vs_sub,          GL_VERTEX_SUBROUTINE,                "vss",  
true, -1, GL_NO_ERROR },
        {    vs_sub,          GL_VERTEX_SUBROUTINE,               "vss2",  
true, -1, GL_NO_ERROR },

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to