[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