aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/r600_pipe.c
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2012-10-05 02:45:29 +0200
committerMarek Olšák <[email protected]>2012-10-10 00:16:32 +0200
commitfaaba52aedf9807ced2ddfccc4133589a7bacd5f (patch)
tree0ea3c1c03ffa3538f9a0504d7b164fde4e95500e /src/gallium/drivers/r600/r600_pipe.c
parenteb65fefa4bd5e9a6f08ec599b95f9d63d11c15fa (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.c7
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: