[Piglit] [PATCH] shader_runner: fix uniform array name lookups

Tapani tapani.palli at intel.com
Wed Mar 4 08:12:04 PST 2015


On 03/04/2015 05:57 PM, Ilia Mirkin wrote:
> On Wed, Mar 4, 2015 at 10:31 AM, Tapani <tapani.palli at intel.com 
> <mailto:tapani.palli at intel.com>> wrote:
>
>     On 03/04/2015 05:07 PM, Ilia Mirkin wrote:
>>     On Wed, Mar 4, 2015 at 9:58 AM, Ilia Mirkin<imirkin at alum.mit.edu>  <mailto:imirkin at alum.mit.edu>  wrote:
>>>     On Wed, Mar 4, 2015 at 4:53 AM, Arthur Huillet<arthur.huillet at free.fr>  <mailto:arthur.huillet at free.fr>  wrote:
>>>>     From: Arthur Huillet<ahuillet at nvidia.com>  <mailto:ahuillet at nvidia.com>
>>>>
>>>>     Don't look up uniform names for non-zero array elements, as this is illegal per GL4.5.
>>>>
>>>>      From the discussion of GetProgramResourceIndex in the GL4.5 spec:
>>>>
>>>>             If name exactly matches the name string of one of the active resources for
>>>>          programInterface, the index of the matched resource is returned. Additionally, if
>>>>          name would exactly match the name string of an active resource if "[0]" were
>>>>          appended to name, the index of the matched resource is returned. Otherwise, name
>>>>          is considered not to be the name of an active resource, and INVALID_INDEX is
>>>>          returned. Note that if an interface enumerates a single active resource list entry for
>>>>          an array variable (e.g., "a[0]"), a name identifying any array element other than
>>>>          the first (e.g., "a[1]") is not considered to match.
>>>     Hm, and the spec goes on to define GetUniformIndices in terms of
>>>     GetProgramResourceIndex...
>>>
>>>     What does this say about a[3].b[75].c[2] ? Do they all have to be 0
>>>     and you have to retrieve all 3 strides? If so, your implementation
>>>     isn't quite doing that.
>>     Also I'm having a ton of trouble parsing the meaning of
>>
>>     """
>>     Note that if an interface enumerates a single active resource list entry for
>>     an array variable (e.g., "a[0]"), a name identifying any array element
>>     other than
>>     the first (e.g., "a[1]") is not considered to match.
>>     """
>>
>>     It's unclear to me that it means what you claim it means in the first
>>     place. Ian, as the resident GL and UBO expert, care to comment? :)
>
>     IMO Arthur's interpretation is correct. I had to read this many
>     many times while writing test for GetProgramResourceIndex to get
>     it, the "a[1]" example seems misleading at first.
>     GL_ARB_array_of_arrays is special case explained in
>     GL_ARB_program_interface_query spec:
>
>     "For a uniform array such as: uniform vec4 a[5][4][3]; we
>     enumerate twenty different entries ("a[0][0][0]" through
>     "a[4][3][0]"), ..."
>
>
> Great, so that means that Arthur's approach should work fine here as 
> well. As long as this is indeed what the spec is saying, the original 
> patch is
>
> Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu 
> <mailto:imirkin at alum.mit.edu>>

me too;

Reviewed-by: Tapani Pälli <tapani.palli at intel.com>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20150304/68f64d2b/attachment-0001.html>


More information about the Piglit mailing list