2 * Copyright © 2020 Advanced Micro Devices, Inc.
4 * Permission is hereby granted, free of charge, to any person obtaining
5 * a copy of this software and associated documentation files (the
6 * "Software"), to deal in the Software without restriction, including
7 * without limitation the rights to use, copy, modify, merge, publish,
8 * distribute, sub license, and/or sell copies of the Software, and to
9 * permit persons to whom the Software is furnished to do so, subject to
10 * the following conditions:
12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
13 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
14 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
15 * NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS, AUTHORS
16 * AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
18 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
19 * USE OR OTHER DEALINGS IN THE SOFTWARE.
21 * The above copyright notice and this permission notice (including the
22 * next paragraph) shall be included in all copies or substantial portions
26 /* These tables define the set of ranges of registers we shadow when
27 * mid command buffer preemption is enabled.
30 #include "ac_shadowed_regs.h"
32 #include "util/macros.h"
34 static const struct ac_reg_range Gfx9UserConfigShadowRange
[] = {
36 R_0300FC_CP_STRMOUT_CNTL
,
40 R_0301EC_CP_COHER_START_DELAY
,
44 R_030904_VGT_GSVS_RING_SIZE
,
45 R_030908_VGT_PRIMITIVE_TYPE
- R_030904_VGT_GSVS_RING_SIZE
+ 4,
48 R_030920_VGT_MAX_VTX_INDX
,
49 R_03092C_VGT_MULTI_PRIM_IB_RESET_EN
- R_030920_VGT_MAX_VTX_INDX
+ 4,
52 R_030934_VGT_NUM_INSTANCES
,
53 R_030944_VGT_TF_MEMORY_BASE_HI
- R_030934_VGT_NUM_INSTANCES
+ 4,
56 R_030960_IA_MULTI_VGT_PARAM
,
60 R_030968_VGT_INSTANCE_BASE_ID
,
64 R_030E00_TA_CS_BC_BASE_ADDR
,
65 R_030E04_TA_CS_BC_BASE_ADDR_HI
- R_030E00_TA_CS_BC_BASE_ADDR
+ 4,
68 R_030AD4_PA_STATE_STEREO_X
,
73 static const struct ac_reg_range Gfx9ContextShadowRange
[] = {
75 R_028000_DB_RENDER_CONTROL
,
76 R_028084_TA_BC_BASE_ADDR_HI
- R_028000_DB_RENDER_CONTROL
+ 4,
79 R_0281E8_COHER_DEST_BASE_HI_0
,
80 R_02835C_PA_SC_TILE_STEERING_OVERRIDE
- R_0281E8_COHER_DEST_BASE_HI_0
+ 4,
83 R_02840C_VGT_MULTI_PRIM_IB_RESET_INDX
,
87 R_028414_CB_BLEND_RED
,
88 R_028618_PA_CL_UCP_5_W
- R_028414_CB_BLEND_RED
+ 4,
91 R_028644_SPI_PS_INPUT_CNTL_0
,
92 R_028714_SPI_SHADER_COL_FORMAT
- R_028644_SPI_PS_INPUT_CNTL_0
+ 4,
95 R_028754_SX_PS_DOWNCONVERT
,
96 R_0287BC_CB_MRT7_EPITCH
- R_028754_SX_PS_DOWNCONVERT
+ 4,
99 R_028800_DB_DEPTH_CONTROL
,
100 R_028820_PA_CL_NANINF_CNTL
- R_028800_DB_DEPTH_CONTROL
+ 4,
103 R_02882C_PA_SU_PRIM_FILTER_CNTL
,
104 R_028840_PA_STEREO_CNTL
- R_02882C_PA_SU_PRIM_FILTER_CNTL
+ 4,
107 R_028A00_PA_SU_POINT_SIZE
,
108 R_028A0C_PA_SC_LINE_STIPPLE
- R_028A00_PA_SU_POINT_SIZE
+ 4,
111 R_028A18_VGT_HOS_MAX_TESS_LEVEL
,
112 R_028A1C_VGT_HOS_MIN_TESS_LEVEL
- R_028A18_VGT_HOS_MAX_TESS_LEVEL
+ 4,
115 R_028A40_VGT_GS_MODE
,
116 R_028A6C_VGT_GS_OUT_PRIM_TYPE
- R_028A40_VGT_GS_MODE
+ 4,
119 R_028A84_VGT_PRIMITIVEID_EN
,
123 R_028A8C_VGT_PRIMITIVEID_RESET
,
127 R_028A94_VGT_GS_MAX_PRIMS_PER_SUBGROUP
,
128 R_028AD4_VGT_STRMOUT_VTX_STRIDE_0
- R_028A94_VGT_GS_MAX_PRIMS_PER_SUBGROUP
+ 4,
131 R_028AE0_VGT_STRMOUT_BUFFER_SIZE_1
,
132 R_028AE4_VGT_STRMOUT_VTX_STRIDE_1
- R_028AE0_VGT_STRMOUT_BUFFER_SIZE_1
+ 4,
135 R_028AF0_VGT_STRMOUT_BUFFER_SIZE_2
,
136 R_028AF4_VGT_STRMOUT_VTX_STRIDE_2
- R_028AF0_VGT_STRMOUT_BUFFER_SIZE_2
+ 4,
139 R_028B00_VGT_STRMOUT_BUFFER_SIZE_3
,
140 R_028B04_VGT_STRMOUT_VTX_STRIDE_3
- R_028B00_VGT_STRMOUT_BUFFER_SIZE_3
+ 4,
143 R_028B28_VGT_STRMOUT_DRAW_OPAQUE_OFFSET
,
144 R_028B30_VGT_STRMOUT_DRAW_OPAQUE_VERTEX_STRIDE
- R_028B28_VGT_STRMOUT_DRAW_OPAQUE_OFFSET
+ 4,
147 R_028B38_VGT_GS_MAX_VERT_OUT
,
148 R_028B98_VGT_STRMOUT_BUFFER_CONFIG
- R_028B38_VGT_GS_MAX_VERT_OUT
+ 4,
151 R_028BD4_PA_SC_CENTROID_PRIORITY_0
,
152 R_028E3C_CB_COLOR7_DCC_BASE_EXT
- R_028BD4_PA_SC_CENTROID_PRIORITY_0
+ 4,
156 static const struct ac_reg_range Gfx9ShShadowRange
[] = {
158 R_00B020_SPI_SHADER_PGM_LO_PS
,
159 R_00B0AC_SPI_SHADER_USER_DATA_PS_31
- R_00B020_SPI_SHADER_PGM_LO_PS
+ 4,
162 R_00B11C_SPI_SHADER_LATE_ALLOC_VS
,
163 R_00B1AC_SPI_SHADER_USER_DATA_VS_31
- R_00B11C_SPI_SHADER_LATE_ALLOC_VS
+ 4,
166 R_00B204_SPI_SHADER_PGM_RSRC4_GS
,
167 R_00B214_SPI_SHADER_PGM_HI_ES
- R_00B204_SPI_SHADER_PGM_RSRC4_GS
+ 4,
170 R_00B220_SPI_SHADER_PGM_LO_GS
,
171 R_00B22C_SPI_SHADER_PGM_RSRC2_GS
- R_00B220_SPI_SHADER_PGM_LO_GS
+ 4,
174 R_00B330_SPI_SHADER_USER_DATA_ES_0
,
175 R_00B3AC_SPI_SHADER_USER_DATA_ES_31
- R_00B330_SPI_SHADER_USER_DATA_ES_0
+ 4,
178 R_00B404_SPI_SHADER_PGM_RSRC4_HS
,
179 R_00B414_SPI_SHADER_PGM_HI_LS
- R_00B404_SPI_SHADER_PGM_RSRC4_HS
+ 4,
182 R_00B420_SPI_SHADER_PGM_LO_HS
,
183 R_00B4AC_SPI_SHADER_USER_DATA_LS_31
- R_00B420_SPI_SHADER_PGM_LO_HS
+ 4,
187 static const struct ac_reg_range Gfx9CsShShadowRange
[] = {
189 R_00B810_COMPUTE_START_X
,
190 R_00B824_COMPUTE_NUM_THREAD_Z
- R_00B810_COMPUTE_START_X
+ 4,
193 R_00B82C_COMPUTE_PERFCOUNT_ENABLE
,
194 R_00B834_COMPUTE_PGM_HI
- R_00B82C_COMPUTE_PERFCOUNT_ENABLE
+ 4,
197 R_00B848_COMPUTE_PGM_RSRC1
,
198 R_00B84C_COMPUTE_PGM_RSRC2
- R_00B848_COMPUTE_PGM_RSRC1
+ 4,
201 R_00B854_COMPUTE_RESOURCE_LIMITS
,
205 R_00B860_COMPUTE_TMPRING_SIZE
,
209 R_00B878_COMPUTE_THREAD_TRACE_ENABLE
,
213 R_00B900_COMPUTE_USER_DATA_0
,
214 R_00B93C_COMPUTE_USER_DATA_15
- R_00B900_COMPUTE_USER_DATA_0
+ 4,
218 static const struct ac_reg_range Gfx9ShShadowRangeRaven2
[] = {
220 R_00B018_SPI_SHADER_PGM_CHKSUM_PS
,
224 R_00B020_SPI_SHADER_PGM_LO_PS
,
225 R_00B0AC_SPI_SHADER_USER_DATA_PS_31
- R_00B020_SPI_SHADER_PGM_LO_PS
+ 4,
228 R_00B114_SPI_SHADER_PGM_CHKSUM_VS
,
232 R_00B11C_SPI_SHADER_LATE_ALLOC_VS
,
233 R_00B1AC_SPI_SHADER_USER_DATA_VS_31
- R_00B11C_SPI_SHADER_LATE_ALLOC_VS
+ 4,
236 R_00B200_SPI_SHADER_PGM_CHKSUM_GS
,
237 R_00B214_SPI_SHADER_PGM_HI_ES
- R_00B200_SPI_SHADER_PGM_CHKSUM_GS
+ 4,
240 R_00B220_SPI_SHADER_PGM_LO_GS
,
241 R_00B22C_SPI_SHADER_PGM_RSRC2_GS
- R_00B220_SPI_SHADER_PGM_LO_GS
+ 4,
244 R_00B330_SPI_SHADER_USER_DATA_ES_0
,
245 R_00B3AC_SPI_SHADER_USER_DATA_ES_31
- R_00B330_SPI_SHADER_USER_DATA_ES_0
+ 4,
248 R_00B400_SPI_SHADER_PGM_CHKSUM_HS
,
249 R_00B414_SPI_SHADER_PGM_HI_LS
- R_00B400_SPI_SHADER_PGM_CHKSUM_HS
+ 4,
252 R_00B420_SPI_SHADER_PGM_LO_HS
,
253 R_00B4AC_SPI_SHADER_USER_DATA_LS_31
- R_00B420_SPI_SHADER_PGM_LO_HS
+ 4,
257 static const struct ac_reg_range Gfx9CsShShadowRangeRaven2
[] = {
259 R_00B810_COMPUTE_START_X
,
260 R_00B824_COMPUTE_NUM_THREAD_Z
- R_00B810_COMPUTE_START_X
+ 4,
263 R_00B82C_COMPUTE_PERFCOUNT_ENABLE
,
264 R_00B834_COMPUTE_PGM_HI
- R_00B82C_COMPUTE_PERFCOUNT_ENABLE
+ 4,
267 R_00B848_COMPUTE_PGM_RSRC1
,
268 R_00B84C_COMPUTE_PGM_RSRC2
- R_00B848_COMPUTE_PGM_RSRC1
+ 4,
271 R_00B854_COMPUTE_RESOURCE_LIMITS
,
275 R_00B860_COMPUTE_TMPRING_SIZE
,
279 R_00B878_COMPUTE_THREAD_TRACE_ENABLE
,
283 R_00B894_COMPUTE_SHADER_CHKSUM
,
287 R_00B900_COMPUTE_USER_DATA_0
,
288 R_00B93C_COMPUTE_USER_DATA_15
- R_00B900_COMPUTE_USER_DATA_0
+ 4,
292 static const struct ac_reg_range Nv10ContextShadowRange
[] = {
294 R_028000_DB_RENDER_CONTROL
,
295 R_028084_TA_BC_BASE_ADDR_HI
- R_028000_DB_RENDER_CONTROL
+ 4,
298 R_0281E8_COHER_DEST_BASE_HI_0
,
299 R_02835C_PA_SC_TILE_STEERING_OVERRIDE
- R_0281E8_COHER_DEST_BASE_HI_0
+ 4,
302 R_02840C_VGT_MULTI_PRIM_IB_RESET_INDX
,
303 R_028618_PA_CL_UCP_5_W
- R_02840C_VGT_MULTI_PRIM_IB_RESET_INDX
+ 4,
306 R_028644_SPI_PS_INPUT_CNTL_0
,
307 R_028714_SPI_SHADER_COL_FORMAT
- R_028644_SPI_PS_INPUT_CNTL_0
+ 4,
310 R_028754_SX_PS_DOWNCONVERT
,
311 R_02879C_CB_BLEND7_CONTROL
- R_028754_SX_PS_DOWNCONVERT
+ 4,
314 R_0287FC_GE_MAX_OUTPUT_PER_SUBGROUP
,
315 R_028820_PA_CL_NANINF_CNTL
- R_0287FC_GE_MAX_OUTPUT_PER_SUBGROUP
+ 4,
318 R_02882C_PA_SU_PRIM_FILTER_CNTL
,
319 R_028844_PA_STATE_STEREO_X
- R_02882C_PA_SU_PRIM_FILTER_CNTL
+ 4,
322 R_028A00_PA_SU_POINT_SIZE
,
323 R_028A0C_PA_SC_LINE_STIPPLE
- R_028A00_PA_SU_POINT_SIZE
+ 4,
326 R_028A18_VGT_HOS_MAX_TESS_LEVEL
,
327 R_028A1C_VGT_HOS_MIN_TESS_LEVEL
- R_028A18_VGT_HOS_MAX_TESS_LEVEL
+ 4,
330 R_028A40_VGT_GS_MODE
,
331 R_028A6C_VGT_GS_OUT_PRIM_TYPE
- R_028A40_VGT_GS_MODE
+ 4,
334 R_028A84_VGT_PRIMITIVEID_EN
,
338 R_028A8C_VGT_PRIMITIVEID_RESET
,
342 R_028A98_VGT_DRAW_PAYLOAD_CNTL
,
343 R_028B98_VGT_STRMOUT_BUFFER_CONFIG
- R_028A98_VGT_DRAW_PAYLOAD_CNTL
+ 4,
346 R_028BD4_PA_SC_CENTROID_PRIORITY_0
,
347 R_028EFC_CB_COLOR7_ATTRIB3
- R_028BD4_PA_SC_CENTROID_PRIORITY_0
+ 4,
351 static const struct ac_reg_range Nv10UserConfigShadowRange
[] = {
353 R_0300FC_CP_STRMOUT_CNTL
,
357 R_0301EC_CP_COHER_START_DELAY
,
361 R_030904_VGT_GSVS_RING_SIZE_UMD
,
362 R_030908_VGT_PRIMITIVE_TYPE
- R_030904_VGT_GSVS_RING_SIZE_UMD
+ 4,
365 R_030964_GE_MAX_VTX_INDX
,
369 R_030924_GE_MIN_VTX_INDX
,
370 R_03092C_GE_MULTI_PRIM_IB_RESET_EN
- R_030924_GE_MIN_VTX_INDX
+ 4,
373 R_030934_VGT_NUM_INSTANCES
,
374 R_030940_VGT_TF_MEMORY_BASE_UMD
- R_030934_VGT_NUM_INSTANCES
+ 4,
377 R_03097C_GE_STEREO_CNTL
,
378 R_030984_VGT_TF_MEMORY_BASE_HI_UMD
- R_03097C_GE_STEREO_CNTL
+ 4,
385 R_030968_VGT_INSTANCE_BASE_ID
,
389 R_030988_GE_USER_VGPR_EN
,
393 R_030E00_TA_CS_BC_BASE_ADDR
,
394 R_030E04_TA_CS_BC_BASE_ADDR_HI
- R_030E00_TA_CS_BC_BASE_ADDR
+ 4,
398 static const struct ac_reg_range Gfx10ShShadowRange
[] = {
400 R_00B018_SPI_SHADER_PGM_CHKSUM_PS
,
404 R_00B020_SPI_SHADER_PGM_LO_PS
,
405 R_00B0AC_SPI_SHADER_USER_DATA_PS_31
- R_00B020_SPI_SHADER_PGM_LO_PS
+ 4,
408 R_00B0C8_SPI_SHADER_USER_ACCUM_PS_0
,
409 R_00B0D4_SPI_SHADER_USER_ACCUM_PS_3
- R_00B0C8_SPI_SHADER_USER_ACCUM_PS_0
+ 4,
412 R_00B114_SPI_SHADER_PGM_CHKSUM_VS
,
416 R_00B11C_SPI_SHADER_LATE_ALLOC_VS
,
417 R_00B1AC_SPI_SHADER_USER_DATA_VS_31
- R_00B11C_SPI_SHADER_LATE_ALLOC_VS
+ 4,
420 R_00B1C8_SPI_SHADER_USER_ACCUM_VS_0
,
421 R_00B1D4_SPI_SHADER_USER_ACCUM_VS_3
- R_00B1C8_SPI_SHADER_USER_ACCUM_VS_0
+ 4,
424 R_00B320_SPI_SHADER_PGM_LO_ES
,
425 R_00B324_SPI_SHADER_PGM_HI_ES
- R_00B320_SPI_SHADER_PGM_LO_ES
+ 4,
428 R_00B520_SPI_SHADER_PGM_LO_LS
,
429 R_00B524_SPI_SHADER_PGM_HI_LS
- R_00B520_SPI_SHADER_PGM_LO_LS
+ 4,
432 R_00B200_SPI_SHADER_PGM_CHKSUM_GS
,
436 R_00B21C_SPI_SHADER_PGM_RSRC3_GS
,
437 R_00B2AC_SPI_SHADER_USER_DATA_GS_31
- R_00B21C_SPI_SHADER_PGM_RSRC3_GS
+ 4,
440 R_00B208_SPI_SHADER_USER_DATA_ADDR_LO_GS
,
441 R_00B20C_SPI_SHADER_USER_DATA_ADDR_HI_GS
- R_00B208_SPI_SHADER_USER_DATA_ADDR_LO_GS
+ 4,
444 R_00B408_SPI_SHADER_USER_DATA_ADDR_LO_HS
,
445 R_00B40C_SPI_SHADER_USER_DATA_ADDR_HI_HS
- R_00B408_SPI_SHADER_USER_DATA_ADDR_LO_HS
+ 4,
448 R_00B2C8_SPI_SHADER_USER_ACCUM_ESGS_0
,
449 R_00B2D4_SPI_SHADER_USER_ACCUM_ESGS_3
- R_00B2C8_SPI_SHADER_USER_ACCUM_ESGS_0
+ 4,
452 R_00B400_SPI_SHADER_PGM_CHKSUM_HS
,
456 R_00B41C_SPI_SHADER_PGM_RSRC3_HS
,
457 R_00B4AC_SPI_SHADER_USER_DATA_HS_31
- R_00B41C_SPI_SHADER_PGM_RSRC3_HS
+ 4,
460 R_00B4C8_SPI_SHADER_USER_ACCUM_LSHS_0
,
461 R_00B4D4_SPI_SHADER_USER_ACCUM_LSHS_3
- R_00B4C8_SPI_SHADER_USER_ACCUM_LSHS_0
+ 4,
464 R_00B0C0_SPI_SHADER_REQ_CTRL_PS
,
468 R_00B1C0_SPI_SHADER_REQ_CTRL_VS
,
473 static const struct ac_reg_range Gfx10CsShShadowRange
[] = {
475 R_00B810_COMPUTE_START_X
,
476 R_00B824_COMPUTE_NUM_THREAD_Z
- R_00B810_COMPUTE_START_X
+ 4,
479 R_00B82C_COMPUTE_PERFCOUNT_ENABLE
,
480 R_00B834_COMPUTE_PGM_HI
- R_00B82C_COMPUTE_PERFCOUNT_ENABLE
+ 4,
483 R_00B848_COMPUTE_PGM_RSRC1
,
484 R_00B84C_COMPUTE_PGM_RSRC2
- R_00B848_COMPUTE_PGM_RSRC1
+ 4,
487 R_00B854_COMPUTE_RESOURCE_LIMITS
,
491 R_00B860_COMPUTE_TMPRING_SIZE
,
495 R_00B878_COMPUTE_THREAD_TRACE_ENABLE
,
499 R_00B890_COMPUTE_USER_ACCUM_0
,
500 R_00B8A0_COMPUTE_PGM_RSRC3
- R_00B890_COMPUTE_USER_ACCUM_0
+ 4,
503 R_00B8A8_COMPUTE_SHADER_CHKSUM
,
507 R_00B900_COMPUTE_USER_DATA_0
,
508 R_00B93C_COMPUTE_USER_DATA_15
- R_00B900_COMPUTE_USER_DATA_0
+ 4,
511 R_00B9F4_COMPUTE_DISPATCH_TUNNEL
,
516 static const struct ac_reg_range Navi10NonShadowedRanges
[] = {
517 /* These are not defined in Mesa. */
519 VGT_DMA_PRIMITIVE_TYPE,
520 VGT_DMA_LS_HS_CONFIG - VGT_DMA_PRIMITIVE_TYPE + 4,
522 /* VGT_INDEX_TYPE and VGT_DMA_INDEX_TYPE are a special case and neither of these should be shadowed. */
524 R_028A7C_VGT_DMA_INDEX_TYPE
,
528 R_03090C_VGT_INDEX_TYPE
,
529 R_03091C_VGT_STRMOUT_BUFFER_FILLED_SIZE_3
- R_03090C_VGT_INDEX_TYPE
+ 4,
532 R_028A88_VGT_DMA_NUM_INSTANCES
,
536 R_00B118_SPI_SHADER_PGM_RSRC3_VS
,
540 R_00B01C_SPI_SHADER_PGM_RSRC3_PS
,
544 R_00B004_SPI_SHADER_PGM_RSRC4_PS
,
548 R_00B104_SPI_SHADER_PGM_RSRC4_VS
,
552 R_00B404_SPI_SHADER_PGM_RSRC4_HS
,
556 R_00B204_SPI_SHADER_PGM_RSRC4_GS
,
560 R_00B858_COMPUTE_DESTINATION_EN_SE0
,
561 R_00B85C_COMPUTE_DESTINATION_EN_SE1
- R_00B858_COMPUTE_DESTINATION_EN_SE0
+ 4,
564 R_00B864_COMPUTE_DESTINATION_EN_SE2
,
565 R_00B868_COMPUTE_DESTINATION_EN_SE3
- R_00B864_COMPUTE_DESTINATION_EN_SE2
+ 4,
568 R_030800_GRBM_GFX_INDEX
,
572 R_031100_SPI_CONFIG_CNTL_REMAP
,
575 /* SQ thread trace registers are always not shadowed. */
577 R_008D00_SQ_THREAD_TRACE_BUF0_BASE
,
578 R_008D38_SQ_THREAD_TRACE_HP3D_MARKER_CNTR
- R_008D00_SQ_THREAD_TRACE_BUF0_BASE
+ 4,
581 R_030D00_SQ_THREAD_TRACE_USERDATA_0
,
582 R_030D1C_SQ_THREAD_TRACE_USERDATA_7
- R_030D00_SQ_THREAD_TRACE_USERDATA_0
+ 4,
584 /* Perf counter registers are always not shadowed. Most of them are in the perf
585 * register space but some legacy registers are still outside of it. The SPM
586 * registers are in the perf range as well.
589 SI_UCONFIG_PERF_REG_OFFSET
,
590 SI_UCONFIG_PERF_REG_SPACE_SIZE
,
592 /* These are not defined in Mesa. */
594 ATC_PERFCOUNTER0_CFG,
595 ATC_PERFCOUNTER_HI - ATC_PERFCOUNTER0_CFG + 4,
599 RPB_PERFCOUNTER_RSLT_CNTL - RPB_PERFCOUNTER_LO + 4,
602 SDMA0_PERFCOUNTER0_SELECT,
603 SDMA0_PERFCOUNTER1_HI - SDMA0_PERFCOUNTER0_SELECT + 4,
606 SDMA1_PERFCOUNTER0_SELECT,
607 SDMA1_PERFCOUNTER1_HI - SDMA1_PERFCOUNTER0_SELECT + 4,
611 GCEA_PERFCOUNTER_RSLT_CNTL - GCEA_PERFCOUNTER_LO + 4,
615 GUS_PERFCOUNTER_RSLT_CNTL - GUS_PERFCOUNTER_LO + 4,
619 static const struct ac_reg_range Gfx103ContextShadowRange
[] = {
621 R_028000_DB_RENDER_CONTROL
,
622 R_028084_TA_BC_BASE_ADDR_HI
- R_028000_DB_RENDER_CONTROL
+ 4,
625 R_0281E8_COHER_DEST_BASE_HI_0
,
626 R_02835C_PA_SC_TILE_STEERING_OVERRIDE
- R_0281E8_COHER_DEST_BASE_HI_0
+ 4,
629 R_02840C_VGT_MULTI_PRIM_IB_RESET_INDX
,
630 R_028618_PA_CL_UCP_5_W
- R_02840C_VGT_MULTI_PRIM_IB_RESET_INDX
+ 4,
633 R_028644_SPI_PS_INPUT_CNTL_0
,
634 R_028714_SPI_SHADER_COL_FORMAT
- R_028644_SPI_PS_INPUT_CNTL_0
+ 4,
637 R_028750_SX_PS_DOWNCONVERT_CONTROL_GFX103
,
638 R_02879C_CB_BLEND7_CONTROL
- R_028750_SX_PS_DOWNCONVERT_CONTROL_GFX103
+ 4,
641 R_0287FC_GE_MAX_OUTPUT_PER_SUBGROUP
,
642 R_028820_PA_CL_NANINF_CNTL
- R_0287FC_GE_MAX_OUTPUT_PER_SUBGROUP
+ 4,
645 R_02882C_PA_SU_PRIM_FILTER_CNTL
,
646 0x028848 - R_02882C_PA_SU_PRIM_FILTER_CNTL
+ 4,
649 R_028A00_PA_SU_POINT_SIZE
,
650 R_028A0C_PA_SC_LINE_STIPPLE
- R_028A00_PA_SU_POINT_SIZE
+ 4,
653 R_028A18_VGT_HOS_MAX_TESS_LEVEL
,
654 R_028A1C_VGT_HOS_MIN_TESS_LEVEL
- R_028A18_VGT_HOS_MAX_TESS_LEVEL
+ 4,
657 R_028A40_VGT_GS_MODE
,
658 R_028A6C_VGT_GS_OUT_PRIM_TYPE
- R_028A40_VGT_GS_MODE
+ 4,
661 R_028A84_VGT_PRIMITIVEID_EN
,
665 R_028A8C_VGT_PRIMITIVEID_RESET
,
669 R_028A98_VGT_DRAW_PAYLOAD_CNTL
,
670 R_028B98_VGT_STRMOUT_BUFFER_CONFIG
- R_028A98_VGT_DRAW_PAYLOAD_CNTL
+ 4,
673 R_028BD4_PA_SC_CENTROID_PRIORITY_0
,
674 R_028EFC_CB_COLOR7_ATTRIB3
- R_028BD4_PA_SC_CENTROID_PRIORITY_0
+ 4,
678 static const struct ac_reg_range Gfx103UserConfigShadowRange
[] = {
680 R_0300FC_CP_STRMOUT_CNTL
,
684 R_0301EC_CP_COHER_START_DELAY
,
688 R_030904_VGT_GSVS_RING_SIZE_UMD
,
689 R_030908_VGT_PRIMITIVE_TYPE
- R_030904_VGT_GSVS_RING_SIZE_UMD
+ 4,
692 R_030964_GE_MAX_VTX_INDX
,
696 R_030924_GE_MIN_VTX_INDX
,
697 R_03092C_GE_MULTI_PRIM_IB_RESET_EN
- R_030924_GE_MIN_VTX_INDX
+ 4,
700 R_030934_VGT_NUM_INSTANCES
,
701 R_030940_VGT_TF_MEMORY_BASE_UMD
- R_030934_VGT_NUM_INSTANCES
+ 4,
704 R_03097C_GE_STEREO_CNTL
,
705 R_030984_VGT_TF_MEMORY_BASE_HI_UMD
- R_03097C_GE_STEREO_CNTL
+ 4,
712 R_030968_VGT_INSTANCE_BASE_ID
,
716 R_030E00_TA_CS_BC_BASE_ADDR
,
717 R_030E04_TA_CS_BC_BASE_ADDR_HI
- R_030E00_TA_CS_BC_BASE_ADDR
+ 4,
720 R_030988_GE_USER_VGPR_EN
,
721 0x03098C - R_030988_GE_USER_VGPR_EN
+ 4,
725 static const struct ac_reg_range Gfx103NonShadowedRanges
[] = {
726 /* These are not defined in Mesa. */
728 VGT_DMA_PRIMITIVE_TYPE,
729 VGT_DMA_LS_HS_CONFIG - VGT_DMA_PRIMITIVE_TYPE + 4,
731 /* VGT_INDEX_TYPE and VGT_DMA_INDEX_TYPE are a special case and neither of these should be shadowed. */
733 R_028A7C_VGT_DMA_INDEX_TYPE
,
737 R_03090C_VGT_INDEX_TYPE
,
738 R_03091C_VGT_STRMOUT_BUFFER_FILLED_SIZE_3
- R_03090C_VGT_INDEX_TYPE
+ 4,
741 R_028A88_VGT_DMA_NUM_INSTANCES
,
745 R_00B118_SPI_SHADER_PGM_RSRC3_VS
,
749 R_00B01C_SPI_SHADER_PGM_RSRC3_PS
,
753 R_00B004_SPI_SHADER_PGM_RSRC4_PS
,
757 R_00B104_SPI_SHADER_PGM_RSRC4_VS
,
761 R_00B404_SPI_SHADER_PGM_RSRC4_HS
,
765 R_00B204_SPI_SHADER_PGM_RSRC4_GS
,
769 R_00B858_COMPUTE_DESTINATION_EN_SE0
,
770 R_00B85C_COMPUTE_DESTINATION_EN_SE1
- R_00B858_COMPUTE_DESTINATION_EN_SE0
+ 4,
773 R_00B864_COMPUTE_DESTINATION_EN_SE2
,
774 R_00B868_COMPUTE_DESTINATION_EN_SE3
- R_00B864_COMPUTE_DESTINATION_EN_SE2
+ 4,
777 R_030800_GRBM_GFX_INDEX
,
781 R_031100_SPI_CONFIG_CNTL_REMAP
,
784 /* SQ thread trace registers are always not shadowed. */
786 R_008D00_SQ_THREAD_TRACE_BUF0_BASE
,
787 R_008D3C_SQ_THREAD_TRACE_STATUS2_GFX103
- R_008D00_SQ_THREAD_TRACE_BUF0_BASE
+ 4,
790 R_030D00_SQ_THREAD_TRACE_USERDATA_0
,
791 R_030D1C_SQ_THREAD_TRACE_USERDATA_7
- R_030D00_SQ_THREAD_TRACE_USERDATA_0
+ 4,
793 /* Perf counter registers are always not shadowed. Most of them are in the perf
794 * register space but some legacy registers are still outside of it. The SPM
795 * registers are in the perf range as well.
798 SI_UCONFIG_PERF_REG_OFFSET
,
799 SI_UCONFIG_PERF_REG_SPACE_SIZE
,
801 /* These are not defined in Mesa. */
803 mmATC_PERFCOUNTER0_CFG,
804 mmATC_PERFCOUNTER_HI - mmATC_PERFCOUNTER0_CFG + 1
807 mmRPB_PERFCOUNTER_LO,
808 mmRPB_PERFCOUNTER_RSLT_CNTL - mmRPB_PERFCOUNTER_LO + 1
812 void ac_get_reg_ranges(enum chip_class chip_class
, enum radeon_family family
,
813 enum ac_reg_range_type type
, unsigned *num_ranges
,
814 const struct ac_reg_range
**ranges
)
816 #define RETURN(array) do { *ranges = array; *num_ranges = ARRAY_SIZE(array); } while (0)
822 case SI_REG_RANGE_UCONFIG
:
823 if (chip_class
== GFX10_3
)
824 RETURN(Gfx103UserConfigShadowRange
);
825 else if (chip_class
== GFX10
)
826 RETURN(Nv10UserConfigShadowRange
);
827 else if (chip_class
== GFX9
)
828 RETURN(Gfx9UserConfigShadowRange
);
830 case SI_REG_RANGE_CONTEXT
:
831 if (chip_class
== GFX10_3
)
832 RETURN(Gfx103ContextShadowRange
);
833 else if (chip_class
== GFX10
)
834 RETURN(Nv10ContextShadowRange
);
835 else if (chip_class
== GFX9
)
836 RETURN(Gfx9ContextShadowRange
);
838 case SI_REG_RANGE_SH
:
839 if (chip_class
== GFX10_3
|| chip_class
== GFX10
)
840 RETURN(Gfx10ShShadowRange
);
841 else if (family
== CHIP_RAVEN2
||
842 family
== CHIP_RENOIR
)
843 RETURN(Gfx9ShShadowRangeRaven2
);
844 else if (chip_class
== GFX9
)
845 RETURN(Gfx9ShShadowRange
);
847 case SI_REG_RANGE_CS_SH
:
848 if (chip_class
== GFX10_3
|| chip_class
== GFX10
)
849 RETURN(Gfx10CsShShadowRange
);
850 else if (family
== CHIP_RAVEN2
||
851 family
== CHIP_RENOIR
)
852 RETURN(Gfx9CsShShadowRangeRaven2
);
853 else if (chip_class
== GFX9
)
854 RETURN(Gfx9CsShShadowRange
);
856 case SI_REG_RANGE_NON_SHADOWED
:
857 if (chip_class
== GFX10_3
)
858 RETURN(Gfx103NonShadowedRanges
);
859 else if (chip_class
== GFX10
)
860 RETURN(Navi10NonShadowedRanges
);
870 * Emulate CLEAR_STATE.
872 static void gfx9_emulate_clear_state(struct radeon_cmdbuf
*cs
,
873 set_context_reg_seq_array_fn set_context_reg_seq_array
)
875 static const uint32_t DbRenderControlGfx9
[] = {
876 0x0 , // DB_RENDER_CONTROL
877 0x0 , // DB_COUNT_CONTROL
878 0x0 , // DB_DEPTH_VIEW
879 0x0 , // DB_RENDER_OVERRIDE
880 0x0 , // DB_RENDER_OVERRIDE2
881 0x0 , // DB_HTILE_DATA_BASE
882 0x0 , // DB_HTILE_DATA_BASE_HI
883 0x0 , // DB_DEPTH_SIZE
884 0x0 , // DB_DEPTH_BOUNDS_MIN
885 0x0 , // DB_DEPTH_BOUNDS_MAX
886 0x0 , // DB_STENCIL_CLEAR
887 0x0 , // DB_DEPTH_CLEAR
888 0x0 , // PA_SC_SCREEN_SCISSOR_TL
889 0x40004000, // PA_SC_SCREEN_SCISSOR_BR
891 0x0 , // DB_STENCIL_INFO
892 0x0 , // DB_Z_READ_BASE
893 0x0 , // DB_Z_READ_BASE_HI
894 0x0 , // DB_STENCIL_READ_BASE
895 0x0 , // DB_STENCIL_READ_BASE_HI
896 0x0 , // DB_Z_WRITE_BASE
897 0x0 , // DB_Z_WRITE_BASE_HI
898 0x0 , // DB_STENCIL_WRITE_BASE
899 0x0 , // DB_STENCIL_WRITE_BASE_HI
900 0x0 , // DB_DFSM_CONTROL
903 0x0 , // DB_STENCIL_INFO2
908 0x0 , // TA_BC_BASE_ADDR
909 0x0 // TA_BC_BASE_ADDR_HI
911 static const uint32_t CoherDestBaseHi0Gfx9
[] = {
912 0x0 , // COHER_DEST_BASE_HI_0
913 0x0 , // COHER_DEST_BASE_HI_1
914 0x0 , // COHER_DEST_BASE_HI_2
915 0x0 , // COHER_DEST_BASE_HI_3
916 0x0 , // COHER_DEST_BASE_2
917 0x0 , // COHER_DEST_BASE_3
918 0x0 , // PA_SC_WINDOW_OFFSET
919 0x80000000, // PA_SC_WINDOW_SCISSOR_TL
920 0x40004000, // PA_SC_WINDOW_SCISSOR_BR
921 0xffff , // PA_SC_CLIPRECT_RULE
922 0x0 , // PA_SC_CLIPRECT_0_TL
923 0x40004000, // PA_SC_CLIPRECT_0_BR
924 0x0 , // PA_SC_CLIPRECT_1_TL
925 0x40004000, // PA_SC_CLIPRECT_1_BR
926 0x0 , // PA_SC_CLIPRECT_2_TL
927 0x40004000, // PA_SC_CLIPRECT_2_BR
928 0x0 , // PA_SC_CLIPRECT_3_TL
929 0x40004000, // PA_SC_CLIPRECT_3_BR
930 0xaa99aaaa, // PA_SC_EDGERULE
931 0x0 , // PA_SU_HARDWARE_SCREEN_OFFSET
932 0xffffffff, // CB_TARGET_MASK
933 0xffffffff, // CB_SHADER_MASK
934 0x80000000, // PA_SC_GENERIC_SCISSOR_TL
935 0x40004000, // PA_SC_GENERIC_SCISSOR_BR
936 0x0 , // COHER_DEST_BASE_0
937 0x0 , // COHER_DEST_BASE_1
938 0x80000000, // PA_SC_VPORT_SCISSOR_0_TL
939 0x40004000, // PA_SC_VPORT_SCISSOR_0_BR
940 0x80000000, // PA_SC_VPORT_SCISSOR_1_TL
941 0x40004000, // PA_SC_VPORT_SCISSOR_1_BR
942 0x80000000, // PA_SC_VPORT_SCISSOR_2_TL
943 0x40004000, // PA_SC_VPORT_SCISSOR_2_BR
944 0x80000000, // PA_SC_VPORT_SCISSOR_3_TL
945 0x40004000, // PA_SC_VPORT_SCISSOR_3_BR
946 0x80000000, // PA_SC_VPORT_SCISSOR_4_TL
947 0x40004000, // PA_SC_VPORT_SCISSOR_4_BR
948 0x80000000, // PA_SC_VPORT_SCISSOR_5_TL
949 0x40004000, // PA_SC_VPORT_SCISSOR_5_BR
950 0x80000000, // PA_SC_VPORT_SCISSOR_6_TL
951 0x40004000, // PA_SC_VPORT_SCISSOR_6_BR
952 0x80000000, // PA_SC_VPORT_SCISSOR_7_TL
953 0x40004000, // PA_SC_VPORT_SCISSOR_7_BR
954 0x80000000, // PA_SC_VPORT_SCISSOR_8_TL
955 0x40004000, // PA_SC_VPORT_SCISSOR_8_BR
956 0x80000000, // PA_SC_VPORT_SCISSOR_9_TL
957 0x40004000, // PA_SC_VPORT_SCISSOR_9_BR
958 0x80000000, // PA_SC_VPORT_SCISSOR_10_TL
959 0x40004000, // PA_SC_VPORT_SCISSOR_10_BR
960 0x80000000, // PA_SC_VPORT_SCISSOR_11_TL
961 0x40004000, // PA_SC_VPORT_SCISSOR_11_BR
962 0x80000000, // PA_SC_VPORT_SCISSOR_12_TL
963 0x40004000, // PA_SC_VPORT_SCISSOR_12_BR
964 0x80000000, // PA_SC_VPORT_SCISSOR_13_TL
965 0x40004000, // PA_SC_VPORT_SCISSOR_13_BR
966 0x80000000, // PA_SC_VPORT_SCISSOR_14_TL
967 0x40004000, // PA_SC_VPORT_SCISSOR_14_BR
968 0x80000000, // PA_SC_VPORT_SCISSOR_15_TL
969 0x40004000, // PA_SC_VPORT_SCISSOR_15_BR
970 0x0 , // PA_SC_VPORT_ZMIN_0
971 0x3f800000, // PA_SC_VPORT_ZMAX_0
972 0x0 , // PA_SC_VPORT_ZMIN_1
973 0x3f800000, // PA_SC_VPORT_ZMAX_1
974 0x0 , // PA_SC_VPORT_ZMIN_2
975 0x3f800000, // PA_SC_VPORT_ZMAX_2
976 0x0 , // PA_SC_VPORT_ZMIN_3
977 0x3f800000, // PA_SC_VPORT_ZMAX_3
978 0x0 , // PA_SC_VPORT_ZMIN_4
979 0x3f800000, // PA_SC_VPORT_ZMAX_4
980 0x0 , // PA_SC_VPORT_ZMIN_5
981 0x3f800000, // PA_SC_VPORT_ZMAX_5
982 0x0 , // PA_SC_VPORT_ZMIN_6
983 0x3f800000, // PA_SC_VPORT_ZMAX_6
984 0x0 , // PA_SC_VPORT_ZMIN_7
985 0x3f800000, // PA_SC_VPORT_ZMAX_7
986 0x0 , // PA_SC_VPORT_ZMIN_8
987 0x3f800000, // PA_SC_VPORT_ZMAX_8
988 0x0 , // PA_SC_VPORT_ZMIN_9
989 0x3f800000, // PA_SC_VPORT_ZMAX_9
990 0x0 , // PA_SC_VPORT_ZMIN_10
991 0x3f800000, // PA_SC_VPORT_ZMAX_10
992 0x0 , // PA_SC_VPORT_ZMIN_11
993 0x3f800000, // PA_SC_VPORT_ZMAX_11
994 0x0 , // PA_SC_VPORT_ZMIN_12
995 0x3f800000, // PA_SC_VPORT_ZMAX_12
996 0x0 , // PA_SC_VPORT_ZMIN_13
997 0x3f800000, // PA_SC_VPORT_ZMAX_13
998 0x0 , // PA_SC_VPORT_ZMIN_14
999 0x3f800000, // PA_SC_VPORT_ZMAX_14
1000 0x0 , // PA_SC_VPORT_ZMIN_15
1001 0x3f800000, // PA_SC_VPORT_ZMAX_15
1002 0x0 , // PA_SC_RASTER_CONFIG
1003 0x0 , // PA_SC_RASTER_CONFIG_1
1005 0x0 // PA_SC_TILE_STEERING_OVERRIDE
1007 static const uint32_t VgtMultiPrimIbResetIndxGfx9
[] = {
1008 0x0 // VGT_MULTI_PRIM_IB_RESET_INDX
1010 static const uint32_t CbBlendRedGfx9
[] = {
1011 0x0 , // CB_BLEND_RED
1012 0x0 , // CB_BLEND_GREEN
1013 0x0 , // CB_BLEND_BLUE
1014 0x0 , // CB_BLEND_ALPHA
1015 0x0 , // CB_DCC_CONTROL
1017 0x0 , // DB_STENCIL_CONTROL
1018 0x1000000 , // DB_STENCILREFMASK
1019 0x1000000 , // DB_STENCILREFMASK_BF
1021 0x0 , // PA_CL_VPORT_XSCALE
1022 0x0 , // PA_CL_VPORT_XOFFSET
1023 0x0 , // PA_CL_VPORT_YSCALE
1024 0x0 , // PA_CL_VPORT_YOFFSET
1025 0x0 , // PA_CL_VPORT_ZSCALE
1026 0x0 , // PA_CL_VPORT_ZOFFSET
1027 0x0 , // PA_CL_VPORT_XSCALE_1
1028 0x0 , // PA_CL_VPORT_XOFFSET_1
1029 0x0 , // PA_CL_VPORT_YSCALE_1
1030 0x0 , // PA_CL_VPORT_YOFFSET_1
1031 0x0 , // PA_CL_VPORT_ZSCALE_1
1032 0x0 , // PA_CL_VPORT_ZOFFSET_1
1033 0x0 , // PA_CL_VPORT_XSCALE_2
1034 0x0 , // PA_CL_VPORT_XOFFSET_2
1035 0x0 , // PA_CL_VPORT_YSCALE_2
1036 0x0 , // PA_CL_VPORT_YOFFSET_2
1037 0x0 , // PA_CL_VPORT_ZSCALE_2
1038 0x0 , // PA_CL_VPORT_ZOFFSET_2
1039 0x0 , // PA_CL_VPORT_XSCALE_3
1040 0x0 , // PA_CL_VPORT_XOFFSET_3
1041 0x0 , // PA_CL_VPORT_YSCALE_3
1042 0x0 , // PA_CL_VPORT_YOFFSET_3
1043 0x0 , // PA_CL_VPORT_ZSCALE_3
1044 0x0 , // PA_CL_VPORT_ZOFFSET_3
1045 0x0 , // PA_CL_VPORT_XSCALE_4
1046 0x0 , // PA_CL_VPORT_XOFFSET_4
1047 0x0 , // PA_CL_VPORT_YSCALE_4
1048 0x0 , // PA_CL_VPORT_YOFFSET_4
1049 0x0 , // PA_CL_VPORT_ZSCALE_4
1050 0x0 , // PA_CL_VPORT_ZOFFSET_4
1051 0x0 , // PA_CL_VPORT_XSCALE_5
1052 0x0 , // PA_CL_VPORT_XOFFSET_5
1053 0x0 , // PA_CL_VPORT_YSCALE_5
1054 0x0 , // PA_CL_VPORT_YOFFSET_5
1055 0x0 , // PA_CL_VPORT_ZSCALE_5
1056 0x0 , // PA_CL_VPORT_ZOFFSET_5
1057 0x0 , // PA_CL_VPORT_XSCALE_6
1058 0x0 , // PA_CL_VPORT_XOFFSET_6
1059 0x0 , // PA_CL_VPORT_YSCALE_6
1060 0x0 , // PA_CL_VPORT_YOFFSET_6
1061 0x0 , // PA_CL_VPORT_ZSCALE_6
1062 0x0 , // PA_CL_VPORT_ZOFFSET_6
1063 0x0 , // PA_CL_VPORT_XSCALE_7
1064 0x0 , // PA_CL_VPORT_XOFFSET_7
1065 0x0 , // PA_CL_VPORT_YSCALE_7
1066 0x0 , // PA_CL_VPORT_YOFFSET_7
1067 0x0 , // PA_CL_VPORT_ZSCALE_7
1068 0x0 , // PA_CL_VPORT_ZOFFSET_7
1069 0x0 , // PA_CL_VPORT_XSCALE_8
1070 0x0 , // PA_CL_VPORT_XOFFSET_8
1071 0x0 , // PA_CL_VPORT_YSCALE_8
1072 0x0 , // PA_CL_VPORT_YOFFSET_8
1073 0x0 , // PA_CL_VPORT_ZSCALE_8
1074 0x0 , // PA_CL_VPORT_ZOFFSET_8
1075 0x0 , // PA_CL_VPORT_XSCALE_9
1076 0x0 , // PA_CL_VPORT_XOFFSET_9
1077 0x0 , // PA_CL_VPORT_YSCALE_9
1078 0x0 , // PA_CL_VPORT_YOFFSET_9
1079 0x0 , // PA_CL_VPORT_ZSCALE_9
1080 0x0 , // PA_CL_VPORT_ZOFFSET_9
1081 0x0 , // PA_CL_VPORT_XSCALE_10
1082 0x0 , // PA_CL_VPORT_XOFFSET_10
1083 0x0 , // PA_CL_VPORT_YSCALE_10
1084 0x0 , // PA_CL_VPORT_YOFFSET_10
1085 0x0 , // PA_CL_VPORT_ZSCALE_10
1086 0x0 , // PA_CL_VPORT_ZOFFSET_10
1087 0x0 , // PA_CL_VPORT_XSCALE_11
1088 0x0 , // PA_CL_VPORT_XOFFSET_11
1089 0x0 , // PA_CL_VPORT_YSCALE_11
1090 0x0 , // PA_CL_VPORT_YOFFSET_11
1091 0x0 , // PA_CL_VPORT_ZSCALE_11
1092 0x0 , // PA_CL_VPORT_ZOFFSET_11
1093 0x0 , // PA_CL_VPORT_XSCALE_12
1094 0x0 , // PA_CL_VPORT_XOFFSET_12
1095 0x0 , // PA_CL_VPORT_YSCALE_12
1096 0x0 , // PA_CL_VPORT_YOFFSET_12
1097 0x0 , // PA_CL_VPORT_ZSCALE_12
1098 0x0 , // PA_CL_VPORT_ZOFFSET_12
1099 0x0 , // PA_CL_VPORT_XSCALE_13
1100 0x0 , // PA_CL_VPORT_XOFFSET_13
1101 0x0 , // PA_CL_VPORT_YSCALE_13
1102 0x0 , // PA_CL_VPORT_YOFFSET_13
1103 0x0 , // PA_CL_VPORT_ZSCALE_13
1104 0x0 , // PA_CL_VPORT_ZOFFSET_13
1105 0x0 , // PA_CL_VPORT_XSCALE_14
1106 0x0 , // PA_CL_VPORT_XOFFSET_14
1107 0x0 , // PA_CL_VPORT_YSCALE_14
1108 0x0 , // PA_CL_VPORT_YOFFSET_14
1109 0x0 , // PA_CL_VPORT_ZSCALE_14
1110 0x0 , // PA_CL_VPORT_ZOFFSET_14
1111 0x0 , // PA_CL_VPORT_XSCALE_15
1112 0x0 , // PA_CL_VPORT_XOFFSET_15
1113 0x0 , // PA_CL_VPORT_YSCALE_15
1114 0x0 , // PA_CL_VPORT_YOFFSET_15
1115 0x0 , // PA_CL_VPORT_ZSCALE_15
1116 0x0 , // PA_CL_VPORT_ZOFFSET_15
1117 0x0 , // PA_CL_UCP_0_X
1118 0x0 , // PA_CL_UCP_0_Y
1119 0x0 , // PA_CL_UCP_0_Z
1120 0x0 , // PA_CL_UCP_0_W
1121 0x0 , // PA_CL_UCP_1_X
1122 0x0 , // PA_CL_UCP_1_Y
1123 0x0 , // PA_CL_UCP_1_Z
1124 0x0 , // PA_CL_UCP_1_W
1125 0x0 , // PA_CL_UCP_2_X
1126 0x0 , // PA_CL_UCP_2_Y
1127 0x0 , // PA_CL_UCP_2_Z
1128 0x0 , // PA_CL_UCP_2_W
1129 0x0 , // PA_CL_UCP_3_X
1130 0x0 , // PA_CL_UCP_3_Y
1131 0x0 , // PA_CL_UCP_3_Z
1132 0x0 , // PA_CL_UCP_3_W
1133 0x0 , // PA_CL_UCP_4_X
1134 0x0 , // PA_CL_UCP_4_Y
1135 0x0 , // PA_CL_UCP_4_Z
1136 0x0 , // PA_CL_UCP_4_W
1137 0x0 , // PA_CL_UCP_5_X
1138 0x0 , // PA_CL_UCP_5_Y
1139 0x0 , // PA_CL_UCP_5_Z
1140 0x0 // PA_CL_UCP_5_W
1142 static const uint32_t SpiPsInputCntl0Gfx9
[] = {
1143 0x0 , // SPI_PS_INPUT_CNTL_0
1144 0x0 , // SPI_PS_INPUT_CNTL_1
1145 0x0 , // SPI_PS_INPUT_CNTL_2
1146 0x0 , // SPI_PS_INPUT_CNTL_3
1147 0x0 , // SPI_PS_INPUT_CNTL_4
1148 0x0 , // SPI_PS_INPUT_CNTL_5
1149 0x0 , // SPI_PS_INPUT_CNTL_6
1150 0x0 , // SPI_PS_INPUT_CNTL_7
1151 0x0 , // SPI_PS_INPUT_CNTL_8
1152 0x0 , // SPI_PS_INPUT_CNTL_9
1153 0x0 , // SPI_PS_INPUT_CNTL_10
1154 0x0 , // SPI_PS_INPUT_CNTL_11
1155 0x0 , // SPI_PS_INPUT_CNTL_12
1156 0x0 , // SPI_PS_INPUT_CNTL_13
1157 0x0 , // SPI_PS_INPUT_CNTL_14
1158 0x0 , // SPI_PS_INPUT_CNTL_15
1159 0x0 , // SPI_PS_INPUT_CNTL_16
1160 0x0 , // SPI_PS_INPUT_CNTL_17
1161 0x0 , // SPI_PS_INPUT_CNTL_18
1162 0x0 , // SPI_PS_INPUT_CNTL_19
1163 0x0 , // SPI_PS_INPUT_CNTL_20
1164 0x0 , // SPI_PS_INPUT_CNTL_21
1165 0x0 , // SPI_PS_INPUT_CNTL_22
1166 0x0 , // SPI_PS_INPUT_CNTL_23
1167 0x0 , // SPI_PS_INPUT_CNTL_24
1168 0x0 , // SPI_PS_INPUT_CNTL_25
1169 0x0 , // SPI_PS_INPUT_CNTL_26
1170 0x0 , // SPI_PS_INPUT_CNTL_27
1171 0x0 , // SPI_PS_INPUT_CNTL_28
1172 0x0 , // SPI_PS_INPUT_CNTL_29
1173 0x0 , // SPI_PS_INPUT_CNTL_30
1174 0x0 , // SPI_PS_INPUT_CNTL_31
1175 0x0 , // SPI_VS_OUT_CONFIG
1177 0x0 , // SPI_PS_INPUT_ENA
1178 0x0 , // SPI_PS_INPUT_ADDR
1179 0x0 , // SPI_INTERP_CONTROL_0
1180 0x2 , // SPI_PS_IN_CONTROL
1182 0x0 , // SPI_BARYC_CNTL
1184 0x0 , // SPI_TMPRING_SIZE
1193 0x0 , // SPI_SHADER_POS_FORMAT
1194 0x0 , // SPI_SHADER_Z_FORMAT
1195 0x0 // SPI_SHADER_COL_FORMAT
1197 static const uint32_t SxPsDownconvertGfx9
[] = {
1198 0x0 , // SX_PS_DOWNCONVERT
1199 0x0 , // SX_BLEND_OPT_EPSILON
1200 0x0 , // SX_BLEND_OPT_CONTROL
1201 0x0 , // SX_MRT0_BLEND_OPT
1202 0x0 , // SX_MRT1_BLEND_OPT
1203 0x0 , // SX_MRT2_BLEND_OPT
1204 0x0 , // SX_MRT3_BLEND_OPT
1205 0x0 , // SX_MRT4_BLEND_OPT
1206 0x0 , // SX_MRT5_BLEND_OPT
1207 0x0 , // SX_MRT6_BLEND_OPT
1208 0x0 , // SX_MRT7_BLEND_OPT
1209 0x0 , // CB_BLEND0_CONTROL
1210 0x0 , // CB_BLEND1_CONTROL
1211 0x0 , // CB_BLEND2_CONTROL
1212 0x0 , // CB_BLEND3_CONTROL
1213 0x0 , // CB_BLEND4_CONTROL
1214 0x0 , // CB_BLEND5_CONTROL
1215 0x0 , // CB_BLEND6_CONTROL
1216 0x0 , // CB_BLEND7_CONTROL
1217 0x0 , // CB_MRT0_EPITCH
1218 0x0 , // CB_MRT1_EPITCH
1219 0x0 , // CB_MRT2_EPITCH
1220 0x0 , // CB_MRT3_EPITCH
1221 0x0 , // CB_MRT4_EPITCH
1222 0x0 , // CB_MRT5_EPITCH
1223 0x0 , // CB_MRT6_EPITCH
1224 0x0 // CB_MRT7_EPITCH
1226 static const uint32_t DbDepthControlGfx9
[] = {
1227 0x0 , // DB_DEPTH_CONTROL
1229 0x0 , // CB_COLOR_CONTROL
1230 0x0 , // DB_SHADER_CONTROL
1231 0x90000 , // PA_CL_CLIP_CNTL
1232 0x4 , // PA_SU_SC_MODE_CNTL
1233 0x0 , // PA_CL_VTE_CNTL
1234 0x0 , // PA_CL_VS_OUT_CNTL
1235 0x0 // PA_CL_NANINF_CNTL
1237 static const uint32_t PaSuPrimFilterCntlGfx9
[] = {
1238 0x0 , // PA_SU_PRIM_FILTER_CNTL
1239 0x0 , // PA_SU_SMALL_PRIM_FILTER_CNTL
1240 0x0 , // PA_CL_OBJPRIM_ID_CNTL
1241 0x0 , // PA_CL_NGG_CNTL
1242 0x0 , // PA_SU_OVER_RASTERIZATION_CNTL
1243 0x0 // PA_STEREO_CNTL
1245 static const uint32_t PaSuPointSizeGfx9
[] = {
1246 0x0 , // PA_SU_POINT_SIZE
1247 0x0 , // PA_SU_POINT_MINMAX
1248 0x0 , // PA_SU_LINE_CNTL
1249 0x0 // PA_SC_LINE_STIPPLE
1251 static const uint32_t VgtHosMaxTessLevelGfx9
[] = {
1252 0x0 , // VGT_HOS_MAX_TESS_LEVEL
1253 0x0 // VGT_HOS_MIN_TESS_LEVEL
1255 static const uint32_t VgtGsModeGfx9
[] = {
1256 0x0 , // VGT_GS_MODE
1257 0x0 , // VGT_GS_ONCHIP_CNTL
1258 0x0 , // PA_SC_MODE_CNTL_0
1259 0x0 , // PA_SC_MODE_CNTL_1
1260 0x0 , // VGT_ENHANCE
1261 0x100 , // VGT_GS_PER_ES
1262 0x80 , // VGT_ES_PER_GS
1263 0x2 , // VGT_GS_PER_VS
1264 0x0 , // VGT_GSVS_RING_OFFSET_1
1265 0x0 , // VGT_GSVS_RING_OFFSET_2
1266 0x0 , // VGT_GSVS_RING_OFFSET_3
1267 0x0 // VGT_GS_OUT_PRIM_TYPE
1269 static const uint32_t VgtPrimitiveidEnGfx9
[] = {
1270 0x0 // VGT_PRIMITIVEID_EN
1272 static const uint32_t VgtPrimitiveidResetGfx9
[] = {
1273 0x0 // VGT_PRIMITIVEID_RESET
1275 static const uint32_t VgtGsMaxPrimsPerSubgroupGfx9
[] = {
1276 0x0 , // VGT_GS_MAX_PRIMS_PER_SUBGROUP
1277 0x0 , // VGT_DRAW_PAYLOAD_CNTL
1279 0x0 , // VGT_INSTANCE_STEP_RATE_0
1280 0x0 , // VGT_INSTANCE_STEP_RATE_1
1282 0x0 , // VGT_ESGS_RING_ITEMSIZE
1283 0x0 , // VGT_GSVS_RING_ITEMSIZE
1284 0x0 , // VGT_REUSE_OFF
1285 0x0 , // VGT_VTX_CNT_EN
1286 0x0 , // DB_HTILE_SURFACE
1287 0x0 , // DB_SRESULTS_COMPARE_STATE0
1288 0x0 , // DB_SRESULTS_COMPARE_STATE1
1289 0x0 , // DB_PRELOAD_CONTROL
1291 0x0 , // VGT_STRMOUT_BUFFER_SIZE_0
1292 0x0 // VGT_STRMOUT_VTX_STRIDE_0
1294 static const uint32_t VgtStrmoutBufferSize1Gfx9
[] = {
1295 0x0 , // VGT_STRMOUT_BUFFER_SIZE_1
1296 0x0 // VGT_STRMOUT_VTX_STRIDE_1
1298 static const uint32_t VgtStrmoutBufferSize2Gfx9
[] = {
1299 0x0 , // VGT_STRMOUT_BUFFER_SIZE_2
1300 0x0 // VGT_STRMOUT_VTX_STRIDE_2
1302 static const uint32_t VgtStrmoutBufferSize3Gfx9
[] = {
1303 0x0 , // VGT_STRMOUT_BUFFER_SIZE_3
1304 0x0 // VGT_STRMOUT_VTX_STRIDE_3
1306 static const uint32_t VgtStrmoutDrawOpaqueOffsetGfx9
[] = {
1307 0x0 , // VGT_STRMOUT_DRAW_OPAQUE_OFFSET
1308 0x0 , // VGT_STRMOUT_DRAW_OPAQUE_BUFFER_FILLED_SIZE
1309 0x0 // VGT_STRMOUT_DRAW_OPAQUE_VERTEX_STRIDE
1311 static const uint32_t VgtGsMaxVertOutGfx9
[] = {
1312 0x0 , // VGT_GS_MAX_VERT_OUT
1318 0x0 , // VGT_TESS_DISTRIBUTION
1319 0x0 , // VGT_SHADER_STAGES_EN
1320 0x0 , // VGT_LS_HS_CONFIG
1321 0x0 , // VGT_GS_VERT_ITEMSIZE
1322 0x0 , // VGT_GS_VERT_ITEMSIZE_1
1323 0x0 , // VGT_GS_VERT_ITEMSIZE_2
1324 0x0 , // VGT_GS_VERT_ITEMSIZE_3
1325 0x0 , // VGT_TF_PARAM
1326 0x0 , // DB_ALPHA_TO_MASK
1327 0x0 , // VGT_DISPATCH_DRAW_INDEX
1328 0x0 , // PA_SU_POLY_OFFSET_DB_FMT_CNTL
1329 0x0 , // PA_SU_POLY_OFFSET_CLAMP
1330 0x0 , // PA_SU_POLY_OFFSET_FRONT_SCALE
1331 0x0 , // PA_SU_POLY_OFFSET_FRONT_OFFSET
1332 0x0 , // PA_SU_POLY_OFFSET_BACK_SCALE
1333 0x0 , // PA_SU_POLY_OFFSET_BACK_OFFSET
1334 0x0 , // VGT_GS_INSTANCE_CNT
1335 0x0 , // VGT_STRMOUT_CONFIG
1336 0x0 // VGT_STRMOUT_BUFFER_CONFIG
1338 static const uint32_t PaScCentroidPriority0Gfx9
[] = {
1339 0x0 , // PA_SC_CENTROID_PRIORITY_0
1340 0x0 , // PA_SC_CENTROID_PRIORITY_1
1341 0x1000 , // PA_SC_LINE_CNTL
1342 0x0 , // PA_SC_AA_CONFIG
1343 0x5 , // PA_SU_VTX_CNTL
1344 0x3f800000, // PA_CL_GB_VERT_CLIP_ADJ
1345 0x3f800000, // PA_CL_GB_VERT_DISC_ADJ
1346 0x3f800000, // PA_CL_GB_HORZ_CLIP_ADJ
1347 0x3f800000, // PA_CL_GB_HORZ_DISC_ADJ
1348 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_0
1349 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_1
1350 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_2
1351 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_3
1352 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_0
1353 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_1
1354 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_2
1355 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_3
1356 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_0
1357 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_1
1358 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_2
1359 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_3
1360 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_0
1361 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_1
1362 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_2
1363 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_3
1364 0xffffffff, // PA_SC_AA_MASK_X0Y0_X1Y0
1365 0xffffffff, // PA_SC_AA_MASK_X0Y1_X1Y1
1366 0x0 , // PA_SC_SHADER_CONTROL
1367 0x3 , // PA_SC_BINNER_CNTL_0
1368 0x0 , // PA_SC_BINNER_CNTL_1
1369 0x100000 , // PA_SC_CONSERVATIVE_RASTERIZATION_CNTL
1370 0x0 , // PA_SC_NGG_MODE_CNTL
1372 0x1e , // VGT_VERTEX_REUSE_BLOCK_CNTL
1373 0x20 , // VGT_OUT_DEALLOC_CNTL
1374 0x0 , // CB_COLOR0_BASE
1375 0x0 , // CB_COLOR0_BASE_EXT
1376 0x0 , // CB_COLOR0_ATTRIB2
1377 0x0 , // CB_COLOR0_VIEW
1378 0x0 , // CB_COLOR0_INFO
1379 0x0 , // CB_COLOR0_ATTRIB
1380 0x0 , // CB_COLOR0_DCC_CONTROL
1381 0x0 , // CB_COLOR0_CMASK
1382 0x0 , // CB_COLOR0_CMASK_BASE_EXT
1383 0x0 , // CB_COLOR0_FMASK
1384 0x0 , // CB_COLOR0_FMASK_BASE_EXT
1385 0x0 , // CB_COLOR0_CLEAR_WORD0
1386 0x0 , // CB_COLOR0_CLEAR_WORD1
1387 0x0 , // CB_COLOR0_DCC_BASE
1388 0x0 , // CB_COLOR0_DCC_BASE_EXT
1389 0x0 , // CB_COLOR1_BASE
1390 0x0 , // CB_COLOR1_BASE_EXT
1391 0x0 , // CB_COLOR1_ATTRIB2
1392 0x0 , // CB_COLOR1_VIEW
1393 0x0 , // CB_COLOR1_INFO
1394 0x0 , // CB_COLOR1_ATTRIB
1395 0x0 , // CB_COLOR1_DCC_CONTROL
1396 0x0 , // CB_COLOR1_CMASK
1397 0x0 , // CB_COLOR1_CMASK_BASE_EXT
1398 0x0 , // CB_COLOR1_FMASK
1399 0x0 , // CB_COLOR1_FMASK_BASE_EXT
1400 0x0 , // CB_COLOR1_CLEAR_WORD0
1401 0x0 , // CB_COLOR1_CLEAR_WORD1
1402 0x0 , // CB_COLOR1_DCC_BASE
1403 0x0 , // CB_COLOR1_DCC_BASE_EXT
1404 0x0 , // CB_COLOR2_BASE
1405 0x0 , // CB_COLOR2_BASE_EXT
1406 0x0 , // CB_COLOR2_ATTRIB2
1407 0x0 , // CB_COLOR2_VIEW
1408 0x0 , // CB_COLOR2_INFO
1409 0x0 , // CB_COLOR2_ATTRIB
1410 0x0 , // CB_COLOR2_DCC_CONTROL
1411 0x0 , // CB_COLOR2_CMASK
1412 0x0 , // CB_COLOR2_CMASK_BASE_EXT
1413 0x0 , // CB_COLOR2_FMASK
1414 0x0 , // CB_COLOR2_FMASK_BASE_EXT
1415 0x0 , // CB_COLOR2_CLEAR_WORD0
1416 0x0 , // CB_COLOR2_CLEAR_WORD1
1417 0x0 , // CB_COLOR2_DCC_BASE
1418 0x0 , // CB_COLOR2_DCC_BASE_EXT
1419 0x0 , // CB_COLOR3_BASE
1420 0x0 , // CB_COLOR3_BASE_EXT
1421 0x0 , // CB_COLOR3_ATTRIB2
1422 0x0 , // CB_COLOR3_VIEW
1423 0x0 , // CB_COLOR3_INFO
1424 0x0 , // CB_COLOR3_ATTRIB
1425 0x0 , // CB_COLOR3_DCC_CONTROL
1426 0x0 , // CB_COLOR3_CMASK
1427 0x0 , // CB_COLOR3_CMASK_BASE_EXT
1428 0x0 , // CB_COLOR3_FMASK
1429 0x0 , // CB_COLOR3_FMASK_BASE_EXT
1430 0x0 , // CB_COLOR3_CLEAR_WORD0
1431 0x0 , // CB_COLOR3_CLEAR_WORD1
1432 0x0 , // CB_COLOR3_DCC_BASE
1433 0x0 , // CB_COLOR3_DCC_BASE_EXT
1434 0x0 , // CB_COLOR4_BASE
1435 0x0 , // CB_COLOR4_BASE_EXT
1436 0x0 , // CB_COLOR4_ATTRIB2
1437 0x0 , // CB_COLOR4_VIEW
1438 0x0 , // CB_COLOR4_INFO
1439 0x0 , // CB_COLOR4_ATTRIB
1440 0x0 , // CB_COLOR4_DCC_CONTROL
1441 0x0 , // CB_COLOR4_CMASK
1442 0x0 , // CB_COLOR4_CMASK_BASE_EXT
1443 0x0 , // CB_COLOR4_FMASK
1444 0x0 , // CB_COLOR4_FMASK_BASE_EXT
1445 0x0 , // CB_COLOR4_CLEAR_WORD0
1446 0x0 , // CB_COLOR4_CLEAR_WORD1
1447 0x0 , // CB_COLOR4_DCC_BASE
1448 0x0 , // CB_COLOR4_DCC_BASE_EXT
1449 0x0 , // CB_COLOR5_BASE
1450 0x0 , // CB_COLOR5_BASE_EXT
1451 0x0 , // CB_COLOR5_ATTRIB2
1452 0x0 , // CB_COLOR5_VIEW
1453 0x0 , // CB_COLOR5_INFO
1454 0x0 , // CB_COLOR5_ATTRIB
1455 0x0 , // CB_COLOR5_DCC_CONTROL
1456 0x0 , // CB_COLOR5_CMASK
1457 0x0 , // CB_COLOR5_CMASK_BASE_EXT
1458 0x0 , // CB_COLOR5_FMASK
1459 0x0 , // CB_COLOR5_FMASK_BASE_EXT
1460 0x0 , // CB_COLOR5_CLEAR_WORD0
1461 0x0 , // CB_COLOR5_CLEAR_WORD1
1462 0x0 , // CB_COLOR5_DCC_BASE
1463 0x0 , // CB_COLOR5_DCC_BASE_EXT
1464 0x0 , // CB_COLOR6_BASE
1465 0x0 , // CB_COLOR6_BASE_EXT
1466 0x0 , // CB_COLOR6_ATTRIB2
1467 0x0 , // CB_COLOR6_VIEW
1468 0x0 , // CB_COLOR6_INFO
1469 0x0 , // CB_COLOR6_ATTRIB
1470 0x0 , // CB_COLOR6_DCC_CONTROL
1471 0x0 , // CB_COLOR6_CMASK
1472 0x0 , // CB_COLOR6_CMASK_BASE_EXT
1473 0x0 , // CB_COLOR6_FMASK
1474 0x0 , // CB_COLOR6_FMASK_BASE_EXT
1475 0x0 , // CB_COLOR6_CLEAR_WORD0
1476 0x0 , // CB_COLOR6_CLEAR_WORD1
1477 0x0 , // CB_COLOR6_DCC_BASE
1478 0x0 , // CB_COLOR6_DCC_BASE_EXT
1479 0x0 , // CB_COLOR7_BASE
1480 0x0 , // CB_COLOR7_BASE_EXT
1481 0x0 , // CB_COLOR7_ATTRIB2
1482 0x0 , // CB_COLOR7_VIEW
1483 0x0 , // CB_COLOR7_INFO
1484 0x0 , // CB_COLOR7_ATTRIB
1485 0x0 , // CB_COLOR7_DCC_CONTROL
1486 0x0 , // CB_COLOR7_CMASK
1487 0x0 , // CB_COLOR7_CMASK_BASE_EXT
1488 0x0 , // CB_COLOR7_FMASK
1489 0x0 , // CB_COLOR7_FMASK_BASE_EXT
1490 0x0 , // CB_COLOR7_CLEAR_WORD0
1491 0x0 , // CB_COLOR7_CLEAR_WORD1
1492 0x0 , // CB_COLOR7_DCC_BASE
1493 0x0 // CB_COLOR7_DCC_BASE_EXT
1496 #define SET(array) ARRAY_SIZE(array), array
1498 set_context_reg_seq_array(cs
, R_028000_DB_RENDER_CONTROL
, SET(DbRenderControlGfx9
));
1499 set_context_reg_seq_array(cs
, R_0281E8_COHER_DEST_BASE_HI_0
, SET(CoherDestBaseHi0Gfx9
));
1500 set_context_reg_seq_array(cs
, R_02840C_VGT_MULTI_PRIM_IB_RESET_INDX
, SET(VgtMultiPrimIbResetIndxGfx9
));
1501 set_context_reg_seq_array(cs
, R_028414_CB_BLEND_RED
, SET(CbBlendRedGfx9
));
1502 set_context_reg_seq_array(cs
, R_028644_SPI_PS_INPUT_CNTL_0
, SET(SpiPsInputCntl0Gfx9
));
1503 set_context_reg_seq_array(cs
, R_028754_SX_PS_DOWNCONVERT
, SET(SxPsDownconvertGfx9
));
1504 set_context_reg_seq_array(cs
, R_028800_DB_DEPTH_CONTROL
, SET(DbDepthControlGfx9
));
1505 set_context_reg_seq_array(cs
, R_02882C_PA_SU_PRIM_FILTER_CNTL
, SET(PaSuPrimFilterCntlGfx9
));
1506 set_context_reg_seq_array(cs
, R_028A00_PA_SU_POINT_SIZE
, SET(PaSuPointSizeGfx9
));
1507 set_context_reg_seq_array(cs
, R_028A18_VGT_HOS_MAX_TESS_LEVEL
, SET(VgtHosMaxTessLevelGfx9
));
1508 set_context_reg_seq_array(cs
, R_028A40_VGT_GS_MODE
, SET(VgtGsModeGfx9
));
1509 set_context_reg_seq_array(cs
, R_028A84_VGT_PRIMITIVEID_EN
, SET(VgtPrimitiveidEnGfx9
));
1510 set_context_reg_seq_array(cs
, R_028A8C_VGT_PRIMITIVEID_RESET
, SET(VgtPrimitiveidResetGfx9
));
1511 set_context_reg_seq_array(cs
, R_028A94_VGT_GS_MAX_PRIMS_PER_SUBGROUP
, SET(VgtGsMaxPrimsPerSubgroupGfx9
));
1512 set_context_reg_seq_array(cs
, R_028AE0_VGT_STRMOUT_BUFFER_SIZE_1
, SET(VgtStrmoutBufferSize1Gfx9
));
1513 set_context_reg_seq_array(cs
, R_028AF0_VGT_STRMOUT_BUFFER_SIZE_2
, SET(VgtStrmoutBufferSize2Gfx9
));
1514 set_context_reg_seq_array(cs
, R_028B00_VGT_STRMOUT_BUFFER_SIZE_3
, SET(VgtStrmoutBufferSize3Gfx9
));
1515 set_context_reg_seq_array(cs
, R_028B28_VGT_STRMOUT_DRAW_OPAQUE_OFFSET
, SET(VgtStrmoutDrawOpaqueOffsetGfx9
));
1516 set_context_reg_seq_array(cs
, R_028B38_VGT_GS_MAX_VERT_OUT
, SET(VgtGsMaxVertOutGfx9
));
1517 set_context_reg_seq_array(cs
, R_028BD4_PA_SC_CENTROID_PRIORITY_0
, SET(PaScCentroidPriority0Gfx9
));
1521 * Emulate CLEAR_STATE. Additionally, initialize num_reg_pairs registers specified
1522 * via reg_offsets and reg_values.
1524 static void gfx10_emulate_clear_state(struct radeon_cmdbuf
*cs
, unsigned num_reg_pairs
,
1525 unsigned *reg_offsets
, uint32_t *reg_values
,
1526 set_context_reg_seq_array_fn set_context_reg_seq_array
)
1528 static const uint32_t DbRenderControlNv10
[] = {
1529 0x0 , // DB_RENDER_CONTROL
1530 0x0 , // DB_COUNT_CONTROL
1531 0x0 , // DB_DEPTH_VIEW
1532 0x0 , // DB_RENDER_OVERRIDE
1533 0x0 , // DB_RENDER_OVERRIDE2
1534 0x0 , // DB_HTILE_DATA_BASE
1536 0x0 , // DB_DEPTH_SIZE_XY
1537 0x0 , // DB_DEPTH_BOUNDS_MIN
1538 0x0 , // DB_DEPTH_BOUNDS_MAX
1539 0x0 , // DB_STENCIL_CLEAR
1540 0x0 , // DB_DEPTH_CLEAR
1541 0x0 , // PA_SC_SCREEN_SCISSOR_TL
1542 0x40004000, // PA_SC_SCREEN_SCISSOR_BR
1543 0x0 , // DB_DFSM_CONTROL
1544 0x0 , // DB_RESERVED_REG_2
1546 0x0 , // DB_STENCIL_INFO
1547 0x0 , // DB_Z_READ_BASE
1548 0x0 , // DB_STENCIL_READ_BASE
1549 0x0 , // DB_Z_WRITE_BASE
1550 0x0 , // DB_STENCIL_WRITE_BASE
1555 0x0 , // DB_Z_READ_BASE_HI
1556 0x0 , // DB_STENCIL_READ_BASE_HI
1557 0x0 , // DB_Z_WRITE_BASE_HI
1558 0x0 , // DB_STENCIL_WRITE_BASE_HI
1559 0x0 , // DB_HTILE_DATA_BASE_HI
1560 0x0 , // DB_RMI_L2_CACHE_CONTROL
1561 0x0 , // TA_BC_BASE_ADDR
1562 0x0 // TA_BC_BASE_ADDR_HI
1564 static const uint32_t CoherDestBaseHi0Nv10
[] = {
1565 0x0 , // COHER_DEST_BASE_HI_0
1566 0x0 , // COHER_DEST_BASE_HI_1
1567 0x0 , // COHER_DEST_BASE_HI_2
1568 0x0 , // COHER_DEST_BASE_HI_3
1569 0x0 , // COHER_DEST_BASE_2
1570 0x0 , // COHER_DEST_BASE_3
1571 0x0 , // PA_SC_WINDOW_OFFSET
1572 0x80000000, // PA_SC_WINDOW_SCISSOR_TL
1573 0x40004000, // PA_SC_WINDOW_SCISSOR_BR
1574 0xffff , // PA_SC_CLIPRECT_RULE
1575 0x0 , // PA_SC_CLIPRECT_0_TL
1576 0x40004000, // PA_SC_CLIPRECT_0_BR
1577 0x0 , // PA_SC_CLIPRECT_1_TL
1578 0x40004000, // PA_SC_CLIPRECT_1_BR
1579 0x0 , // PA_SC_CLIPRECT_2_TL
1580 0x40004000, // PA_SC_CLIPRECT_2_BR
1581 0x0 , // PA_SC_CLIPRECT_3_TL
1582 0x40004000, // PA_SC_CLIPRECT_3_BR
1583 0xaa99aaaa, // PA_SC_EDGERULE
1584 0x0 , // PA_SU_HARDWARE_SCREEN_OFFSET
1585 0xffffffff, // CB_TARGET_MASK
1586 0xffffffff, // CB_SHADER_MASK
1587 0x80000000, // PA_SC_GENERIC_SCISSOR_TL
1588 0x40004000, // PA_SC_GENERIC_SCISSOR_BR
1589 0x0 , // COHER_DEST_BASE_0
1590 0x0 , // COHER_DEST_BASE_1
1591 0x80000000, // PA_SC_VPORT_SCISSOR_0_TL
1592 0x40004000, // PA_SC_VPORT_SCISSOR_0_BR
1593 0x80000000, // PA_SC_VPORT_SCISSOR_1_TL
1594 0x40004000, // PA_SC_VPORT_SCISSOR_1_BR
1595 0x80000000, // PA_SC_VPORT_SCISSOR_2_TL
1596 0x40004000, // PA_SC_VPORT_SCISSOR_2_BR
1597 0x80000000, // PA_SC_VPORT_SCISSOR_3_TL
1598 0x40004000, // PA_SC_VPORT_SCISSOR_3_BR
1599 0x80000000, // PA_SC_VPORT_SCISSOR_4_TL
1600 0x40004000, // PA_SC_VPORT_SCISSOR_4_BR
1601 0x80000000, // PA_SC_VPORT_SCISSOR_5_TL
1602 0x40004000, // PA_SC_VPORT_SCISSOR_5_BR
1603 0x80000000, // PA_SC_VPORT_SCISSOR_6_TL
1604 0x40004000, // PA_SC_VPORT_SCISSOR_6_BR
1605 0x80000000, // PA_SC_VPORT_SCISSOR_7_TL
1606 0x40004000, // PA_SC_VPORT_SCISSOR_7_BR
1607 0x80000000, // PA_SC_VPORT_SCISSOR_8_TL
1608 0x40004000, // PA_SC_VPORT_SCISSOR_8_BR
1609 0x80000000, // PA_SC_VPORT_SCISSOR_9_TL
1610 0x40004000, // PA_SC_VPORT_SCISSOR_9_BR
1611 0x80000000, // PA_SC_VPORT_SCISSOR_10_TL
1612 0x40004000, // PA_SC_VPORT_SCISSOR_10_BR
1613 0x80000000, // PA_SC_VPORT_SCISSOR_11_TL
1614 0x40004000, // PA_SC_VPORT_SCISSOR_11_BR
1615 0x80000000, // PA_SC_VPORT_SCISSOR_12_TL
1616 0x40004000, // PA_SC_VPORT_SCISSOR_12_BR
1617 0x80000000, // PA_SC_VPORT_SCISSOR_13_TL
1618 0x40004000, // PA_SC_VPORT_SCISSOR_13_BR
1619 0x80000000, // PA_SC_VPORT_SCISSOR_14_TL
1620 0x40004000, // PA_SC_VPORT_SCISSOR_14_BR
1621 0x80000000, // PA_SC_VPORT_SCISSOR_15_TL
1622 0x40004000, // PA_SC_VPORT_SCISSOR_15_BR
1623 0x0 , // PA_SC_VPORT_ZMIN_0
1624 0x3f800000, // PA_SC_VPORT_ZMAX_0
1625 0x0 , // PA_SC_VPORT_ZMIN_1
1626 0x3f800000, // PA_SC_VPORT_ZMAX_1
1627 0x0 , // PA_SC_VPORT_ZMIN_2
1628 0x3f800000, // PA_SC_VPORT_ZMAX_2
1629 0x0 , // PA_SC_VPORT_ZMIN_3
1630 0x3f800000, // PA_SC_VPORT_ZMAX_3
1631 0x0 , // PA_SC_VPORT_ZMIN_4
1632 0x3f800000, // PA_SC_VPORT_ZMAX_4
1633 0x0 , // PA_SC_VPORT_ZMIN_5
1634 0x3f800000, // PA_SC_VPORT_ZMAX_5
1635 0x0 , // PA_SC_VPORT_ZMIN_6
1636 0x3f800000, // PA_SC_VPORT_ZMAX_6
1637 0x0 , // PA_SC_VPORT_ZMIN_7
1638 0x3f800000, // PA_SC_VPORT_ZMAX_7
1639 0x0 , // PA_SC_VPORT_ZMIN_8
1640 0x3f800000, // PA_SC_VPORT_ZMAX_8
1641 0x0 , // PA_SC_VPORT_ZMIN_9
1642 0x3f800000, // PA_SC_VPORT_ZMAX_9
1643 0x0 , // PA_SC_VPORT_ZMIN_10
1644 0x3f800000, // PA_SC_VPORT_ZMAX_10
1645 0x0 , // PA_SC_VPORT_ZMIN_11
1646 0x3f800000, // PA_SC_VPORT_ZMAX_11
1647 0x0 , // PA_SC_VPORT_ZMIN_12
1648 0x3f800000, // PA_SC_VPORT_ZMAX_12
1649 0x0 , // PA_SC_VPORT_ZMIN_13
1650 0x3f800000, // PA_SC_VPORT_ZMAX_13
1651 0x0 , // PA_SC_VPORT_ZMIN_14
1652 0x3f800000, // PA_SC_VPORT_ZMAX_14
1653 0x0 , // PA_SC_VPORT_ZMIN_15
1654 0x3f800000, // PA_SC_VPORT_ZMAX_15
1655 0x0 , // PA_SC_RASTER_CONFIG
1656 0x0 , // PA_SC_RASTER_CONFIG_1
1658 0x0 // PA_SC_TILE_STEERING_OVERRIDE
1660 static const uint32_t VgtMultiPrimIbResetIndxNv10
[] = {
1661 0x0 , // VGT_MULTI_PRIM_IB_RESET_INDX
1662 0x0 , // CB_RMI_GL2_CACHE_CONTROL
1663 0x0 , // CB_BLEND_RED
1664 0x0 , // CB_BLEND_GREEN
1665 0x0 , // CB_BLEND_BLUE
1666 0x0 , // CB_BLEND_ALPHA
1667 0x0 , // CB_DCC_CONTROL
1668 0x0 , // CB_COVERAGE_OUT_CONTROL
1669 0x0 , // DB_STENCIL_CONTROL
1670 0x1000000 , // DB_STENCILREFMASK
1671 0x1000000 , // DB_STENCILREFMASK_BF
1673 0x0 , // PA_CL_VPORT_XSCALE
1674 0x0 , // PA_CL_VPORT_XOFFSET
1675 0x0 , // PA_CL_VPORT_YSCALE
1676 0x0 , // PA_CL_VPORT_YOFFSET
1677 0x0 , // PA_CL_VPORT_ZSCALE
1678 0x0 , // PA_CL_VPORT_ZOFFSET
1679 0x0 , // PA_CL_VPORT_XSCALE_1
1680 0x0 , // PA_CL_VPORT_XOFFSET_1
1681 0x0 , // PA_CL_VPORT_YSCALE_1
1682 0x0 , // PA_CL_VPORT_YOFFSET_1
1683 0x0 , // PA_CL_VPORT_ZSCALE_1
1684 0x0 , // PA_CL_VPORT_ZOFFSET_1
1685 0x0 , // PA_CL_VPORT_XSCALE_2
1686 0x0 , // PA_CL_VPORT_XOFFSET_2
1687 0x0 , // PA_CL_VPORT_YSCALE_2
1688 0x0 , // PA_CL_VPORT_YOFFSET_2
1689 0x0 , // PA_CL_VPORT_ZSCALE_2
1690 0x0 , // PA_CL_VPORT_ZOFFSET_2
1691 0x0 , // PA_CL_VPORT_XSCALE_3
1692 0x0 , // PA_CL_VPORT_XOFFSET_3
1693 0x0 , // PA_CL_VPORT_YSCALE_3
1694 0x0 , // PA_CL_VPORT_YOFFSET_3
1695 0x0 , // PA_CL_VPORT_ZSCALE_3
1696 0x0 , // PA_CL_VPORT_ZOFFSET_3
1697 0x0 , // PA_CL_VPORT_XSCALE_4
1698 0x0 , // PA_CL_VPORT_XOFFSET_4
1699 0x0 , // PA_CL_VPORT_YSCALE_4
1700 0x0 , // PA_CL_VPORT_YOFFSET_4
1701 0x0 , // PA_CL_VPORT_ZSCALE_4
1702 0x0 , // PA_CL_VPORT_ZOFFSET_4
1703 0x0 , // PA_CL_VPORT_XSCALE_5
1704 0x0 , // PA_CL_VPORT_XOFFSET_5
1705 0x0 , // PA_CL_VPORT_YSCALE_5
1706 0x0 , // PA_CL_VPORT_YOFFSET_5
1707 0x0 , // PA_CL_VPORT_ZSCALE_5
1708 0x0 , // PA_CL_VPORT_ZOFFSET_5
1709 0x0 , // PA_CL_VPORT_XSCALE_6
1710 0x0 , // PA_CL_VPORT_XOFFSET_6
1711 0x0 , // PA_CL_VPORT_YSCALE_6
1712 0x0 , // PA_CL_VPORT_YOFFSET_6
1713 0x0 , // PA_CL_VPORT_ZSCALE_6
1714 0x0 , // PA_CL_VPORT_ZOFFSET_6
1715 0x0 , // PA_CL_VPORT_XSCALE_7
1716 0x0 , // PA_CL_VPORT_XOFFSET_7
1717 0x0 , // PA_CL_VPORT_YSCALE_7
1718 0x0 , // PA_CL_VPORT_YOFFSET_7
1719 0x0 , // PA_CL_VPORT_ZSCALE_7
1720 0x0 , // PA_CL_VPORT_ZOFFSET_7
1721 0x0 , // PA_CL_VPORT_XSCALE_8
1722 0x0 , // PA_CL_VPORT_XOFFSET_8
1723 0x0 , // PA_CL_VPORT_YSCALE_8
1724 0x0 , // PA_CL_VPORT_YOFFSET_8
1725 0x0 , // PA_CL_VPORT_ZSCALE_8
1726 0x0 , // PA_CL_VPORT_ZOFFSET_8
1727 0x0 , // PA_CL_VPORT_XSCALE_9
1728 0x0 , // PA_CL_VPORT_XOFFSET_9
1729 0x0 , // PA_CL_VPORT_YSCALE_9
1730 0x0 , // PA_CL_VPORT_YOFFSET_9
1731 0x0 , // PA_CL_VPORT_ZSCALE_9
1732 0x0 , // PA_CL_VPORT_ZOFFSET_9
1733 0x0 , // PA_CL_VPORT_XSCALE_10
1734 0x0 , // PA_CL_VPORT_XOFFSET_10
1735 0x0 , // PA_CL_VPORT_YSCALE_10
1736 0x0 , // PA_CL_VPORT_YOFFSET_10
1737 0x0 , // PA_CL_VPORT_ZSCALE_10
1738 0x0 , // PA_CL_VPORT_ZOFFSET_10
1739 0x0 , // PA_CL_VPORT_XSCALE_11
1740 0x0 , // PA_CL_VPORT_XOFFSET_11
1741 0x0 , // PA_CL_VPORT_YSCALE_11
1742 0x0 , // PA_CL_VPORT_YOFFSET_11
1743 0x0 , // PA_CL_VPORT_ZSCALE_11
1744 0x0 , // PA_CL_VPORT_ZOFFSET_11
1745 0x0 , // PA_CL_VPORT_XSCALE_12
1746 0x0 , // PA_CL_VPORT_XOFFSET_12
1747 0x0 , // PA_CL_VPORT_YSCALE_12
1748 0x0 , // PA_CL_VPORT_YOFFSET_12
1749 0x0 , // PA_CL_VPORT_ZSCALE_12
1750 0x0 , // PA_CL_VPORT_ZOFFSET_12
1751 0x0 , // PA_CL_VPORT_XSCALE_13
1752 0x0 , // PA_CL_VPORT_XOFFSET_13
1753 0x0 , // PA_CL_VPORT_YSCALE_13
1754 0x0 , // PA_CL_VPORT_YOFFSET_13
1755 0x0 , // PA_CL_VPORT_ZSCALE_13
1756 0x0 , // PA_CL_VPORT_ZOFFSET_13
1757 0x0 , // PA_CL_VPORT_XSCALE_14
1758 0x0 , // PA_CL_VPORT_XOFFSET_14
1759 0x0 , // PA_CL_VPORT_YSCALE_14
1760 0x0 , // PA_CL_VPORT_YOFFSET_14
1761 0x0 , // PA_CL_VPORT_ZSCALE_14
1762 0x0 , // PA_CL_VPORT_ZOFFSET_14
1763 0x0 , // PA_CL_VPORT_XSCALE_15
1764 0x0 , // PA_CL_VPORT_XOFFSET_15
1765 0x0 , // PA_CL_VPORT_YSCALE_15
1766 0x0 , // PA_CL_VPORT_YOFFSET_15
1767 0x0 , // PA_CL_VPORT_ZSCALE_15
1768 0x0 , // PA_CL_VPORT_ZOFFSET_15
1769 0x0 , // PA_CL_UCP_0_X
1770 0x0 , // PA_CL_UCP_0_Y
1771 0x0 , // PA_CL_UCP_0_Z
1772 0x0 , // PA_CL_UCP_0_W
1773 0x0 , // PA_CL_UCP_1_X
1774 0x0 , // PA_CL_UCP_1_Y
1775 0x0 , // PA_CL_UCP_1_Z
1776 0x0 , // PA_CL_UCP_1_W
1777 0x0 , // PA_CL_UCP_2_X
1778 0x0 , // PA_CL_UCP_2_Y
1779 0x0 , // PA_CL_UCP_2_Z
1780 0x0 , // PA_CL_UCP_2_W
1781 0x0 , // PA_CL_UCP_3_X
1782 0x0 , // PA_CL_UCP_3_Y
1783 0x0 , // PA_CL_UCP_3_Z
1784 0x0 , // PA_CL_UCP_3_W
1785 0x0 , // PA_CL_UCP_4_X
1786 0x0 , // PA_CL_UCP_4_Y
1787 0x0 , // PA_CL_UCP_4_Z
1788 0x0 , // PA_CL_UCP_4_W
1789 0x0 , // PA_CL_UCP_5_X
1790 0x0 , // PA_CL_UCP_5_Y
1791 0x0 , // PA_CL_UCP_5_Z
1792 0x0 // PA_CL_UCP_5_W
1794 static const uint32_t SpiPsInputCntl0Nv10
[] = {
1795 0x0 , // SPI_PS_INPUT_CNTL_0
1796 0x0 , // SPI_PS_INPUT_CNTL_1
1797 0x0 , // SPI_PS_INPUT_CNTL_2
1798 0x0 , // SPI_PS_INPUT_CNTL_3
1799 0x0 , // SPI_PS_INPUT_CNTL_4
1800 0x0 , // SPI_PS_INPUT_CNTL_5
1801 0x0 , // SPI_PS_INPUT_CNTL_6
1802 0x0 , // SPI_PS_INPUT_CNTL_7
1803 0x0 , // SPI_PS_INPUT_CNTL_8
1804 0x0 , // SPI_PS_INPUT_CNTL_9
1805 0x0 , // SPI_PS_INPUT_CNTL_10
1806 0x0 , // SPI_PS_INPUT_CNTL_11
1807 0x0 , // SPI_PS_INPUT_CNTL_12
1808 0x0 , // SPI_PS_INPUT_CNTL_13
1809 0x0 , // SPI_PS_INPUT_CNTL_14
1810 0x0 , // SPI_PS_INPUT_CNTL_15
1811 0x0 , // SPI_PS_INPUT_CNTL_16
1812 0x0 , // SPI_PS_INPUT_CNTL_17
1813 0x0 , // SPI_PS_INPUT_CNTL_18
1814 0x0 , // SPI_PS_INPUT_CNTL_19
1815 0x0 , // SPI_PS_INPUT_CNTL_20
1816 0x0 , // SPI_PS_INPUT_CNTL_21
1817 0x0 , // SPI_PS_INPUT_CNTL_22
1818 0x0 , // SPI_PS_INPUT_CNTL_23
1819 0x0 , // SPI_PS_INPUT_CNTL_24
1820 0x0 , // SPI_PS_INPUT_CNTL_25
1821 0x0 , // SPI_PS_INPUT_CNTL_26
1822 0x0 , // SPI_PS_INPUT_CNTL_27
1823 0x0 , // SPI_PS_INPUT_CNTL_28
1824 0x0 , // SPI_PS_INPUT_CNTL_29
1825 0x0 , // SPI_PS_INPUT_CNTL_30
1826 0x0 , // SPI_PS_INPUT_CNTL_31
1827 0x0 , // SPI_VS_OUT_CONFIG
1829 0x0 , // SPI_PS_INPUT_ENA
1830 0x0 , // SPI_PS_INPUT_ADDR
1831 0x0 , // SPI_INTERP_CONTROL_0
1832 0x2 , // SPI_PS_IN_CONTROL
1834 0x0 , // SPI_BARYC_CNTL
1836 0x0 , // SPI_TMPRING_SIZE
1844 0x0 , // SPI_SHADER_IDX_FORMAT
1845 0x0 , // SPI_SHADER_POS_FORMAT
1846 0x0 , // SPI_SHADER_Z_FORMAT
1847 0x0 // SPI_SHADER_COL_FORMAT
1849 static const uint32_t SxPsDownconvertNv10
[] = {
1850 0x0 , // SX_PS_DOWNCONVERT
1851 0x0 , // SX_BLEND_OPT_EPSILON
1852 0x0 , // SX_BLEND_OPT_CONTROL
1853 0x0 , // SX_MRT0_BLEND_OPT
1854 0x0 , // SX_MRT1_BLEND_OPT
1855 0x0 , // SX_MRT2_BLEND_OPT
1856 0x0 , // SX_MRT3_BLEND_OPT
1857 0x0 , // SX_MRT4_BLEND_OPT
1858 0x0 , // SX_MRT5_BLEND_OPT
1859 0x0 , // SX_MRT6_BLEND_OPT
1860 0x0 , // SX_MRT7_BLEND_OPT
1861 0x0 , // CB_BLEND0_CONTROL
1862 0x0 , // CB_BLEND1_CONTROL
1863 0x0 , // CB_BLEND2_CONTROL
1864 0x0 , // CB_BLEND3_CONTROL
1865 0x0 , // CB_BLEND4_CONTROL
1866 0x0 , // CB_BLEND5_CONTROL
1867 0x0 , // CB_BLEND6_CONTROL
1868 0x0 // CB_BLEND7_CONTROL
1870 static const uint32_t GeMaxOutputPerSubgroupNv10
[] = {
1871 0x0 , // GE_MAX_OUTPUT_PER_SUBGROUP
1872 0x0 , // DB_DEPTH_CONTROL
1874 0x0 , // CB_COLOR_CONTROL
1875 0x0 , // DB_SHADER_CONTROL
1876 0x90000 , // PA_CL_CLIP_CNTL
1877 0x4 , // PA_SU_SC_MODE_CNTL
1878 0x0 , // PA_CL_VTE_CNTL
1879 0x0 , // PA_CL_VS_OUT_CNTL
1880 0x0 // PA_CL_NANINF_CNTL
1882 static const uint32_t PaSuPrimFilterCntlNv10
[] = {
1883 0x0 , // PA_SU_PRIM_FILTER_CNTL
1884 0x0 , // PA_SU_SMALL_PRIM_FILTER_CNTL
1885 0x0 , // PA_CL_OBJPRIM_ID_CNTL
1886 0x0 , // PA_CL_NGG_CNTL
1887 0x0 , // PA_SU_OVER_RASTERIZATION_CNTL
1888 0x0 , // PA_STEREO_CNTL
1889 0x0 // PA_STATE_STEREO_X
1891 static const uint32_t PaSuPointSizeNv10
[] = {
1892 0x0 , // PA_SU_POINT_SIZE
1893 0x0 , // PA_SU_POINT_MINMAX
1894 0x0 , // PA_SU_LINE_CNTL
1895 0x0 // PA_SC_LINE_STIPPLE
1897 static const uint32_t VgtHosMaxTessLevelNv10
[] = {
1898 0x0 , // VGT_HOS_MAX_TESS_LEVEL
1899 0x0 // VGT_HOS_MIN_TESS_LEVEL
1901 static const uint32_t VgtGsModeNv10
[] = {
1902 0x0 , // VGT_GS_MODE
1903 0x0 , // VGT_GS_ONCHIP_CNTL
1904 0x0 , // PA_SC_MODE_CNTL_0
1905 0x0 , // PA_SC_MODE_CNTL_1
1906 0x0 , // VGT_ENHANCE
1907 0x100 , // VGT_GS_PER_ES
1908 0x80 , // VGT_ES_PER_GS
1909 0x2 , // VGT_GS_PER_VS
1910 0x0 , // VGT_GSVS_RING_OFFSET_1
1911 0x0 , // VGT_GSVS_RING_OFFSET_2
1912 0x0 , // VGT_GSVS_RING_OFFSET_3
1913 0x0 // VGT_GS_OUT_PRIM_TYPE
1915 static const uint32_t VgtPrimitiveidEnNv10
[] = {
1916 0x0 // VGT_PRIMITIVEID_EN
1918 static const uint32_t VgtPrimitiveidResetNv10
[] = {
1919 0x0 // VGT_PRIMITIVEID_RESET
1921 static const uint32_t VgtDrawPayloadCntlNv10
[] = {
1922 0x0 , // VGT_DRAW_PAYLOAD_CNTL
1924 0x0 , // VGT_INSTANCE_STEP_RATE_0
1925 0x0 , // VGT_INSTANCE_STEP_RATE_1
1926 0x0 , // IA_MULTI_VGT_PARAM
1927 0x0 , // VGT_ESGS_RING_ITEMSIZE
1928 0x0 , // VGT_GSVS_RING_ITEMSIZE
1929 0x0 , // VGT_REUSE_OFF
1930 0x0 , // VGT_VTX_CNT_EN
1931 0x0 , // DB_HTILE_SURFACE
1932 0x0 , // DB_SRESULTS_COMPARE_STATE0
1933 0x0 , // DB_SRESULTS_COMPARE_STATE1
1934 0x0 , // DB_PRELOAD_CONTROL
1936 0x0 , // VGT_STRMOUT_BUFFER_SIZE_0
1937 0x0 , // VGT_STRMOUT_VTX_STRIDE_0
1939 0x0 , // VGT_STRMOUT_BUFFER_OFFSET_0
1940 0x0 , // VGT_STRMOUT_BUFFER_SIZE_1
1941 0x0 , // VGT_STRMOUT_VTX_STRIDE_1
1943 0x0 , // VGT_STRMOUT_BUFFER_OFFSET_1
1944 0x0 , // VGT_STRMOUT_BUFFER_SIZE_2
1945 0x0 , // VGT_STRMOUT_VTX_STRIDE_2
1947 0x0 , // VGT_STRMOUT_BUFFER_OFFSET_2
1948 0x0 , // VGT_STRMOUT_BUFFER_SIZE_3
1949 0x0 , // VGT_STRMOUT_VTX_STRIDE_3
1951 0x0 , // VGT_STRMOUT_BUFFER_OFFSET_3
1958 0x0 , // VGT_STRMOUT_DRAW_OPAQUE_OFFSET
1959 0x0 , // VGT_STRMOUT_DRAW_OPAQUE_BUFFER_FILLED_SIZE
1960 0x0 , // VGT_STRMOUT_DRAW_OPAQUE_VERTEX_STRIDE
1962 0x0 , // VGT_GS_MAX_VERT_OUT
1967 0x0 , // GE_NGG_SUBGRP_CNTL
1968 0x0 , // VGT_TESS_DISTRIBUTION
1969 0x0 , // VGT_SHADER_STAGES_EN
1970 0x0 , // VGT_LS_HS_CONFIG
1971 0x0 , // VGT_GS_VERT_ITEMSIZE
1972 0x0 , // VGT_GS_VERT_ITEMSIZE_1
1973 0x0 , // VGT_GS_VERT_ITEMSIZE_2
1974 0x0 , // VGT_GS_VERT_ITEMSIZE_3
1975 0x0 , // VGT_TF_PARAM
1976 0x0 , // DB_ALPHA_TO_MASK
1977 0x0 , // VGT_DISPATCH_DRAW_INDEX
1978 0x0 , // PA_SU_POLY_OFFSET_DB_FMT_CNTL
1979 0x0 , // PA_SU_POLY_OFFSET_CLAMP
1980 0x0 , // PA_SU_POLY_OFFSET_FRONT_SCALE
1981 0x0 , // PA_SU_POLY_OFFSET_FRONT_OFFSET
1982 0x0 , // PA_SU_POLY_OFFSET_BACK_SCALE
1983 0x0 , // PA_SU_POLY_OFFSET_BACK_OFFSET
1984 0x0 , // VGT_GS_INSTANCE_CNT
1985 0x0 , // VGT_STRMOUT_CONFIG
1986 0x0 // VGT_STRMOUT_BUFFER_CONFIG
1988 static const uint32_t PaScCentroidPriority0Nv10
[] = {
1989 0x0 , // PA_SC_CENTROID_PRIORITY_0
1990 0x0 , // PA_SC_CENTROID_PRIORITY_1
1991 0x1000 , // PA_SC_LINE_CNTL
1992 0x0 , // PA_SC_AA_CONFIG
1993 0x5 , // PA_SU_VTX_CNTL
1994 0x3f800000, // PA_CL_GB_VERT_CLIP_ADJ
1995 0x3f800000, // PA_CL_GB_VERT_DISC_ADJ
1996 0x3f800000, // PA_CL_GB_HORZ_CLIP_ADJ
1997 0x3f800000, // PA_CL_GB_HORZ_DISC_ADJ
1998 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_0
1999 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_1
2000 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_2
2001 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_3
2002 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_0
2003 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_1
2004 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_2
2005 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_3
2006 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_0
2007 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_1
2008 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_2
2009 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_3
2010 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_0
2011 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_1
2012 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_2
2013 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_3
2014 0xffffffff, // PA_SC_AA_MASK_X0Y0_X1Y0
2015 0xffffffff, // PA_SC_AA_MASK_X0Y1_X1Y1
2016 0x0 , // PA_SC_SHADER_CONTROL
2017 0x3 , // PA_SC_BINNER_CNTL_0
2018 0x0 , // PA_SC_BINNER_CNTL_1
2019 0x100000 , // PA_SC_CONSERVATIVE_RASTERIZATION_CNTL
2020 0x0 , // PA_SC_NGG_MODE_CNTL
2022 0x1e , // VGT_VERTEX_REUSE_BLOCK_CNTL
2023 0x20 , // VGT_OUT_DEALLOC_CNTL
2024 0x0 , // CB_COLOR0_BASE
2027 0x0 , // CB_COLOR0_VIEW
2028 0x0 , // CB_COLOR0_INFO
2029 0x0 , // CB_COLOR0_ATTRIB
2030 0x0 , // CB_COLOR0_DCC_CONTROL
2031 0x0 , // CB_COLOR0_CMASK
2033 0x0 , // CB_COLOR0_FMASK
2035 0x0 , // CB_COLOR0_CLEAR_WORD0
2036 0x0 , // CB_COLOR0_CLEAR_WORD1
2037 0x0 , // CB_COLOR0_DCC_BASE
2039 0x0 , // CB_COLOR1_BASE
2042 0x0 , // CB_COLOR1_VIEW
2043 0x0 , // CB_COLOR1_INFO
2044 0x0 , // CB_COLOR1_ATTRIB
2045 0x0 , // CB_COLOR1_DCC_CONTROL
2046 0x0 , // CB_COLOR1_CMASK
2048 0x0 , // CB_COLOR1_FMASK
2050 0x0 , // CB_COLOR1_CLEAR_WORD0
2051 0x0 , // CB_COLOR1_CLEAR_WORD1
2052 0x0 , // CB_COLOR1_DCC_BASE
2054 0x0 , // CB_COLOR2_BASE
2057 0x0 , // CB_COLOR2_VIEW
2058 0x0 , // CB_COLOR2_INFO
2059 0x0 , // CB_COLOR2_ATTRIB
2060 0x0 , // CB_COLOR2_DCC_CONTROL
2061 0x0 , // CB_COLOR2_CMASK
2063 0x0 , // CB_COLOR2_FMASK
2065 0x0 , // CB_COLOR2_CLEAR_WORD0
2066 0x0 , // CB_COLOR2_CLEAR_WORD1
2067 0x0 , // CB_COLOR2_DCC_BASE
2069 0x0 , // CB_COLOR3_BASE
2072 0x0 , // CB_COLOR3_VIEW
2073 0x0 , // CB_COLOR3_INFO
2074 0x0 , // CB_COLOR3_ATTRIB
2075 0x0 , // CB_COLOR3_DCC_CONTROL
2076 0x0 , // CB_COLOR3_CMASK
2078 0x0 , // CB_COLOR3_FMASK
2080 0x0 , // CB_COLOR3_CLEAR_WORD0
2081 0x0 , // CB_COLOR3_CLEAR_WORD1
2082 0x0 , // CB_COLOR3_DCC_BASE
2084 0x0 , // CB_COLOR4_BASE
2087 0x0 , // CB_COLOR4_VIEW
2088 0x0 , // CB_COLOR4_INFO
2089 0x0 , // CB_COLOR4_ATTRIB
2090 0x0 , // CB_COLOR4_DCC_CONTROL
2091 0x0 , // CB_COLOR4_CMASK
2093 0x0 , // CB_COLOR4_FMASK
2095 0x0 , // CB_COLOR4_CLEAR_WORD0
2096 0x0 , // CB_COLOR4_CLEAR_WORD1
2097 0x0 , // CB_COLOR4_DCC_BASE
2099 0x0 , // CB_COLOR5_BASE
2102 0x0 , // CB_COLOR5_VIEW
2103 0x0 , // CB_COLOR5_INFO
2104 0x0 , // CB_COLOR5_ATTRIB
2105 0x0 , // CB_COLOR5_DCC_CONTROL
2106 0x0 , // CB_COLOR5_CMASK
2108 0x0 , // CB_COLOR5_FMASK
2110 0x0 , // CB_COLOR5_CLEAR_WORD0
2111 0x0 , // CB_COLOR5_CLEAR_WORD1
2112 0x0 , // CB_COLOR5_DCC_BASE
2114 0x0 , // CB_COLOR6_BASE
2117 0x0 , // CB_COLOR6_VIEW
2118 0x0 , // CB_COLOR6_INFO
2119 0x0 , // CB_COLOR6_ATTRIB
2120 0x0 , // CB_COLOR6_DCC_CONTROL
2121 0x0 , // CB_COLOR6_CMASK
2123 0x0 , // CB_COLOR6_FMASK
2125 0x0 , // CB_COLOR6_CLEAR_WORD0
2126 0x0 , // CB_COLOR6_CLEAR_WORD1
2127 0x0 , // CB_COLOR6_DCC_BASE
2129 0x0 , // CB_COLOR7_BASE
2132 0x0 , // CB_COLOR7_VIEW
2133 0x0 , // CB_COLOR7_INFO
2134 0x0 , // CB_COLOR7_ATTRIB
2135 0x0 , // CB_COLOR7_DCC_CONTROL
2136 0x0 , // CB_COLOR7_CMASK
2138 0x0 , // CB_COLOR7_FMASK
2140 0x0 , // CB_COLOR7_CLEAR_WORD0
2141 0x0 , // CB_COLOR7_CLEAR_WORD1
2142 0x0 , // CB_COLOR7_DCC_BASE
2144 0x0 , // CB_COLOR0_BASE_EXT
2145 0x0 , // CB_COLOR1_BASE_EXT
2146 0x0 , // CB_COLOR2_BASE_EXT
2147 0x0 , // CB_COLOR3_BASE_EXT
2148 0x0 , // CB_COLOR4_BASE_EXT
2149 0x0 , // CB_COLOR5_BASE_EXT
2150 0x0 , // CB_COLOR6_BASE_EXT
2151 0x0 , // CB_COLOR7_BASE_EXT
2152 0x0 , // CB_COLOR0_CMASK_BASE_EXT
2153 0x0 , // CB_COLOR1_CMASK_BASE_EXT
2154 0x0 , // CB_COLOR2_CMASK_BASE_EXT
2155 0x0 , // CB_COLOR3_CMASK_BASE_EXT
2156 0x0 , // CB_COLOR4_CMASK_BASE_EXT
2157 0x0 , // CB_COLOR5_CMASK_BASE_EXT
2158 0x0 , // CB_COLOR6_CMASK_BASE_EXT
2159 0x0 , // CB_COLOR7_CMASK_BASE_EXT
2160 0x0 , // CB_COLOR0_FMASK_BASE_EXT
2161 0x0 , // CB_COLOR1_FMASK_BASE_EXT
2162 0x0 , // CB_COLOR2_FMASK_BASE_EXT
2163 0x0 , // CB_COLOR3_FMASK_BASE_EXT
2164 0x0 , // CB_COLOR4_FMASK_BASE_EXT
2165 0x0 , // CB_COLOR5_FMASK_BASE_EXT
2166 0x0 , // CB_COLOR6_FMASK_BASE_EXT
2167 0x0 , // CB_COLOR7_FMASK_BASE_EXT
2168 0x0 , // CB_COLOR0_DCC_BASE_EXT
2169 0x0 , // CB_COLOR1_DCC_BASE_EXT
2170 0x0 , // CB_COLOR2_DCC_BASE_EXT
2171 0x0 , // CB_COLOR3_DCC_BASE_EXT
2172 0x0 , // CB_COLOR4_DCC_BASE_EXT
2173 0x0 , // CB_COLOR5_DCC_BASE_EXT
2174 0x0 , // CB_COLOR6_DCC_BASE_EXT
2175 0x0 , // CB_COLOR7_DCC_BASE_EXT
2176 0x0 , // CB_COLOR0_ATTRIB2
2177 0x0 , // CB_COLOR1_ATTRIB2
2178 0x0 , // CB_COLOR2_ATTRIB2
2179 0x0 , // CB_COLOR3_ATTRIB2
2180 0x0 , // CB_COLOR4_ATTRIB2
2181 0x0 , // CB_COLOR5_ATTRIB2
2182 0x0 , // CB_COLOR6_ATTRIB2
2183 0x0 , // CB_COLOR7_ATTRIB2
2184 0x0 , // CB_COLOR0_ATTRIB3
2185 0x0 , // CB_COLOR1_ATTRIB3
2186 0x0 , // CB_COLOR2_ATTRIB3
2187 0x0 , // CB_COLOR3_ATTRIB3
2188 0x0 , // CB_COLOR4_ATTRIB3
2189 0x0 , // CB_COLOR5_ATTRIB3
2190 0x0 , // CB_COLOR6_ATTRIB3
2191 0x0 // CB_COLOR7_ATTRIB3
2194 set_context_reg_seq_array(cs
, R_028000_DB_RENDER_CONTROL
, SET(DbRenderControlNv10
));
2195 set_context_reg_seq_array(cs
, R_0281E8_COHER_DEST_BASE_HI_0
, SET(CoherDestBaseHi0Nv10
));
2196 set_context_reg_seq_array(cs
, R_02840C_VGT_MULTI_PRIM_IB_RESET_INDX
, SET(VgtMultiPrimIbResetIndxNv10
));
2197 set_context_reg_seq_array(cs
, R_028644_SPI_PS_INPUT_CNTL_0
, SET(SpiPsInputCntl0Nv10
));
2198 set_context_reg_seq_array(cs
, R_028754_SX_PS_DOWNCONVERT
, SET(SxPsDownconvertNv10
));
2199 set_context_reg_seq_array(cs
, R_0287FC_GE_MAX_OUTPUT_PER_SUBGROUP
, SET(GeMaxOutputPerSubgroupNv10
));
2200 set_context_reg_seq_array(cs
, R_02882C_PA_SU_PRIM_FILTER_CNTL
, SET(PaSuPrimFilterCntlNv10
));
2201 set_context_reg_seq_array(cs
, R_028A00_PA_SU_POINT_SIZE
, SET(PaSuPointSizeNv10
));
2202 set_context_reg_seq_array(cs
, R_028A18_VGT_HOS_MAX_TESS_LEVEL
, SET(VgtHosMaxTessLevelNv10
));
2203 set_context_reg_seq_array(cs
, R_028A40_VGT_GS_MODE
, SET(VgtGsModeNv10
));
2204 set_context_reg_seq_array(cs
, R_028A84_VGT_PRIMITIVEID_EN
, SET(VgtPrimitiveidEnNv10
));
2205 set_context_reg_seq_array(cs
, R_028A8C_VGT_PRIMITIVEID_RESET
, SET(VgtPrimitiveidResetNv10
));
2206 set_context_reg_seq_array(cs
, R_028A98_VGT_DRAW_PAYLOAD_CNTL
, SET(VgtDrawPayloadCntlNv10
));
2207 set_context_reg_seq_array(cs
, R_028BD4_PA_SC_CENTROID_PRIORITY_0
, SET(PaScCentroidPriority0Nv10
));
2209 for (unsigned i
= 0; i
< num_reg_pairs
; i
++)
2210 set_context_reg_seq_array(cs
, reg_offsets
[i
], 1, ®_values
[i
]);
2214 * Emulate CLEAR_STATE. Additionally, initialize num_reg_pairs registers specified
2215 * via reg_offsets and reg_values.
2217 static void gfx103_emulate_clear_state(struct radeon_cmdbuf
*cs
, unsigned num_reg_pairs
,
2218 unsigned *reg_offsets
, uint32_t *reg_values
,
2219 set_context_reg_seq_array_fn set_context_reg_seq_array
)
2221 static const uint32_t DbRenderControlGfx103
[] = {
2222 0x0 , // DB_RENDER_CONTROL
2223 0x0 , // DB_COUNT_CONTROL
2224 0x0 , // DB_DEPTH_VIEW
2225 0x0 , // DB_RENDER_OVERRIDE
2226 0x0 , // DB_RENDER_OVERRIDE2
2227 0x0 , // DB_HTILE_DATA_BASE
2229 0x0 , // DB_DEPTH_SIZE_XY
2230 0x0 , // DB_DEPTH_BOUNDS_MIN
2231 0x0 , // DB_DEPTH_BOUNDS_MAX
2232 0x0 , // DB_STENCIL_CLEAR
2233 0x0 , // DB_DEPTH_CLEAR
2234 0x0 , // PA_SC_SCREEN_SCISSOR_TL
2235 0x40004000, // PA_SC_SCREEN_SCISSOR_BR
2236 0x0 , // DB_DFSM_CONTROL
2237 0x0 , // DB_RESERVED_REG_2
2239 0x0 , // DB_STENCIL_INFO
2240 0x0 , // DB_Z_READ_BASE
2241 0x0 , // DB_STENCIL_READ_BASE
2242 0x0 , // DB_Z_WRITE_BASE
2243 0x0 , // DB_STENCIL_WRITE_BASE
2248 0x0 , // DB_Z_READ_BASE_HI
2249 0x0 , // DB_STENCIL_READ_BASE_HI
2250 0x0 , // DB_Z_WRITE_BASE_HI
2251 0x0 , // DB_STENCIL_WRITE_BASE_HI
2252 0x0 , // DB_HTILE_DATA_BASE_HI
2253 0x0 , // DB_RMI_L2_CACHE_CONTROL
2254 0x0 , // TA_BC_BASE_ADDR
2255 0x0 // TA_BC_BASE_ADDR_HI
2257 static const uint32_t CoherDestBaseHi0Gfx103
[] = {
2258 0x0 , // COHER_DEST_BASE_HI_0
2259 0x0 , // COHER_DEST_BASE_HI_1
2260 0x0 , // COHER_DEST_BASE_HI_2
2261 0x0 , // COHER_DEST_BASE_HI_3
2262 0x0 , // COHER_DEST_BASE_2
2263 0x0 , // COHER_DEST_BASE_3
2264 0x0 , // PA_SC_WINDOW_OFFSET
2265 0x80000000, // PA_SC_WINDOW_SCISSOR_TL
2266 0x40004000, // PA_SC_WINDOW_SCISSOR_BR
2267 0xffff , // PA_SC_CLIPRECT_RULE
2268 0x0 , // PA_SC_CLIPRECT_0_TL
2269 0x40004000, // PA_SC_CLIPRECT_0_BR
2270 0x0 , // PA_SC_CLIPRECT_1_TL
2271 0x40004000, // PA_SC_CLIPRECT_1_BR
2272 0x0 , // PA_SC_CLIPRECT_2_TL
2273 0x40004000, // PA_SC_CLIPRECT_2_BR
2274 0x0 , // PA_SC_CLIPRECT_3_TL
2275 0x40004000, // PA_SC_CLIPRECT_3_BR
2276 0xaa99aaaa, // PA_SC_EDGERULE
2277 0x0 , // PA_SU_HARDWARE_SCREEN_OFFSET
2278 0xffffffff, // CB_TARGET_MASK
2279 0xffffffff, // CB_SHADER_MASK
2280 0x80000000, // PA_SC_GENERIC_SCISSOR_TL
2281 0x40004000, // PA_SC_GENERIC_SCISSOR_BR
2282 0x0 , // COHER_DEST_BASE_0
2283 0x0 , // COHER_DEST_BASE_1
2284 0x80000000, // PA_SC_VPORT_SCISSOR_0_TL
2285 0x40004000, // PA_SC_VPORT_SCISSOR_0_BR
2286 0x80000000, // PA_SC_VPORT_SCISSOR_1_TL
2287 0x40004000, // PA_SC_VPORT_SCISSOR_1_BR
2288 0x80000000, // PA_SC_VPORT_SCISSOR_2_TL
2289 0x40004000, // PA_SC_VPORT_SCISSOR_2_BR
2290 0x80000000, // PA_SC_VPORT_SCISSOR_3_TL
2291 0x40004000, // PA_SC_VPORT_SCISSOR_3_BR
2292 0x80000000, // PA_SC_VPORT_SCISSOR_4_TL
2293 0x40004000, // PA_SC_VPORT_SCISSOR_4_BR
2294 0x80000000, // PA_SC_VPORT_SCISSOR_5_TL
2295 0x40004000, // PA_SC_VPORT_SCISSOR_5_BR
2296 0x80000000, // PA_SC_VPORT_SCISSOR_6_TL
2297 0x40004000, // PA_SC_VPORT_SCISSOR_6_BR
2298 0x80000000, // PA_SC_VPORT_SCISSOR_7_TL
2299 0x40004000, // PA_SC_VPORT_SCISSOR_7_BR
2300 0x80000000, // PA_SC_VPORT_SCISSOR_8_TL
2301 0x40004000, // PA_SC_VPORT_SCISSOR_8_BR
2302 0x80000000, // PA_SC_VPORT_SCISSOR_9_TL
2303 0x40004000, // PA_SC_VPORT_SCISSOR_9_BR
2304 0x80000000, // PA_SC_VPORT_SCISSOR_10_TL
2305 0x40004000, // PA_SC_VPORT_SCISSOR_10_BR
2306 0x80000000, // PA_SC_VPORT_SCISSOR_11_TL
2307 0x40004000, // PA_SC_VPORT_SCISSOR_11_BR
2308 0x80000000, // PA_SC_VPORT_SCISSOR_12_TL
2309 0x40004000, // PA_SC_VPORT_SCISSOR_12_BR
2310 0x80000000, // PA_SC_VPORT_SCISSOR_13_TL
2311 0x40004000, // PA_SC_VPORT_SCISSOR_13_BR
2312 0x80000000, // PA_SC_VPORT_SCISSOR_14_TL
2313 0x40004000, // PA_SC_VPORT_SCISSOR_14_BR
2314 0x80000000, // PA_SC_VPORT_SCISSOR_15_TL
2315 0x40004000, // PA_SC_VPORT_SCISSOR_15_BR
2316 0x0 , // PA_SC_VPORT_ZMIN_0
2317 0x3f800000, // PA_SC_VPORT_ZMAX_0
2318 0x0 , // PA_SC_VPORT_ZMIN_1
2319 0x3f800000, // PA_SC_VPORT_ZMAX_1
2320 0x0 , // PA_SC_VPORT_ZMIN_2
2321 0x3f800000, // PA_SC_VPORT_ZMAX_2
2322 0x0 , // PA_SC_VPORT_ZMIN_3
2323 0x3f800000, // PA_SC_VPORT_ZMAX_3
2324 0x0 , // PA_SC_VPORT_ZMIN_4
2325 0x3f800000, // PA_SC_VPORT_ZMAX_4
2326 0x0 , // PA_SC_VPORT_ZMIN_5
2327 0x3f800000, // PA_SC_VPORT_ZMAX_5
2328 0x0 , // PA_SC_VPORT_ZMIN_6
2329 0x3f800000, // PA_SC_VPORT_ZMAX_6
2330 0x0 , // PA_SC_VPORT_ZMIN_7
2331 0x3f800000, // PA_SC_VPORT_ZMAX_7
2332 0x0 , // PA_SC_VPORT_ZMIN_8
2333 0x3f800000, // PA_SC_VPORT_ZMAX_8
2334 0x0 , // PA_SC_VPORT_ZMIN_9
2335 0x3f800000, // PA_SC_VPORT_ZMAX_9
2336 0x0 , // PA_SC_VPORT_ZMIN_10
2337 0x3f800000, // PA_SC_VPORT_ZMAX_10
2338 0x0 , // PA_SC_VPORT_ZMIN_11
2339 0x3f800000, // PA_SC_VPORT_ZMAX_11
2340 0x0 , // PA_SC_VPORT_ZMIN_12
2341 0x3f800000, // PA_SC_VPORT_ZMAX_12
2342 0x0 , // PA_SC_VPORT_ZMIN_13
2343 0x3f800000, // PA_SC_VPORT_ZMAX_13
2344 0x0 , // PA_SC_VPORT_ZMIN_14
2345 0x3f800000, // PA_SC_VPORT_ZMAX_14
2346 0x0 , // PA_SC_VPORT_ZMIN_15
2347 0x3f800000, // PA_SC_VPORT_ZMAX_15
2348 0x0 , // PA_SC_RASTER_CONFIG
2349 0x0 , // PA_SC_RASTER_CONFIG_1
2351 0x0 // PA_SC_TILE_STEERING_OVERRIDE
2353 static const uint32_t VgtMultiPrimIbResetIndxGfx103
[] = {
2354 0x0 , // VGT_MULTI_PRIM_IB_RESET_INDX
2355 0x0 , // CB_RMI_GL2_CACHE_CONTROL
2356 0x0 , // CB_BLEND_RED
2357 0x0 , // CB_BLEND_GREEN
2358 0x0 , // CB_BLEND_BLUE
2359 0x0 , // CB_BLEND_ALPHA
2360 0x0 , // CB_DCC_CONTROL
2361 0x0 , // CB_COVERAGE_OUT_CONTROL
2362 0x0 , // DB_STENCIL_CONTROL
2363 0x1000000 , // DB_STENCILREFMASK
2364 0x1000000 , // DB_STENCILREFMASK_BF
2366 0x0 , // PA_CL_VPORT_XSCALE
2367 0x0 , // PA_CL_VPORT_XOFFSET
2368 0x0 , // PA_CL_VPORT_YSCALE
2369 0x0 , // PA_CL_VPORT_YOFFSET
2370 0x0 , // PA_CL_VPORT_ZSCALE
2371 0x0 , // PA_CL_VPORT_ZOFFSET
2372 0x0 , // PA_CL_VPORT_XSCALE_1
2373 0x0 , // PA_CL_VPORT_XOFFSET_1
2374 0x0 , // PA_CL_VPORT_YSCALE_1
2375 0x0 , // PA_CL_VPORT_YOFFSET_1
2376 0x0 , // PA_CL_VPORT_ZSCALE_1
2377 0x0 , // PA_CL_VPORT_ZOFFSET_1
2378 0x0 , // PA_CL_VPORT_XSCALE_2
2379 0x0 , // PA_CL_VPORT_XOFFSET_2
2380 0x0 , // PA_CL_VPORT_YSCALE_2
2381 0x0 , // PA_CL_VPORT_YOFFSET_2
2382 0x0 , // PA_CL_VPORT_ZSCALE_2
2383 0x0 , // PA_CL_VPORT_ZOFFSET_2
2384 0x0 , // PA_CL_VPORT_XSCALE_3
2385 0x0 , // PA_CL_VPORT_XOFFSET_3
2386 0x0 , // PA_CL_VPORT_YSCALE_3
2387 0x0 , // PA_CL_VPORT_YOFFSET_3
2388 0x0 , // PA_CL_VPORT_ZSCALE_3
2389 0x0 , // PA_CL_VPORT_ZOFFSET_3
2390 0x0 , // PA_CL_VPORT_XSCALE_4
2391 0x0 , // PA_CL_VPORT_XOFFSET_4
2392 0x0 , // PA_CL_VPORT_YSCALE_4
2393 0x0 , // PA_CL_VPORT_YOFFSET_4
2394 0x0 , // PA_CL_VPORT_ZSCALE_4
2395 0x0 , // PA_CL_VPORT_ZOFFSET_4
2396 0x0 , // PA_CL_VPORT_XSCALE_5
2397 0x0 , // PA_CL_VPORT_XOFFSET_5
2398 0x0 , // PA_CL_VPORT_YSCALE_5
2399 0x0 , // PA_CL_VPORT_YOFFSET_5
2400 0x0 , // PA_CL_VPORT_ZSCALE_5
2401 0x0 , // PA_CL_VPORT_ZOFFSET_5
2402 0x0 , // PA_CL_VPORT_XSCALE_6
2403 0x0 , // PA_CL_VPORT_XOFFSET_6
2404 0x0 , // PA_CL_VPORT_YSCALE_6
2405 0x0 , // PA_CL_VPORT_YOFFSET_6
2406 0x0 , // PA_CL_VPORT_ZSCALE_6
2407 0x0 , // PA_CL_VPORT_ZOFFSET_6
2408 0x0 , // PA_CL_VPORT_XSCALE_7
2409 0x0 , // PA_CL_VPORT_XOFFSET_7
2410 0x0 , // PA_CL_VPORT_YSCALE_7
2411 0x0 , // PA_CL_VPORT_YOFFSET_7
2412 0x0 , // PA_CL_VPORT_ZSCALE_7
2413 0x0 , // PA_CL_VPORT_ZOFFSET_7
2414 0x0 , // PA_CL_VPORT_XSCALE_8
2415 0x0 , // PA_CL_VPORT_XOFFSET_8
2416 0x0 , // PA_CL_VPORT_YSCALE_8
2417 0x0 , // PA_CL_VPORT_YOFFSET_8
2418 0x0 , // PA_CL_VPORT_ZSCALE_8
2419 0x0 , // PA_CL_VPORT_ZOFFSET_8
2420 0x0 , // PA_CL_VPORT_XSCALE_9
2421 0x0 , // PA_CL_VPORT_XOFFSET_9
2422 0x0 , // PA_CL_VPORT_YSCALE_9
2423 0x0 , // PA_CL_VPORT_YOFFSET_9
2424 0x0 , // PA_CL_VPORT_ZSCALE_9
2425 0x0 , // PA_CL_VPORT_ZOFFSET_9
2426 0x0 , // PA_CL_VPORT_XSCALE_10
2427 0x0 , // PA_CL_VPORT_XOFFSET_10
2428 0x0 , // PA_CL_VPORT_YSCALE_10
2429 0x0 , // PA_CL_VPORT_YOFFSET_10
2430 0x0 , // PA_CL_VPORT_ZSCALE_10
2431 0x0 , // PA_CL_VPORT_ZOFFSET_10
2432 0x0 , // PA_CL_VPORT_XSCALE_11
2433 0x0 , // PA_CL_VPORT_XOFFSET_11
2434 0x0 , // PA_CL_VPORT_YSCALE_11
2435 0x0 , // PA_CL_VPORT_YOFFSET_11
2436 0x0 , // PA_CL_VPORT_ZSCALE_11
2437 0x0 , // PA_CL_VPORT_ZOFFSET_11
2438 0x0 , // PA_CL_VPORT_XSCALE_12
2439 0x0 , // PA_CL_VPORT_XOFFSET_12
2440 0x0 , // PA_CL_VPORT_YSCALE_12
2441 0x0 , // PA_CL_VPORT_YOFFSET_12
2442 0x0 , // PA_CL_VPORT_ZSCALE_12
2443 0x0 , // PA_CL_VPORT_ZOFFSET_12
2444 0x0 , // PA_CL_VPORT_XSCALE_13
2445 0x0 , // PA_CL_VPORT_XOFFSET_13
2446 0x0 , // PA_CL_VPORT_YSCALE_13
2447 0x0 , // PA_CL_VPORT_YOFFSET_13
2448 0x0 , // PA_CL_VPORT_ZSCALE_13
2449 0x0 , // PA_CL_VPORT_ZOFFSET_13
2450 0x0 , // PA_CL_VPORT_XSCALE_14
2451 0x0 , // PA_CL_VPORT_XOFFSET_14
2452 0x0 , // PA_CL_VPORT_YSCALE_14
2453 0x0 , // PA_CL_VPORT_YOFFSET_14
2454 0x0 , // PA_CL_VPORT_ZSCALE_14
2455 0x0 , // PA_CL_VPORT_ZOFFSET_14
2456 0x0 , // PA_CL_VPORT_XSCALE_15
2457 0x0 , // PA_CL_VPORT_XOFFSET_15
2458 0x0 , // PA_CL_VPORT_YSCALE_15
2459 0x0 , // PA_CL_VPORT_YOFFSET_15
2460 0x0 , // PA_CL_VPORT_ZSCALE_15
2461 0x0 , // PA_CL_VPORT_ZOFFSET_15
2462 0x0 , // PA_CL_UCP_0_X
2463 0x0 , // PA_CL_UCP_0_Y
2464 0x0 , // PA_CL_UCP_0_Z
2465 0x0 , // PA_CL_UCP_0_W
2466 0x0 , // PA_CL_UCP_1_X
2467 0x0 , // PA_CL_UCP_1_Y
2468 0x0 , // PA_CL_UCP_1_Z
2469 0x0 , // PA_CL_UCP_1_W
2470 0x0 , // PA_CL_UCP_2_X
2471 0x0 , // PA_CL_UCP_2_Y
2472 0x0 , // PA_CL_UCP_2_Z
2473 0x0 , // PA_CL_UCP_2_W
2474 0x0 , // PA_CL_UCP_3_X
2475 0x0 , // PA_CL_UCP_3_Y
2476 0x0 , // PA_CL_UCP_3_Z
2477 0x0 , // PA_CL_UCP_3_W
2478 0x0 , // PA_CL_UCP_4_X
2479 0x0 , // PA_CL_UCP_4_Y
2480 0x0 , // PA_CL_UCP_4_Z
2481 0x0 , // PA_CL_UCP_4_W
2482 0x0 , // PA_CL_UCP_5_X
2483 0x0 , // PA_CL_UCP_5_Y
2484 0x0 , // PA_CL_UCP_5_Z
2485 0x0 // PA_CL_UCP_5_W
2487 static const uint32_t SpiPsInputCntl0Gfx103
[] = {
2488 0x0 , // SPI_PS_INPUT_CNTL_0
2489 0x0 , // SPI_PS_INPUT_CNTL_1
2490 0x0 , // SPI_PS_INPUT_CNTL_2
2491 0x0 , // SPI_PS_INPUT_CNTL_3
2492 0x0 , // SPI_PS_INPUT_CNTL_4
2493 0x0 , // SPI_PS_INPUT_CNTL_5
2494 0x0 , // SPI_PS_INPUT_CNTL_6
2495 0x0 , // SPI_PS_INPUT_CNTL_7
2496 0x0 , // SPI_PS_INPUT_CNTL_8
2497 0x0 , // SPI_PS_INPUT_CNTL_9
2498 0x0 , // SPI_PS_INPUT_CNTL_10
2499 0x0 , // SPI_PS_INPUT_CNTL_11
2500 0x0 , // SPI_PS_INPUT_CNTL_12
2501 0x0 , // SPI_PS_INPUT_CNTL_13
2502 0x0 , // SPI_PS_INPUT_CNTL_14
2503 0x0 , // SPI_PS_INPUT_CNTL_15
2504 0x0 , // SPI_PS_INPUT_CNTL_16
2505 0x0 , // SPI_PS_INPUT_CNTL_17
2506 0x0 , // SPI_PS_INPUT_CNTL_18
2507 0x0 , // SPI_PS_INPUT_CNTL_19
2508 0x0 , // SPI_PS_INPUT_CNTL_20
2509 0x0 , // SPI_PS_INPUT_CNTL_21
2510 0x0 , // SPI_PS_INPUT_CNTL_22
2511 0x0 , // SPI_PS_INPUT_CNTL_23
2512 0x0 , // SPI_PS_INPUT_CNTL_24
2513 0x0 , // SPI_PS_INPUT_CNTL_25
2514 0x0 , // SPI_PS_INPUT_CNTL_26
2515 0x0 , // SPI_PS_INPUT_CNTL_27
2516 0x0 , // SPI_PS_INPUT_CNTL_28
2517 0x0 , // SPI_PS_INPUT_CNTL_29
2518 0x0 , // SPI_PS_INPUT_CNTL_30
2519 0x0 , // SPI_PS_INPUT_CNTL_31
2520 0x0 , // SPI_VS_OUT_CONFIG
2522 0x0 , // SPI_PS_INPUT_ENA
2523 0x0 , // SPI_PS_INPUT_ADDR
2524 0x0 , // SPI_INTERP_CONTROL_0
2525 0x2 , // SPI_PS_IN_CONTROL
2527 0x0 , // SPI_BARYC_CNTL
2529 0x0 , // SPI_TMPRING_SIZE
2537 0x0 , // SPI_SHADER_IDX_FORMAT
2538 0x0 , // SPI_SHADER_POS_FORMAT
2539 0x0 , // SPI_SHADER_Z_FORMAT
2540 0x0 // SPI_SHADER_COL_FORMAT
2542 static const uint32_t SxPsDownconvertControlGfx103
[] = {
2543 0x0 , // SX_PS_DOWNCONVERT_CONTROL
2544 0x0 , // SX_PS_DOWNCONVERT
2545 0x0 , // SX_BLEND_OPT_EPSILON
2546 0x0 , // SX_BLEND_OPT_CONTROL
2547 0x0 , // SX_MRT0_BLEND_OPT
2548 0x0 , // SX_MRT1_BLEND_OPT
2549 0x0 , // SX_MRT2_BLEND_OPT
2550 0x0 , // SX_MRT3_BLEND_OPT
2551 0x0 , // SX_MRT4_BLEND_OPT
2552 0x0 , // SX_MRT5_BLEND_OPT
2553 0x0 , // SX_MRT6_BLEND_OPT
2554 0x0 , // SX_MRT7_BLEND_OPT
2555 0x0 , // CB_BLEND0_CONTROL
2556 0x0 , // CB_BLEND1_CONTROL
2557 0x0 , // CB_BLEND2_CONTROL
2558 0x0 , // CB_BLEND3_CONTROL
2559 0x0 , // CB_BLEND4_CONTROL
2560 0x0 , // CB_BLEND5_CONTROL
2561 0x0 , // CB_BLEND6_CONTROL
2562 0x0 // CB_BLEND7_CONTROL
2564 static const uint32_t GeMaxOutputPerSubgroupGfx103
[] = {
2565 0x0 , // GE_MAX_OUTPUT_PER_SUBGROUP
2566 0x0 , // DB_DEPTH_CONTROL
2568 0x0 , // CB_COLOR_CONTROL
2569 0x0 , // DB_SHADER_CONTROL
2570 0x90000 , // PA_CL_CLIP_CNTL
2571 0x4 , // PA_SU_SC_MODE_CNTL
2572 0x0 , // PA_CL_VTE_CNTL
2573 0x0 , // PA_CL_VS_OUT_CNTL
2574 0x0 // PA_CL_NANINF_CNTL
2576 static const uint32_t PaSuPrimFilterCntlGfx103
[] = {
2577 0x0 , // PA_SU_PRIM_FILTER_CNTL
2578 0x0 , // PA_SU_SMALL_PRIM_FILTER_CNTL
2580 0x0 , // PA_CL_NGG_CNTL
2581 0x0 , // PA_SU_OVER_RASTERIZATION_CNTL
2582 0x0 , // PA_STEREO_CNTL
2583 0x0 , // PA_STATE_STEREO_X
2586 static const uint32_t PaSuPointSizeGfx103
[] = {
2587 0x0 , // PA_SU_POINT_SIZE
2588 0x0 , // PA_SU_POINT_MINMAX
2589 0x0 , // PA_SU_LINE_CNTL
2590 0x0 // PA_SC_LINE_STIPPLE
2592 static const uint32_t VgtHosMaxTessLevelGfx103
[] = {
2593 0x0 , // VGT_HOS_MAX_TESS_LEVEL
2594 0x0 // VGT_HOS_MIN_TESS_LEVEL
2596 static const uint32_t VgtGsModeGfx103
[] = {
2597 0x0 , // VGT_GS_MODE
2598 0x0 , // VGT_GS_ONCHIP_CNTL
2599 0x0 , // PA_SC_MODE_CNTL_0
2600 0x0 , // PA_SC_MODE_CNTL_1
2601 0x0 , // VGT_ENHANCE
2602 0x100 , // VGT_GS_PER_ES
2603 0x80 , // VGT_ES_PER_GS
2604 0x2 , // VGT_GS_PER_VS
2605 0x0 , // VGT_GSVS_RING_OFFSET_1
2606 0x0 , // VGT_GSVS_RING_OFFSET_2
2607 0x0 , // VGT_GSVS_RING_OFFSET_3
2608 0x0 // VGT_GS_OUT_PRIM_TYPE
2610 static const uint32_t VgtPrimitiveidEnGfx103
[] = {
2611 0x0 // VGT_PRIMITIVEID_EN
2613 static const uint32_t VgtPrimitiveidResetGfx103
[] = {
2614 0x0 // VGT_PRIMITIVEID_RESET
2616 static const uint32_t VgtDrawPayloadCntlGfx103
[] = {
2617 0x0 , // VGT_DRAW_PAYLOAD_CNTL
2619 0x0 , // VGT_INSTANCE_STEP_RATE_0
2620 0x0 , // VGT_INSTANCE_STEP_RATE_1
2621 0x0 , // IA_MULTI_VGT_PARAM
2622 0x0 , // VGT_ESGS_RING_ITEMSIZE
2623 0x0 , // VGT_GSVS_RING_ITEMSIZE
2624 0x0 , // VGT_REUSE_OFF
2625 0x0 , // VGT_VTX_CNT_EN
2626 0x0 , // DB_HTILE_SURFACE
2627 0x0 , // DB_SRESULTS_COMPARE_STATE0
2628 0x0 , // DB_SRESULTS_COMPARE_STATE1
2629 0x0 , // DB_PRELOAD_CONTROL
2631 0x0 , // VGT_STRMOUT_BUFFER_SIZE_0
2632 0x0 , // VGT_STRMOUT_VTX_STRIDE_0
2634 0x0 , // VGT_STRMOUT_BUFFER_OFFSET_0
2635 0x0 , // VGT_STRMOUT_BUFFER_SIZE_1
2636 0x0 , // VGT_STRMOUT_VTX_STRIDE_1
2638 0x0 , // VGT_STRMOUT_BUFFER_OFFSET_1
2639 0x0 , // VGT_STRMOUT_BUFFER_SIZE_2
2640 0x0 , // VGT_STRMOUT_VTX_STRIDE_2
2642 0x0 , // VGT_STRMOUT_BUFFER_OFFSET_2
2643 0x0 , // VGT_STRMOUT_BUFFER_SIZE_3
2644 0x0 , // VGT_STRMOUT_VTX_STRIDE_3
2646 0x0 , // VGT_STRMOUT_BUFFER_OFFSET_3
2653 0x0 , // VGT_STRMOUT_DRAW_OPAQUE_OFFSET
2654 0x0 , // VGT_STRMOUT_DRAW_OPAQUE_BUFFER_FILLED_SIZE
2655 0x0 , // VGT_STRMOUT_DRAW_OPAQUE_VERTEX_STRIDE
2657 0x0 , // VGT_GS_MAX_VERT_OUT
2662 0x0 , // GE_NGG_SUBGRP_CNTL
2663 0x0 , // VGT_TESS_DISTRIBUTION
2664 0x0 , // VGT_SHADER_STAGES_EN
2665 0x0 , // VGT_LS_HS_CONFIG
2666 0x0 , // VGT_GS_VERT_ITEMSIZE
2667 0x0 , // VGT_GS_VERT_ITEMSIZE_1
2668 0x0 , // VGT_GS_VERT_ITEMSIZE_2
2669 0x0 , // VGT_GS_VERT_ITEMSIZE_3
2670 0x0 , // VGT_TF_PARAM
2671 0x0 , // DB_ALPHA_TO_MASK
2673 0x0 , // PA_SU_POLY_OFFSET_DB_FMT_CNTL
2674 0x0 , // PA_SU_POLY_OFFSET_CLAMP
2675 0x0 , // PA_SU_POLY_OFFSET_FRONT_SCALE
2676 0x0 , // PA_SU_POLY_OFFSET_FRONT_OFFSET
2677 0x0 , // PA_SU_POLY_OFFSET_BACK_SCALE
2678 0x0 , // PA_SU_POLY_OFFSET_BACK_OFFSET
2679 0x0 , // VGT_GS_INSTANCE_CNT
2680 0x0 , // VGT_STRMOUT_CONFIG
2681 0x0 // VGT_STRMOUT_BUFFER_CONFIG
2683 static const uint32_t PaScCentroidPriority0Gfx103
[] = {
2684 0x0 , // PA_SC_CENTROID_PRIORITY_0
2685 0x0 , // PA_SC_CENTROID_PRIORITY_1
2686 0x1000 , // PA_SC_LINE_CNTL
2687 0x0 , // PA_SC_AA_CONFIG
2688 0x5 , // PA_SU_VTX_CNTL
2689 0x3f800000, // PA_CL_GB_VERT_CLIP_ADJ
2690 0x3f800000, // PA_CL_GB_VERT_DISC_ADJ
2691 0x3f800000, // PA_CL_GB_HORZ_CLIP_ADJ
2692 0x3f800000, // PA_CL_GB_HORZ_DISC_ADJ
2693 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_0
2694 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_1
2695 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_2
2696 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_3
2697 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_0
2698 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_1
2699 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_2
2700 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_3
2701 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_0
2702 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_1
2703 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_2
2704 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_3
2705 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_0
2706 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_1
2707 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_2
2708 0x0 , // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_3
2709 0xffffffff, // PA_SC_AA_MASK_X0Y0_X1Y0
2710 0xffffffff, // PA_SC_AA_MASK_X0Y1_X1Y1
2711 0x0 , // PA_SC_SHADER_CONTROL
2712 0x3 , // PA_SC_BINNER_CNTL_0
2713 0x0 , // PA_SC_BINNER_CNTL_1
2714 0x100000 , // PA_SC_CONSERVATIVE_RASTERIZATION_CNTL
2715 0x0 , // PA_SC_NGG_MODE_CNTL
2717 0x1e , // VGT_VERTEX_REUSE_BLOCK_CNTL
2718 0x20 , // VGT_OUT_DEALLOC_CNTL
2719 0x0 , // CB_COLOR0_BASE
2722 0x0 , // CB_COLOR0_VIEW
2723 0x0 , // CB_COLOR0_INFO
2724 0x0 , // CB_COLOR0_ATTRIB
2725 0x0 , // CB_COLOR0_DCC_CONTROL
2726 0x0 , // CB_COLOR0_CMASK
2728 0x0 , // CB_COLOR0_FMASK
2730 0x0 , // CB_COLOR0_CLEAR_WORD0
2731 0x0 , // CB_COLOR0_CLEAR_WORD1
2732 0x0 , // CB_COLOR0_DCC_BASE
2734 0x0 , // CB_COLOR1_BASE
2737 0x0 , // CB_COLOR1_VIEW
2738 0x0 , // CB_COLOR1_INFO
2739 0x0 , // CB_COLOR1_ATTRIB
2740 0x0 , // CB_COLOR1_DCC_CONTROL
2741 0x0 , // CB_COLOR1_CMASK
2743 0x0 , // CB_COLOR1_FMASK
2745 0x0 , // CB_COLOR1_CLEAR_WORD0
2746 0x0 , // CB_COLOR1_CLEAR_WORD1
2747 0x0 , // CB_COLOR1_DCC_BASE
2749 0x0 , // CB_COLOR2_BASE
2752 0x0 , // CB_COLOR2_VIEW
2753 0x0 , // CB_COLOR2_INFO
2754 0x0 , // CB_COLOR2_ATTRIB
2755 0x0 , // CB_COLOR2_DCC_CONTROL
2756 0x0 , // CB_COLOR2_CMASK
2758 0x0 , // CB_COLOR2_FMASK
2760 0x0 , // CB_COLOR2_CLEAR_WORD0
2761 0x0 , // CB_COLOR2_CLEAR_WORD1
2762 0x0 , // CB_COLOR2_DCC_BASE
2764 0x0 , // CB_COLOR3_BASE
2767 0x0 , // CB_COLOR3_VIEW
2768 0x0 , // CB_COLOR3_INFO
2769 0x0 , // CB_COLOR3_ATTRIB
2770 0x0 , // CB_COLOR3_DCC_CONTROL
2771 0x0 , // CB_COLOR3_CMASK
2773 0x0 , // CB_COLOR3_FMASK
2775 0x0 , // CB_COLOR3_CLEAR_WORD0
2776 0x0 , // CB_COLOR3_CLEAR_WORD1
2777 0x0 , // CB_COLOR3_DCC_BASE
2779 0x0 , // CB_COLOR4_BASE
2782 0x0 , // CB_COLOR4_VIEW
2783 0x0 , // CB_COLOR4_INFO
2784 0x0 , // CB_COLOR4_ATTRIB
2785 0x0 , // CB_COLOR4_DCC_CONTROL
2786 0x0 , // CB_COLOR4_CMASK
2788 0x0 , // CB_COLOR4_FMASK
2790 0x0 , // CB_COLOR4_CLEAR_WORD0
2791 0x0 , // CB_COLOR4_CLEAR_WORD1
2792 0x0 , // CB_COLOR4_DCC_BASE
2794 0x0 , // CB_COLOR5_BASE
2797 0x0 , // CB_COLOR5_VIEW
2798 0x0 , // CB_COLOR5_INFO
2799 0x0 , // CB_COLOR5_ATTRIB
2800 0x0 , // CB_COLOR5_DCC_CONTROL
2801 0x0 , // CB_COLOR5_CMASK
2803 0x0 , // CB_COLOR5_FMASK
2805 0x0 , // CB_COLOR5_CLEAR_WORD0
2806 0x0 , // CB_COLOR5_CLEAR_WORD1
2807 0x0 , // CB_COLOR5_DCC_BASE
2809 0x0 , // CB_COLOR6_BASE
2812 0x0 , // CB_COLOR6_VIEW
2813 0x0 , // CB_COLOR6_INFO
2814 0x0 , // CB_COLOR6_ATTRIB
2815 0x0 , // CB_COLOR6_DCC_CONTROL
2816 0x0 , // CB_COLOR6_CMASK
2818 0x0 , // CB_COLOR6_FMASK
2820 0x0 , // CB_COLOR6_CLEAR_WORD0
2821 0x0 , // CB_COLOR6_CLEAR_WORD1
2822 0x0 , // CB_COLOR6_DCC_BASE
2824 0x0 , // CB_COLOR7_BASE
2827 0x0 , // CB_COLOR7_VIEW
2828 0x0 , // CB_COLOR7_INFO
2829 0x0 , // CB_COLOR7_ATTRIB
2830 0x0 , // CB_COLOR7_DCC_CONTROL
2831 0x0 , // CB_COLOR7_CMASK
2833 0x0 , // CB_COLOR7_FMASK
2835 0x0 , // CB_COLOR7_CLEAR_WORD0
2836 0x0 , // CB_COLOR7_CLEAR_WORD1
2837 0x0 , // CB_COLOR7_DCC_BASE
2839 0x0 , // CB_COLOR0_BASE_EXT
2840 0x0 , // CB_COLOR1_BASE_EXT
2841 0x0 , // CB_COLOR2_BASE_EXT
2842 0x0 , // CB_COLOR3_BASE_EXT
2843 0x0 , // CB_COLOR4_BASE_EXT
2844 0x0 , // CB_COLOR5_BASE_EXT
2845 0x0 , // CB_COLOR6_BASE_EXT
2846 0x0 , // CB_COLOR7_BASE_EXT
2847 0x0 , // CB_COLOR0_CMASK_BASE_EXT
2848 0x0 , // CB_COLOR1_CMASK_BASE_EXT
2849 0x0 , // CB_COLOR2_CMASK_BASE_EXT
2850 0x0 , // CB_COLOR3_CMASK_BASE_EXT
2851 0x0 , // CB_COLOR4_CMASK_BASE_EXT
2852 0x0 , // CB_COLOR5_CMASK_BASE_EXT
2853 0x0 , // CB_COLOR6_CMASK_BASE_EXT
2854 0x0 , // CB_COLOR7_CMASK_BASE_EXT
2855 0x0 , // CB_COLOR0_FMASK_BASE_EXT
2856 0x0 , // CB_COLOR1_FMASK_BASE_EXT
2857 0x0 , // CB_COLOR2_FMASK_BASE_EXT
2858 0x0 , // CB_COLOR3_FMASK_BASE_EXT
2859 0x0 , // CB_COLOR4_FMASK_BASE_EXT
2860 0x0 , // CB_COLOR5_FMASK_BASE_EXT
2861 0x0 , // CB_COLOR6_FMASK_BASE_EXT
2862 0x0 , // CB_COLOR7_FMASK_BASE_EXT
2863 0x0 , // CB_COLOR0_DCC_BASE_EXT
2864 0x0 , // CB_COLOR1_DCC_BASE_EXT
2865 0x0 , // CB_COLOR2_DCC_BASE_EXT
2866 0x0 , // CB_COLOR3_DCC_BASE_EXT
2867 0x0 , // CB_COLOR4_DCC_BASE_EXT
2868 0x0 , // CB_COLOR5_DCC_BASE_EXT
2869 0x0 , // CB_COLOR6_DCC_BASE_EXT
2870 0x0 , // CB_COLOR7_DCC_BASE_EXT
2871 0x0 , // CB_COLOR0_ATTRIB2
2872 0x0 , // CB_COLOR1_ATTRIB2
2873 0x0 , // CB_COLOR2_ATTRIB2
2874 0x0 , // CB_COLOR3_ATTRIB2
2875 0x0 , // CB_COLOR4_ATTRIB2
2876 0x0 , // CB_COLOR5_ATTRIB2
2877 0x0 , // CB_COLOR6_ATTRIB2
2878 0x0 , // CB_COLOR7_ATTRIB2
2879 0x0 , // CB_COLOR0_ATTRIB3
2880 0x0 , // CB_COLOR1_ATTRIB3
2881 0x0 , // CB_COLOR2_ATTRIB3
2882 0x0 , // CB_COLOR3_ATTRIB3
2883 0x0 , // CB_COLOR4_ATTRIB3
2884 0x0 , // CB_COLOR5_ATTRIB3
2885 0x0 , // CB_COLOR6_ATTRIB3
2886 0x0 // CB_COLOR7_ATTRIB3
2889 set_context_reg_seq_array(cs
, R_028000_DB_RENDER_CONTROL
, SET(DbRenderControlGfx103
));
2890 set_context_reg_seq_array(cs
, R_0281E8_COHER_DEST_BASE_HI_0
, SET(CoherDestBaseHi0Gfx103
));
2891 set_context_reg_seq_array(cs
, R_02840C_VGT_MULTI_PRIM_IB_RESET_INDX
, SET(VgtMultiPrimIbResetIndxGfx103
));
2892 set_context_reg_seq_array(cs
, R_028644_SPI_PS_INPUT_CNTL_0
, SET(SpiPsInputCntl0Gfx103
));
2893 set_context_reg_seq_array(cs
, R_028750_SX_PS_DOWNCONVERT_CONTROL_GFX103
, SET(SxPsDownconvertControlGfx103
));
2894 set_context_reg_seq_array(cs
, R_0287FC_GE_MAX_OUTPUT_PER_SUBGROUP
, SET(GeMaxOutputPerSubgroupGfx103
));
2895 set_context_reg_seq_array(cs
, R_02882C_PA_SU_PRIM_FILTER_CNTL
, SET(PaSuPrimFilterCntlGfx103
));
2896 set_context_reg_seq_array(cs
, R_028A00_PA_SU_POINT_SIZE
, SET(PaSuPointSizeGfx103
));
2897 set_context_reg_seq_array(cs
, R_028A18_VGT_HOS_MAX_TESS_LEVEL
, SET(VgtHosMaxTessLevelGfx103
));
2898 set_context_reg_seq_array(cs
, R_028A40_VGT_GS_MODE
, SET(VgtGsModeGfx103
));
2899 set_context_reg_seq_array(cs
, R_028A84_VGT_PRIMITIVEID_EN
, SET(VgtPrimitiveidEnGfx103
));
2900 set_context_reg_seq_array(cs
, R_028A8C_VGT_PRIMITIVEID_RESET
, SET(VgtPrimitiveidResetGfx103
));
2901 set_context_reg_seq_array(cs
, R_028A98_VGT_DRAW_PAYLOAD_CNTL
, SET(VgtDrawPayloadCntlGfx103
));
2902 set_context_reg_seq_array(cs
, R_028BD4_PA_SC_CENTROID_PRIORITY_0
, SET(PaScCentroidPriority0Gfx103
));
2904 for (unsigned i
= 0; i
< num_reg_pairs
; i
++)
2905 set_context_reg_seq_array(cs
, reg_offsets
[i
], 1, ®_values
[i
]);
2908 void ac_emulate_clear_state(const struct radeon_info
*info
,
2909 struct radeon_cmdbuf
*cs
,
2910 set_context_reg_seq_array_fn set_context_reg_seq_array
)
2912 /* Set context registers same as CLEAR_STATE to initialize shadow memory. */
2913 unsigned reg_offset
= R_02835C_PA_SC_TILE_STEERING_OVERRIDE
;
2914 uint32_t reg_value
= info
->pa_sc_tile_steering_override
;
2916 if (info
->chip_class
== GFX10_3
) {
2917 gfx103_emulate_clear_state(cs
, 1, ®_offset
, ®_value
,
2918 set_context_reg_seq_array
);
2919 } else if (info
->chip_class
== GFX10
) {
2920 gfx10_emulate_clear_state(cs
, 1, ®_offset
, ®_value
,
2921 set_context_reg_seq_array
);
2922 } else if (info
->chip_class
== GFX9
) {
2923 gfx9_emulate_clear_state(cs
, set_context_reg_seq_array
);
2925 unreachable("unimplemented");