summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/common/texmem.c4
-rw-r--r--src/mesa/drivers/dri/common/texmem.h3
2 files changed, 5 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/common/texmem.c b/src/mesa/drivers/dri/common/texmem.c
index 5bc27e44936..3dd807c3265 100644
--- a/src/mesa/drivers/dri/common/texmem.c
+++ b/src/mesa/drivers/dri/common/texmem.c
@@ -414,7 +414,7 @@ static void driTexturesGone( driTexHeap * heap, int offset, int size,
}
t->heap = heap;
if (in_use)
- t->bound = 0; /* bound to no tex units */
+ t->reserved = 1;
insert_at_head( & heap->texture_objects, t );
}
}
@@ -572,7 +572,7 @@ driAllocateTexture( driTexHeap * const * heap_array, unsigned nr_heaps,
/* The the LRU element. If the texture is bound to one of
* the texture units, then we cannot kick it out.
*/
- if ( cursor->bound /* || cursor->reserved */ ) {
+ if ( cursor->bound || cursor->reserved ) {
continue;
}
diff --git a/src/mesa/drivers/dri/common/texmem.h b/src/mesa/drivers/dri/common/texmem.h
index 486cb0dab94..5c1fc323843 100644
--- a/src/mesa/drivers/dri/common/texmem.h
+++ b/src/mesa/drivers/dri/common/texmem.h
@@ -67,6 +67,9 @@ struct dri_texture_object {
* A placeholder should have a heap and a memBlock.
*/
PMemBlock memBlock; /**< Memory block containing texture */
+
+ unsigned reserved; /**< Cannot be swapped out by user contexts. */
+
unsigned bound; /**< Bitmask indicating which tex units
* this texture object is bound to.
* Bit 0 = unit 0, Bit 1 = unit 1, etc