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

Eduardo Lima Mitev elima at kemper.freedesktop.org
Wed Jul 29 06:16:05 UTC 2015


Module: Mesa
Branch: master
Commit: c00d093c8f247c41f9122143c49ffa93865a0ded
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c00d093c8f247c41f9122143c49ffa93865a0ded

Author: Eduardo Lima Mitev <elima at igalia.com>
Date:   Tue Feb 10 16:40:40 2015 +0100

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 at intel.com>

---

 src/mesa/main/clear.c |   12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/mesa/main/clear.c b/src/mesa/main/clear.c
index 8284dca..3bfcc5c 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:




More information about the mesa-commit mailing list