From: Stefan Dösinger Date: Mon, 3 Dec 2012 16:40:52 +0000 (+0100) Subject: r300g: Give CLIP_DISABLE another try X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e866bd1adea2c3b4971ad68e69c644752f2ab7b6;p=mesa.git r300g: Give CLIP_DISABLE another try Signed-off-by: Marek Olšák --- diff --git a/src/gallium/drivers/r300/r300_screen.c b/src/gallium/drivers/r300/r300_screen.c index 49d7354888e..de5e4a19d53 100644 --- a/src/gallium/drivers/r300/r300_screen.c +++ b/src/gallium/drivers/r300/r300_screen.c @@ -105,6 +105,7 @@ static int r300_get_param(struct pipe_screen* pscreen, enum pipe_cap param) case PIPE_CAP_VERTEX_COLOR_CLAMPED: case PIPE_CAP_USER_INDEX_BUFFERS: case PIPE_CAP_USER_CONSTANT_BUFFERS: + case PIPE_CAP_DEPTH_CLIP_DISABLE: /* XXX implemented, but breaks Regnum Online */ return 1; case PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT: @@ -131,7 +132,6 @@ static int r300_get_param(struct pipe_screen* pscreen, enum pipe_cap param) case PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS: case PIPE_CAP_INDEP_BLEND_ENABLE: case PIPE_CAP_INDEP_BLEND_FUNC: - case PIPE_CAP_DEPTH_CLIP_DISABLE: case PIPE_CAP_DEPTHSTENCIL_CLEAR_SEPARATE: case PIPE_CAP_SHADER_STENCIL_EXPORT: case PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS: diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index 02a263eabda..fba2d35b8f9 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -1197,7 +1197,8 @@ static void* r300_create_rs_state(struct pipe_context* pipe, if (r300_screen(pipe->screen)->caps.has_tcl) { vap_clip_cntl = (state->clip_plane_enable & 63) | - R300_PS_UCP_MODE_CLIP_AS_TRIFAN; + R300_PS_UCP_MODE_CLIP_AS_TRIFAN | + (state->depth_clip ? 0 : R300_CLIP_DISABLE); } else { vap_clip_cntl = R300_CLIP_DISABLE; }