r600g: correct cb/zb offset emits.
authorDave Airlie <airlied@redhat.com>
Wed, 1 Sep 2010 04:28:55 +0000 (14:28 +1000)
committerDave Airlie <airlied@redhat.com>
Wed, 1 Sep 2010 04:59:18 +0000 (14:59 +1000)
This fixes fbo-3d and fbo-cubemap

src/gallium/drivers/r600/r600_state.c

index b5db848e35e913e6ec927babf10ce7e5c06ec749..e2265ace97e1bbdfce4543fdc5297a30528d9686 100644 (file)
@@ -740,7 +740,7 @@ static struct radeon_state *r600_cb(struct r600_context *rctx, int cb)
                S_0280A0_SOURCE_FORMAT(1) |
                S_0280A0_NUMBER_TYPE(ntype);
 
-       rstate->states[R600_CB0__CB_COLOR0_BASE] = rtex->offset[level] >> 8;
+       rstate->states[R600_CB0__CB_COLOR0_BASE] = state->cbufs[cb]->offset >> 8;
        rstate->states[R600_CB0__CB_COLOR0_INFO] = color_info;
        rstate->states[R600_CB0__CB_COLOR0_SIZE] = S_028060_PITCH_TILE_MAX(pitch) |
                                                S_028060_SLICE_TILE_MAX(slice);
@@ -786,7 +786,7 @@ static struct radeon_state *r600_db(struct r600_context *rctx)
        pitch = (rtex->pitch[level] / rtex->bpt) / 8 - 1;
        slice = (rtex->pitch[level] / rtex->bpt) * state->zsbuf->height / 64 - 1;
        format = r600_translate_dbformat(state->zsbuf->texture->format);
-       rstate->states[R600_DB__DB_DEPTH_BASE] = rtex->offset[level] >> 8;
+       rstate->states[R600_DB__DB_DEPTH_BASE] = state->zsbuf->offset >> 8;
        rstate->states[R600_DB__DB_DEPTH_INFO] = S_028010_ARRAY_MODE(rtex->array_mode) |
                                        S_028010_FORMAT(format);
        rstate->states[R600_DB__DB_DEPTH_VIEW] = 0x00000000;