summaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker
diff options
context:
space:
mode:
authorBrian <[email protected]>2008-03-28 15:17:50 -0600
committerBrian <[email protected]>2008-03-28 15:17:50 -0600
commit5a460c7391ef35b1dcf6ad7f5494fb23279b2e45 (patch)
tree7d5155aa1ab7de13e019acdbfcc509a48833ea72 /src/mesa/state_tracker
parent7292db2138001b48bba006cc08e9ff7091d16559 (diff)
gallium: don't call st_flush_bitmap_cache() if the only change is _NEW_PACKUNPACK state
Diffstat (limited to 'src/mesa/state_tracker')
-rw-r--r--src/mesa/state_tracker/st_atom.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mesa/state_tracker/st_atom.c b/src/mesa/state_tracker/st_atom.c
index 40e4142631b..18063adc79c 100644
--- a/src/mesa/state_tracker/st_atom.c
+++ b/src/mesa/state_tracker/st_atom.c
@@ -148,7 +148,12 @@ void st_validate_state( struct st_context *st )
struct st_state_flags *state = &st->dirty;
GLuint i;
- st_flush_bitmap_cache(st);
+ /* The bitmap cache is immune to pixel unpack changes.
+ * Note that GLUT makes several calls to glPixelStore for each
+ * bitmap char it draws so this is an important check.
+ */
+ if (state->mesa & ~_NEW_PACKUNPACK)
+ st_flush_bitmap_cache(st);
check_program_state( st );