Mesa (master): texobj: Check completeness with InternalFormat rather than Mesa format

Neil Roberts nroberts at kemper.freedesktop.org
Thu Jan 14 12:28:04 UTC 2016


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

Author: Neil Roberts <neil at linux.intel.com>
Date:   Wed Jan 13 19:28:45 2016 +0000

texobj: Check completeness with InternalFormat rather than Mesa format

The internal Mesa format used for a texture might not match the one
requested in the internalFormat when the texture was created, for
example if the driver is internally remapping RGB textures to RGBA.
Otherwise it can cause false positives for completeness if one mipmap
image is created as RGBA and the other as RGB because they would both
have an RGBA Mesa format. If we check the InternalFormat instead then
we are directly checking the API usage which I think better matches
the intention of the check.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93700
Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>

---

 src/mesa/main/texobj.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c
index 547055e..b107a8f 100644
--- a/src/mesa/main/texobj.c
+++ b/src/mesa/main/texobj.c
@@ -835,7 +835,7 @@ _mesa_test_texobj_completeness( const struct gl_context *ctx,
                   incomplete(t, MIPMAP, "TexImage[%d] is missing", i);
                   return;
                }
-               if (img->TexFormat != baseImage->TexFormat) {
+               if (img->InternalFormat != baseImage->InternalFormat) {
                   incomplete(t, MIPMAP, "Format[i] != Format[baseLevel]");
                   return;
                }




More information about the mesa-commit mailing list