Mesa (master): r600g: fix up surface references

Dave Airlie airlied at kemper.freedesktop.org
Sun Sep 5 23:20:56 UTC 2010


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

Author: Dave Airlie <airlied at redhat.com>
Date:   Mon Sep  6 09:14:08 2010 +1000

r600g: fix up surface references

We end up referencing the new surf and derefing the old surface which
is a copy of the pointer to the new surf. So just bump the ref count directly.

---

 src/gallium/drivers/r600/r600_state.c |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c
index e630e1a..a7a795f 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -443,11 +443,9 @@ static void r600_set_framebuffer_state(struct pipe_context *ctx,
 	rstate = r600_new_context_state(pipe_framebuffer_type);
 	rstate->state.framebuffer = *state;
 	for (i = 0; i < rstate->state.framebuffer.nr_cbufs; i++) {
-		pipe_surface_reference(&rstate->state.framebuffer.cbufs[i],
-				       state->cbufs[i]);
+		pipe_reference(NULL, &state->cbufs[i]->reference);
 	}
-	pipe_surface_reference(&rstate->state.framebuffer.zsbuf,
-			       state->zsbuf);
+	pipe_reference(NULL, &state->zsbuf->reference);
 	rctx->framebuffer = rstate;
 	for (i = 0; i < state->nr_cbufs; i++) {
 		r600_cb(rctx, &rstate->rstate[i+1], state, i);




More information about the mesa-commit mailing list