Mesa (master): r600g: fix segfault in state after rework

Dave Airlie airlied at kemper.freedesktop.org
Fri Sep 3 09:39:44 UTC 2010


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

Author: Dave Airlie <airlied at redhat.com>
Date:   Fri Sep  3 19:37:52 2010 +1000

r600g: fix segfault in state after rework

probably can improve this a bit.

---

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

diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c
index 973b587..ae5139b 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -1042,14 +1042,14 @@ static void r600_sampler_border(struct r600_context *rctx, struct radeon_state *
 
 	util_pack_color(state->border_color, PIPE_FORMAT_B8G8R8A8_UNORM, &uc);
 
+	radeon_state_init(rstate, rscreen->rw, R600_STATE_SAMPLER_BORDER, id, R600_SHADER_PS);
 	if (uc.ui) {
-		radeon_state_init(rstate, rscreen->rw, R600_STATE_SAMPLER_BORDER, id, R600_SHADER_PS);
 		rstate->states[R600_PS_SAMPLER_BORDER__TD_PS_SAMPLER0_BORDER_RED] = fui(state->border_color[0]);
 		rstate->states[R600_PS_SAMPLER_BORDER__TD_PS_SAMPLER0_BORDER_GREEN] = fui(state->border_color[1]);
 		rstate->states[R600_PS_SAMPLER_BORDER__TD_PS_SAMPLER0_BORDER_BLUE] = fui(state->border_color[2]);
 		rstate->states[R600_PS_SAMPLER_BORDER__TD_PS_SAMPLER0_BORDER_ALPHA] = fui(state->border_color[3]);
-		radeon_state_pm4(rstate);
 	}
+	radeon_state_pm4(rstate);
 }
 
 static void r600_sampler(struct r600_context *rctx, struct radeon_state *rstate,




More information about the mesa-commit mailing list