OSDN Git Service

R300: cleanup VAP_CLIP_CNTL
authorAlex Deucher <alex@botch2.com>
Fri, 2 May 2008 16:48:39 +0000 (12:48 -0400)
committerAlex Deucher <alex@botch2.com>
Fri, 2 May 2008 19:13:49 +0000 (15:13 -0400)
src/mesa/drivers/dri/r300/r300_ioctl.c
src/mesa/drivers/dri/r300/r300_reg.h
src/mesa/drivers/dri/r300/r300_state.c

index 0fef1c6..03449de 100644 (file)
@@ -283,7 +283,7 @@ static void r300EmitClearState(GLcontext * ctx)
        if (has_tcl) {
            R300_STATECHANGE(r300, vap_clip_cntl);
            reg_start(R300_VAP_CLIP_CNTL, 0);
-           e32(R300_221C_CLEAR);
+           e32(R300_PS_UCP_MODE_CLIP_AS_TRIFAN | R300_CLIP_DISABLE);
         }
 
        R300_STATECHANGE(r300, ps);
index f65aac3..7b71eea 100644 (file)
@@ -398,9 +398,21 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
  * See bug #9871. http://bugs.freedesktop.org/attachment.cgi?id=10672&action=view
  */
 #define R300_VAP_CLIP_CNTL                       0x221C
-#       define R300_221C_NORMAL                  0x00000000
-#       define R300_221C_CLEAR                   0x0001C000
-#       define R300_VAP_UCP_ENABLE_0 (1 << 0)
+#       define R300_VAP_UCP_ENABLE_0             (1 << 0)
+#       define R300_VAP_UCP_ENABLE_1             (1 << 1)
+#       define R300_VAP_UCP_ENABLE_2             (1 << 2)
+#       define R300_VAP_UCP_ENABLE_3             (1 << 3)
+#       define R300_VAP_UCP_ENABLE_4             (1 << 4)
+#       define R300_VAP_UCP_ENABLE_5             (1 << 5)
+#       define R300_PS_UCP_MODE_DIST_COP         (0 << 14)
+#       define R300_PS_UCP_MODE_RADIUS_COP       (1 << 14)
+#       define R300_PS_UCP_MODE_RADIUS_COP_CLIP  (2 << 14)
+#       define R300_PS_UCP_MODE_CLIP_AS_TRIFAN   (3 << 14)
+#       define R300_CLIP_DISABLE                 (1 << 16)
+#       define R300_UCP_CULL_ONLY_ENABLE         (1 << 17)
+#       define R300_BOUNDARY_EDGE_FLAG_ENABLE    (1 << 18)
+#       define R500_COLOR2_IS_TEXTURE            (1 << 20)
+#       define R500_COLOR3_IS_TEXTURE            (1 << 21)
 
 /* These seem to be per-pixel and per-vertex X and Y clipping planes. The first
  * plane is per-pixel and the second plane is per-vertex.
index 57ff9e9..27615fd 100644 (file)
@@ -2035,7 +2035,7 @@ static void r300ResetHwState(r300ContextPtr r300)
 
        /* XXX: Other families? */
        if (has_tcl) {
-               r300->hw.vap_clip_cntl.cmd[1] = R300_221C_NORMAL;
+               r300->hw.vap_clip_cntl.cmd[1] = R300_PS_UCP_MODE_DIST_COP;
 
                r300->hw.vap_clip.cmd[1] = r300PackFloat32(1.0); /* X */
                r300->hw.vap_clip.cmd[2] = r300PackFloat32(1.0); /* X */