[Mesa-dev] [PATCH] mesa: Reject VertexAttribPointer() with GL_BGRA and !normalized.

Matt Turner mattst88 at gmail.com
Tue Jul 23 15:50:36 PDT 2013


On Mon, Jul 15, 2013 at 6:37 AM, Fredrik Höglund <fredrik at kde.org> wrote:
> On Monday 15 July 2013, Kenneth Graunke wrote:
>> Fixes Piglit's ARB_vertex_attrib_bgra/api-errors test.
>>
>> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
>> ---
>>  src/mesa/main/varray.c | 10 ++++++++++
>>  1 file changed, 10 insertions(+)
>>
>> diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c
>> index 529d933..48f15bd 100644
>> --- a/src/mesa/main/varray.c
>> +++ b/src/mesa/main/varray.c
>> @@ -463,6 +463,16 @@ _mesa_VertexAttribPointer(GLuint index, GLint size, GLenum type,
>>        return;
>>     }
>>
>> +   /* From the GL_ARB_vertex_array_bgra specification:
>> +    * "The error INVALID_VALUE is generated by VertexAttribPointer if
>> +    *  size is BGRA and normalized is FALSE."
>> +    */
>> +   if (size == GL_BGRA && !normalized) {
>> +      _mesa_error(ctx, GL_INVALID_VALUE,
>> +                  "glVertexAttribPointer(BGRA and !normalized)");
>> +      return;
>> +   }
>> +
>
> I think this code belongs in update_array(), since it already handles other
> BGRA errors, and also checks if the extension is supported.
>
> This also reminds me that we need to decide if we should make the error
> code depend on the GL version and entry point.
>
> Both OpenGL 3.3 and GL_ARB_vertex_attrib_binding changes the error code
> to GL_INVALID_OPERATION. The extension only does it for the entry points
> it adds.
>
> I personally don't think it's worth adding the additional complexity for
> that since the conditions under which the errors to be generated haven't
> changed.

Ian,

I remember you mentioning when we were showing the interns how to
write piglit tests that the return value seemed wrong. Can you
elaborate here? This is holding up Fredrik's ARB_vertex_attrib_binding
patches.

Thanks,
Matt


More information about the mesa-dev mailing list