mesa: Return INVALID_ENUM in glClearBufferiv() when buffer is not color or stencil

Page 497 of the PDF, section '17.4.3.1 Clearing Individual Buffers' of the
OpenGL 4.5 spec states:

    "An INVALID_ENUM error is generated by ClearBufferiv and
     ClearNamedFramebufferiv if buffer is not COLOR or STENCIL."

Fixes 1 dEQP test:
* dEQP-GLES3.functional.negative_api.buffer.clear_bufferiv

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
Eduardo Lima Mitev
2015-02-10 16:40:40 +01:00
parent 055e3a3f87
commit c00d093c8f
+12
View File
@@ -325,6 +325,18 @@ _mesa_ClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint *value)
_mesa_update_state( ctx );
}
/* Page 498 of the PDF, section '17.4.3.1 Clearing Individual Buffers'
* of the OpenGL 4.5 spec states:
*
* "An INVALID_ENUM error is generated by ClearBufferiv and
* ClearNamedFramebufferiv if buffer is not COLOR or STENCIL."
*/
if (buffer == GL_DEPTH || buffer == GL_DEPTH_STENCIL) {
_mesa_error(ctx, GL_INVALID_ENUM,
"glClearBufferiv(buffer=GL_DEPTH || GL_DEPTH_STENCIL)");
return;
}
switch (buffer) {
case GL_STENCIL:
/* Page 264 (page 280 of the PDF) of the OpenGL 3.0 spec says: