r600g: set round_mode to truncate and get rid of tgsi_f2i on evergreen
[mesa.git] / src / gallium / drivers / r600 / evergreend.h
index 9f8346b7669bceb4d1dfd9db6867782bf0d57bb9..280e30bef341c9bbbf91eb5128f62e085175c413 100644 (file)
 #define   S_028860_UNCACHED_FIRST_INST(x)              (((x) & 0x1) << 28)
 #define   G_028860_UNCACHED_FIRST_INST(x)              (((x) >> 28) & 0x1)
 #define   C_028860_UNCACHED_FIRST_INST                 0xEFFFFFFF
+
 #define R_028864_SQ_PGM_RESOURCES_2_VS               0x028864
+#define   S_028864_SINGLE_ROUND(x)                     (((x) & 0x3) << 0)
+#define   G_028864_SINGLE_ROUND(x)                     (((x) >> 0) & 0x3)
+#define   C_028864_SINGLE_ROUND                        0xFFFFFFFC
+#define     V_SQ_ROUND_NEAREST_EVEN                    0x00
+#define     V_SQ_ROUND_PLUS_INFINITY                   0x01
+#define     V_SQ_ROUND_MINUS_INFINITY                  0x02
+#define     V_SQ_ROUND_TO_ZERO                         0x03
+#define   S_028864_DOUBLE_ROUND(x)                     (((x) & 0x3) << 2)
+#define   G_028864_DOUBLE_ROUND(x)                     (((x) >> 2) & 0x3)
+#define   C_028864_DOUBLE_ROUND                        0xFFFFFFF3
+#define   S_028864_ALLOW_SINGLE_DENORM_IN(x)           (((x) & 0x1) << 4)
+#define   G_028864_ALLOW_SINGLE_DENORM_IN(x)           (((x) >> 4) & 0x1)
+#define   C_028864_ALLOW_SINGLE_DENORM_IN              0xFFFFFFEF
+#define   S_028864_ALLOW_SINGLE_DENORM_OUT(x)          (((x) & 0x1) << 5)
+#define   G_028864_ALLOW_SINGLE_DENORM_OUT(x)          (((x) >> 5) & 0x1)
+#define   C_028864_ALLOW_SINGLE_DENORM_OUT             0xFFFFFFDF
+#define   S_028864_ALLOW_DOUBLE_DENORM_IN(x)           (((x) & 0x1) << 6)
+#define   G_028864_ALLOW_DOUBLE_DENORM_IN(x)           (((x) >> 6) & 0x1)
+#define   C_028864_ALLOW_DOUBLE_DENORM_IN              0xFFFFFFBF
+#define   S_028864_ALLOW_DOUBLE_DENORM_OUT(x)          (((x) & 0x1) << 7)
+#define   G_028864_ALLOW_DOUBLE_DENORM_OUT(x)          (((x) >> 7) & 0x1)
+#define   C_028864_ALLOW_DOUBLE_DENORM_OUT             0xFFFFFF7F
 
 #define R_028844_SQ_PGM_RESOURCES_PS                 0x028844
 #define   S_028844_NUM_GPRS(x)                         (((x) & 0xFF) << 0)
 #define   C_028844_DX10_CLAMP                          0xFFDFFFFF
 #define   S_028844_PRIME_CACHE_ON_DRAW(x)              (((x) & 0x1) << 23)
 #define   G_028844_PRIME_CACHE_ON_DRAW(x)              (((x) >> 23) & 0x1)
-
+#define   C_028844_PRIME_CACHE_ON_DRAW                 0xFF7FFFFF
 #define   S_028844_UNCACHED_FIRST_INST(x)              (((x) & 0x1) << 28)
 #define   G_028844_UNCACHED_FIRST_INST(x)              (((x) >> 28) & 0x1)
 #define   C_028844_UNCACHED_FIRST_INST                 0xEFFFFFFF
 #define   S_028844_CLAMP_CONSTS(x)                     (((x) & 0x1) << 31)
 #define   G_028844_CLAMP_CONSTS(x)                     (((x) >> 31) & 0x1)
 #define   C_028844_CLAMP_CONSTS                        0x7FFFFFFF
-#define R_028848_SQ_PGM_RESOURCES_2_PS                 0x028848
+
+#define R_028848_SQ_PGM_RESOURCES_2_PS               0x028848
+#define   S_028848_SINGLE_ROUND(x)                     (((x) & 0x3) << 0)
+#define   G_028848_SINGLE_ROUND(x)                     (((x) >> 0) & 0x3)
+#define   C_028848_SINGLE_ROUND                        0xFFFFFFFC
+#define   S_028848_DOUBLE_ROUND(x)                     (((x) & 0x3) << 2)
+#define   G_028848_DOUBLE_ROUND(x)                     (((x) >> 2) & 0x3)
+#define   C_028848_DOUBLE_ROUND                        0xFFFFFFF3
+#define   S_028848_ALLOW_SINGLE_DENORM_IN(x)           (((x) & 0x1) << 4)
+#define   G_028848_ALLOW_SINGLE_DENORM_IN(x)           (((x) >> 4) & 0x1)
+#define   C_028848_ALLOW_SINGLE_DENORM_IN              0xFFFFFFEF
+#define   S_028848_ALLOW_SINGLE_DENORM_OUT(x)          (((x) & 0x1) << 5)
+#define   G_028848_ALLOW_SINGLE_DENORM_OUT(x)          (((x) >> 5) & 0x1)
+#define   C_028848_ALLOW_SINGLE_DENORM_OUT             0xFFFFFFDF
+#define   S_028848_ALLOW_DOUBLE_DENORM_IN(x)           (((x) & 0x1) << 6)
+#define   G_028848_ALLOW_DOUBLE_DENORM_IN(x)           (((x) >> 6) & 0x1)
+#define   C_028848_ALLOW_DOUBLE_DENORM_IN              0xFFFFFFBF
+#define   S_028848_ALLOW_DOUBLE_DENORM_OUT(x)          (((x) & 0x1) << 7)
+#define   G_028848_ALLOW_DOUBLE_DENORM_OUT(x)          (((x) >> 7) & 0x1)
+#define   C_028848_ALLOW_DOUBLE_DENORM_OUT             0xFFFFFF7F
 
 #define R_028644_SPI_PS_INPUT_CNTL_0                 0x028644
 #define   S_028644_SEMANTIC(x)                         (((x) & 0xFF) << 0)
 #define R_028050_DB_Z_WRITE_BASE                     0x00028050
 #define R_028054_DB_STENCIL_WRITE_BASE               0x00028054
 #define R_028140_ALU_CONST_BUFFER_SIZE_PS_0          0x00028140
+#define R_028144_ALU_CONST_BUFFER_SIZE_PS_1          0x00028144
 #define R_028180_ALU_CONST_BUFFER_SIZE_VS_0          0x00028180
+#define R_028184_ALU_CONST_BUFFER_SIZE_VS_1          0x00028184
 #define R_028200_PA_SC_WINDOW_OFFSET                 0x00028200
 #define R_02820C_PA_SC_CLIPRECT_RULE                 0x0002820C
 #define R_028210_PA_SC_CLIPRECT_0_TL                 0x00028210
 #define R_028924_SQ_GS_VERT_ITEMSIZE_2               0x00028924
 #define R_028928_SQ_GS_VERT_ITEMSIZE_3               0x00028928
 #define R_028940_ALU_CONST_CACHE_PS_0                0x00028940
+#define R_028944_ALU_CONST_CACHE_PS_1                0x00028944
 #define R_028980_ALU_CONST_CACHE_VS_0                0x00028980
+#define R_028984_ALU_CONST_CACHE_VS_1                0x00028984
 #define R_028A04_PA_SU_POINT_MINMAX                  0x00028A04
 #define R_028A08_PA_SU_LINE_CNTL                     0x00028A08
 #define   S_028A08_WIDTH(x)                            (((x) & 0xFFFF) << 0)