r600g: get backend mask after the context is fully set up
authorMarek Olšák <maraeo@gmail.com>
Fri, 28 Oct 2011 20:31:34 +0000 (22:31 +0200)
committerMarek Olšák <maraeo@gmail.com>
Fri, 28 Oct 2011 20:55:01 +0000 (22:55 +0200)
src/gallium/drivers/r600/evergreen_hw_context.c
src/gallium/drivers/r600/r600_hw_context.c
src/gallium/drivers/r600/r600_pipe.c

index 72ec563..f9b8ec2 100644 (file)
@@ -1003,8 +1003,6 @@ int evergreen_context_init(struct r600_context *ctx, struct r600_screen *screen)
        /* save 16dwords space for fence mecanism */
        ctx->pm4_ndwords -= 16;
        ctx->max_db = 8;
-
-       r600_get_backend_mask(ctx);
        return 0;
 out_err:
        r600_context_fini(ctx);
index a7d7ce6..ca245f0 100644 (file)
@@ -922,8 +922,6 @@ int r600_context_init(struct r600_context *ctx, struct r600_screen *screen)
        /* save 16dwords space for fence mecanism */
        ctx->pm4_ndwords -= 16;
        ctx->max_db = 4;
-
-       r600_get_backend_mask(ctx);
        return 0;
 out_err:
        r600_context_fini(ctx);
index d0a86de..00c2834 100644 (file)
@@ -281,6 +281,8 @@ static struct pipe_context *r600_create_context(struct pipe_screen *screen, void
                return NULL;
        }
 
+       r600_get_backend_mask(&rctx->ctx); /* this emits commands and must be last */
+
        return &rctx->context;
 }