Mesa (master): r600g: clean up valgrind issues on maxtargets test.

Dave Airlie airlied at kemper.freedesktop.org
Mon Sep 20 00:49:16 UTC 2010


Module: Mesa
Branch: master
Commit: 040411de267bd6b0d82a621430cbbbb943fd455a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=040411de267bd6b0d82a621430cbbbb943fd455a

Author: Dave Airlie <airlied at redhat.com>
Date:   Mon Sep 20 10:44:44 2010 +1000

r600g: clean up valgrind issues on maxtargets test.

---

 src/gallium/drivers/r600/r600_state.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c
index e347943..2b97c2a 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -382,10 +382,16 @@ static void r600_set_framebuffer_state(struct pipe_context *ctx,
 	struct r600_context_state *rstate;
 	int i;
 
-	r600_context_state_decref(rctx->framebuffer);
+	if (rctx->framebuffer) {
+		for (i = 0; i < rctx->framebuffer->state.framebuffer.nr_cbufs; i++)
+			radeon_draw_unbind(&rctx->draw, &rctx->framebuffer->rstate[i+1]);
+		radeon_draw_unbind(&rctx->draw, &rctx->framebuffer->rstate[0]);
+	}
 	clean_flush(rctx, &rctx->hw_states.cb_flush);
 	clean_flush(rctx, &rctx->hw_states.db_flush);
 
+	r600_context_state_decref(rctx->framebuffer);
+
 	rstate = r600_new_context_state(pipe_framebuffer_type);
 	rstate->state.framebuffer = *state;
 	for (i = 0; i < rstate->state.framebuffer.nr_cbufs; i++) {




More information about the mesa-commit mailing list