On 01/28/2014 02:52 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." > > This patch changes the behaviour to match OpenGL 4.0 spec > Fixes Khronos OpenGL CTS draw_buffers_api.test. > > V2: Update the comment in code. > > Cc: mesa-sta...@lists.freedesktop.org > Signed-off-by: Anuj Phogat <anuj.pho...@gmail.com>
Reviewed-by: Ian Romanick <ian.d.roman...@intel.com> > --- > src/mesa/main/buffers.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/src/mesa/main/buffers.c b/src/mesa/main/buffers.c > index 2bdbf41..6cbce9d 100644 > --- a/src/mesa/main/buffers.c > +++ b/src/mesa/main/buffers.c > @@ -360,16 +360,18 @@ _mesa_DrawBuffers(GLsizei n, const GLenum *buffers) > return; > } > > - /* From the OpenGL 3.0 specification, page 259: > + /* From the OpenGL 4.0 specification, page 256: > * "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. This restriction is because these > + * the error INVALID_ENUM. This restriction is because these > * constants may themselves refer to multiple buffers, as shown in > * table 4.4." > + * Previous versions of the OpenGL specification say > INVALID_OPERATION, > + * but the Khronos conformance tests expect INVALID_ENUM. > */ > 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