summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEduardo Lima Mitev <[email protected]>2015-02-10 16:40:40 +0100
committerEduardo Lima Mitev <[email protected]>2015-07-29 08:13:12 +0200
commitc00d093c8f247c41f9122143c49ffa93865a0ded (patch)
tree44f420c33d39307dd8bf595a0ac290fcf0144ba3
parent055e3a3f87d8be5374902d2ae6fecb0eb5c66714 (diff)
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 <[email protected]>
-rw-r--r--src/mesa/main/clear.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/mesa/main/clear.c b/src/mesa/main/clear.c
index 8284dcab528..3bfcc5c0e39 100644
--- a/src/mesa/main/clear.c
+++ b/src/mesa/main/clear.c
@@ -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: