diff options
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/common/texmem.c | 4 | ||||
-rw-r--r-- | src/mesa/drivers/dri/common/texmem.h | 3 |
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 |