r600g: make a local copy of viewport state
authorMarek Olšák <maraeo@gmail.com>
Sat, 29 May 2010 13:27:42 +0000 (15:27 +0200)
committerMarek Olšák <maraeo@gmail.com>
Sat, 29 May 2010 13:41:22 +0000 (15:41 +0200)
src/gallium/drivers/r600/r600_blit.c
src/gallium/drivers/r600/r600_context.h
src/gallium/drivers/r600/r600_state.c

index e92e928..a257d83 100644 (file)
@@ -50,7 +50,7 @@ static void r600_blitter_save_states(struct pipe_context *ctx)
        util_blitter_save_vertex_elements(rctx->blitter,
                                        rctx->vertex_elements);
        util_blitter_save_viewport(rctx->blitter,
-                                       rctx->viewport);
+                                       &rctx->viewport);
 }
 
 void r600_clear(struct pipe_context *ctx, unsigned buffers,
index b8ce8b8..a514903 100644 (file)
@@ -76,7 +76,7 @@ struct r600_context {
        struct pipe_stencil_ref         stencil_ref;
        struct pipe_framebuffer_state   fb_state;
        struct radeon_draw              *draw;
-       struct pipe_viewport_state *viewport;
+       struct pipe_viewport_state      viewport;
 };
 
 void r600_draw_arrays(struct pipe_context *ctx, unsigned mode,
index d57e88d..ff574b8 100644 (file)
@@ -309,7 +309,7 @@ static void r600_set_viewport_state(struct pipe_context *ctx,
                return;
        }
        radeon_draw_set_new(rctx->draw, rstate);
-       rctx->viewport = state;
+       rctx->viewport = *state;
 }
 
 static void r600_set_vertex_buffers(struct pipe_context *ctx,