Mesa (mesa_7_5_branch): mesa: only use fallback texture when using shaders, not fixed-function (take two)
Eric Anholt
anholt at kemper.freedesktop.org
Tue Jul 7 23:19:53 UTC 2009
Module: Mesa
Branch: mesa_7_5_branch
Commit: 4adc9b4a5be72e34d464ce341b011c42517d969a
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4adc9b4a5be72e34d464ce341b011c42517d969a
Author: Brian Paul <brianp at vmware.com>
Date: Tue May 5 16:21:20 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.
(cherry picked from commit 01e16befd4809e3e93ee7855a4a5d7df9fe010d9)
(cherry picked from commit 51325f44d1e7e62b47795a79f8038d10dc5bc30b)
[anholt: squashed these two together from master, skipping the mess in between]
---
src/mesa/main/texstate.c | 20 +++++++++++++-------
1 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/src/mesa/main/texstate.c b/src/mesa/main/texstate.c
index 89da433..6e0c0c6 100644
--- a/src/mesa/main/texstate.c
+++ b/src/mesa/main/texstate.c
@@ -561,13 +561,19 @@ update_texture_state( GLcontext *ctx )
}
if (!texUnit->_ReallyEnabled) {
- /* If we get here it means the shader (or fixed-function state)
- * 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 (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