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

Timothy Arceri tarceri at itsqueeze.com
Fri Feb 15 23:05:36 UTC 2019


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 <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