OSDN Git Service

radeonsi: set PA_SU_SMALL_PRIM_FILTER_CNTL register on Polaris
authorMarek Olšák <marek.olsak@amd.com>
Fri, 8 Apr 2016 10:15:50 +0000 (12:15 +0200)
committerEmil Velikov <emil.l.velikov@gmail.com>
Thu, 7 Jul 2016 15:12:31 +0000 (16:12 +0100)
This was missing.

Cc: 12.0 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit c1dbc563f4a6a6b3438e97a2418922c22c1e77bf)

src/gallium/drivers/radeonsi/si_state.c
src/gallium/drivers/radeonsi/sid.h

index 8dfeb31..3bbb81a 100644 (file)
@@ -3810,6 +3810,11 @@ static void si_init_config(struct si_context *sctx)
        if (sctx->b.family == CHIP_STONEY)
                si_pm4_set_reg(pm4, R_028C40_PA_SC_SHADER_CONTROL, 0);
 
+       if (sctx->b.family >= CHIP_POLARIS10)
+               si_pm4_set_reg(pm4, R_028830_PA_SU_SMALL_PRIM_FILTER_CNTL,
+                              S_028830_SMALL_PRIM_FILTER_ENABLE(1) |
+                              S_028830_LINE_FILTER_DISABLE(1)); /* line bug */
+
        si_pm4_set_reg(pm4, R_028080_TA_BC_BASE_ADDR, border_color_va >> 8);
        if (sctx->b.chip_class >= CIK)
                si_pm4_set_reg(pm4, R_028084_TA_BC_BASE_ADDR_HI, border_color_va >> 40);
index 25f8cf5..8d49b9d 100644 (file)
 #define   G_02882C_YMAX_BOTTOM_EXCLUSION(x)                           (((x) >> 31) & 0x1)
 #define   C_02882C_YMAX_BOTTOM_EXCLUSION                              0x7FFFFFFF
 /*     */
+#define R_028830_PA_SU_SMALL_PRIM_FILTER_CNTL                           0x028830 /* Polaris */
+#define   S_028830_SMALL_PRIM_FILTER_ENABLE(x)                        (((x) & 0x1) << 0)
+#define   S_028830_TRIANGLE_FILTER_DISABLE(x)                         (((x) & 0x1) << 1)
+#define   S_028830_LINE_FILTER_DISABLE(x)                             (((x) & 0x1) << 2)
+#define   S_028830_POINT_FILTER_DISABLE(x)                            (((x) & 0x1) << 3)
+#define   S_028830_RECTANGLE_FILTER_DISABLE(x)                        (((x) & 0x1) << 4)
 #define R_028A00_PA_SU_POINT_SIZE                                       0x028A00
 #define   S_028A00_HEIGHT(x)                                          (((unsigned)(x) & 0xFFFF) << 0)
 #define   G_028A00_HEIGHT(x)                                          (((x) >> 0) & 0xFFFF)