summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAbdiel Janulgue <[email protected]>2012-10-12 11:51:03 +0300
committerBrian Paul <[email protected]>2012-10-15 07:49:14 -0600
commitbcb10ca17221833b2502970fb94ff52cf328ee30 (patch)
tree77b37381fafceb7062b33a67d8dcfce0c115fcc5
parent88ecd0ddb986a245c4d603dab2670aa8530ae132 (diff)
mesa: Fix a crash in update_texture_state() for external texture type
NOTE: This is a candidate for the stable branch. Signed-off-by: Abdiel <[email protected]> Signed-off-by: Brian Paul <[email protected]>
-rw-r--r--src/mesa/main/texobj.c3
-rw-r--r--src/mesa/main/texstate.c7
2 files changed, 10 insertions, 0 deletions
diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c
index 513f3bb0567..224d8a825dc 100644
--- a/src/mesa/main/texobj.c
+++ b/src/mesa/main/texobj.c
@@ -769,6 +769,9 @@ _mesa_get_fallback_texture(struct gl_context *ctx, gl_texture_index tex)
target = GL_TEXTURE_BUFFER;
break;
case TEXTURE_EXTERNAL_INDEX:
+ dims = 2;
+ target = GL_TEXTURE_EXTERNAL_OES;
+ break;
default:
/* no-op */
return NULL;
diff --git a/src/mesa/main/texstate.c b/src/mesa/main/texstate.c
index 1fd09e98538..0e5ba44ed49 100644
--- a/src/mesa/main/texstate.c
+++ b/src/mesa/main/texstate.c
@@ -600,6 +600,13 @@ update_texture_state( struct gl_context *ctx )
texTarget = (gl_texture_index) (ffs(enabledTargets) - 1);
texObj = _mesa_get_fallback_texture(ctx, texTarget);
+
+ assert(texObj);
+ if (!texObj) {
+ /* invalid fallback texture: don't enable the texture unit */
+ continue;
+ }
+
_mesa_reference_texobj(&texUnit->_Current, texObj);
texUnit->_ReallyEnabled = 1 << texTarget;
}