[Mesa-dev] [PATCH] mesa: Generate correct error code in glDrawBuffers()
Ian Romanick
idr at freedesktop.org
Tue Jan 28 10:36:34 PST 2014
On 01/27/2014 07:29 PM, Anuj Phogat wrote:
> OpenGL 3.3 spec expects GL_INVALID_OPERATION:
> "For both the default framebuffer and framebuffer objects, the
> constants FRONT, BACK, LEFT, RIGHT, and FRONT AND BACK are not
> valid in the bufs array passed to DrawBuffers, and will result
> in the error INVALID OPERATION."
>
> But OpenGL 4.0 spec changed the error code to GL_INVALID_ENUM:
> "For both the default framebuffer and framebuffer objects, the
> constants FRONT, BACK, LEFT, RIGHT, and FRONT_AND_BACK are not
> valid in the bufs array passed to DrawBuffers, and will result
> in the error INVALID_ENUM."
At the very least the spec quotation in the code needs to be updated
with the 4.0 reference. Right now the comment still says
INVALID_OPERATION. The comment should also say, "Previous versions of
the spec say INVALID_OPERATION, but the conformance tests expect
INVALID_ENUM."
> This patch changes the behaviour to match OpenGL 4.0 spec
> Fixes Khronos OpenGL CTS draw_buffers_api.test.
>
> Cc: mesa-stable at lists.freedesktop.org
> Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
> ---
> src/mesa/main/buffers.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/mesa/main/buffers.c b/src/mesa/main/buffers.c
> index 2bdbf41..cdae7c5 100644
> --- a/src/mesa/main/buffers.c
> +++ b/src/mesa/main/buffers.c
> @@ -369,7 +369,7 @@ _mesa_DrawBuffers(GLsizei n, const GLenum *buffers)
> * table 4.4."
> */
> if (_mesa_bitcount(destMask[output]) > 1) {
> - _mesa_error(ctx, GL_INVALID_OPERATION, "glDrawBuffersARB(buffer)");
> + _mesa_error(ctx, GL_INVALID_ENUM, "glDrawBuffersARB(buffer)");
> return;
> }
>
>
More information about the mesa-dev
mailing list