On 03/04/2015 05:57 PM, Ilia Mirkin wrote:
On Wed, Mar 4, 2015 at 10:31 AM, Tapani <[email protected] <mailto:[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]>  
<mailto:[email protected]>  wrote:
    On Wed, Mar 4, 2015 at 4:53 AM, Arthur Huillet<[email protected]>  
<mailto:[email protected]>  wrote:
    From: Arthur Huillet<[email protected]>  <mailto:[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] <mailto:[email protected]>>

me too;

Reviewed-by: Tapani Pälli <[email protected]>

_______________________________________________
Piglit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to