summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_state_surface.c
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2009-08-22 23:01:58 +0100
committerJosé Fonseca <jfonseca@vmware.com>2009-08-29 09:21:41 +0100
commit4d2b0eb19e432f83845a55d552b5d1d61f040459 (patch)
tree49fb4d99fe5d5ad286a72c351f19625ca19690c9 /src/gallium/drivers/llvmpipe/lp_state_surface.c
parent77b35dc179473afbbd8c709c9f32c0f537c90776 (diff)
llvmpipe: Squash the quad pipeline.
It had been reduced to one fixed stage.
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_state_surface.c')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_state_surface.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_state_surface.c b/src/gallium/drivers/llvmpipe/lp_state_surface.c
index 00c61c47ef..177a26b7b1 100644
--- a/src/gallium/drivers/llvmpipe/lp_state_surface.c
+++ b/src/gallium/drivers/llvmpipe/lp_state_surface.c
@@ -67,6 +67,19 @@ llvmpipe_set_framebuffer_state(struct pipe_context *pipe,
/* zbuf changing? */
if (lp->framebuffer.zsbuf != fb->zsbuf) {
+
+ if(lp->zsbuf_transfer) {
+ struct pipe_screen *screen = pipe->screen;
+
+ if(lp->zsbuf_map) {
+ screen->transfer_unmap(screen, lp->zsbuf_transfer);
+ lp->zsbuf_map = NULL;
+ }
+
+ screen->tex_transfer_destroy(lp->zsbuf_transfer);
+ lp->zsbuf_transfer = NULL;
+ }
+
/* assign new */
lp->framebuffer.zsbuf = fb->zsbuf;