diff options
author | Marek Olšák <[email protected]> | 2012-10-05 03:00:38 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2012-10-10 00:16:35 +0200 |
commit | 8bf7044ec6ab041ebeb1db9ebe378f8e1f455f4e (patch) | |
tree | 532c431f2ba65919920675af38bbaab9d712dff2 /src | |
parent | faaba52aedf9807ced2ddfccc4133589a7bacd5f (diff) |
r600g: remove the dual_src_blend flag from the shader key
Reviewed-by: Jerome Glisse <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/r600/r600_pipe.h | 1 | ||||
-rw-r--r-- | src/gallium/drivers/r600/r600_shader.c | 2 | ||||
-rw-r--r-- | src/gallium/drivers/r600/r600_state_common.c | 4 |
3 files changed, 4 insertions, 3 deletions
diff --git a/src/gallium/drivers/r600/r600_pipe.h b/src/gallium/drivers/r600/r600_pipe.h index 449c785421f..95f9ea15e83 100644 --- a/src/gallium/drivers/r600/r600_pipe.h +++ b/src/gallium/drivers/r600/r600_pipe.h @@ -268,7 +268,6 @@ struct r600_pipe_shader_selector { struct r600_shader_key { unsigned color_two_side:1; unsigned alpha_to_one:1; - unsigned dual_src_blend:1; unsigned nr_cbufs:4; }; diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c index daa50823448..0b45d4f6e01 100644 --- a/src/gallium/drivers/r600/r600_shader.c +++ b/src/gallium/drivers/r600/r600_shader.c @@ -1612,7 +1612,7 @@ static int r600_shader_from_tgsi(struct r600_screen *rscreen, case TGSI_PROCESSOR_FRAGMENT: if (shader->output[i].name == TGSI_SEMANTIC_COLOR) { /* never export more colors than the number of CBs */ - if (next_pixel_base && next_pixel_base >= key.nr_cbufs + key.dual_src_blend) { + if (next_pixel_base && next_pixel_base >= key.nr_cbufs) { /* skip export */ j--; continue; diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c index 5ba043087f8..c28f2f13c06 100644 --- a/src/gallium/drivers/r600/r600_state_common.c +++ b/src/gallium/drivers/r600/r600_state_common.c @@ -747,8 +747,10 @@ static INLINE struct r600_shader_key r600_shader_selector_key(struct pipe_contex key.alpha_to_one = rctx->alpha_to_one && rctx->multisample_enable && !rctx->framebuffer.cb0_is_integer; - key.dual_src_blend = rctx->dual_src_blend; key.nr_cbufs = rctx->framebuffer.state.nr_cbufs; + /* Dual-source blending only makes sense with nr_cbufs == 1. */ + if (key.nr_cbufs == 1 && rctx->dual_src_blend) + key.nr_cbufs = 2; } return key; } |