Mesa (master): r300g: Give CLIP_DISABLE another try

Marek Olšák mareko at kemper.freedesktop.org
Mon Dec 3 23:07:29 UTC 2012


Module: Mesa
Branch: master
Commit: e866bd1adea2c3b4971ad68e69c644752f2ab7b6
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e866bd1adea2c3b4971ad68e69c644752f2ab7b6

Author: Stefan Dösinger <stefandoesinger at gmx.at>
Date:   Mon Dec  3 17:40:52 2012 +0100

r300g: Give CLIP_DISABLE another try

Signed-off-by: Marek Olšák <maraeo at gmail.com>

---

 src/gallium/drivers/r300/r300_screen.c |    2 +-
 src/gallium/drivers/r300/r300_state.c  |    3 ++-
 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 49d7354..de5e4a1 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 02a263e..fba2d35 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;
     }




More information about the mesa-commit mailing list