diff options
author | Marek Olšák <[email protected]> | 2012-10-05 02:45:29 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2012-10-10 00:16:32 +0200 |
commit | faaba52aedf9807ced2ddfccc4133589a7bacd5f (patch) | |
tree | 0ea3c1c03ffa3538f9a0504d7b164fde4e95500e /src/gallium/drivers/r600/r600_pipe.c | |
parent | eb65fefa4bd5e9a6f08ec599b95f9d63d11c15fa (diff) |
r600g: atomize blend state
This is not so trivial, because we disable blending if the dual src
blending is turned on and the number of color outputs is less than 2.
I decided to create 2 command buffers in the blend state object and just
switch between them when needed, because there are other states unrelated
to blending (like the color mask) and those shouldn't be changed
(the old code had it wrong).
Reviewed-by: Jerome Glisse <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_pipe.c')
-rw-r--r-- | src/gallium/drivers/r600/r600_pipe.c | 7 |
1 files changed, 0 insertions, 7 deletions
diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c index 70cfe1408f3..35fa9d49f1a 100644 --- a/src/gallium/drivers/r600/r600_pipe.c +++ b/src/gallium/drivers/r600/r600_pipe.c @@ -159,9 +159,6 @@ static void r600_destroy_context(struct pipe_context *context) pipe_resource_reference((struct pipe_resource**)&rctx->dummy_cmask, NULL); pipe_resource_reference((struct pipe_resource**)&rctx->dummy_fmask, NULL); - if (rctx->no_blend) { - rctx->context.delete_blend_state(&rctx->context, rctx->no_blend); - } if (rctx->dummy_pixel_shader) { rctx->context.delete_fs_state(&rctx->context, rctx->dummy_pixel_shader); } @@ -204,7 +201,6 @@ static struct pipe_context *r600_create_context(struct pipe_screen *screen, void { struct r600_context *rctx = CALLOC_STRUCT(r600_context); struct r600_screen* rscreen = (struct r600_screen *)screen; - struct pipe_blend_state no_blend = {}; if (rctx == NULL) return NULL; @@ -311,9 +307,6 @@ static struct pipe_context *r600_create_context(struct pipe_screen *screen, void TGSI_INTERPOLATE_CONSTANT); rctx->context.bind_fs_state(&rctx->context, rctx->dummy_pixel_shader); - no_blend.rt[0].colormask = 0xF; - rctx->no_blend = rctx->context.create_blend_state(&rctx->context, &no_blend); - return &rctx->context; fail: |