summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/radeon/radeon_subset_tex.c
diff options
context:
space:
mode:
authorEric Anholt <anholt@FreeBSD.org>2004-09-25 07:00:15 +0000
committerEric Anholt <anholt@FreeBSD.org>2004-09-25 07:00:15 +0000
commit5562fe653cf88454bbf2c50f77a8b56b0dafe01b (patch)
tree159ffb9f519e550e45fc9442c9f21e557e19c681 /src/mesa/drivers/dri/radeon/radeon_subset_tex.c
parent4010481ba3bce98d95a20e9a061fb62922bdcb83 (diff)
downloadexternal_mesa3d-5562fe653cf88454bbf2c50f77a8b56b0dafe01b.zip
external_mesa3d-5562fe653cf88454bbf2c50f77a8b56b0dafe01b.tar.gz
external_mesa3d-5562fe653cf88454bbf2c50f77a8b56b0dafe01b.tar.bz2
The previous code would emit a full set of state during the first EmitState on
a new cmdbuf, to ensure that state wasn't lost across UNLOCK/LOCK pairs (in the case of context switching). This was rather inefficient. Instead, after flushing a cmdbuf, mark the state as needing to be saved on unlock. Then, at the beginning of flushing a cmdbuf, if we actually have lost the context, go back and emit a new cmdbuf with the full set of state, before continuing with the cmdbuf flush. Provides a 10-15% improvement in ipers performance in my tests, along with other apps. Tested with: ipers, glxgears, quake3
Diffstat (limited to 'src/mesa/drivers/dri/radeon/radeon_subset_tex.c')
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_subset_tex.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/radeon/radeon_subset_tex.c b/src/mesa/drivers/dri/radeon/radeon_subset_tex.c
index 90004d2..1e3c1af 100644
--- a/src/mesa/drivers/dri/radeon/radeon_subset_tex.c
+++ b/src/mesa/drivers/dri/radeon/radeon_subset_tex.c
@@ -75,8 +75,7 @@ void radeonDestroyTexObj( radeonContextPtr rmesa, radeonTexObjPtr t )
if ( rmesa ) {
if ( t == rmesa->state.texture.unit[0].texobj ) {
rmesa->state.texture.unit[0].texobj = NULL;
- remove_from_list( &rmesa->hw.tex[0] );
- make_empty_list( &rmesa->hw.tex[0] );
+ rmesa->hw.tex[0].dirty = GL_FALSE;
}
}