On Wed, Mar 4, 2015 at 10:31 AM, Tapani <[email protected]> wrote:
> On 03/04/2015 05:07 PM, Ilia Mirkin wrote: > > On Wed, Mar 4, 2015 at 9:58 AM, Ilia Mirkin <[email protected]> > <[email protected]> wrote: > > On Wed, Mar 4, 2015 at 4:53 AM, Arthur Huillet <[email protected]> > <[email protected]> wrote: > > From: Arthur Huillet <[email protected]> <[email protected]> > > 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 <[email protected]>
_______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
