From 5b82777311965d26e534bd522afb0f679622d504 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Mon, 6 Sep 2010 09:14:08 +1000 Subject: 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 file changed, 2 insertions(+), 4 deletions(-) (limited to 'src/gallium/drivers') diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c index e630e1af40..a7a795f9ab 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); -- cgit v1.2.3