r600g: don't initialize the screen and winsys pointer twice
authorMarek Olšák <maraeo@gmail.com>
Sun, 29 Jan 2012 22:35:10 +0000 (23:35 +0100)
committerMarek Olšák <maraeo@gmail.com>
Tue, 31 Jan 2012 22:12:30 +0000 (23:12 +0100)
src/gallium/drivers/r600/evergreen_hw_context.c
src/gallium/drivers/r600/r600.h
src/gallium/drivers/r600/r600_hw_context.c
src/gallium/drivers/r600/r600_pipe.c

index b95491a4d6e4d9bcc42d41d0c1bbcc5be01557a6..f8820f9d5bf4b2d221e61c28248fd6e53c3dee8d 100644 (file)
@@ -908,13 +908,10 @@ static int evergreen_loop_const_init(struct r600_context *ctx, uint32_t offset)
        return r600_context_add_block(ctx, r600_loop_consts, nreg, PKT3_SET_LOOP_CONST, EVERGREEN_LOOP_CONST_OFFSET);
 }
 
-int evergreen_context_init(struct r600_context *ctx, struct r600_screen *screen)
+int evergreen_context_init(struct r600_context *ctx)
 {
        int r;
 
-       ctx->screen = screen;
-       ctx->ws = screen->ws;
-
        LIST_INITHEAD(&ctx->active_query_list);
 
        /* init dirty list */
@@ -998,7 +995,7 @@ int evergreen_context_init(struct r600_context *ctx, struct r600_screen *screen)
        if (r)
                goto out_err;
 
-       ctx->cs = screen->ws->cs_create(screen->ws);
+       ctx->cs = ctx->ws->cs_create(ctx->ws);
 
        /* allocate cs variables */
        ctx->bo = calloc(RADEON_MAX_CMDBUF_DWORDS, sizeof(void *));
index a32c3b1e8db60e32dc40c1cb41fb7b8052db76df..626ab4dec8af356da505df1947b43811c48d5dd6 100644 (file)
@@ -213,7 +213,7 @@ struct r600_context;
 struct r600_screen;
 
 void r600_get_backend_mask(struct r600_context *ctx);
-int r600_context_init(struct r600_context *ctx, struct r600_screen *screen);
+int r600_context_init(struct r600_context *ctx);
 void r600_context_fini(struct r600_context *ctx);
 void r600_context_pipe_state_set(struct r600_context *ctx, struct r600_pipe_state *state);
 void r600_context_pipe_state_set_ps_resource(struct r600_context *ctx, struct r600_pipe_resource_state *state, unsigned rid);
@@ -244,7 +244,7 @@ void r600_context_streamout_begin(struct r600_context *ctx);
 void r600_context_streamout_end(struct r600_context *ctx);
 void r600_context_draw_opaque_count(struct r600_context *ctx, struct r600_so_target *t);
 
-int evergreen_context_init(struct r600_context *ctx, struct r600_screen *screen);
+int evergreen_context_init(struct r600_context *ctx);
 void evergreen_context_draw(struct r600_context *ctx, const struct r600_draw *draw);
 void evergreen_context_flush_dest_caches(struct r600_context *ctx);
 void evergreen_context_pipe_state_set_ps_resource(struct r600_context *ctx, struct r600_pipe_resource_state *state, unsigned rid);
index b25006d22408e23a24b338176de6ba69d1c7e5d3..b6375c25f8c4efef262e270b0bf39bf381ee2af8 100644 (file)
@@ -827,13 +827,10 @@ int r600_setup_block_table(struct r600_context *ctx)
        return 0;
 }
 
-int r600_context_init(struct r600_context *ctx, struct r600_screen *screen)
+int r600_context_init(struct r600_context *ctx)
 {
        int r;
 
-       ctx->screen = screen;
-       ctx->ws = screen->ws;
-
        LIST_INITHEAD(&ctx->active_query_list);
 
        /* init dirty list */
@@ -909,7 +906,7 @@ int r600_context_init(struct r600_context *ctx, struct r600_screen *screen)
        if (r)
                goto out_err;
 
-       ctx->cs = screen->ws->cs_create(screen->ws);
+       ctx->cs = ctx->ws->cs_create(ctx->ws);
 
        /* allocate cs variables */
        ctx->bo = calloc(RADEON_MAX_CMDBUF_DWORDS, sizeof(void *));
index 9f86f4a8a0808fe101d898f4291e40d27b15b1f9..d61855d7498b4b1361a2516fb4940df22d9f3d9f 100644 (file)
@@ -236,7 +236,7 @@ static struct pipe_context *r600_create_context(struct pipe_screen *screen, void
        case R600:
        case R700:
                r600_init_state_functions(rctx);
-               if (r600_context_init(rctx, rctx->screen)) {
+               if (r600_context_init(rctx)) {
                        r600_destroy_context(&rctx->context);
                        return NULL;
                }
@@ -246,7 +246,7 @@ static struct pipe_context *r600_create_context(struct pipe_screen *screen, void
        case EVERGREEN:
        case CAYMAN:
                evergreen_init_state_functions(rctx);
-               if (evergreen_context_init(rctx, rctx->screen)) {
+               if (evergreen_context_init(rctx)) {
                        r600_destroy_context(&rctx->context);
                        return NULL;
                }