a4xx: only disable depth clipping, not all clipping, when requested
authorIlia Mirkin <imirkin@alum.mit.edu>
Fri, 19 Aug 2016 00:12:29 +0000 (20:12 -0400)
committerIlia Mirkin <imirkin@alum.mit.edu>
Fri, 19 Aug 2016 23:40:04 +0000 (19:40 -0400)
The previous bit disables the whole clipper, including the regular
viewport-related clipping that would go on. The two new bits disable
near and far clipping (separately, as verified with the
depth-clamp-range piglit).

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: mesa-stable@lists.freedesktop.org
src/gallium/drivers/freedreno/a4xx/a4xx.xml.h
src/gallium/drivers/freedreno/a4xx/fd4_rasterizer.c

index d9a7bb5e4d968ae197ec4cbd46ae4512ae08f317..a90a4ce90b1d47420615afbcd877a8be3ce38699 100644 (file)
@@ -3145,6 +3145,8 @@ static inline uint32_t A4XX_TPL1_TP_TEX_COUNT_GS(uint32_t val)
 
 #define REG_A4XX_GRAS_CL_CLIP_CNTL                             0x00002000
 #define A4XX_GRAS_CL_CLIP_CNTL_CLIP_DISABLE                    0x00008000
+#define A4XX_GRAS_CL_CLIP_CNTL_ZNEAR_CLIP_DISABLE              0x00010000
+#define A4XX_GRAS_CL_CLIP_CNTL_ZFAR_CLIP_DISABLE               0x00020000
 #define A4XX_GRAS_CL_CLIP_CNTL_ZERO_GB_SCALE_Z                 0x00400000
 
 #define REG_A4XX_GRAS_CLEAR_CNTL                               0x00002003
index 7456c63febe46bcde0864856197bb279dd0fc35b..b3a42929c50cdafbae177baedb046a9bbd49727a 100644 (file)
@@ -98,7 +98,8 @@ fd4_rasterizer_state_create(struct pipe_context *pctx,
                so->gras_su_mode_control |= A4XX_GRAS_SU_MODE_CONTROL_POLY_OFFSET;
 
        if (!cso->depth_clip)
-               so->gras_cl_clip_cntl |= A4XX_GRAS_CL_CLIP_CNTL_CLIP_DISABLE;
+               so->gras_cl_clip_cntl |= A4XX_GRAS_CL_CLIP_CNTL_ZNEAR_CLIP_DISABLE |
+                       A4XX_GRAS_CL_CLIP_CNTL_ZFAR_CLIP_DISABLE;
        if (cso->clip_halfz)
                so->gras_cl_clip_cntl |= A4XX_GRAS_CL_CLIP_CNTL_ZERO_GB_SCALE_Z;