[Piglit] [PATCH] arb_program_interface_query: corrected AoA's index variable expectation

Timothy Arceri tarceri at itsqueeze.com
Thu Mar 21 21:44:23 UTC 2019


On 22/3/19 1:48 am, Andres Gomez wrote:
> On Sat, 2019-02-16 at 10:05 +1100, Timothy Arceri wrote:
>> 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.
> 
> I wonder if it's really worthy, then, to test something that is
> implementation dependent.
> 
>> 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
> 
> OK. Thanks for the thorough explanation! I'll drop this patch.

I also don't think we need a full NIR linker to pass this test. Just 
switching to the new nir_build_program_resource_list() once further 
support for ARB_gl_spirv lands (and we add any missing GL support) 
should do the trick.

> 
>>
>> 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 <tarceri at itsqueeze.com>
>>> Cc: Martin Peres <martin.peres at linux.intel.com>
>>> Signed-off-by: Andres Gomez <agomez at 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 },
>>>


More information about the Piglit mailing list