Mesa (master): mesa: Generate FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT earlier

Chris Forbes chrisf at kemper.freedesktop.org
Mon Mar 24 17:47:58 UTC 2014


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

Author: Chris Forbes <chrisf at ijw.co.nz>
Date:   Sun Mar 23 22:41:28 2014 +1300

mesa: Generate FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT earlier

The ARB_framebuffer_object spec lists this case before the
FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER and
FRAMEBUFFER_INCOMPLETE_READ_BUFFER cases.

Fixes two broken cases in piglit's fbo-incomplete test, if
ARB_ES2_compatibility is not advertised. (If it is, this is masked
because the FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER /
FRAMEBUFFER_INCOMPLETE_READ_BUFFER cases are removed by that extension)

Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
Reviewed-by: Brian Paul <brianp at vmware.com>

---

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

diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
index dfe2f1e..c408307 100644
--- a/src/mesa/main/fbobject.c
+++ b/src/mesa/main/fbobject.c
@@ -1080,6 +1080,12 @@ _mesa_test_framebuffer_completeness(struct gl_context *ctx,
 
    fb->MaxNumLayers = max_layer_count;
 
+   if (numImages == 0) {
+      fb->_Status = GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT;
+      fbo_incomplete(ctx, "no attachments", -1);
+      return;
+   }
+
    if (_mesa_is_desktop_gl(ctx) && !ctx->Extensions.ARB_ES2_compatibility) {
       /* Check that all DrawBuffers are present */
       for (j = 0; j < ctx->Const.MaxDrawBuffers; j++) {
@@ -1108,12 +1114,6 @@ _mesa_test_framebuffer_completeness(struct gl_context *ctx,
       }
    }
 
-   if (numImages == 0) {
-      fb->_Status = GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT;
-      fbo_incomplete(ctx, "no attachments", -1);
-      return;
-   }
-
    /* Provisionally set status = COMPLETE ... */
    fb->_Status = GL_FRAMEBUFFER_COMPLETE_EXT;
 




More information about the mesa-commit mailing list