diff options
author | Marek Olšák <[email protected]> | 2012-07-15 03:38:42 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2012-07-17 21:22:15 +0200 |
commit | 9d699cd845f3544fa6e149fa4ffb1d131d32b482 (patch) | |
tree | 8311f225212d379e019068ab680a4878b027202c /src/gallium | |
parent | c26fadf195876271e559f844c1fc88effa6a60c1 (diff) |
r600g: fix lockups with and enable dual source blending on evergreen
GL_ARB_blend_func_extended is now enabled on all chipsets.
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/drivers/r600/evergreen_state.c | 4 | ||||
-rw-r--r-- | src/gallium/drivers/r600/r600_pipe.c | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c index 8f037e26129..5486a96ed92 100644 --- a/src/gallium/drivers/r600/evergreen_state.c +++ b/src/gallium/drivers/r600/evergreen_state.c @@ -1652,7 +1652,9 @@ static void evergreen_set_framebuffer_state(struct pipe_context *ctx, for (i = 0; i < state->nr_cbufs; i++) { evergreen_cb(rctx, rstate, state, i); } - + /* CB_COLOR1_INFO is already initialized for possible dual-src blending */ + if (i == 1) + i++; for (; i < 8 ; i++) { r600_pipe_state_add_reg(rstate, R_028C70_CB_COLOR0_INFO + i * 0x3C, 0); } diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c index 48e94f51718..2a102621183 100644 --- a/src/gallium/drivers/r600/r600_pipe.c +++ b/src/gallium/drivers/r600/r600_pipe.c @@ -384,6 +384,7 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param) case PIPE_CAP_USER_CONSTANT_BUFFERS: case PIPE_CAP_COMPUTE: case PIPE_CAP_START_INSTANCE: + case PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS: return 1; case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT: @@ -451,9 +452,6 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param) case PIPE_CAP_MAX_TEXEL_OFFSET: return 7; - - case PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS: - return family < CHIP_CEDAR ? 1 : 0; } return 0; } |