[Mesa-dev] [PATCH] mesa: check fbo completeness based on internal format, not driver format

Ilia Mirkin imirkin at alum.mit.edu
Thu Feb 18 01:35:49 UTC 2016


The underlying format can be anything. Specifically in the stencil-only
case, it might be a depth/stencil format. However we still want to
refuse such an attachment when bound to GL_DEPTH, so we must check the
base format that the texture was created with, rather than backed out
from the driver-supplied underlying format.

Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
Cc: Brian Paul <brianp at vmware.com>
---

Brian, this is the patch I was alluding to in https://lists.freedesktop.org/archives/mesa-dev/2016-February/108009.html . It fixes the dEQP tests in question.

 src/mesa/main/fbobject.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
index 1b9b692..1f10050 100644
--- a/src/mesa/main/fbobject.c
+++ b/src/mesa/main/fbobject.c
@@ -811,7 +811,7 @@ test_attachment_completeness(const struct gl_context *ctx, GLenum format,
          break;
       }
 
-      baseFormat = _mesa_get_format_base_format(texImage->TexFormat);
+      baseFormat = texImage->_BaseFormat;
 
       if (format == GL_COLOR) {
          if (!_mesa_is_legal_color_format(ctx, baseFormat)) {
@@ -868,8 +868,7 @@ test_attachment_completeness(const struct gl_context *ctx, GLenum format,
       }
    }
    else if (att->Type == GL_RENDERBUFFER_EXT) {
-      const GLenum baseFormat =
-         _mesa_get_format_base_format(att->Renderbuffer->Format);
+      const GLenum baseFormat = att->Renderbuffer->_BaseFormat;
 
       assert(att->Renderbuffer);
       if (!att->Renderbuffer->InternalFormat ||
-- 
2.4.10



More information about the mesa-dev mailing list