Mesa (staging/19.2): mesa: check framebuffer completeness only after state update

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Nov 14 17:03:24 UTC 2019


Module: Mesa
Branch: staging/19.2
Commit: 330d31f63b1bded0d20c01d337fbd53ca776e503
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=330d31f63b1bded0d20c01d337fbd53ca776e503

Author: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Date:   Mon Nov 11 12:32:50 2019 +0200

mesa: check framebuffer completeness only after state update

The change made in 88d665830f27 ("mesa: check draw buffer completeness
on glClearBufferfi/glClearBufferiv") correctly updated the state prior
to checking the framebuffer completeness on glClearBufferiv but not in
glClearBufferfi.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>
Fixes: 88d665830f27 ("mesa: check draw buffer completeness on glClearBufferfi/glClearBufferiv")
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2072
(cherry picked from commit f93bb903020bac21a36e240b2c19a4733c2405ee)

---

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

diff --git a/src/mesa/main/clear.c b/src/mesa/main/clear.c
index 14d548d3689..013043f9f49 100644
--- a/src/mesa/main/clear.c
+++ b/src/mesa/main/clear.c
@@ -692,12 +692,6 @@ 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)
@@ -707,6 +701,12 @@ clear_bufferfi(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,
+                  "glClearBufferfi(incomplete framebuffer)");
+      return;
+   }
+
    if (ctx->DrawBuffer->Attachment[BUFFER_DEPTH].Renderbuffer)
       mask |= BUFFER_BIT_DEPTH;
    if (ctx->DrawBuffer->Attachment[BUFFER_STENCIL].Renderbuffer)




More information about the mesa-commit mailing list