summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/radeon/radeon_tex.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2009-02-10 23:38:51 +1000
committerDave Airlie <airlied@redhat.com>2009-02-10 23:38:51 +1000
commit639b5fca0c5cea26a9dc393b538508aece16ce6b (patch)
tree8adcd8a55d3573a5884c8219bd2fcd04df1ef8dd /src/mesa/drivers/dri/radeon/radeon_tex.c
parentc3ca94bc9115f0f328327f1e96fac84b87d5efd5 (diff)
r100: fix 3D texture fallback
Diffstat (limited to 'src/mesa/drivers/dri/radeon/radeon_tex.c')
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_tex.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/radeon/radeon_tex.c b/src/mesa/drivers/dri/radeon/radeon_tex.c
index 16bd87a8dc..a916b63a27 100644
--- a/src/mesa/drivers/dri/radeon/radeon_tex.c
+++ b/src/mesa/drivers/dri/radeon/radeon_tex.c
@@ -373,6 +373,7 @@ static void radeonDeleteTexture( GLcontext *ctx,
{
r100ContextPtr rmesa = R100_CONTEXT(ctx);
radeonTexObj* t = radeon_tex_obj(texObj);
+ int i;
if ( RADEON_DEBUG & (DEBUG_STATE|DEBUG_TEXTURE) ) {
fprintf( stderr, "%s( %p (target = %s) )\n", __FUNCTION__, (void *)texObj,
@@ -381,7 +382,13 @@ static void radeonDeleteTexture( GLcontext *ctx,
if ( rmesa ) {
RADEON_FIREVERTICES( rmesa );
-
+ for ( i = 0 ; i < rmesa->radeon.glCtx->Const.MaxTextureUnits ; i++ ) {
+ if ( t == rmesa->state.texture.unit[i].texobj ) {
+ rmesa->state.texture.unit[i].texobj = NULL;
+ rmesa->hw.tex[i].dirty = GL_FALSE;
+ rmesa->hw.cube[i].dirty = GL_FALSE;
+ }
+ }
}
if (t->mt) {
@@ -453,7 +460,6 @@ void radeonInitTextureFuncs( struct dd_function_table *functions )
functions->NewTextureObject = radeonNewTextureObject;
// functions->BindTexture = radeonBindTexture;
functions->DeleteTexture = radeonDeleteTexture;
- functions->IsTextureResident = driIsTextureResident;
functions->TexEnv = radeonTexEnv;
functions->TexParameter = radeonTexParameter;