Mesa (master): mesa: check draw buffer completeness on glClearBufferfi/glClearBufferiv

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Nov 2 09:17:33 UTC 2019


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

Author: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Date:   Fri Nov  1 19:43:00 2019 +0200

mesa: check draw buffer completeness on glClearBufferfi/glClearBufferiv

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Cc: <mesa-stable at lists.freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak at amd.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 9221c7287a3..c5d612f4a6c 100644
--- a/src/mesa/main/clear.c
+++ b/src/mesa/main/clear.c
@@ -350,6 +350,12 @@ clear_bufferiv(struct gl_context *ctx, GLenum buffer, GLint drawbuffer,
       _mesa_update_state( ctx );
    }
 
+   if (!no_error && ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) {
+      _mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION_EXT,
+                  "glClearBufferiv(incomplete framebuffer)");
+      return;
+   }
+
    switch (buffer) {
    case GL_STENCIL:
       /* Page 264 (page 280 of the PDF) of the OpenGL 3.0 spec says:
@@ -686,6 +692,12 @@ clear_bufferfi(struct gl_context *ctx, GLenum buffer, GLint drawbuffer,
                      drawbuffer);
          return;
       }
+
+      if (ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) {
+         _mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION_EXT,
+                     "glClearBufferfi(incomplete framebuffer)");
+         return;
+      }
    }
 
    if (ctx->RasterDiscard)




More information about the mesa-commit mailing list