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-sta...@lists.freedesktop.org > Signed-off-by: Anuj Phogat <anuj.pho...@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; > } > > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev