summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
diff options
context:
space:
mode:
authorStefan Dösinger <[email protected]>2012-12-03 17:40:52 +0100
committerMarek Olšák <[email protected]>2012-12-04 00:07:13 +0100
commite866bd1adea2c3b4971ad68e69c644752f2ab7b6 (patch)
tree29a5de17bb39b7197523a4af5ffad5b13ed836d4 /src/gallium/drivers
parentb126228f1247fb0fed686ee3ef2c87461f2fc7a7 (diff)
r300g: Give CLIP_DISABLE another try
Signed-off-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r--src/gallium/drivers/r300/r300_screen.c2
-rw-r--r--src/gallium/drivers/r300/r300_state.c3
2 files changed, 3 insertions, 2 deletions
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;
}