diff options
Diffstat (limited to 'src/mesa')
| -rw-r--r-- | src/mesa/state_tracker/st_cb_bitmap.c | 10 | 
1 files changed, 6 insertions, 4 deletions
diff --git a/src/mesa/state_tracker/st_cb_bitmap.c b/src/mesa/state_tracker/st_cb_bitmap.c index 3a102df67f..593938f8cf 100644 --- a/src/mesa/state_tracker/st_cb_bitmap.c +++ b/src/mesa/state_tracker/st_cb_bitmap.c @@ -567,8 +567,9 @@ void  st_flush_bitmap_cache(struct st_context *st)  {     if (!st->bitmap.cache->empty) { +      struct bitmap_cache *cache = st->bitmap.cache; +        if (st->ctx->DrawBuffer) { -         struct bitmap_cache *cache = st->bitmap.cache;           struct pipe_context *pipe = st->pipe;           struct pipe_screen *screen = pipe->screen; @@ -592,10 +593,11 @@ st_flush_bitmap_cache(struct st_context *st)                            st->ctx->Current.RasterPos[2],                            BITMAP_CACHE_WIDTH, BITMAP_CACHE_HEIGHT,                            cache->texture); - -         /* release/free the texture */ -         pipe_texture_reference(&cache->texture, NULL);        } + +      /* release/free the texture */ +      pipe_texture_reference(&cache->texture, NULL); +        reset_cache(st);     }  }  | 
