Mesa (master): mesa: only use fallback texture when using shaders, not fixed-function (take two)

Brian Paul brianp at kemper.freedesktop.org
Tue May 5 22:32:47 UTC 2009


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

Author: Brian Paul <brianp at vmware.com>
Date:   Tue May  5 16:29:04 2009 -0600

mesa: only use fallback texture when using shaders, not fixed-function (take two)

The semantics are a little different for shaders vs. fixed-function when
trying to use an incomplete texture.  The fallback texture returning
(0,0,0,1) should only be used with shaders.  For fixed function, the texture
unit is truly disabled/ignored.

Fixes glean fbo test regression.

---

 src/mesa/main/texstate.c |   22 ++++++++++++++--------
 1 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/mesa/main/texstate.c b/src/mesa/main/texstate.c
index 9664bd5..5453331 100644
--- a/src/mesa/main/texstate.c
+++ b/src/mesa/main/texstate.c
@@ -560,14 +560,20 @@ update_texture_state( GLcontext *ctx )
          }
       }
 
-      if (fprog && !texUnit->_ReallyEnabled) {
-         /* If we get here it means the shader is expecting a texture
-          * object, but there isn't one (or it's incomplete).  Use the
-          * fallback texture.
-          */
-         struct gl_texture_object *texObj = _mesa_get_fallback_texture(ctx);
-         texUnit->_ReallyEnabled = 1 << TEXTURE_2D_INDEX;
-         _mesa_reference_texobj(&texUnit->_Current, texObj);
+      if (!texUnit->_ReallyEnabled) {
+         if (fprog) {
+            /* If we get here it means the shader is expecting a texture
+             * object, but there isn't one (or it's incomplete).  Use the
+             * fallback texture.
+             */
+            struct gl_texture_object *texObj = _mesa_get_fallback_texture(ctx);
+            texUnit->_ReallyEnabled = 1 << TEXTURE_2D_INDEX;
+            _mesa_reference_texobj(&texUnit->_Current, texObj);
+         }
+         else {
+            /* fixed-function: texture unit is really disabled */
+            continue;
+         }
       }
 
       /* if we get here, we know this texture unit is enabled */




More information about the mesa-commit mailing list