/* Automatically generated by amd/registers/makeregheader.py */ /* * Copyright 2015-2019 Advanced Micro Devices, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * on the rights to use, copy, modify, merge, publish, distribute, sub * license, and/or sell copies of the Software, and to permit persons to whom * the Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL * THE AUTHOR(S) AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE * USE OR OTHER DEALINGS IN THE SOFTWARE. * */ #ifndef AMDGFXREGS_H #define AMDGFXREGS_H #define R_000028_SQ_WAVE_ACTIVE 0x000028 /* >= gfx103 */ #define S_000028_WAVE_SLOT(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_000028_WAVE_SLOT(x) (((x) >> 0) & 0xFFFFF) #define C_000028_WAVE_SLOT 0xFFF00000 #define R_00002C_SQ_WAVE_VALID_AND_IDLE 0x00002C /* >= gfx103 */ #define S_00002C_WAVE_SLOT(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_00002C_WAVE_SLOT(x) (((x) >> 0) & 0xFFFFF) #define C_00002C_WAVE_SLOT 0xFFF00000 #define R_000044_SQ_WAVE_MODE 0x000044 /* <= gfx9 */ #define S_000044_FP_ROUND(x) (((unsigned)(x) & 0xF) << 0) #define G_000044_FP_ROUND(x) (((x) >> 0) & 0xF) #define C_000044_FP_ROUND 0xFFFFFFF0 #define S_000044_FP_DENORM(x) (((unsigned)(x) & 0xF) << 4) #define G_000044_FP_DENORM(x) (((x) >> 4) & 0xF) #define C_000044_FP_DENORM 0xFFFFFF0F #define S_000044_DX10_CLAMP(x) (((unsigned)(x) & 0x1) << 8) #define G_000044_DX10_CLAMP(x) (((x) >> 8) & 0x1) #define C_000044_DX10_CLAMP 0xFFFFFEFF #define S_000044_IEEE(x) (((unsigned)(x) & 0x1) << 9) #define G_000044_IEEE(x) (((x) >> 9) & 0x1) #define C_000044_IEEE 0xFFFFFDFF #define S_000044_LOD_CLAMPED(x) (((unsigned)(x) & 0x1) << 10) #define G_000044_LOD_CLAMPED(x) (((x) >> 10) & 0x1) #define C_000044_LOD_CLAMPED 0xFFFFFBFF #define S_000044_DEBUG_EN(x) (((unsigned)(x) & 0x1) << 11) #define G_000044_DEBUG_EN(x) (((x) >> 11) & 0x1) #define C_000044_DEBUG_EN 0xFFFFF7FF #define S_000044_EXCP_EN(x) (((unsigned)(x) & 0x1FF) << 12) #define G_000044_EXCP_EN(x) (((x) >> 12) & 0x1FF) #define C_000044_EXCP_EN 0xFFE00FFF #define V_000044_INVALID 1 #define V_000044_INPUT_DENORMAL 2 #define V_000044_DIVIDE_BY_ZERO 4 #define V_000044_OVERFLOW 8 #define V_000044_UNDERFLOW 16 #define V_000044_INEXACT 32 #define V_000044_INT_DIVIDE_BY_ZERO 64 #define V_000044_ADDRESS_WATCH 128 #define V_000044_MEMORY_VIOLATION 256 #define S_000044_FP16_OVFL(x) (((unsigned)(x) & 0x1) << 23) /* gfx9 */ #define G_000044_FP16_OVFL(x) (((x) >> 23) & 0x1) #define C_000044_FP16_OVFL 0xFF7FFFFF #define S_000044_POPS_PACKER0(x) (((unsigned)(x) & 0x1) << 24) /* gfx9 */ #define G_000044_POPS_PACKER0(x) (((x) >> 24) & 0x1) #define C_000044_POPS_PACKER0 0xFEFFFFFF #define S_000044_POPS_PACKER1(x) (((unsigned)(x) & 0x1) << 25) /* gfx9 */ #define G_000044_POPS_PACKER1(x) (((x) >> 25) & 0x1) #define C_000044_POPS_PACKER1 0xFDFFFFFF #define S_000044_DISABLE_PERF(x) (((unsigned)(x) & 0x1) << 26) /* gfx9 */ #define G_000044_DISABLE_PERF(x) (((x) >> 26) & 0x1) #define C_000044_DISABLE_PERF 0xFBFFFFFF #define S_000044_GPR_IDX_EN(x) (((unsigned)(x) & 0x1) << 27) /* gfx8, gfx81, gfx9 */ #define G_000044_GPR_IDX_EN(x) (((x) >> 27) & 0x1) #define C_000044_GPR_IDX_EN 0xF7FFFFFF #define S_000044_VSKIP(x) (((unsigned)(x) & 0x1) << 28) #define G_000044_VSKIP(x) (((x) >> 28) & 0x1) #define C_000044_VSKIP 0xEFFFFFFF #define S_000044_CSP(x) (((unsigned)(x) & 0x7) << 29) #define G_000044_CSP(x) (((x) >> 29) & 0x7) #define C_000044_CSP 0x1FFFFFFF #define R_000048_SQ_WAVE_STATUS 0x000048 /* <= gfx9 */ #define S_000048_SCC(x) (((unsigned)(x) & 0x1) << 0) #define G_000048_SCC(x) (((x) >> 0) & 0x1) #define C_000048_SCC 0xFFFFFFFE #define S_000048_SPI_PRIO(x) (((unsigned)(x) & 0x3) << 1) #define G_000048_SPI_PRIO(x) (((x) >> 1) & 0x3) #define C_000048_SPI_PRIO 0xFFFFFFF9 #define S_000048_USER_PRIO(x) (((unsigned)(x) & 0x3) << 3) /* gfx8, gfx81, gfx9 */ #define G_000048_USER_PRIO(x) (((x) >> 3) & 0x3) #define C_000048_USER_PRIO 0xFFFFFFE7 #define S_000048_WAVE_PRIO(x) (((unsigned)(x) & 0x3) << 3) /* <= gfx7 */ #define G_000048_WAVE_PRIO(x) (((x) >> 3) & 0x3) #define C_000048_WAVE_PRIO 0xFFFFFFE7 #define S_000048_PRIV(x) (((unsigned)(x) & 0x1) << 5) #define G_000048_PRIV(x) (((x) >> 5) & 0x1) #define C_000048_PRIV 0xFFFFFFDF #define S_000048_TRAP_EN(x) (((unsigned)(x) & 0x1) << 6) #define G_000048_TRAP_EN(x) (((x) >> 6) & 0x1) #define C_000048_TRAP_EN 0xFFFFFFBF #define S_000048_TTRACE_EN(x) (((unsigned)(x) & 0x1) << 7) #define G_000048_TTRACE_EN(x) (((x) >> 7) & 0x1) #define C_000048_TTRACE_EN 0xFFFFFF7F #define S_000048_EXPORT_RDY(x) (((unsigned)(x) & 0x1) << 8) #define G_000048_EXPORT_RDY(x) (((x) >> 8) & 0x1) #define C_000048_EXPORT_RDY 0xFFFFFEFF #define S_000048_EXECZ(x) (((unsigned)(x) & 0x1) << 9) #define G_000048_EXECZ(x) (((x) >> 9) & 0x1) #define C_000048_EXECZ 0xFFFFFDFF #define S_000048_VCCZ(x) (((unsigned)(x) & 0x1) << 10) #define G_000048_VCCZ(x) (((x) >> 10) & 0x1) #define C_000048_VCCZ 0xFFFFFBFF #define S_000048_IN_TG(x) (((unsigned)(x) & 0x1) << 11) #define G_000048_IN_TG(x) (((x) >> 11) & 0x1) #define C_000048_IN_TG 0xFFFFF7FF #define S_000048_IN_BARRIER(x) (((unsigned)(x) & 0x1) << 12) #define G_000048_IN_BARRIER(x) (((x) >> 12) & 0x1) #define C_000048_IN_BARRIER 0xFFFFEFFF #define S_000048_HALT(x) (((unsigned)(x) & 0x1) << 13) #define G_000048_HALT(x) (((x) >> 13) & 0x1) #define C_000048_HALT 0xFFFFDFFF #define S_000048_TRAP(x) (((unsigned)(x) & 0x1) << 14) #define G_000048_TRAP(x) (((x) >> 14) & 0x1) #define C_000048_TRAP 0xFFFFBFFF #define S_000048_TTRACE_CU_EN(x) (((unsigned)(x) & 0x1) << 15) #define G_000048_TTRACE_CU_EN(x) (((x) >> 15) & 0x1) #define C_000048_TTRACE_CU_EN 0xFFFF7FFF #define S_000048_VALID(x) (((unsigned)(x) & 0x1) << 16) #define G_000048_VALID(x) (((x) >> 16) & 0x1) #define C_000048_VALID 0xFFFEFFFF #define S_000048_ECC_ERR(x) (((unsigned)(x) & 0x1) << 17) #define G_000048_ECC_ERR(x) (((x) >> 17) & 0x1) #define C_000048_ECC_ERR 0xFFFDFFFF #define S_000048_SKIP_EXPORT(x) (((unsigned)(x) & 0x1) << 18) #define G_000048_SKIP_EXPORT(x) (((x) >> 18) & 0x1) #define C_000048_SKIP_EXPORT 0xFFFBFFFF #define S_000048_PERF_EN(x) (((unsigned)(x) & 0x1) << 19) #define G_000048_PERF_EN(x) (((x) >> 19) & 0x1) #define C_000048_PERF_EN 0xFFF7FFFF #define S_000048_COND_DBG_USER(x) (((unsigned)(x) & 0x1) << 20) #define G_000048_COND_DBG_USER(x) (((x) >> 20) & 0x1) #define C_000048_COND_DBG_USER 0xFFEFFFFF #define S_000048_COND_DBG_SYS(x) (((unsigned)(x) & 0x1) << 21) #define G_000048_COND_DBG_SYS(x) (((x) >> 21) & 0x1) #define C_000048_COND_DBG_SYS 0xFFDFFFFF #define S_000048_ALLOW_REPLAY(x) (((unsigned)(x) & 0x1) << 22) /* gfx8, gfx81, gfx9 */ #define G_000048_ALLOW_REPLAY(x) (((x) >> 22) & 0x1) #define C_000048_ALLOW_REPLAY 0xFFBFFFFF #define S_000048_DATA_ATC(x) (((unsigned)(x) & 0x1) << 22) /* <= gfx7 */ #define G_000048_DATA_ATC(x) (((x) >> 22) & 0x1) #define C_000048_DATA_ATC 0xFFBFFFFF #define S_000048_FATAL_HALT(x) (((unsigned)(x) & 0x1) << 23) /* gfx9 */ #define G_000048_FATAL_HALT(x) (((x) >> 23) & 0x1) #define C_000048_FATAL_HALT 0xFF7FFFFF #define S_000048_INST_ATC(x) (((unsigned)(x) & 0x1) << 23) /* <= gfx81 */ #define G_000048_INST_ATC(x) (((x) >> 23) & 0x1) #define C_000048_INST_ATC 0xFF7FFFFF #define S_000048_DISPATCH_CACHE_CTRL(x) (((unsigned)(x) & 0x7) << 24) /* <= gfx7 */ #define G_000048_DISPATCH_CACHE_CTRL(x) (((x) >> 24) & 0x7) #define C_000048_DISPATCH_CACHE_CTRL 0xF8FFFFFF #define S_000048_MUST_EXPORT(x) (((unsigned)(x) & 0x1) << 27) #define G_000048_MUST_EXPORT(x) (((x) >> 27) & 0x1) #define C_000048_MUST_EXPORT 0xF7FFFFFF #define R_00004C_SQ_WAVE_TRAPSTS 0x00004C /* <= gfx9 */ #define S_00004C_EXCP(x) (((unsigned)(x) & 0x1FF) << 0) #define G_00004C_EXCP(x) (((x) >> 0) & 0x1FF) #define C_00004C_EXCP 0xFFFFFE00 #define V_00004C_INVALID 1 #define V_00004C_INPUT_DENORMAL 2 #define V_00004C_DIVIDE_BY_ZERO 4 #define V_00004C_OVERFLOW 8 #define V_00004C_UNDERFLOW 16 #define V_00004C_INEXACT 32 #define V_00004C_INT_DIVIDE_BY_ZERO 64 #define V_00004C_ADDRESS_WATCH 128 #define V_00004C_MEMORY_VIOLATION 256 #define S_00004C_SAVECTX(x) (((unsigned)(x) & 0x1) << 10) /* gfx8, gfx81, gfx9 */ #define G_00004C_SAVECTX(x) (((x) >> 10) & 0x1) #define C_00004C_SAVECTX 0xFFFFFBFF #define S_00004C_ILLEGAL_INST(x) (((unsigned)(x) & 0x1) << 11) /* gfx9 */ #define G_00004C_ILLEGAL_INST(x) (((x) >> 11) & 0x1) #define C_00004C_ILLEGAL_INST 0xFFFFF7FF #define S_00004C_EXCP_HI(x) (((unsigned)(x) & 0x7) << 12) /* gfx9 */ #define G_00004C_EXCP_HI(x) (((x) >> 12) & 0x7) #define C_00004C_EXCP_HI 0xFFFF8FFF #define S_00004C_EXCP_CYCLE(x) (((unsigned)(x) & 0x3F) << 16) #define G_00004C_EXCP_CYCLE(x) (((x) >> 16) & 0x3F) #define C_00004C_EXCP_CYCLE 0xFFC0FFFF #define S_00004C_XNACK_ERROR(x) (((unsigned)(x) & 0x1) << 28) /* gfx9 */ #define G_00004C_XNACK_ERROR(x) (((x) >> 28) & 0x1) #define C_00004C_XNACK_ERROR 0xEFFFFFFF #define S_00004C_DP_RATE(x) (((unsigned)(x) & 0x7) << 29) #define G_00004C_DP_RATE(x) (((x) >> 29) & 0x7) #define C_00004C_DP_RATE 0x1FFFFFFF #define R_000050_SQ_WAVE_HW_ID 0x000050 /* <= gfx9 */ #define S_000050_WAVE_ID(x) (((unsigned)(x) & 0xF) << 0) #define G_000050_WAVE_ID(x) (((x) >> 0) & 0xF) #define C_000050_WAVE_ID 0xFFFFFFF0 #define S_000050_SIMD_ID(x) (((unsigned)(x) & 0x3) << 4) #define G_000050_SIMD_ID(x) (((x) >> 4) & 0x3) #define C_000050_SIMD_ID 0xFFFFFFCF #define S_000050_PIPE_ID(x) (((unsigned)(x) & 0x3) << 6) #define G_000050_PIPE_ID(x) (((x) >> 6) & 0x3) #define C_000050_PIPE_ID 0xFFFFFF3F #define S_000050_CU_ID(x) (((unsigned)(x) & 0xF) << 8) #define G_000050_CU_ID(x) (((x) >> 8) & 0xF) #define C_000050_CU_ID 0xFFFFF0FF #define S_000050_SH_ID(x) (((unsigned)(x) & 0x1) << 12) #define G_000050_SH_ID(x) (((x) >> 12) & 0x1) #define C_000050_SH_ID 0xFFFFEFFF #define S_000050_SE_ID(x) (((unsigned)(x) & 0x3) << 13) #define G_000050_SE_ID(x) (((x) >> 13) & 0x3) #define C_000050_SE_ID 0xFFFF9FFF #define S_000050_TG_ID(x) (((unsigned)(x) & 0xF) << 16) #define G_000050_TG_ID(x) (((x) >> 16) & 0xF) #define C_000050_TG_ID 0xFFF0FFFF #define S_000050_VM_ID(x) (((unsigned)(x) & 0xF) << 20) #define G_000050_VM_ID(x) (((x) >> 20) & 0xF) #define C_000050_VM_ID 0xFF0FFFFF #define S_000050_QUEUE_ID(x) (((unsigned)(x) & 0x7) << 24) #define G_000050_QUEUE_ID(x) (((x) >> 24) & 0x7) #define C_000050_QUEUE_ID 0xF8FFFFFF #define S_000050_STATE_ID(x) (((unsigned)(x) & 0x7) << 27) #define G_000050_STATE_ID(x) (((x) >> 27) & 0x7) #define C_000050_STATE_ID 0xC7FFFFFF #define S_000050_ME_ID(x) (((unsigned)(x) & 0x3) << 30) #define G_000050_ME_ID(x) (((x) >> 30) & 0x3) #define C_000050_ME_ID 0x3FFFFFFF #define R_000054_SQ_WAVE_GPR_ALLOC 0x000054 /* <= gfx9 */ #define S_000054_VGPR_BASE(x) (((unsigned)(x) & 0x3F) << 0) #define G_000054_VGPR_BASE(x) (((x) >> 0) & 0x3F) #define C_000054_VGPR_BASE 0xFFFFFFC0 #define S_000054_VGPR_SIZE(x) (((unsigned)(x) & 0x3F) << 8) #define G_000054_VGPR_SIZE(x) (((x) >> 8) & 0x3F) #define C_000054_VGPR_SIZE 0xFFFFC0FF #define S_000054_SGPR_BASE(x) (((unsigned)(x) & 0x3F) << 16) #define G_000054_SGPR_BASE(x) (((x) >> 16) & 0x3F) #define C_000054_SGPR_BASE 0xFFC0FFFF #define S_000054_SGPR_SIZE(x) (((unsigned)(x) & 0xF) << 24) #define G_000054_SGPR_SIZE(x) (((x) >> 24) & 0xF) #define C_000054_SGPR_SIZE 0xF0FFFFFF #define R_000058_SQ_WAVE_LDS_ALLOC 0x000058 /* <= gfx9 */ #define S_000058_LDS_BASE(x) (((unsigned)(x) & 0xFF) << 0) #define G_000058_LDS_BASE(x) (((x) >> 0) & 0xFF) #define C_000058_LDS_BASE 0xFFFFFF00 #define S_000058_LDS_SIZE(x) (((unsigned)(x) & 0x1FF) << 12) #define G_000058_LDS_SIZE(x) (((x) >> 12) & 0x1FF) #define C_000058_LDS_SIZE 0xFFE00FFF #define R_00005C_SQ_WAVE_IB_STS 0x00005C /* <= gfx9 */ #define S_00005C_VM_CNT(x) (((unsigned)(x) & 0xF) << 0) #define G_00005C_VM_CNT(x) (((x) >> 0) & 0xF) #define C_00005C_VM_CNT 0xFFFFFFF0 #define S_00005C_EXP_CNT(x) (((unsigned)(x) & 0x7) << 4) #define G_00005C_EXP_CNT(x) (((x) >> 4) & 0x7) #define C_00005C_EXP_CNT 0xFFFFFF8F #define S_00005C_LGKM_CNT_GFX6(x) (((unsigned)(x) & 0x1F) << 8) /* <= gfx6 */ #define G_00005C_LGKM_CNT_GFX6(x) (((x) >> 8) & 0x1F) #define C_00005C_LGKM_CNT_GFX6 0xFFFFE0FF #define S_00005C_LGKM_CNT_GFX7(x) (((unsigned)(x) & 0xF) << 8) /* gfx7, gfx8, gfx81, gfx9 */ #define G_00005C_LGKM_CNT_GFX7(x) (((x) >> 8) & 0xF) #define C_00005C_LGKM_CNT_GFX7 0xFFFFF0FF #define S_00005C_VALU_CNT_GFX7(x) (((unsigned)(x) & 0x7) << 12) /* gfx7, gfx8, gfx81, gfx9 */ #define G_00005C_VALU_CNT_GFX7(x) (((x) >> 12) & 0x7) #define C_00005C_VALU_CNT_GFX7 0xFFFF8FFF #define S_00005C_VALU_CNT_GFX6(x) (((unsigned)(x) & 0x7) << 13) /* <= gfx6 */ #define G_00005C_VALU_CNT_GFX6(x) (((x) >> 13) & 0x7) #define C_00005C_VALU_CNT_GFX6 0xFFFF1FFF #define S_00005C_FIRST_REPLAY(x) (((unsigned)(x) & 0x1) << 15) /* gfx8, gfx81, gfx9 */ #define G_00005C_FIRST_REPLAY(x) (((x) >> 15) & 0x1) #define C_00005C_FIRST_REPLAY 0xFFFF7FFF #define S_00005C_RCNT(x) (((unsigned)(x) & 0x1F) << 16) /* gfx8, gfx81, gfx9 */ #define G_00005C_RCNT(x) (((x) >> 16) & 0x1F) #define C_00005C_RCNT 0xFFE0FFFF #define S_00005C_VM_CNT_HI(x) (((unsigned)(x) & 0x3) << 22) /* gfx9 */ #define G_00005C_VM_CNT_HI(x) (((x) >> 22) & 0x3) #define C_00005C_VM_CNT_HI 0xFF3FFFFF #define R_000060_SQ_WAVE_PC_LO 0x000060 /* <= gfx9 */ #define R_000064_SQ_WAVE_PC_HI 0x000064 /* <= gfx9 */ #define S_000064_PC_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_000064_PC_HI(x) (((x) >> 0) & 0xFFFF) #define C_000064_PC_HI 0xFFFF0000 #define R_000068_SQ_WAVE_INST_DW0 0x000068 /* <= gfx9 */ #define R_00006C_SQ_WAVE_INST_DW1 0x00006C /* <= gfx9 */ #define R_000070_SQ_WAVE_IB_DBG0 0x000070 /* <= gfx9 */ #define S_000070_IBUF_ST(x) (((unsigned)(x) & 0x7) << 0) #define G_000070_IBUF_ST(x) (((x) >> 0) & 0x7) #define C_000070_IBUF_ST 0xFFFFFFF8 #define S_000070_PC_INVALID(x) (((unsigned)(x) & 0x1) << 3) #define G_000070_PC_INVALID(x) (((x) >> 3) & 0x1) #define C_000070_PC_INVALID 0xFFFFFFF7 #define S_000070_NEED_NEXT_DW(x) (((unsigned)(x) & 0x1) << 4) #define G_000070_NEED_NEXT_DW(x) (((x) >> 4) & 0x1) #define C_000070_NEED_NEXT_DW 0xFFFFFFEF #define S_000070_NO_PREFETCH_CNT(x) (((unsigned)(x) & 0x7) << 5) #define G_000070_NO_PREFETCH_CNT(x) (((x) >> 5) & 0x7) #define C_000070_NO_PREFETCH_CNT 0xFFFFFF1F #define S_000070_IBUF_RPTR(x) (((unsigned)(x) & 0x3) << 8) #define G_000070_IBUF_RPTR(x) (((x) >> 8) & 0x3) #define C_000070_IBUF_RPTR 0xFFFFFCFF #define S_000070_IBUF_WPTR(x) (((unsigned)(x) & 0x3) << 10) #define G_000070_IBUF_WPTR(x) (((x) >> 10) & 0x3) #define C_000070_IBUF_WPTR 0xFFFFF3FF #define S_000070_INST_STR_ST_GFX6(x) (((unsigned)(x) & 0x7) << 16) /* <= gfx7 */ #define G_000070_INST_STR_ST_GFX6(x) (((x) >> 16) & 0x7) #define C_000070_INST_STR_ST_GFX6 0xFFF8FFFF #define S_000070_INST_STR_ST_GFX8(x) (((unsigned)(x) & 0xF) << 16) /* gfx8, gfx81, gfx9 */ #define G_000070_INST_STR_ST_GFX8(x) (((x) >> 16) & 0xF) #define C_000070_INST_STR_ST_GFX8 0xFFF0FFFF #define S_000070_MISC_CNT_GFX6(x) (((unsigned)(x) & 0x7) << 19) /* <= gfx7 */ #define G_000070_MISC_CNT_GFX6(x) (((x) >> 19) & 0x7) #define C_000070_MISC_CNT_GFX6 0xFFC7FFFF #define S_000070_MISC_CNT_GFX8(x) (((unsigned)(x) & 0xF) << 20) /* gfx8, gfx81 */ #define G_000070_MISC_CNT_GFX8(x) (((x) >> 20) & 0xF) #define C_000070_MISC_CNT_GFX8 0xFF0FFFFF #define S_000070_ECC_ST_GFX6(x) (((unsigned)(x) & 0x3) << 22) /* <= gfx7 */ #define G_000070_ECC_ST_GFX6(x) (((x) >> 22) & 0x3) #define C_000070_ECC_ST_GFX6 0xFF3FFFFF #define S_000070_ECC_ST_GFX8(x) (((unsigned)(x) & 0x3) << 24) /* gfx8, gfx81, gfx9 */ #define G_000070_ECC_ST_GFX8(x) (((x) >> 24) & 0x3) #define C_000070_ECC_ST_GFX8 0xFCFFFFFF #define S_000070_IS_HYB_GFX6(x) (((unsigned)(x) & 0x1) << 24) /* <= gfx7 */ #define G_000070_IS_HYB_GFX6(x) (((x) >> 24) & 0x1) #define C_000070_IS_HYB_GFX6 0xFEFFFFFF #define S_000070_HYB_CNT_GFX6(x) (((unsigned)(x) & 0x3) << 25) /* <= gfx7 */ #define G_000070_HYB_CNT_GFX6(x) (((x) >> 25) & 0x3) #define C_000070_HYB_CNT_GFX6 0xF9FFFFFF #define S_000070_IS_HYB_GFX8(x) (((unsigned)(x) & 0x1) << 26) /* gfx8, gfx81, gfx9 */ #define G_000070_IS_HYB_GFX8(x) (((x) >> 26) & 0x1) #define C_000070_IS_HYB_GFX8 0xFBFFFFFF #define S_000070_HYB_CNT_GFX8(x) (((unsigned)(x) & 0x3) << 27) /* gfx8, gfx81, gfx9 */ #define G_000070_HYB_CNT_GFX8(x) (((x) >> 27) & 0x3) #define C_000070_HYB_CNT_GFX8 0xE7FFFFFF #define S_000070_KILL_GFX6(x) (((unsigned)(x) & 0x1) << 27) /* <= gfx7 */ #define G_000070_KILL_GFX6(x) (((x) >> 27) & 0x1) #define C_000070_KILL_GFX6 0xF7FFFFFF #define S_000070_NEED_KILL_IFETCH_GFX6(x) (((unsigned)(x) & 0x1) << 28) /* <= gfx7 */ #define G_000070_NEED_KILL_IFETCH_GFX6(x) (((x) >> 28) & 0x1) #define C_000070_NEED_KILL_IFETCH_GFX6 0xEFFFFFFF #define S_000070_KILL_GFX8(x) (((unsigned)(x) & 0x1) << 29) /* gfx8, gfx81, gfx9 */ #define G_000070_KILL_GFX8(x) (((x) >> 29) & 0x1) #define C_000070_KILL_GFX8 0xDFFFFFFF #define S_000070_NEED_KILL_IFETCH_GFX8(x) (((unsigned)(x) & 0x1) << 30) /* gfx8, gfx81, gfx9 */ #define G_000070_NEED_KILL_IFETCH_GFX8(x) (((x) >> 30) & 0x1) #define C_000070_NEED_KILL_IFETCH_GFX8 0xBFFFFFFF #define S_000070_NO_PREFETCH_CNT_HI(x) (((unsigned)(x) & 0x1) << 31) /* gfx9 */ #define G_000070_NO_PREFETCH_CNT_HI(x) (((x) >> 31) & 0x1) #define C_000070_NO_PREFETCH_CNT_HI 0x7FFFFFFF #define R_000074_SQ_WAVE_IB_DBG1 0x000074 /* gfx8, gfx81, gfx9 */ #define S_000074_IXNACK(x) (((unsigned)(x) & 0x1) << 0) #define G_000074_IXNACK(x) (((x) >> 0) & 0x1) #define C_000074_IXNACK 0xFFFFFFFE #define S_000074_XNACK(x) (((unsigned)(x) & 0x1) << 1) #define G_000074_XNACK(x) (((x) >> 1) & 0x1) #define C_000074_XNACK 0xFFFFFFFD #define S_000074_TA_NEED_RESET(x) (((unsigned)(x) & 0x1) << 2) #define G_000074_TA_NEED_RESET(x) (((x) >> 2) & 0x1) #define C_000074_TA_NEED_RESET 0xFFFFFFFB #define S_000074_XCNT_GFX8(x) (((unsigned)(x) & 0xF) << 4) /* gfx8, gfx81 */ #define G_000074_XCNT_GFX8(x) (((x) >> 4) & 0xF) #define C_000074_XCNT_GFX8 0xFFFFFF0F #define S_000074_XCNT_GFX9(x) (((unsigned)(x) & 0x1F) << 4) /* gfx9 */ #define G_000074_XCNT_GFX9(x) (((x) >> 4) & 0x1F) #define C_000074_XCNT_GFX9 0xFFFFFE0F #define S_000074_QCNT_GFX8(x) (((unsigned)(x) & 0xF) << 8) /* gfx8, gfx81 */ #define G_000074_QCNT_GFX8(x) (((x) >> 8) & 0xF) #define C_000074_QCNT_GFX8 0xFFFFF0FF #define S_000074_QCNT_GFX9(x) (((unsigned)(x) & 0x1F) << 11) /* gfx9 */ #define G_000074_QCNT_GFX9(x) (((x) >> 11) & 0x1F) #define C_000074_QCNT_GFX9 0xFFFF07FF #define S_000074_RCNT(x) (((unsigned)(x) & 0x1F) << 18) /* gfx9 */ #define G_000074_RCNT(x) (((x) >> 18) & 0x1F) #define C_000074_RCNT 0xFF83FFFF #define S_000074_MISC_CNT(x) (((unsigned)(x) & 0x7F) << 25) /* gfx9 */ #define G_000074_MISC_CNT(x) (((x) >> 25) & 0x7F) #define C_000074_MISC_CNT 0x01FFFFFF #define R_000078_SQ_WAVE_FLUSH_IB 0x000078 /* gfx9 */ #define R_370_CONTROL 0x370 #define S_370_DST_SEL(x) (((unsigned)(x) & 0xF) << 8) #define G_370_DST_SEL(x) (((x) >> 8) & 0xF) #define C_370_DST_SEL 0xFFFFF0FF #define V_370_MEM_MAPPED_REGISTER 0 #define V_370_MEM_GRBM 1 #define V_370_TC_L2 2 #define V_370_GDS 3 #define V_370_RESERVED 4 #define V_370_MEM 5 /* >= gfx7 */ #define S_370_WR_ONE_ADDR(x) (((unsigned)(x) & 0x1) << 16) #define G_370_WR_ONE_ADDR(x) (((x) >> 16) & 0x1) #define C_370_WR_ONE_ADDR 0xFFFEFFFF #define S_370_WR_CONFIRM(x) (((unsigned)(x) & 0x1) << 20) #define G_370_WR_CONFIRM(x) (((x) >> 20) & 0x1) #define C_370_WR_CONFIRM 0xFFEFFFFF #define S_370_ENGINE_SEL(x) (((unsigned)(x) & 0x3) << 30) #define G_370_ENGINE_SEL(x) (((x) >> 30) & 0x3) #define C_370_ENGINE_SEL 0x3FFFFFFF #define V_370_ME 0 #define V_370_PFP 1 #define V_370_CE 2 #define V_370_DE 3 #define R_371_DST_ADDR_LO 0x371 #define R_372_DST_ADDR_HI 0x372 #define R_3F0_IB_BASE_LO 0x3F0 #define R_3F1_IB_BASE_HI 0x3F1 #define R_3F2_IB_CONTROL 0x3F2 #define S_3F2_IB_SIZE(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_3F2_IB_SIZE(x) (((x) >> 0) & 0xFFFFF) #define C_3F2_IB_SIZE 0xFFF00000 #define S_3F2_CHAIN(x) (((unsigned)(x) & 0x1) << 20) #define G_3F2_CHAIN(x) (((x) >> 20) & 0x1) #define C_3F2_CHAIN 0xFFEFFFFF #define S_3F2_VALID(x) (((unsigned)(x) & 0x1) << 23) #define G_3F2_VALID(x) (((x) >> 23) & 0x1) #define C_3F2_VALID 0xFF7FFFFF #define R_000404_SQ_WAVE_MODE 0x000404 /* >= gfx10 */ #define S_000404_FP_ROUND(x) (((unsigned)(x) & 0xF) << 0) #define G_000404_FP_ROUND(x) (((x) >> 0) & 0xF) #define C_000404_FP_ROUND 0xFFFFFFF0 #define S_000404_FP_DENORM(x) (((unsigned)(x) & 0xF) << 4) #define G_000404_FP_DENORM(x) (((x) >> 4) & 0xF) #define C_000404_FP_DENORM 0xFFFFFF0F #define S_000404_DX10_CLAMP(x) (((unsigned)(x) & 0x1) << 8) #define G_000404_DX10_CLAMP(x) (((x) >> 8) & 0x1) #define C_000404_DX10_CLAMP 0xFFFFFEFF #define S_000404_IEEE(x) (((unsigned)(x) & 0x1) << 9) #define G_000404_IEEE(x) (((x) >> 9) & 0x1) #define C_000404_IEEE 0xFFFFFDFF #define S_000404_LOD_CLAMPED(x) (((unsigned)(x) & 0x1) << 10) #define G_000404_LOD_CLAMPED(x) (((x) >> 10) & 0x1) #define C_000404_LOD_CLAMPED 0xFFFFFBFF #define S_000404_EXCP_EN(x) (((unsigned)(x) & 0x1FF) << 12) #define G_000404_EXCP_EN(x) (((x) >> 12) & 0x1FF) #define C_000404_EXCP_EN 0xFFE00FFF #define V_000404_INVALID 1 #define V_000404_INPUT_DENORMAL 2 #define V_000404_DIVIDE_BY_ZERO 4 #define V_000404_OVERFLOW 8 #define V_000404_UNDERFLOW 16 #define V_000404_INEXACT 32 #define V_000404_INT_DIVIDE_BY_ZERO 64 #define V_000404_ADDRESS_WATCH 128 #define V_000404_MEMORY_VIOLATION 256 #define S_000404_FP16_OVFL(x) (((unsigned)(x) & 0x1) << 23) #define G_000404_FP16_OVFL(x) (((x) >> 23) & 0x1) #define C_000404_FP16_OVFL 0xFF7FFFFF #define S_000404_DISABLE_PERF(x) (((unsigned)(x) & 0x1) << 27) #define G_000404_DISABLE_PERF(x) (((x) >> 27) & 0x1) #define C_000404_DISABLE_PERF 0xF7FFFFFF #define S_000404_VSKIP(x) (((unsigned)(x) & 0x1) << 28) /* gfx10 */ #define G_000404_VSKIP(x) (((x) >> 28) & 0x1) #define C_000404_VSKIP 0xEFFFFFFF #define S_000404_CSP(x) (((unsigned)(x) & 0x7) << 29) /* gfx10 */ #define G_000404_CSP(x) (((x) >> 29) & 0x7) #define C_000404_CSP 0x1FFFFFFF #define R_000408_SQ_WAVE_STATUS 0x000408 /* >= gfx10 */ #define S_000408_SCC(x) (((unsigned)(x) & 0x1) << 0) #define G_000408_SCC(x) (((x) >> 0) & 0x1) #define C_000408_SCC 0xFFFFFFFE #define S_000408_SPI_PRIO(x) (((unsigned)(x) & 0x3) << 1) #define G_000408_SPI_PRIO(x) (((x) >> 1) & 0x3) #define C_000408_SPI_PRIO 0xFFFFFFF9 #define S_000408_USER_PRIO(x) (((unsigned)(x) & 0x3) << 3) #define G_000408_USER_PRIO(x) (((x) >> 3) & 0x3) #define C_000408_USER_PRIO 0xFFFFFFE7 #define S_000408_PRIV(x) (((unsigned)(x) & 0x1) << 5) #define G_000408_PRIV(x) (((x) >> 5) & 0x1) #define C_000408_PRIV 0xFFFFFFDF #define S_000408_TRAP_EN(x) (((unsigned)(x) & 0x1) << 6) #define G_000408_TRAP_EN(x) (((x) >> 6) & 0x1) #define C_000408_TRAP_EN 0xFFFFFFBF #define S_000408_TTRACE_EN(x) (((unsigned)(x) & 0x1) << 7) #define G_000408_TTRACE_EN(x) (((x) >> 7) & 0x1) #define C_000408_TTRACE_EN 0xFFFFFF7F #define S_000408_EXPORT_RDY(x) (((unsigned)(x) & 0x1) << 8) #define G_000408_EXPORT_RDY(x) (((x) >> 8) & 0x1) #define C_000408_EXPORT_RDY 0xFFFFFEFF #define S_000408_EXECZ(x) (((unsigned)(x) & 0x1) << 9) #define G_000408_EXECZ(x) (((x) >> 9) & 0x1) #define C_000408_EXECZ 0xFFFFFDFF #define S_000408_VCCZ(x) (((unsigned)(x) & 0x1) << 10) #define G_000408_VCCZ(x) (((x) >> 10) & 0x1) #define C_000408_VCCZ 0xFFFFFBFF #define S_000408_IN_TG(x) (((unsigned)(x) & 0x1) << 11) #define G_000408_IN_TG(x) (((x) >> 11) & 0x1) #define C_000408_IN_TG 0xFFFFF7FF #define S_000408_IN_BARRIER(x) (((unsigned)(x) & 0x1) << 12) #define G_000408_IN_BARRIER(x) (((x) >> 12) & 0x1) #define C_000408_IN_BARRIER 0xFFFFEFFF #define S_000408_HALT(x) (((unsigned)(x) & 0x1) << 13) #define G_000408_HALT(x) (((x) >> 13) & 0x1) #define C_000408_HALT 0xFFFFDFFF #define S_000408_TRAP(x) (((unsigned)(x) & 0x1) << 14) #define G_000408_TRAP(x) (((x) >> 14) & 0x1) #define C_000408_TRAP 0xFFFFBFFF #define S_000408_TTRACE_SIMD_EN(x) (((unsigned)(x) & 0x1) << 15) #define G_000408_TTRACE_SIMD_EN(x) (((x) >> 15) & 0x1) #define C_000408_TTRACE_SIMD_EN 0xFFFF7FFF #define S_000408_VALID(x) (((unsigned)(x) & 0x1) << 16) #define G_000408_VALID(x) (((x) >> 16) & 0x1) #define C_000408_VALID 0xFFFEFFFF #define S_000408_ECC_ERR(x) (((unsigned)(x) & 0x1) << 17) #define G_000408_ECC_ERR(x) (((x) >> 17) & 0x1) #define C_000408_ECC_ERR 0xFFFDFFFF #define S_000408_SKIP_EXPORT(x) (((unsigned)(x) & 0x1) << 18) #define G_000408_SKIP_EXPORT(x) (((x) >> 18) & 0x1) #define C_000408_SKIP_EXPORT 0xFFFBFFFF #define S_000408_PERF_EN(x) (((unsigned)(x) & 0x1) << 19) #define G_000408_PERF_EN(x) (((x) >> 19) & 0x1) #define C_000408_PERF_EN 0xFFF7FFFF #define S_000408_FATAL_HALT(x) (((unsigned)(x) & 0x1) << 23) #define G_000408_FATAL_HALT(x) (((x) >> 23) & 0x1) #define C_000408_FATAL_HALT 0xFF7FFFFF #define S_000408_MUST_EXPORT(x) (((unsigned)(x) & 0x1) << 27) #define G_000408_MUST_EXPORT(x) (((x) >> 27) & 0x1) #define C_000408_MUST_EXPORT 0xF7FFFFFF #define R_00040C_SQ_WAVE_TRAPSTS 0x00040C /* >= gfx10 */ #define S_00040C_EXCP(x) (((unsigned)(x) & 0x1FF) << 0) #define G_00040C_EXCP(x) (((x) >> 0) & 0x1FF) #define C_00040C_EXCP 0xFFFFFE00 #define V_00040C_INVALID 1 #define V_00040C_INPUT_DENORMAL 2 #define V_00040C_DIVIDE_BY_ZERO 4 #define V_00040C_OVERFLOW 8 #define V_00040C_UNDERFLOW 16 #define V_00040C_INEXACT 32 #define V_00040C_INT_DIVIDE_BY_ZERO 64 #define V_00040C_ADDRESS_WATCH 128 #define V_00040C_MEMORY_VIOLATION 256 #define S_00040C_SAVECTX(x) (((unsigned)(x) & 0x1) << 10) #define G_00040C_SAVECTX(x) (((x) >> 10) & 0x1) #define C_00040C_SAVECTX 0xFFFFFBFF #define S_00040C_ILLEGAL_INST(x) (((unsigned)(x) & 0x1) << 11) #define G_00040C_ILLEGAL_INST(x) (((x) >> 11) & 0x1) #define C_00040C_ILLEGAL_INST 0xFFFFF7FF #define S_00040C_EXCP_HI(x) (((unsigned)(x) & 0x7) << 12) #define G_00040C_EXCP_HI(x) (((x) >> 12) & 0x7) #define C_00040C_EXCP_HI 0xFFFF8FFF #define S_00040C_BUFFER_OOB(x) (((unsigned)(x) & 0x1) << 15) #define G_00040C_BUFFER_OOB(x) (((x) >> 15) & 0x1) #define C_00040C_BUFFER_OOB 0xFFFF7FFF #define S_00040C_EXCP_CYCLE(x) (((unsigned)(x) & 0xF) << 16) #define G_00040C_EXCP_CYCLE(x) (((x) >> 16) & 0xF) #define C_00040C_EXCP_CYCLE 0xFFF0FFFF #define S_00040C_EXCP_GROUP_MASK(x) (((unsigned)(x) & 0xF) << 20) #define G_00040C_EXCP_GROUP_MASK(x) (((x) >> 20) & 0xF) #define C_00040C_EXCP_GROUP_MASK 0xFF0FFFFF #define S_00040C_EXCP_WAVE64HI(x) (((unsigned)(x) & 0x1) << 24) #define G_00040C_EXCP_WAVE64HI(x) (((x) >> 24) & 0x1) #define C_00040C_EXCP_WAVE64HI 0xFEFFFFFF #define S_00040C_UTC_ERROR(x) (((unsigned)(x) & 0x1) << 28) /* >= gfx103 */ #define G_00040C_UTC_ERROR(x) (((x) >> 28) & 0x1) #define C_00040C_UTC_ERROR 0xEFFFFFFF #define S_00040C_XNACK_ERROR(x) (((unsigned)(x) & 0x1) << 28) /* gfx10 */ #define G_00040C_XNACK_ERROR(x) (((x) >> 28) & 0x1) #define C_00040C_XNACK_ERROR 0xEFFFFFFF #define S_00040C_DP_RATE(x) (((unsigned)(x) & 0x7) << 29) #define G_00040C_DP_RATE(x) (((x) >> 29) & 0x7) #define C_00040C_DP_RATE 0x1FFFFFFF #define R_410_CP_DMA_WORD0 0x410 #define S_410_SRC_ADDR_LO(x) (((unsigned)(x) & 0xFFFFFFFF) << 0) #define G_410_SRC_ADDR_LO(x) (((x) >> 0) & 0xFFFFFFFF) #define C_410_SRC_ADDR_LO 0x00000000 #define R_000410_SQ_WAVE_HW_ID_LEGACY 0x000410 /* >= gfx10 */ #define S_000410_WAVE_ID(x) (((unsigned)(x) & 0xF) << 0) #define G_000410_WAVE_ID(x) (((x) >> 0) & 0xF) #define C_000410_WAVE_ID 0xFFFFFFF0 #define S_000410_SIMD_ID(x) (((unsigned)(x) & 0x3) << 4) #define G_000410_SIMD_ID(x) (((x) >> 4) & 0x3) #define C_000410_SIMD_ID 0xFFFFFFCF #define S_000410_PIPE_ID(x) (((unsigned)(x) & 0x3) << 6) #define G_000410_PIPE_ID(x) (((x) >> 6) & 0x3) #define C_000410_PIPE_ID 0xFFFFFF3F #define S_000410_CU_ID(x) (((unsigned)(x) & 0xF) << 8) #define G_000410_CU_ID(x) (((x) >> 8) & 0xF) #define C_000410_CU_ID 0xFFFFF0FF #define S_000410_SH_ID(x) (((unsigned)(x) & 0x1) << 12) #define G_000410_SH_ID(x) (((x) >> 12) & 0x1) #define C_000410_SH_ID 0xFFFFEFFF #define S_000410_SE_ID(x) (((unsigned)(x) & 0x3) << 13) #define G_000410_SE_ID(x) (((x) >> 13) & 0x3) #define C_000410_SE_ID 0xFFFF9FFF #define S_000410_WAVE_ID_MSB(x) (((unsigned)(x) & 0x1) << 15) #define G_000410_WAVE_ID_MSB(x) (((x) >> 15) & 0x1) #define C_000410_WAVE_ID_MSB 0xFFFF7FFF #define S_000410_TG_ID(x) (((unsigned)(x) & 0xF) << 16) #define G_000410_TG_ID(x) (((x) >> 16) & 0xF) #define C_000410_TG_ID 0xFFF0FFFF #define S_000410_VM_ID(x) (((unsigned)(x) & 0xF) << 20) #define G_000410_VM_ID(x) (((x) >> 20) & 0xF) #define C_000410_VM_ID 0xFF0FFFFF #define S_000410_QUEUE_ID(x) (((unsigned)(x) & 0x7) << 24) #define G_000410_QUEUE_ID(x) (((x) >> 24) & 0x7) #define C_000410_QUEUE_ID 0xF8FFFFFF #define S_000410_STATE_ID(x) (((unsigned)(x) & 0x7) << 27) #define G_000410_STATE_ID(x) (((x) >> 27) & 0x7) #define C_000410_STATE_ID 0xC7FFFFFF #define S_000410_ME_ID(x) (((unsigned)(x) & 0x3) << 30) #define G_000410_ME_ID(x) (((x) >> 30) & 0x3) #define C_000410_ME_ID 0x3FFFFFFF #define R_411_CP_DMA_WORD1 0x411 #define S_411_SRC_ADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_411_SRC_ADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_411_SRC_ADDR_HI 0xFFFF0000 #define S_411_DST_SEL(x) (((unsigned)(x) & 0x3) << 20) #define G_411_DST_SEL(x) (((x) >> 20) & 0x3) #define C_411_DST_SEL 0xFFCFFFFF #define V_411_DST_ADDR 0 #define V_411_GDS 1 #define V_411_NOWHERE 2 /* >= gfx9 */ #define V_411_DST_ADDR_TC_L2 3 /* >= gfx7 */ #define S_411_ENGINE(x) (((unsigned)(x) & 0x1) << 27) #define G_411_ENGINE(x) (((x) >> 27) & 0x1) #define C_411_ENGINE 0xF7FFFFFF #define V_411_ME 0 #define V_411_PFP 1 #define S_411_SRC_SEL(x) (((unsigned)(x) & 0x3) << 29) #define G_411_SRC_SEL(x) (((x) >> 29) & 0x3) #define C_411_SRC_SEL 0x9FFFFFFF #define V_411_SRC_ADDR 0 #define V_411_DATA 2 #define V_411_SRC_ADDR_TC_L2 3 /* >= gfx7 */ #define S_411_CP_SYNC(x) (((unsigned)(x) & 0x1) << 31) #define G_411_CP_SYNC(x) (((x) >> 31) & 0x1) #define C_411_CP_SYNC 0x7FFFFFFF #define R_412_CP_DMA_WORD2 0x412 #define S_412_DST_ADDR_LO(x) (((unsigned)(x) & 0xFFFFFFFF) << 0) #define G_412_DST_ADDR_LO(x) (((x) >> 0) & 0xFFFFFFFF) #define C_412_DST_ADDR_LO 0x00000000 #define R_413_CP_DMA_WORD3 0x413 #define S_413_DST_ADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_413_DST_ADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_413_DST_ADDR_HI 0xFFFF0000 #define R_000414_SQ_WAVE_GPR_ALLOC 0x000414 /* >= gfx10 */ #define S_000414_VGPR_BASE(x) (((unsigned)(x) & 0xFF) << 0) #define G_000414_VGPR_BASE(x) (((x) >> 0) & 0xFF) #define C_000414_VGPR_BASE 0xFFFFFF00 #define S_000414_VGPR_SIZE(x) (((unsigned)(x) & 0xFF) << 8) #define G_000414_VGPR_SIZE(x) (((x) >> 8) & 0xFF) #define C_000414_VGPR_SIZE 0xFFFF00FF #define S_000414_SGPR_BASE(x) (((unsigned)(x) & 0xFF) << 16) #define G_000414_SGPR_BASE(x) (((x) >> 16) & 0xFF) #define C_000414_SGPR_BASE 0xFF00FFFF #define S_000414_SGPR_SIZE(x) (((unsigned)(x) & 0xF) << 24) #define G_000414_SGPR_SIZE(x) (((x) >> 24) & 0xF) #define C_000414_SGPR_SIZE 0xF0FFFFFF #define R_415_COMMAND 0x415 #define S_415_BYTE_COUNT_GFX6(x) (((unsigned)(x) & 0x1FFFFF) << 0) /* <= gfx81 */ #define G_415_BYTE_COUNT_GFX6(x) (((x) >> 0) & 0x1FFFFF) #define C_415_BYTE_COUNT_GFX6 0xFFE00000 #define S_415_BYTE_COUNT_GFX9(x) (((unsigned)(x) & 0x3FFFFFF) << 0) /* >= gfx9 */ #define G_415_BYTE_COUNT_GFX9(x) (((x) >> 0) & 0x3FFFFFF) #define C_415_BYTE_COUNT_GFX9 0xFC000000 #define S_415_DISABLE_WR_CONFIRM_GFX6(x) (((unsigned)(x) & 0x1) << 21) /* <= gfx81 */ #define G_415_DISABLE_WR_CONFIRM_GFX6(x) (((x) >> 21) & 0x1) #define C_415_DISABLE_WR_CONFIRM_GFX6 0xFFDFFFFF #define S_415_SRC_SWAP(x) (((unsigned)(x) & 0x3) << 22) /* <= gfx81 */ #define G_415_SRC_SWAP(x) (((x) >> 22) & 0x3) #define C_415_SRC_SWAP 0xFF3FFFFF #define V_415_NONE 0 #define V_415_8_IN_16 1 #define V_415_8_IN_32 2 #define V_415_8_IN_64 3 #define S_415_DST_SWAP(x) (((unsigned)(x) & 0x3) << 24) /* <= gfx81 */ #define G_415_DST_SWAP(x) (((x) >> 24) & 0x3) #define C_415_DST_SWAP 0xFCFFFFFF #define S_415_SAS(x) (((unsigned)(x) & 0x1) << 26) #define G_415_SAS(x) (((x) >> 26) & 0x1) #define C_415_SAS 0xFBFFFFFF #define V_415_MEMORY 0 #define V_415_REGISTER 1 #define S_415_DAS(x) (((unsigned)(x) & 0x1) << 27) #define G_415_DAS(x) (((x) >> 27) & 0x1) #define C_415_DAS 0xF7FFFFFF #define S_415_SAIC(x) (((unsigned)(x) & 0x1) << 28) #define G_415_SAIC(x) (((x) >> 28) & 0x1) #define C_415_SAIC 0xEFFFFFFF #define V_415_INCREMENT 0 #define V_415_NO_INCREMENT 1 #define S_415_DAIC(x) (((unsigned)(x) & 0x1) << 29) #define G_415_DAIC(x) (((x) >> 29) & 0x1) #define C_415_DAIC 0xDFFFFFFF #define S_415_RAW_WAIT(x) (((unsigned)(x) & 0x1) << 30) #define G_415_RAW_WAIT(x) (((x) >> 30) & 0x1) #define C_415_RAW_WAIT 0xBFFFFFFF #define S_415_DISABLE_WR_CONFIRM_GFX9(x) (((unsigned)(x) & 0x1) << 31) /* >= gfx9 */ #define G_415_DISABLE_WR_CONFIRM_GFX9(x) (((x) >> 31) & 0x1) #define C_415_DISABLE_WR_CONFIRM_GFX9 0x7FFFFFFF #define R_000418_SQ_WAVE_LDS_ALLOC 0x000418 /* >= gfx10 */ #define S_000418_LDS_BASE(x) (((unsigned)(x) & 0x1FF) << 0) #define G_000418_LDS_BASE(x) (((x) >> 0) & 0x1FF) #define C_000418_LDS_BASE 0xFFFFFE00 #define S_000418_LDS_SIZE(x) (((unsigned)(x) & 0x1FF) << 12) #define G_000418_LDS_SIZE(x) (((x) >> 12) & 0x1FF) #define C_000418_LDS_SIZE 0xFFE00FFF #define S_000418_VGPR_SHARED_SIZE(x) (((unsigned)(x) & 0xF) << 24) #define G_000418_VGPR_SHARED_SIZE(x) (((x) >> 24) & 0xF) #define C_000418_VGPR_SHARED_SIZE 0xF0FFFFFF #define R_00041C_SQ_WAVE_IB_STS 0x00041C /* >= gfx10 */ #define S_00041C_VM_CNT(x) (((unsigned)(x) & 0xF) << 0) #define G_00041C_VM_CNT(x) (((x) >> 0) & 0xF) #define C_00041C_VM_CNT 0xFFFFFFF0 #define S_00041C_EXP_CNT(x) (((unsigned)(x) & 0x7) << 4) #define G_00041C_EXP_CNT(x) (((x) >> 4) & 0x7) #define C_00041C_EXP_CNT 0xFFFFFF8F #define S_00041C_LGKM_CNT_BIT4(x) (((unsigned)(x) & 0x1) << 7) #define G_00041C_LGKM_CNT_BIT4(x) (((x) >> 7) & 0x1) #define C_00041C_LGKM_CNT_BIT4 0xFFFFFF7F #define S_00041C_LGKM_CNT(x) (((unsigned)(x) & 0xF) << 8) #define G_00041C_LGKM_CNT(x) (((x) >> 8) & 0xF) #define C_00041C_LGKM_CNT 0xFFFFF0FF #define S_00041C_VALU_CNT(x) (((unsigned)(x) & 0x7) << 12) #define G_00041C_VALU_CNT(x) (((x) >> 12) & 0x7) #define C_00041C_VALU_CNT 0xFFFF8FFF #define S_00041C_FIRST_REPLAY(x) (((unsigned)(x) & 0x1) << 15) /* gfx10 */ #define G_00041C_FIRST_REPLAY(x) (((x) >> 15) & 0x1) #define C_00041C_FIRST_REPLAY 0xFFFF7FFF #define S_00041C_RCNT(x) (((unsigned)(x) & 0x3F) << 16) /* gfx10 */ #define G_00041C_RCNT(x) (((x) >> 16) & 0x3F) #define C_00041C_RCNT 0xFFC0FFFF #define S_00041C_VM_CNT_HI(x) (((unsigned)(x) & 0x3) << 22) #define G_00041C_VM_CNT_HI(x) (((x) >> 22) & 0x3) #define C_00041C_VM_CNT_HI 0xFF3FFFFF #define S_00041C_LGKM_CNT_BIT5(x) (((unsigned)(x) & 0x1) << 24) #define G_00041C_LGKM_CNT_BIT5(x) (((x) >> 24) & 0x1) #define C_00041C_LGKM_CNT_BIT5 0xFEFFFFFF #define S_00041C_REPLAY_W64H(x) (((unsigned)(x) & 0x1) << 25) /* gfx10 */ #define G_00041C_REPLAY_W64H(x) (((x) >> 25) & 0x1) #define C_00041C_REPLAY_W64H 0xFDFFFFFF #define S_00041C_VS_CNT(x) (((unsigned)(x) & 0x3F) << 26) #define G_00041C_VS_CNT(x) (((x) >> 26) & 0x3F) #define C_00041C_VS_CNT 0x03FFFFFF #define R_000420_SQ_WAVE_PC_LO 0x000420 /* >= gfx10 */ #define R_000424_SQ_WAVE_PC_HI 0x000424 /* >= gfx10 */ #define S_000424_PC_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_000424_PC_HI(x) (((x) >> 0) & 0xFFFF) #define C_000424_PC_HI 0xFFFF0000 #define R_000428_SQ_WAVE_INST_DW0 0x000428 /* >= gfx10 */ #define R_000434_SQ_WAVE_IB_DBG1 0x000434 /* >= gfx10 */ #define S_000434_XNACK_ERROR(x) (((unsigned)(x) & 0x1) << 0) /* gfx10 */ #define G_000434_XNACK_ERROR(x) (((x) >> 0) & 0x1) #define C_000434_XNACK_ERROR 0xFFFFFFFE #define S_000434_XNACK(x) (((unsigned)(x) & 0x1) << 1) /* gfx10 */ #define G_000434_XNACK(x) (((x) >> 1) & 0x1) #define C_000434_XNACK 0xFFFFFFFD #define S_000434_TA_NEED_RESET(x) (((unsigned)(x) & 0x1) << 2) /* gfx10 */ #define G_000434_TA_NEED_RESET(x) (((x) >> 2) & 0x1) #define C_000434_TA_NEED_RESET 0xFFFFFFFB #define S_000434_XNACK_OVERRIDE(x) (((unsigned)(x) & 0x1) << 3) /* gfx10 */ #define G_000434_XNACK_OVERRIDE(x) (((x) >> 3) & 0x1) #define C_000434_XNACK_OVERRIDE 0xFFFFFFF7 #define S_000434_XCNT(x) (((unsigned)(x) & 0x3F) << 4) /* gfx10 */ #define G_000434_XCNT(x) (((x) >> 4) & 0x3F) #define C_000434_XCNT 0xFFFFFC0F #define S_000434_QCNT(x) (((unsigned)(x) & 0x3F) << 11) /* gfx10 */ #define G_000434_QCNT(x) (((x) >> 11) & 0x3F) #define C_000434_QCNT 0xFFFE07FF #define S_000434_RCNT(x) (((unsigned)(x) & 0x3F) << 18) /* gfx10 */ #define G_000434_RCNT(x) (((x) >> 18) & 0x3F) #define C_000434_RCNT 0xFF03FFFF #define S_000434_WAVE_IDLE(x) (((unsigned)(x) & 0x1) << 24) #define G_000434_WAVE_IDLE(x) (((x) >> 24) & 0x1) #define C_000434_WAVE_IDLE 0xFEFFFFFF #define S_000434_MISC_CNT(x) (((unsigned)(x) & 0x7F) << 25) #define G_000434_MISC_CNT(x) (((x) >> 25) & 0x7F) #define C_000434_MISC_CNT 0x01FFFFFF #define R_000438_SQ_WAVE_FLUSH_IB 0x000438 /* >= gfx10 */ #define R_000450_SQ_WAVE_FLAT_SCRATCH_LO 0x000450 /* >= gfx103 */ #define R_000454_SQ_WAVE_FLAT_SCRATCH_HI 0x000454 /* >= gfx103 */ #define R_00045C_SQ_WAVE_HW_ID1 0x00045C /* >= gfx10 */ #define S_00045C_WAVE_ID(x) (((unsigned)(x) & 0x1F) << 0) #define G_00045C_WAVE_ID(x) (((x) >> 0) & 0x1F) #define C_00045C_WAVE_ID 0xFFFFFFE0 #define S_00045C_SIMD_ID(x) (((unsigned)(x) & 0x3) << 8) #define G_00045C_SIMD_ID(x) (((x) >> 8) & 0x3) #define C_00045C_SIMD_ID 0xFFFFFCFF #define S_00045C_WGP_ID(x) (((unsigned)(x) & 0xF) << 10) #define G_00045C_WGP_ID(x) (((x) >> 10) & 0xF) #define C_00045C_WGP_ID 0xFFFFC3FF #define S_00045C_SA_ID(x) (((unsigned)(x) & 0x1) << 16) #define G_00045C_SA_ID(x) (((x) >> 16) & 0x1) #define C_00045C_SA_ID 0xFFFEFFFF #define S_00045C_SE_ID(x) (((unsigned)(x) & 0x3) << 18) #define G_00045C_SE_ID(x) (((x) >> 18) & 0x3) #define C_00045C_SE_ID 0xFFF3FFFF #define R_000460_SQ_WAVE_HW_ID2 0x000460 /* >= gfx10 */ #define S_000460_QUEUE_ID(x) (((unsigned)(x) & 0xF) << 0) #define G_000460_QUEUE_ID(x) (((x) >> 0) & 0xF) #define C_000460_QUEUE_ID 0xFFFFFFF0 #define S_000460_PIPE_ID(x) (((unsigned)(x) & 0x3) << 4) #define G_000460_PIPE_ID(x) (((x) >> 4) & 0x3) #define C_000460_PIPE_ID 0xFFFFFFCF #define S_000460_ME_ID(x) (((unsigned)(x) & 0x3) << 8) #define G_000460_ME_ID(x) (((x) >> 8) & 0x3) #define C_000460_ME_ID 0xFFFFFCFF #define S_000460_STATE_ID(x) (((unsigned)(x) & 0x7) << 12) #define G_000460_STATE_ID(x) (((x) >> 12) & 0x7) #define C_000460_STATE_ID 0xFFFF8FFF #define S_000460_WG_ID(x) (((unsigned)(x) & 0x1F) << 16) #define G_000460_WG_ID(x) (((x) >> 16) & 0x1F) #define C_000460_WG_ID 0xFFE0FFFF #define S_000460_VM_ID(x) (((unsigned)(x) & 0xF) << 24) #define G_000460_VM_ID(x) (((x) >> 24) & 0xF) #define C_000460_VM_ID 0xF0FFFFFF #define S_000460_COMPAT_LEVEL(x) (((unsigned)(x) & 0x3) << 29) /* gfx10 */ #define G_000460_COMPAT_LEVEL(x) (((x) >> 29) & 0x3) #define C_000460_COMPAT_LEVEL 0x9FFFFFFF #define R_000464_SQ_WAVE_POPS_PACKER 0x000464 /* >= gfx10 */ #define S_000464_POPS_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_000464_POPS_EN(x) (((x) >> 0) & 0x1) #define C_000464_POPS_EN 0xFFFFFFFE #define S_000464_POPS_PACKER_ID(x) (((unsigned)(x) & 0x3) << 1) #define G_000464_POPS_PACKER_ID(x) (((x) >> 1) & 0x3) #define C_000464_POPS_PACKER_ID 0xFFFFFFF9 #define R_000468_SQ_WAVE_SCHED_MODE 0x000468 /* >= gfx10 */ #define S_000468_DEP_MODE(x) (((unsigned)(x) & 0x3) << 0) #define G_000468_DEP_MODE(x) (((x) >> 0) & 0x3) #define C_000468_DEP_MODE 0xFFFFFFFC #define R_00046C_SQ_WAVE_VGPR_OFFSET 0x00046C /* >= gfx10 */ #define S_00046C_SRC0(x) (((unsigned)(x) & 0x3F) << 0) #define G_00046C_SRC0(x) (((x) >> 0) & 0x3F) #define C_00046C_SRC0 0xFFFFFFC0 #define S_00046C_SRC1(x) (((unsigned)(x) & 0x3F) << 6) #define G_00046C_SRC1(x) (((x) >> 6) & 0x3F) #define C_00046C_SRC1 0xFFFFF03F #define S_00046C_SRC2(x) (((unsigned)(x) & 0x3F) << 12) #define G_00046C_SRC2(x) (((x) >> 12) & 0x3F) #define C_00046C_SRC2 0xFFFC0FFF #define S_00046C_DST(x) (((unsigned)(x) & 0x3F) << 18) #define G_00046C_DST(x) (((x) >> 18) & 0x3F) #define C_00046C_DST 0xFF03FFFF #define R_000470_SQ_WAVE_IB_STS2 0x000470 /* >= gfx10 */ #define S_000470_INST_PREFETCH(x) (((unsigned)(x) & 0x3) << 0) #define G_000470_INST_PREFETCH(x) (((x) >> 0) & 0x3) #define C_000470_INST_PREFETCH 0xFFFFFFFC #define S_000470_RESOURCE_OVERRIDE(x) (((unsigned)(x) & 0x1) << 7) #define G_000470_RESOURCE_OVERRIDE(x) (((x) >> 7) & 0x1) #define C_000470_RESOURCE_OVERRIDE 0xFFFFFF7F #define S_000470_MEM_ORDER(x) (((unsigned)(x) & 0x3) << 8) #define G_000470_MEM_ORDER(x) (((x) >> 8) & 0x3) #define C_000470_MEM_ORDER 0xFFFFFCFF #define S_000470_FWD_PROGRESS(x) (((unsigned)(x) & 0x1) << 10) #define G_000470_FWD_PROGRESS(x) (((x) >> 10) & 0x1) #define C_000470_FWD_PROGRESS 0xFFFFFBFF #define S_000470_WAVE64(x) (((unsigned)(x) & 0x1) << 11) #define G_000470_WAVE64(x) (((x) >> 11) & 0x1) #define C_000470_WAVE64 0xFFFFF7FF #define S_000470_WAVE64HI(x) (((unsigned)(x) & 0x1) << 12) /* gfx10 */ #define G_000470_WAVE64HI(x) (((x) >> 12) & 0x1) #define C_000470_WAVE64HI 0xFFFFEFFF #define S_000470_SUBV_LOOP(x) (((unsigned)(x) & 0x1) << 13) /* gfx10 */ #define G_000470_SUBV_LOOP(x) (((x) >> 13) & 0x1) #define C_000470_SUBV_LOOP 0xFFFFDFFF #define R_000474_SQ_WAVE_SHADER_CYCLES 0x000474 /* >= gfx103 */ #define S_000474_CYCLES(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_000474_CYCLES(x) (((x) >> 0) & 0xFFFFF) #define C_000474_CYCLES 0xFFF00000 #define R_490_RELEASE_MEM_OP 0x490 /* >= gfx10 */ #define S_490_EVENT_TYPE(x) (((unsigned)(x) & 0x3F) << 0) #define G_490_EVENT_TYPE(x) (((x) >> 0) & 0x3F) #define C_490_EVENT_TYPE 0xFFFFFFC0 #define S_490_EVENT_INDEX(x) (((unsigned)(x) & 0xF) << 8) #define G_490_EVENT_INDEX(x) (((x) >> 8) & 0xF) #define C_490_EVENT_INDEX 0xFFFFF0FF #define S_490_GLM_WB(x) (((unsigned)(x) & 0x1) << 12) #define G_490_GLM_WB(x) (((x) >> 12) & 0x1) #define C_490_GLM_WB 0xFFFFEFFF #define S_490_GLM_INV(x) (((unsigned)(x) & 0x1) << 13) #define G_490_GLM_INV(x) (((x) >> 13) & 0x1) #define C_490_GLM_INV 0xFFFFDFFF #define S_490_GLV_INV(x) (((unsigned)(x) & 0x1) << 14) #define G_490_GLV_INV(x) (((x) >> 14) & 0x1) #define C_490_GLV_INV 0xFFFFBFFF #define S_490_GL1_INV(x) (((unsigned)(x) & 0x1) << 15) #define G_490_GL1_INV(x) (((x) >> 15) & 0x1) #define C_490_GL1_INV 0xFFFF7FFF #define S_490_GL2_US(x) (((unsigned)(x) & 0x1) << 16) #define G_490_GL2_US(x) (((x) >> 16) & 0x1) #define C_490_GL2_US 0xFFFEFFFF #define S_490_GL2_RANGE(x) (((unsigned)(x) & 0x3) << 17) #define G_490_GL2_RANGE(x) (((x) >> 17) & 0x3) #define C_490_GL2_RANGE 0xFFF9FFFF #define V_490_GL2_ALL 0 #define V_490_GL2_VOL 1 #define V_490_GL2_RANGE 2 #define V_490_GL2_FIRST_LAST 3 #define S_490_GL2_DISCARD(x) (((unsigned)(x) & 0x1) << 19) #define G_490_GL2_DISCARD(x) (((x) >> 19) & 0x1) #define C_490_GL2_DISCARD 0xFFF7FFFF #define S_490_GL2_INV(x) (((unsigned)(x) & 0x1) << 20) #define G_490_GL2_INV(x) (((x) >> 20) & 0x1) #define C_490_GL2_INV 0xFFEFFFFF #define S_490_GL2_WB(x) (((unsigned)(x) & 0x1) << 21) #define G_490_GL2_WB(x) (((x) >> 21) & 0x1) #define C_490_GL2_WB 0xFFDFFFFF #define S_490_SEQ(x) (((unsigned)(x) & 0x3) << 22) #define G_490_SEQ(x) (((x) >> 22) & 0x3) #define C_490_SEQ 0xFF3FFFFF #define V_490_SEQ_PARALLEL 0 #define V_490_SEQ_FORWARD 1 #define V_490_SEQ_REVERSE 2 #define R_500_DMA_DATA_WORD0 0x500 #define S_500_ENGINE(x) (((unsigned)(x) & 0x1) << 0) #define G_500_ENGINE(x) (((x) >> 0) & 0x1) #define C_500_ENGINE 0xFFFFFFFE #define V_500_ME 0 #define V_500_PFP 1 #define S_500_SRC_CACHE_POLICY(x) (((unsigned)(x) & 0x3) << 13) /* >= gfx7 */ #define G_500_SRC_CACHE_POLICY(x) (((x) >> 13) & 0x3) #define C_500_SRC_CACHE_POLICY 0xFFFF9FFF #define S_500_DST_SEL(x) (((unsigned)(x) & 0x3) << 20) #define G_500_DST_SEL(x) (((x) >> 20) & 0x3) #define C_500_DST_SEL 0xFFCFFFFF #define V_500_DST_ADDR 0 #define V_500_GDS 1 #define V_500_NOWHERE 2 /* >= gfx9 */ #define V_500_DST_ADDR_TC_L2 3 /* >= gfx7 */ #define S_500_DST_CACHE_POLICY(x) (((unsigned)(x) & 0x3) << 25) /* >= gfx7 */ #define G_500_DST_CACHE_POLICY(x) (((x) >> 25) & 0x3) #define C_500_DST_CACHE_POLICY 0xF9FFFFFF #define S_500_SRC_SEL(x) (((unsigned)(x) & 0x3) << 29) #define G_500_SRC_SEL(x) (((x) >> 29) & 0x3) #define C_500_SRC_SEL 0x9FFFFFFF #define V_500_SRC_ADDR 0 #define V_500_DATA 2 #define V_500_SRC_ADDR_TC_L2 3 /* >= gfx7 */ #define S_500_CP_SYNC(x) (((unsigned)(x) & 0x1) << 31) #define G_500_CP_SYNC(x) (((x) >> 31) & 0x1) #define C_500_CP_SYNC 0x7FFFFFFF #define R_501_SRC_ADDR_LO 0x501 #define R_502_SRC_ADDR_HI 0x502 #define R_503_DST_ADDR_LO 0x503 #define R_504_DST_ADDR_HI 0x504 #define R_586_GCR_CNTL 0x586 /* >= gfx10 */ #define S_586_GLI_INV(x) (((unsigned)(x) & 0x3) << 0) #define G_586_GLI_INV(x) (((x) >> 0) & 0x3) #define C_586_GLI_INV 0xFFFFFFFC #define V_586_GLI_NOP 0 #define V_586_GLI_ALL 1 #define V_586_GLI_RANGE 2 #define V_586_GLI_FIRST_LAST 3 #define S_586_GL1_RANGE(x) (((unsigned)(x) & 0x3) << 2) #define G_586_GL1_RANGE(x) (((x) >> 2) & 0x3) #define C_586_GL1_RANGE 0xFFFFFFF3 #define V_586_GL1_ALL 0 #define V_586_GL1_RANGE 2 #define V_586_GL1_FIRST_LAST 3 #define S_586_GLM_WB(x) (((unsigned)(x) & 0x1) << 4) #define G_586_GLM_WB(x) (((x) >> 4) & 0x1) #define C_586_GLM_WB 0xFFFFFFEF #define S_586_GLM_INV(x) (((unsigned)(x) & 0x1) << 5) #define G_586_GLM_INV(x) (((x) >> 5) & 0x1) #define C_586_GLM_INV 0xFFFFFFDF #define S_586_GLK_WB(x) (((unsigned)(x) & 0x1) << 6) #define G_586_GLK_WB(x) (((x) >> 6) & 0x1) #define C_586_GLK_WB 0xFFFFFFBF #define S_586_GLK_INV(x) (((unsigned)(x) & 0x1) << 7) #define G_586_GLK_INV(x) (((x) >> 7) & 0x1) #define C_586_GLK_INV 0xFFFFFF7F #define S_586_GLV_INV(x) (((unsigned)(x) & 0x1) << 8) #define G_586_GLV_INV(x) (((x) >> 8) & 0x1) #define C_586_GLV_INV 0xFFFFFEFF #define S_586_GL1_INV(x) (((unsigned)(x) & 0x1) << 9) #define G_586_GL1_INV(x) (((x) >> 9) & 0x1) #define C_586_GL1_INV 0xFFFFFDFF #define S_586_GL2_US(x) (((unsigned)(x) & 0x1) << 10) #define G_586_GL2_US(x) (((x) >> 10) & 0x1) #define C_586_GL2_US 0xFFFFFBFF #define S_586_GL2_RANGE(x) (((unsigned)(x) & 0x3) << 11) #define G_586_GL2_RANGE(x) (((x) >> 11) & 0x3) #define C_586_GL2_RANGE 0xFFFFE7FF #define V_586_GL2_ALL 0 #define V_586_GL2_VOL 1 #define V_586_GL2_RANGE 2 #define V_586_GL2_FIRST_LAST 3 #define S_586_GL2_DISCARD(x) (((unsigned)(x) & 0x1) << 13) #define G_586_GL2_DISCARD(x) (((x) >> 13) & 0x1) #define C_586_GL2_DISCARD 0xFFFFDFFF #define S_586_GL2_INV(x) (((unsigned)(x) & 0x1) << 14) #define G_586_GL2_INV(x) (((x) >> 14) & 0x1) #define C_586_GL2_INV 0xFFFFBFFF #define S_586_GL2_WB(x) (((unsigned)(x) & 0x1) << 15) #define G_586_GL2_WB(x) (((x) >> 15) & 0x1) #define C_586_GL2_WB 0xFFFF7FFF #define S_586_SEQ(x) (((unsigned)(x) & 0x3) << 16) #define G_586_SEQ(x) (((x) >> 16) & 0x3) #define C_586_SEQ 0xFFFCFFFF #define V_586_SEQ_PARALLEL 0 #define V_586_SEQ_FORWARD 1 #define V_586_SEQ_REVERSE 2 #define S_586_RANGE_IS_PA(x) (((unsigned)(x) & 0x1) << 18) #define G_586_RANGE_IS_PA(x) (((x) >> 18) & 0x1) #define C_586_RANGE_IS_PA 0xFFFBFFFF #define R_0009B0_SQ_WAVE_TBA_LO 0x0009B0 /* <= gfx81 */ #define R_0009B0_SQ_WAVE_TTMP0 0x0009B0 /* >= gfx9 */ #define R_0009B4_SQ_WAVE_TBA_HI 0x0009B4 /* <= gfx81 */ #define S_0009B4_ADDR_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_0009B4_ADDR_HI(x) (((x) >> 0) & 0xFF) #define C_0009B4_ADDR_HI 0xFFFFFF00 #define R_0009B4_SQ_WAVE_TTMP1 0x0009B4 /* >= gfx9 */ #define R_0009B8_SQ_WAVE_TMA_LO 0x0009B8 /* <= gfx81 */ #define R_0009B8_SQ_WAVE_TTMP2 0x0009B8 /* >= gfx9 */ #define R_0009BC_SQ_WAVE_TMA_HI 0x0009BC /* <= gfx81 */ #define S_0009BC_ADDR_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_0009BC_ADDR_HI(x) (((x) >> 0) & 0xFF) #define C_0009BC_ADDR_HI 0xFFFFFF00 #define R_0009BC_SQ_WAVE_TTMP3 0x0009BC /* >= gfx9 */ #define R_0009C0_SQ_WAVE_TTMP0 0x0009C0 /* <= gfx81 */ #define R_0009C0_SQ_WAVE_TTMP4 0x0009C0 /* >= gfx9 */ #define R_0009C4_SQ_WAVE_TTMP1 0x0009C4 /* <= gfx81 */ #define R_0009C4_SQ_WAVE_TTMP5 0x0009C4 /* >= gfx9 */ #define R_0009C8_SQ_WAVE_TTMP2 0x0009C8 /* <= gfx81 */ #define R_0009C8_SQ_WAVE_TTMP6 0x0009C8 /* >= gfx9 */ #define R_0009CC_SQ_WAVE_TTMP3 0x0009CC /* <= gfx81 */ #define R_0009CC_SQ_WAVE_TTMP7 0x0009CC /* >= gfx9 */ #define R_0009D0_SQ_WAVE_TTMP4 0x0009D0 /* <= gfx81 */ #define R_0009D0_SQ_WAVE_TTMP8 0x0009D0 /* >= gfx9 */ #define R_0009D4_SQ_WAVE_TTMP5 0x0009D4 /* <= gfx81 */ #define R_0009D4_SQ_WAVE_TTMP9 0x0009D4 /* >= gfx9 */ #define R_0009D8_SQ_WAVE_TTMP10 0x0009D8 /* >= gfx9 */ #define R_0009D8_SQ_WAVE_TTMP6 0x0009D8 /* <= gfx81 */ #define R_0009DC_SQ_WAVE_TTMP11 0x0009DC /* >= gfx9 */ #define R_0009DC_SQ_WAVE_TTMP7 0x0009DC /* <= gfx81 */ #define R_0009E0_SQ_WAVE_TTMP12 0x0009E0 /* >= gfx9 */ #define R_0009E0_SQ_WAVE_TTMP8 0x0009E0 /* <= gfx81 */ #define R_0009E4_SQ_WAVE_TTMP13 0x0009E4 /* >= gfx9 */ #define R_0009E4_SQ_WAVE_TTMP9 0x0009E4 /* <= gfx81 */ #define R_0009E8_SQ_WAVE_TTMP10 0x0009E8 /* <= gfx81 */ #define R_0009E8_SQ_WAVE_TTMP14 0x0009E8 /* >= gfx9 */ #define R_0009EC_SQ_WAVE_TTMP11 0x0009EC /* <= gfx81 */ #define R_0009EC_SQ_WAVE_TTMP15 0x0009EC /* >= gfx9 */ #define R_0009F0_SQ_WAVE_M0 0x0009F0 #define R_0009F8_SQ_WAVE_EXEC_LO 0x0009F8 #define R_0009FC_SQ_WAVE_EXEC_HI 0x0009FC #define R_000A00_SQ_WAVE_FLAT_SCRATCH_LO 0x000A00 /* gfx10 */ #define R_000A04_SQ_WAVE_FLAT_SCRATCH_HI 0x000A04 /* gfx10 */ #define R_000A08_SQ_WAVE_FLAT_XNACK_MASK 0x000A08 /* gfx10 */ #define R_000E4C_SRBM_STATUS2 0x000E4C /* <= gfx81 */ #define S_000E4C_SDMA_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 0) #define G_000E4C_SDMA_RQ_PENDING(x) (((x) >> 0) & 0x1) #define C_000E4C_SDMA_RQ_PENDING 0xFFFFFFFE #define S_000E4C_TST_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 1) #define G_000E4C_TST_RQ_PENDING(x) (((x) >> 1) & 0x1) #define C_000E4C_TST_RQ_PENDING 0xFFFFFFFD #define S_000E4C_SDMA1_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 2) #define G_000E4C_SDMA1_RQ_PENDING(x) (((x) >> 2) & 0x1) #define C_000E4C_SDMA1_RQ_PENDING 0xFFFFFFFB #define S_000E4C_VCE0_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 3) #define G_000E4C_VCE0_RQ_PENDING(x) (((x) >> 3) & 0x1) #define C_000E4C_VCE0_RQ_PENDING 0xFFFFFFF7 #define S_000E4C_VP8_BUSY(x) (((unsigned)(x) & 0x1) << 4) #define G_000E4C_VP8_BUSY(x) (((x) >> 4) & 0x1) #define C_000E4C_VP8_BUSY 0xFFFFFFEF #define S_000E4C_SDMA_BUSY(x) (((unsigned)(x) & 0x1) << 5) #define G_000E4C_SDMA_BUSY(x) (((x) >> 5) & 0x1) #define C_000E4C_SDMA_BUSY 0xFFFFFFDF #define S_000E4C_SDMA1_BUSY(x) (((unsigned)(x) & 0x1) << 6) #define G_000E4C_SDMA1_BUSY(x) (((x) >> 6) & 0x1) #define C_000E4C_SDMA1_BUSY 0xFFFFFFBF #define S_000E4C_VCE0_BUSY(x) (((unsigned)(x) & 0x1) << 7) #define G_000E4C_VCE0_BUSY(x) (((x) >> 7) & 0x1) #define C_000E4C_VCE0_BUSY 0xFFFFFF7F #define S_000E4C_XDMA_BUSY(x) (((unsigned)(x) & 0x1) << 8) #define G_000E4C_XDMA_BUSY(x) (((x) >> 8) & 0x1) #define C_000E4C_XDMA_BUSY 0xFFFFFEFF #define S_000E4C_CHUB_BUSY(x) (((unsigned)(x) & 0x1) << 9) #define G_000E4C_CHUB_BUSY(x) (((x) >> 9) & 0x1) #define C_000E4C_CHUB_BUSY 0xFFFFFDFF #define S_000E4C_SDMA2_BUSY(x) (((unsigned)(x) & 0x1) << 10) #define G_000E4C_SDMA2_BUSY(x) (((x) >> 10) & 0x1) #define C_000E4C_SDMA2_BUSY 0xFFFFFBFF #define S_000E4C_SDMA3_BUSY(x) (((unsigned)(x) & 0x1) << 11) #define G_000E4C_SDMA3_BUSY(x) (((x) >> 11) & 0x1) #define C_000E4C_SDMA3_BUSY 0xFFFFF7FF #define S_000E4C_SAMSCP_BUSY(x) (((unsigned)(x) & 0x1) << 12) #define G_000E4C_SAMSCP_BUSY(x) (((x) >> 12) & 0x1) #define C_000E4C_SAMSCP_BUSY 0xFFFFEFFF #define S_000E4C_ISP_BUSY(x) (((unsigned)(x) & 0x1) << 13) #define G_000E4C_ISP_BUSY(x) (((x) >> 13) & 0x1) #define C_000E4C_ISP_BUSY 0xFFFFDFFF #define S_000E4C_VCE1_BUSY(x) (((unsigned)(x) & 0x1) << 14) #define G_000E4C_VCE1_BUSY(x) (((x) >> 14) & 0x1) #define C_000E4C_VCE1_BUSY 0xFFFFBFFF #define S_000E4C_ODE_BUSY(x) (((unsigned)(x) & 0x1) << 15) #define G_000E4C_ODE_BUSY(x) (((x) >> 15) & 0x1) #define C_000E4C_ODE_BUSY 0xFFFF7FFF #define S_000E4C_SDMA2_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 16) #define G_000E4C_SDMA2_RQ_PENDING(x) (((x) >> 16) & 0x1) #define C_000E4C_SDMA2_RQ_PENDING 0xFFFEFFFF #define S_000E4C_SDMA3_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 17) #define G_000E4C_SDMA3_RQ_PENDING(x) (((x) >> 17) & 0x1) #define C_000E4C_SDMA3_RQ_PENDING 0xFFFDFFFF #define S_000E4C_SAMSCP_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 18) #define G_000E4C_SAMSCP_RQ_PENDING(x) (((x) >> 18) & 0x1) #define C_000E4C_SAMSCP_RQ_PENDING 0xFFFBFFFF #define S_000E4C_ISP_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 19) #define G_000E4C_ISP_RQ_PENDING(x) (((x) >> 19) & 0x1) #define C_000E4C_ISP_RQ_PENDING 0xFFF7FFFF #define S_000E4C_VCE1_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 20) #define G_000E4C_VCE1_RQ_PENDING(x) (((x) >> 20) & 0x1) #define C_000E4C_VCE1_RQ_PENDING 0xFFEFFFFF #define R_000E50_SRBM_STATUS 0x000E50 /* <= gfx81 */ #define S_000E50_UVD_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 1) #define G_000E50_UVD_RQ_PENDING(x) (((x) >> 1) & 0x1) #define C_000E50_UVD_RQ_PENDING 0xFFFFFFFD #define S_000E50_SAMMSP_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 2) #define G_000E50_SAMMSP_RQ_PENDING(x) (((x) >> 2) & 0x1) #define C_000E50_SAMMSP_RQ_PENDING 0xFFFFFFFB #define S_000E50_ACP_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 3) #define G_000E50_ACP_RQ_PENDING(x) (((x) >> 3) & 0x1) #define C_000E50_ACP_RQ_PENDING 0xFFFFFFF7 #define S_000E50_SMU_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 4) #define G_000E50_SMU_RQ_PENDING(x) (((x) >> 4) & 0x1) #define C_000E50_SMU_RQ_PENDING 0xFFFFFFEF #define S_000E50_GRBM_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 5) #define G_000E50_GRBM_RQ_PENDING(x) (((x) >> 5) & 0x1) #define C_000E50_GRBM_RQ_PENDING 0xFFFFFFDF #define S_000E50_HI_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 6) #define G_000E50_HI_RQ_PENDING(x) (((x) >> 6) & 0x1) #define C_000E50_HI_RQ_PENDING 0xFFFFFFBF #define S_000E50_VMC_BUSY(x) (((unsigned)(x) & 0x1) << 8) #define G_000E50_VMC_BUSY(x) (((x) >> 8) & 0x1) #define C_000E50_VMC_BUSY 0xFFFFFEFF #define S_000E50_MCB_BUSY(x) (((unsigned)(x) & 0x1) << 9) #define G_000E50_MCB_BUSY(x) (((x) >> 9) & 0x1) #define C_000E50_MCB_BUSY 0xFFFFFDFF #define S_000E50_MCB_NON_DISPLAY_BUSY(x) (((unsigned)(x) & 0x1) << 10) #define G_000E50_MCB_NON_DISPLAY_BUSY(x) (((x) >> 10) & 0x1) #define C_000E50_MCB_NON_DISPLAY_BUSY 0xFFFFFBFF #define S_000E50_MCC_BUSY(x) (((unsigned)(x) & 0x1) << 11) #define G_000E50_MCC_BUSY(x) (((x) >> 11) & 0x1) #define C_000E50_MCC_BUSY 0xFFFFF7FF #define S_000E50_MCD_BUSY(x) (((unsigned)(x) & 0x1) << 12) #define G_000E50_MCD_BUSY(x) (((x) >> 12) & 0x1) #define C_000E50_MCD_BUSY 0xFFFFEFFF #define S_000E50_VMC1_BUSY(x) (((unsigned)(x) & 0x1) << 13) #define G_000E50_VMC1_BUSY(x) (((x) >> 13) & 0x1) #define C_000E50_VMC1_BUSY 0xFFFFDFFF #define S_000E50_SEM_BUSY(x) (((unsigned)(x) & 0x1) << 14) #define G_000E50_SEM_BUSY(x) (((x) >> 14) & 0x1) #define C_000E50_SEM_BUSY 0xFFFFBFFF #define S_000E50_ACP_BUSY(x) (((unsigned)(x) & 0x1) << 16) #define G_000E50_ACP_BUSY(x) (((x) >> 16) & 0x1) #define C_000E50_ACP_BUSY 0xFFFEFFFF #define S_000E50_IH_BUSY(x) (((unsigned)(x) & 0x1) << 17) #define G_000E50_IH_BUSY(x) (((x) >> 17) & 0x1) #define C_000E50_IH_BUSY 0xFFFDFFFF #define S_000E50_UVD_BUSY(x) (((unsigned)(x) & 0x1) << 19) #define G_000E50_UVD_BUSY(x) (((x) >> 19) & 0x1) #define C_000E50_UVD_BUSY 0xFFF7FFFF #define S_000E50_SAMMSP_BUSY(x) (((unsigned)(x) & 0x1) << 20) #define G_000E50_SAMMSP_BUSY(x) (((x) >> 20) & 0x1) #define C_000E50_SAMMSP_BUSY 0xFFEFFFFF #define S_000E50_GCATCL2_BUSY(x) (((unsigned)(x) & 0x1) << 21) #define G_000E50_GCATCL2_BUSY(x) (((x) >> 21) & 0x1) #define C_000E50_GCATCL2_BUSY 0xFFDFFFFF #define S_000E50_OSATCL2_BUSY(x) (((unsigned)(x) & 0x1) << 22) #define G_000E50_OSATCL2_BUSY(x) (((x) >> 22) & 0x1) #define C_000E50_OSATCL2_BUSY 0xFFBFFFFF #define S_000E50_BIF_BUSY(x) (((unsigned)(x) & 0x1) << 29) #define G_000E50_BIF_BUSY(x) (((x) >> 29) & 0x1) #define C_000E50_BIF_BUSY 0xDFFFFFFF #define R_000E54_SRBM_STATUS3 0x000E54 /* <= gfx81 */ #define S_000E54_MCC0_BUSY(x) (((unsigned)(x) & 0x1) << 0) #define G_000E54_MCC0_BUSY(x) (((x) >> 0) & 0x1) #define C_000E54_MCC0_BUSY 0xFFFFFFFE #define S_000E54_MCC1_BUSY(x) (((unsigned)(x) & 0x1) << 1) #define G_000E54_MCC1_BUSY(x) (((x) >> 1) & 0x1) #define C_000E54_MCC1_BUSY 0xFFFFFFFD #define S_000E54_MCC2_BUSY(x) (((unsigned)(x) & 0x1) << 2) #define G_000E54_MCC2_BUSY(x) (((x) >> 2) & 0x1) #define C_000E54_MCC2_BUSY 0xFFFFFFFB #define S_000E54_MCC3_BUSY(x) (((unsigned)(x) & 0x1) << 3) #define G_000E54_MCC3_BUSY(x) (((x) >> 3) & 0x1) #define C_000E54_MCC3_BUSY 0xFFFFFFF7 #define S_000E54_MCC4_BUSY(x) (((unsigned)(x) & 0x1) << 4) #define G_000E54_MCC4_BUSY(x) (((x) >> 4) & 0x1) #define C_000E54_MCC4_BUSY 0xFFFFFFEF #define S_000E54_MCC5_BUSY(x) (((unsigned)(x) & 0x1) << 5) #define G_000E54_MCC5_BUSY(x) (((x) >> 5) & 0x1) #define C_000E54_MCC5_BUSY 0xFFFFFFDF #define S_000E54_MCC6_BUSY(x) (((unsigned)(x) & 0x1) << 6) #define G_000E54_MCC6_BUSY(x) (((x) >> 6) & 0x1) #define C_000E54_MCC6_BUSY 0xFFFFFFBF #define S_000E54_MCC7_BUSY(x) (((unsigned)(x) & 0x1) << 7) #define G_000E54_MCC7_BUSY(x) (((x) >> 7) & 0x1) #define C_000E54_MCC7_BUSY 0xFFFFFF7F #define S_000E54_MCD0_BUSY(x) (((unsigned)(x) & 0x1) << 8) #define G_000E54_MCD0_BUSY(x) (((x) >> 8) & 0x1) #define C_000E54_MCD0_BUSY 0xFFFFFEFF #define S_000E54_MCD1_BUSY(x) (((unsigned)(x) & 0x1) << 9) #define G_000E54_MCD1_BUSY(x) (((x) >> 9) & 0x1) #define C_000E54_MCD1_BUSY 0xFFFFFDFF #define S_000E54_MCD2_BUSY(x) (((unsigned)(x) & 0x1) << 10) #define G_000E54_MCD2_BUSY(x) (((x) >> 10) & 0x1) #define C_000E54_MCD2_BUSY 0xFFFFFBFF #define S_000E54_MCD3_BUSY(x) (((unsigned)(x) & 0x1) << 11) #define G_000E54_MCD3_BUSY(x) (((x) >> 11) & 0x1) #define C_000E54_MCD3_BUSY 0xFFFFF7FF #define S_000E54_MCD4_BUSY(x) (((unsigned)(x) & 0x1) << 12) #define G_000E54_MCD4_BUSY(x) (((x) >> 12) & 0x1) #define C_000E54_MCD4_BUSY 0xFFFFEFFF #define S_000E54_MCD5_BUSY(x) (((unsigned)(x) & 0x1) << 13) #define G_000E54_MCD5_BUSY(x) (((x) >> 13) & 0x1) #define C_000E54_MCD5_BUSY 0xFFFFDFFF #define S_000E54_MCD6_BUSY(x) (((unsigned)(x) & 0x1) << 14) #define G_000E54_MCD6_BUSY(x) (((x) >> 14) & 0x1) #define C_000E54_MCD6_BUSY 0xFFFFBFFF #define S_000E54_MCD7_BUSY(x) (((unsigned)(x) & 0x1) << 15) #define G_000E54_MCD7_BUSY(x) (((x) >> 15) & 0x1) #define C_000E54_MCD7_BUSY 0xFFFF7FFF #define R_008000_GRBM_CNTL 0x008000 /* <= gfx6 */ #define S_008000_READ_TIMEOUT(x) (((unsigned)(x) & 0xFF) << 0) #define G_008000_READ_TIMEOUT(x) (((x) >> 0) & 0xFF) #define C_008000_READ_TIMEOUT 0xFFFFFF00 #define R_008004_GRBM_SKEW_CNTL 0x008004 /* <= gfx6 */ #define S_008004_SKEW_TOP_THRESHOLD(x) (((unsigned)(x) & 0x3F) << 0) #define G_008004_SKEW_TOP_THRESHOLD(x) (((x) >> 0) & 0x3F) #define C_008004_SKEW_TOP_THRESHOLD 0xFFFFFFC0 #define S_008004_SKEW_COUNT(x) (((unsigned)(x) & 0x3F) << 6) #define G_008004_SKEW_COUNT(x) (((x) >> 6) & 0x3F) #define C_008004_SKEW_COUNT 0xFFFFF03F #define R_008008_GRBM_STATUS2 0x008008 #define S_008008_ME0PIPE1_CMDFIFO_AVAIL(x) (((unsigned)(x) & 0xF) << 0) #define G_008008_ME0PIPE1_CMDFIFO_AVAIL(x) (((x) >> 0) & 0xF) #define C_008008_ME0PIPE1_CMDFIFO_AVAIL 0xFFFFFFF0 #define S_008008_RLC_RQ_PENDING_GFX6(x) (((unsigned)(x) & 0x1) << 0) /* <= gfx6 */ #define G_008008_RLC_RQ_PENDING_GFX6(x) (((x) >> 0) & 0x1) #define C_008008_RLC_RQ_PENDING_GFX6 0xFFFFFFFE #define S_008008_ME0PIPE1_CF_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 4) #define G_008008_ME0PIPE1_CF_RQ_PENDING(x) (((x) >> 4) & 0x1) #define C_008008_ME0PIPE1_CF_RQ_PENDING 0xFFFFFFEF #define S_008008_ME0PIPE1_PF_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 5) #define G_008008_ME0PIPE1_PF_RQ_PENDING(x) (((x) >> 5) & 0x1) #define C_008008_ME0PIPE1_PF_RQ_PENDING 0xFFFFFFDF #define S_008008_ME1PIPE0_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 6) #define G_008008_ME1PIPE0_RQ_PENDING(x) (((x) >> 6) & 0x1) #define C_008008_ME1PIPE0_RQ_PENDING 0xFFFFFFBF #define S_008008_ME1PIPE1_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 7) #define G_008008_ME1PIPE1_RQ_PENDING(x) (((x) >> 7) & 0x1) #define C_008008_ME1PIPE1_RQ_PENDING 0xFFFFFF7F #define S_008008_ME1PIPE2_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 8) #define G_008008_ME1PIPE2_RQ_PENDING(x) (((x) >> 8) & 0x1) #define C_008008_ME1PIPE2_RQ_PENDING 0xFFFFFEFF #define S_008008_RLC_BUSY_GFX6(x) (((unsigned)(x) & 0x1) << 8) /* <= gfx6 */ #define G_008008_RLC_BUSY_GFX6(x) (((x) >> 8) & 0x1) #define C_008008_RLC_BUSY_GFX6 0xFFFFFEFF #define S_008008_ME1PIPE3_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 9) #define G_008008_ME1PIPE3_RQ_PENDING(x) (((x) >> 9) & 0x1) #define C_008008_ME1PIPE3_RQ_PENDING 0xFFFFFDFF #define S_008008_TC_BUSY_GFX6(x) (((unsigned)(x) & 0x1) << 9) /* <= gfx6 */ #define G_008008_TC_BUSY_GFX6(x) (((x) >> 9) & 0x1) #define C_008008_TC_BUSY_GFX6 0xFFFFFDFF #define S_008008_ME2PIPE0_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 10) #define G_008008_ME2PIPE0_RQ_PENDING(x) (((x) >> 10) & 0x1) #define C_008008_ME2PIPE0_RQ_PENDING 0xFFFFFBFF #define S_008008_ME2PIPE1_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 11) #define G_008008_ME2PIPE1_RQ_PENDING(x) (((x) >> 11) & 0x1) #define C_008008_ME2PIPE1_RQ_PENDING 0xFFFFF7FF #define S_008008_ME2PIPE2_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 12) #define G_008008_ME2PIPE2_RQ_PENDING(x) (((x) >> 12) & 0x1) #define C_008008_ME2PIPE2_RQ_PENDING 0xFFFFEFFF #define S_008008_ME2PIPE3_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 13) #define G_008008_ME2PIPE3_RQ_PENDING(x) (((x) >> 13) & 0x1) #define C_008008_ME2PIPE3_RQ_PENDING 0xFFFFDFFF #define S_008008_RLC_RQ_PENDING_GFX7(x) (((unsigned)(x) & 0x1) << 14) /* >= gfx7 */ #define G_008008_RLC_RQ_PENDING_GFX7(x) (((x) >> 14) & 0x1) #define C_008008_RLC_RQ_PENDING_GFX7 0xFFFFBFFF #define S_008008_UTCL2_BUSY(x) (((unsigned)(x) & 0x1) << 15) /* >= gfx9 */ #define G_008008_UTCL2_BUSY(x) (((x) >> 15) & 0x1) #define C_008008_UTCL2_BUSY 0xFFFF7FFF #define S_008008_EA_BUSY(x) (((unsigned)(x) & 0x1) << 16) /* >= gfx9 */ #define G_008008_EA_BUSY(x) (((x) >> 16) & 0x1) #define C_008008_EA_BUSY 0xFFFEFFFF #define S_008008_RMI_BUSY(x) (((unsigned)(x) & 0x1) << 17) /* >= gfx9 */ #define G_008008_RMI_BUSY(x) (((x) >> 17) & 0x1) #define C_008008_RMI_BUSY 0xFFFDFFFF #define S_008008_UTCL2_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 18) /* >= gfx9 */ #define G_008008_UTCL2_RQ_PENDING(x) (((x) >> 18) & 0x1) #define C_008008_UTCL2_RQ_PENDING 0xFFFBFFFF #define S_008008_CPF_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 19) /* gfx9, gfx10 */ #define G_008008_CPF_RQ_PENDING(x) (((x) >> 19) & 0x1) #define C_008008_CPF_RQ_PENDING 0xFFF7FFFF #define S_008008_SDMA_SCH_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 19) /* >= gfx103 */ #define G_008008_SDMA_SCH_RQ_PENDING(x) (((x) >> 19) & 0x1) #define C_008008_SDMA_SCH_RQ_PENDING 0xFFF7FFFF #define S_008008_EA_LINK_BUSY(x) (((unsigned)(x) & 0x1) << 20) /* >= gfx9 */ #define G_008008_EA_LINK_BUSY(x) (((x) >> 20) & 0x1) #define C_008008_EA_LINK_BUSY 0xFFEFFFFF #define S_008008_SDMA_BUSY(x) (((unsigned)(x) & 0x1) << 21) /* >= gfx10 */ #define G_008008_SDMA_BUSY(x) (((x) >> 21) & 0x1) #define C_008008_SDMA_BUSY 0xFFDFFFFF #define S_008008_SDMA0_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 22) /* >= gfx10 */ #define G_008008_SDMA0_RQ_PENDING(x) (((x) >> 22) & 0x1) #define C_008008_SDMA0_RQ_PENDING 0xFFBFFFFF #define S_008008_SDMA1_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 23) /* >= gfx10 */ #define G_008008_SDMA1_RQ_PENDING(x) (((x) >> 23) & 0x1) #define C_008008_SDMA1_RQ_PENDING 0xFF7FFFFF #define S_008008_RLC_BUSY_GFX7(x) (((unsigned)(x) & 0x1) << 24) /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define G_008008_RLC_BUSY_GFX7(x) (((x) >> 24) & 0x1) #define C_008008_RLC_BUSY_GFX7 0xFEFFFFFF #define S_008008_SDMA2_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 24) /* >= gfx103 */ #define G_008008_SDMA2_RQ_PENDING(x) (((x) >> 24) & 0x1) #define C_008008_SDMA2_RQ_PENDING 0xFEFFFFFF #define S_008008_SDMA3_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 25) /* >= gfx103 */ #define G_008008_SDMA3_RQ_PENDING(x) (((x) >> 25) & 0x1) #define C_008008_SDMA3_RQ_PENDING 0xFDFFFFFF #define S_008008_TCP_BUSY_GFX10(x) (((unsigned)(x) & 0x1) << 25) /* gfx10 */ #define G_008008_TCP_BUSY_GFX10(x) (((x) >> 25) & 0x1) #define C_008008_TCP_BUSY_GFX10 0xFDFFFFFF #define S_008008_TC_BUSY_GFX7(x) (((unsigned)(x) & 0x1) << 25) /* gfx7, gfx8, gfx81, gfx9 */ #define G_008008_TC_BUSY_GFX7(x) (((x) >> 25) & 0x1) #define C_008008_TC_BUSY_GFX7 0xFDFFFFFF #define S_008008_RLC_BUSY_GFX103(x) (((unsigned)(x) & 0x1) << 26) /* >= gfx103 */ #define G_008008_RLC_BUSY_GFX103(x) (((x) >> 26) & 0x1) #define C_008008_RLC_BUSY_GFX103 0xFBFFFFFF #define S_008008_TCC_CC_RESIDENT(x) (((unsigned)(x) & 0x1) << 26) /* gfx8, gfx81, gfx9 */ #define G_008008_TCC_CC_RESIDENT(x) (((x) >> 26) & 0x1) #define C_008008_TCC_CC_RESIDENT 0xFBFFFFFF #define S_008008_TCP_BUSY_GFX103(x) (((unsigned)(x) & 0x1) << 27) /* >= gfx103 */ #define G_008008_TCP_BUSY_GFX103(x) (((x) >> 27) & 0x1) #define C_008008_TCP_BUSY_GFX103 0xF7FFFFFF #define S_008008_CPF_BUSY(x) (((unsigned)(x) & 0x1) << 28) #define G_008008_CPF_BUSY(x) (((x) >> 28) & 0x1) #define C_008008_CPF_BUSY 0xEFFFFFFF #define S_008008_CPC_BUSY(x) (((unsigned)(x) & 0x1) << 29) #define G_008008_CPC_BUSY(x) (((x) >> 29) & 0x1) #define C_008008_CPC_BUSY 0xDFFFFFFF #define S_008008_CPG_BUSY(x) (((unsigned)(x) & 0x1) << 30) #define G_008008_CPG_BUSY(x) (((x) >> 30) & 0x1) #define C_008008_CPG_BUSY 0xBFFFFFFF #define S_008008_CPAXI_BUSY(x) (((unsigned)(x) & 0x1) << 31) /* >= gfx9 */ #define G_008008_CPAXI_BUSY(x) (((x) >> 31) & 0x1) #define C_008008_CPAXI_BUSY 0x7FFFFFFF #define R_00800C_GRBM_PWR_CNTL 0x00800C /* <= gfx6 */ #define S_00800C_REQ_TYPE(x) (((unsigned)(x) & 0xF) << 0) #define G_00800C_REQ_TYPE(x) (((x) >> 0) & 0xF) #define C_00800C_REQ_TYPE 0xFFFFFFF0 #define S_00800C_RSP_TYPE(x) (((unsigned)(x) & 0xF) << 4) #define G_00800C_RSP_TYPE(x) (((x) >> 4) & 0xF) #define C_00800C_RSP_TYPE 0xFFFFFF0F #define R_008010_GRBM_STATUS 0x008010 #define S_008010_ME0PIPE0_CMDFIFO_AVAIL(x) (((unsigned)(x) & 0xF) << 0) #define G_008010_ME0PIPE0_CMDFIFO_AVAIL(x) (((x) >> 0) & 0xF) #define C_008010_ME0PIPE0_CMDFIFO_AVAIL 0xFFFFFFF0 #define S_008010_RSMU_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 5) /* gfx9, gfx10 */ #define G_008010_RSMU_RQ_PENDING(x) (((x) >> 5) & 0x1) #define C_008010_RSMU_RQ_PENDING 0xFFFFFFDF #define S_008010_SRBM_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 5) /* <= gfx81 */ #define G_008010_SRBM_RQ_PENDING(x) (((x) >> 5) & 0x1) #define C_008010_SRBM_RQ_PENDING 0xFFFFFFDF #define S_008010_ME0PIPE0_CF_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 7) #define G_008010_ME0PIPE0_CF_RQ_PENDING(x) (((x) >> 7) & 0x1) #define C_008010_ME0PIPE0_CF_RQ_PENDING 0xFFFFFF7F #define S_008010_ME0PIPE0_PF_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 8) #define G_008010_ME0PIPE0_PF_RQ_PENDING(x) (((x) >> 8) & 0x1) #define C_008010_ME0PIPE0_PF_RQ_PENDING 0xFFFFFEFF #define S_008010_GDS_DMA_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 9) #define G_008010_GDS_DMA_RQ_PENDING(x) (((x) >> 9) & 0x1) #define C_008010_GDS_DMA_RQ_PENDING 0xFFFFFDFF #define S_008010_DB_CLEAN(x) (((unsigned)(x) & 0x1) << 12) #define G_008010_DB_CLEAN(x) (((x) >> 12) & 0x1) #define C_008010_DB_CLEAN 0xFFFFEFFF #define S_008010_CB_CLEAN(x) (((unsigned)(x) & 0x1) << 13) #define G_008010_CB_CLEAN(x) (((x) >> 13) & 0x1) #define C_008010_CB_CLEAN 0xFFFFDFFF #define S_008010_TA_BUSY(x) (((unsigned)(x) & 0x1) << 14) #define G_008010_TA_BUSY(x) (((x) >> 14) & 0x1) #define C_008010_TA_BUSY 0xFFFFBFFF #define S_008010_GDS_BUSY(x) (((unsigned)(x) & 0x1) << 15) #define G_008010_GDS_BUSY(x) (((x) >> 15) & 0x1) #define C_008010_GDS_BUSY 0xFFFF7FFF #define S_008010_GE_BUSY_NO_DMA(x) (((unsigned)(x) & 0x1) << 16) /* >= gfx10 */ #define G_008010_GE_BUSY_NO_DMA(x) (((x) >> 16) & 0x1) #define C_008010_GE_BUSY_NO_DMA 0xFFFEFFFF #define S_008010_WD_BUSY_NO_DMA(x) (((unsigned)(x) & 0x1) << 16) /* <= gfx9 */ #define G_008010_WD_BUSY_NO_DMA(x) (((x) >> 16) & 0x1) #define C_008010_WD_BUSY_NO_DMA 0xFFFEFFFF #define S_008010_VGT_BUSY(x) (((unsigned)(x) & 0x1) << 17) /* <= gfx9 */ #define G_008010_VGT_BUSY(x) (((x) >> 17) & 0x1) #define C_008010_VGT_BUSY 0xFFFDFFFF #define S_008010_IA_BUSY_NO_DMA(x) (((unsigned)(x) & 0x1) << 18) /* <= gfx9 */ #define G_008010_IA_BUSY_NO_DMA(x) (((x) >> 18) & 0x1) #define C_008010_IA_BUSY_NO_DMA 0xFFFBFFFF #define S_008010_IA_BUSY(x) (((unsigned)(x) & 0x1) << 19) /* <= gfx9 */ #define G_008010_IA_BUSY(x) (((x) >> 19) & 0x1) #define C_008010_IA_BUSY 0xFFF7FFFF #define S_008010_SX_BUSY(x) (((unsigned)(x) & 0x1) << 20) #define G_008010_SX_BUSY(x) (((x) >> 20) & 0x1) #define C_008010_SX_BUSY 0xFFEFFFFF #define S_008010_GE_BUSY(x) (((unsigned)(x) & 0x1) << 21) /* >= gfx10 */ #define G_008010_GE_BUSY(x) (((x) >> 21) & 0x1) #define C_008010_GE_BUSY 0xFFDFFFFF #define S_008010_WD_BUSY(x) (((unsigned)(x) & 0x1) << 21) /* <= gfx9 */ #define G_008010_WD_BUSY(x) (((x) >> 21) & 0x1) #define C_008010_WD_BUSY 0xFFDFFFFF #define S_008010_SPI_BUSY(x) (((unsigned)(x) & 0x1) << 22) #define G_008010_SPI_BUSY(x) (((x) >> 22) & 0x1) #define C_008010_SPI_BUSY 0xFFBFFFFF #define S_008010_BCI_BUSY(x) (((unsigned)(x) & 0x1) << 23) #define G_008010_BCI_BUSY(x) (((x) >> 23) & 0x1) #define C_008010_BCI_BUSY 0xFF7FFFFF #define S_008010_SC_BUSY(x) (((unsigned)(x) & 0x1) << 24) #define G_008010_SC_BUSY(x) (((x) >> 24) & 0x1) #define C_008010_SC_BUSY 0xFEFFFFFF #define S_008010_PA_BUSY(x) (((unsigned)(x) & 0x1) << 25) #define G_008010_PA_BUSY(x) (((x) >> 25) & 0x1) #define C_008010_PA_BUSY 0xFDFFFFFF #define S_008010_DB_BUSY(x) (((unsigned)(x) & 0x1) << 26) #define G_008010_DB_BUSY(x) (((x) >> 26) & 0x1) #define C_008010_DB_BUSY 0xFBFFFFFF #define S_008010_CP_COHERENCY_BUSY(x) (((unsigned)(x) & 0x1) << 28) #define G_008010_CP_COHERENCY_BUSY(x) (((x) >> 28) & 0x1) #define C_008010_CP_COHERENCY_BUSY 0xEFFFFFFF #define S_008010_CP_BUSY(x) (((unsigned)(x) & 0x1) << 29) #define G_008010_CP_BUSY(x) (((x) >> 29) & 0x1) #define C_008010_CP_BUSY 0xDFFFFFFF #define S_008010_CB_BUSY(x) (((unsigned)(x) & 0x1) << 30) #define G_008010_CB_BUSY(x) (((x) >> 30) & 0x1) #define C_008010_CB_BUSY 0xBFFFFFFF #define S_008010_GUI_ACTIVE(x) (((unsigned)(x) & 0x1) << 31) #define G_008010_GUI_ACTIVE(x) (((x) >> 31) & 0x1) #define C_008010_GUI_ACTIVE 0x7FFFFFFF #define R_008014_GRBM_STATUS_SE0 0x008014 #define S_008014_DB_CLEAN(x) (((unsigned)(x) & 0x1) << 1) #define G_008014_DB_CLEAN(x) (((x) >> 1) & 0x1) #define C_008014_DB_CLEAN 0xFFFFFFFD #define S_008014_CB_CLEAN(x) (((unsigned)(x) & 0x1) << 2) #define G_008014_CB_CLEAN(x) (((x) >> 2) & 0x1) #define C_008014_CB_CLEAN 0xFFFFFFFB #define S_008014_UTCL1_BUSY(x) (((unsigned)(x) & 0x1) << 3) /* >= gfx10 */ #define G_008014_UTCL1_BUSY(x) (((x) >> 3) & 0x1) #define C_008014_UTCL1_BUSY 0xFFFFFFF7 #define S_008014_TCP_BUSY(x) (((unsigned)(x) & 0x1) << 4) /* >= gfx10 */ #define G_008014_TCP_BUSY(x) (((x) >> 4) & 0x1) #define C_008014_TCP_BUSY 0xFFFFFFEF #define S_008014_GL1CC_BUSY(x) (((unsigned)(x) & 0x1) << 5) /* >= gfx10 */ #define G_008014_GL1CC_BUSY(x) (((x) >> 5) & 0x1) #define C_008014_GL1CC_BUSY 0xFFFFFFDF #define S_008014_RMI_BUSY(x) (((unsigned)(x) & 0x1) << 21) /* >= gfx9 */ #define G_008014_RMI_BUSY(x) (((x) >> 21) & 0x1) #define C_008014_RMI_BUSY 0xFFDFFFFF #define S_008014_BCI_BUSY(x) (((unsigned)(x) & 0x1) << 22) #define G_008014_BCI_BUSY(x) (((x) >> 22) & 0x1) #define C_008014_BCI_BUSY 0xFFBFFFFF #define S_008014_VGT_BUSY(x) (((unsigned)(x) & 0x1) << 23) /* <= gfx9 */ #define G_008014_VGT_BUSY(x) (((x) >> 23) & 0x1) #define C_008014_VGT_BUSY 0xFF7FFFFF #define S_008014_PA_BUSY(x) (((unsigned)(x) & 0x1) << 24) #define G_008014_PA_BUSY(x) (((x) >> 24) & 0x1) #define C_008014_PA_BUSY 0xFEFFFFFF #define S_008014_TA_BUSY(x) (((unsigned)(x) & 0x1) << 25) #define G_008014_TA_BUSY(x) (((x) >> 25) & 0x1) #define C_008014_TA_BUSY 0xFDFFFFFF #define S_008014_SX_BUSY(x) (((unsigned)(x) & 0x1) << 26) #define G_008014_SX_BUSY(x) (((x) >> 26) & 0x1) #define C_008014_SX_BUSY 0xFBFFFFFF #define S_008014_SPI_BUSY(x) (((unsigned)(x) & 0x1) << 27) #define G_008014_SPI_BUSY(x) (((x) >> 27) & 0x1) #define C_008014_SPI_BUSY 0xF7FFFFFF #define S_008014_SC_BUSY(x) (((unsigned)(x) & 0x1) << 29) #define G_008014_SC_BUSY(x) (((x) >> 29) & 0x1) #define C_008014_SC_BUSY 0xDFFFFFFF #define S_008014_DB_BUSY(x) (((unsigned)(x) & 0x1) << 30) #define G_008014_DB_BUSY(x) (((x) >> 30) & 0x1) #define C_008014_DB_BUSY 0xBFFFFFFF #define S_008014_CB_BUSY(x) (((unsigned)(x) & 0x1) << 31) #define G_008014_CB_BUSY(x) (((x) >> 31) & 0x1) #define C_008014_CB_BUSY 0x7FFFFFFF #define R_008018_GRBM_STATUS_SE1 0x008018 #define R_00801C_GRBM_STATUS3 0x00801C /* >= gfx10 */ #define S_00801C_GRBM_RLC_INTR_CREDIT_PENDING(x) (((unsigned)(x) & 0x1) << 5) #define G_00801C_GRBM_RLC_INTR_CREDIT_PENDING(x) (((x) >> 5) & 0x1) #define C_00801C_GRBM_RLC_INTR_CREDIT_PENDING 0xFFFFFFDF #define S_00801C_GRBM_UTCL2_INTR_CREDIT_PENDING(x) (((unsigned)(x) & 0x1) << 6) #define G_00801C_GRBM_UTCL2_INTR_CREDIT_PENDING(x) (((x) >> 6) & 0x1) #define C_00801C_GRBM_UTCL2_INTR_CREDIT_PENDING 0xFFFFFFBF #define S_00801C_GRBM_CPF_INTR_CREDIT_PENDING(x) (((unsigned)(x) & 0x1) << 7) #define G_00801C_GRBM_CPF_INTR_CREDIT_PENDING(x) (((x) >> 7) & 0x1) #define C_00801C_GRBM_CPF_INTR_CREDIT_PENDING 0xFFFFFF7F #define S_00801C_MESPIPE0_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 8) #define G_00801C_MESPIPE0_RQ_PENDING(x) (((x) >> 8) & 0x1) #define C_00801C_MESPIPE0_RQ_PENDING 0xFFFFFEFF #define S_00801C_MESPIPE1_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 9) #define G_00801C_MESPIPE1_RQ_PENDING(x) (((x) >> 9) & 0x1) #define C_00801C_MESPIPE1_RQ_PENDING 0xFFFFFDFF #define S_00801C_MESPIPE2_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 10) #define G_00801C_MESPIPE2_RQ_PENDING(x) (((x) >> 10) & 0x1) #define C_00801C_MESPIPE2_RQ_PENDING 0xFFFFFBFF #define S_00801C_MESPIPE3_RQ_PENDING(x) (((unsigned)(x) & 0x1) << 11) #define G_00801C_MESPIPE3_RQ_PENDING(x) (((x) >> 11) & 0x1) #define C_00801C_MESPIPE3_RQ_PENDING 0xFFFFF7FF #define S_00801C_PH_BUSY(x) (((unsigned)(x) & 0x1) << 13) #define G_00801C_PH_BUSY(x) (((x) >> 13) & 0x1) #define C_00801C_PH_BUSY 0xFFFFDFFF #define S_00801C_CH_BUSY(x) (((unsigned)(x) & 0x1) << 14) #define G_00801C_CH_BUSY(x) (((x) >> 14) & 0x1) #define C_00801C_CH_BUSY 0xFFFFBFFF #define S_00801C_GL2CC_BUSY(x) (((unsigned)(x) & 0x1) << 15) #define G_00801C_GL2CC_BUSY(x) (((x) >> 15) & 0x1) #define C_00801C_GL2CC_BUSY 0xFFFF7FFF #define S_00801C_GL1CC_BUSY(x) (((unsigned)(x) & 0x1) << 16) #define G_00801C_GL1CC_BUSY(x) (((x) >> 16) & 0x1) #define C_00801C_GL1CC_BUSY 0xFFFEFFFF #define S_00801C_GUS_LINK_BUSY(x) (((unsigned)(x) & 0x1) << 28) #define G_00801C_GUS_LINK_BUSY(x) (((x) >> 28) & 0x1) #define C_00801C_GUS_LINK_BUSY 0xEFFFFFFF #define S_00801C_GUS_BUSY(x) (((unsigned)(x) & 0x1) << 29) #define G_00801C_GUS_BUSY(x) (((x) >> 29) & 0x1) #define C_00801C_GUS_BUSY 0xDFFFFFFF #define S_00801C_UTCL1_BUSY(x) (((unsigned)(x) & 0x1) << 30) #define G_00801C_UTCL1_BUSY(x) (((x) >> 30) & 0x1) #define C_00801C_UTCL1_BUSY 0xBFFFFFFF #define S_00801C_PMM_BUSY(x) (((unsigned)(x) & 0x1) << 31) #define G_00801C_PMM_BUSY(x) (((x) >> 31) & 0x1) #define C_00801C_PMM_BUSY 0x7FFFFFFF #define R_008020_GRBM_SOFT_RESET 0x008020 /* <= gfx6 */ #define S_008020_SOFT_RESET_CP(x) (((unsigned)(x) & 0x1) << 0) #define G_008020_SOFT_RESET_CP(x) (((x) >> 0) & 0x1) #define C_008020_SOFT_RESET_CP 0xFFFFFFFE #define S_008020_SOFT_RESET_RLC(x) (((unsigned)(x) & 0x1) << 2) #define G_008020_SOFT_RESET_RLC(x) (((x) >> 2) & 0x1) #define C_008020_SOFT_RESET_RLC 0xFFFFFFFB #define S_008020_SOFT_RESET_GFX(x) (((unsigned)(x) & 0x1) << 16) #define G_008020_SOFT_RESET_GFX(x) (((x) >> 16) & 0x1) #define C_008020_SOFT_RESET_GFX 0xFFFEFFFF #define S_008020_SOFT_RESET_CPF(x) (((unsigned)(x) & 0x1) << 17) #define G_008020_SOFT_RESET_CPF(x) (((x) >> 17) & 0x1) #define C_008020_SOFT_RESET_CPF 0xFFFDFFFF #define S_008020_SOFT_RESET_CPC(x) (((unsigned)(x) & 0x1) << 18) #define G_008020_SOFT_RESET_CPC(x) (((x) >> 18) & 0x1) #define C_008020_SOFT_RESET_CPC 0xFFFBFFFF #define S_008020_SOFT_RESET_CPG(x) (((unsigned)(x) & 0x1) << 19) #define G_008020_SOFT_RESET_CPG(x) (((x) >> 19) & 0x1) #define C_008020_SOFT_RESET_CPG 0xFFF7FFFF #define R_008024_GRBM_DEBUG_CNTL 0x008024 /* <= gfx6 */ #define S_008024_GRBM_DEBUG_INDEX(x) (((unsigned)(x) & 0x3F) << 0) #define G_008024_GRBM_DEBUG_INDEX(x) (((x) >> 0) & 0x3F) #define C_008024_GRBM_DEBUG_INDEX 0xFFFFFFC0 #define R_008028_GRBM_DEBUG_DATA 0x008028 /* <= gfx6 */ #define R_00802C_GRBM_GFX_INDEX 0x00802C /* <= gfx6 */ #define S_00802C_INSTANCE_INDEX(x) (((unsigned)(x) & 0xFF) << 0) #define G_00802C_INSTANCE_INDEX(x) (((x) >> 0) & 0xFF) #define C_00802C_INSTANCE_INDEX 0xFFFFFF00 #define S_00802C_SH_INDEX(x) (((unsigned)(x) & 0xFF) << 8) #define G_00802C_SH_INDEX(x) (((x) >> 8) & 0xFF) #define C_00802C_SH_INDEX 0xFFFF00FF #define S_00802C_SE_INDEX(x) (((unsigned)(x) & 0xFF) << 16) #define G_00802C_SE_INDEX(x) (((x) >> 16) & 0xFF) #define C_00802C_SE_INDEX 0xFF00FFFF #define S_00802C_SH_BROADCAST_WRITES(x) (((unsigned)(x) & 0x1) << 29) #define G_00802C_SH_BROADCAST_WRITES(x) (((x) >> 29) & 0x1) #define C_00802C_SH_BROADCAST_WRITES 0xDFFFFFFF #define S_00802C_INSTANCE_BROADCAST_WRITES(x) (((unsigned)(x) & 0x1) << 30) #define G_00802C_INSTANCE_BROADCAST_WRITES(x) (((x) >> 30) & 0x1) #define C_00802C_INSTANCE_BROADCAST_WRITES 0xBFFFFFFF #define S_00802C_SE_BROADCAST_WRITES(x) (((unsigned)(x) & 0x1) << 31) #define G_00802C_SE_BROADCAST_WRITES(x) (((x) >> 31) & 0x1) #define C_00802C_SE_BROADCAST_WRITES 0x7FFFFFFF #define R_008030_GRBM_GFX_CLKEN_CNTL 0x008030 /* <= gfx6 */ #define S_008030_PREFIX_DELAY_CNT(x) (((unsigned)(x) & 0xF) << 0) #define G_008030_PREFIX_DELAY_CNT(x) (((x) >> 0) & 0xF) #define C_008030_PREFIX_DELAY_CNT 0xFFFFFFF0 #define S_008030_POST_DELAY_CNT(x) (((unsigned)(x) & 0x1F) << 8) #define G_008030_POST_DELAY_CNT(x) (((x) >> 8) & 0x1F) #define C_008030_POST_DELAY_CNT 0xFFFFE0FF #define R_008034_GRBM_WAIT_IDLE_CLOCKS 0x008034 /* <= gfx6 */ #define S_008034_WAIT_IDLE_CLOCKS(x) (((unsigned)(x) & 0xFF) << 0) #define G_008034_WAIT_IDLE_CLOCKS(x) (((x) >> 0) & 0xFF) #define C_008034_WAIT_IDLE_CLOCKS 0xFFFFFF00 #define R_008038_GRBM_STATUS_SE2 0x008038 /* >= gfx7 */ #define R_00803C_GRBM_STATUS_SE3 0x00803C /* >= gfx7 */ #define R_008050_GRBM_DEBUG 0x008050 /* <= gfx6 */ #define S_008050_IGNORE_RDY(x) (((unsigned)(x) & 0x1) << 1) #define G_008050_IGNORE_RDY(x) (((x) >> 1) & 0x1) #define C_008050_IGNORE_RDY 0xFFFFFFFD #define S_008050_IGNORE_FAO(x) (((unsigned)(x) & 0x1) << 5) #define G_008050_IGNORE_FAO(x) (((x) >> 5) & 0x1) #define C_008050_IGNORE_FAO 0xFFFFFFDF #define S_008050_DISABLE_READ_TIMEOUT(x) (((unsigned)(x) & 0x1) << 6) #define G_008050_DISABLE_READ_TIMEOUT(x) (((x) >> 6) & 0x1) #define C_008050_DISABLE_READ_TIMEOUT 0xFFFFFFBF #define S_008050_SNAPSHOT_FREE_CNTRS(x) (((unsigned)(x) & 0x1) << 7) #define G_008050_SNAPSHOT_FREE_CNTRS(x) (((x) >> 7) & 0x1) #define C_008050_SNAPSHOT_FREE_CNTRS 0xFFFFFF7F #define S_008050_HYSTERESIS_GUI_ACTIVE(x) (((unsigned)(x) & 0xF) << 8) #define G_008050_HYSTERESIS_GUI_ACTIVE(x) (((x) >> 8) & 0xF) #define C_008050_HYSTERESIS_GUI_ACTIVE 0xFFFFF0FF #define S_008050_GFX_CLOCK_DOMAIN_OVERRIDE(x) (((unsigned)(x) & 0x1) << 12) #define G_008050_GFX_CLOCK_DOMAIN_OVERRIDE(x) (((x) >> 12) & 0x1) #define C_008050_GFX_CLOCK_DOMAIN_OVERRIDE 0xFFFFEFFF #define R_008054_GRBM_DEBUG_SNAPSHOT 0x008054 /* <= gfx6 */ #define S_008054_CPF_RDY(x) (((unsigned)(x) & 0x1) << 0) #define G_008054_CPF_RDY(x) (((x) >> 0) & 0x1) #define C_008054_CPF_RDY 0xFFFFFFFE #define S_008054_CPG_RDY(x) (((unsigned)(x) & 0x1) << 1) #define G_008054_CPG_RDY(x) (((x) >> 1) & 0x1) #define C_008054_CPG_RDY 0xFFFFFFFD #define S_008054_SRBM_RDY(x) (((unsigned)(x) & 0x1) << 1) #define G_008054_SRBM_RDY(x) (((x) >> 1) & 0x1) #define C_008054_SRBM_RDY 0xFFFFFFFD #define S_008054_WD_ME0PIPE0_RDY(x) (((unsigned)(x) & 0x1) << 3) #define G_008054_WD_ME0PIPE0_RDY(x) (((x) >> 3) & 0x1) #define C_008054_WD_ME0PIPE0_RDY 0xFFFFFFF7 #define S_008054_WD_ME0PIPE1_RDY(x) (((unsigned)(x) & 0x1) << 4) #define G_008054_WD_ME0PIPE1_RDY(x) (((x) >> 4) & 0x1) #define C_008054_WD_ME0PIPE1_RDY 0xFFFFFFEF #define S_008054_SE0SPI_ME0PIPE0_RDY0(x) (((unsigned)(x) & 0x1) << 6) #define G_008054_SE0SPI_ME0PIPE0_RDY0(x) (((x) >> 6) & 0x1) #define C_008054_SE0SPI_ME0PIPE0_RDY0 0xFFFFFFBF #define S_008054_SE0SPI_ME0PIPE1_RDY0(x) (((unsigned)(x) & 0x1) << 7) #define G_008054_SE0SPI_ME0PIPE1_RDY0(x) (((x) >> 7) & 0x1) #define C_008054_SE0SPI_ME0PIPE1_RDY0 0xFFFFFF7F #define S_008054_SE1SPI_ME0PIPE0_RDY0(x) (((unsigned)(x) & 0x1) << 8) #define G_008054_SE1SPI_ME0PIPE0_RDY0(x) (((x) >> 8) & 0x1) #define C_008054_SE1SPI_ME0PIPE0_RDY0 0xFFFFFEFF #define S_008054_GDS_RDY(x) (((unsigned)(x) & 0x1) << 9) #define G_008054_GDS_RDY(x) (((x) >> 9) & 0x1) #define C_008054_GDS_RDY 0xFFFFFDFF #define S_008054_SE1SPI_ME0PIPE1_RDY0(x) (((unsigned)(x) & 0x1) << 9) #define G_008054_SE1SPI_ME0PIPE1_RDY0(x) (((x) >> 9) & 0x1) #define C_008054_SE1SPI_ME0PIPE1_RDY0 0xFFFFFDFF #define S_008054_SE2SPI_ME0PIPE0_RDY0(x) (((unsigned)(x) & 0x1) << 10) #define G_008054_SE2SPI_ME0PIPE0_RDY0(x) (((x) >> 10) & 0x1) #define C_008054_SE2SPI_ME0PIPE0_RDY0 0xFFFFFBFF #define S_008054_SE2SPI_ME0PIPE1_RDY0(x) (((unsigned)(x) & 0x1) << 11) #define G_008054_SE2SPI_ME0PIPE1_RDY0(x) (((x) >> 11) & 0x1) #define C_008054_SE2SPI_ME0PIPE1_RDY0 0xFFFFF7FF #define S_008054_SE3SPI_ME0PIPE0_RDY0(x) (((unsigned)(x) & 0x1) << 12) #define G_008054_SE3SPI_ME0PIPE0_RDY0(x) (((x) >> 12) & 0x1) #define C_008054_SE3SPI_ME0PIPE0_RDY0 0xFFFFEFFF #define S_008054_SE3SPI_ME0PIPE1_RDY0(x) (((unsigned)(x) & 0x1) << 13) #define G_008054_SE3SPI_ME0PIPE1_RDY0(x) (((x) >> 13) & 0x1) #define C_008054_SE3SPI_ME0PIPE1_RDY0 0xFFFFDFFF #define S_008054_SE0SPI_ME0PIPE0_RDY1(x) (((unsigned)(x) & 0x1) << 14) #define G_008054_SE0SPI_ME0PIPE0_RDY1(x) (((x) >> 14) & 0x1) #define C_008054_SE0SPI_ME0PIPE0_RDY1 0xFFFFBFFF #define S_008054_SE0SPI_ME0PIPE1_RDY1(x) (((unsigned)(x) & 0x1) << 15) #define G_008054_SE0SPI_ME0PIPE1_RDY1(x) (((x) >> 15) & 0x1) #define C_008054_SE0SPI_ME0PIPE1_RDY1 0xFFFF7FFF #define S_008054_SE1SPI_ME0PIPE0_RDY1(x) (((unsigned)(x) & 0x1) << 16) #define G_008054_SE1SPI_ME0PIPE0_RDY1(x) (((x) >> 16) & 0x1) #define C_008054_SE1SPI_ME0PIPE0_RDY1 0xFFFEFFFF #define S_008054_SE1SPI_ME0PIPE1_RDY1(x) (((unsigned)(x) & 0x1) << 17) #define G_008054_SE1SPI_ME0PIPE1_RDY1(x) (((x) >> 17) & 0x1) #define C_008054_SE1SPI_ME0PIPE1_RDY1 0xFFFDFFFF #define S_008054_SE2SPI_ME0PIPE0_RDY1(x) (((unsigned)(x) & 0x1) << 18) #define G_008054_SE2SPI_ME0PIPE0_RDY1(x) (((x) >> 18) & 0x1) #define C_008054_SE2SPI_ME0PIPE0_RDY1 0xFFFBFFFF #define S_008054_SE2SPI_ME0PIPE1_RDY1(x) (((unsigned)(x) & 0x1) << 19) #define G_008054_SE2SPI_ME0PIPE1_RDY1(x) (((x) >> 19) & 0x1) #define C_008054_SE2SPI_ME0PIPE1_RDY1 0xFFF7FFFF #define S_008054_SE3SPI_ME0PIPE0_RDY1(x) (((unsigned)(x) & 0x1) << 20) #define G_008054_SE3SPI_ME0PIPE0_RDY1(x) (((x) >> 20) & 0x1) #define C_008054_SE3SPI_ME0PIPE0_RDY1 0xFFEFFFFF #define S_008054_SE3SPI_ME0PIPE1_RDY1(x) (((unsigned)(x) & 0x1) << 21) #define G_008054_SE3SPI_ME0PIPE1_RDY1(x) (((x) >> 21) & 0x1) #define C_008054_SE3SPI_ME0PIPE1_RDY1 0xFFDFFFFF #define R_008058_GRBM_READ_ERROR 0x008058 /* <= gfx6 */ #define S_008058_READ_ADDRESS(x) (((unsigned)(x) & 0xFFFF) << 2) #define G_008058_READ_ADDRESS(x) (((x) >> 2) & 0xFFFF) #define C_008058_READ_ADDRESS 0xFFFC0003 #define S_008058_READ_PIPEID(x) (((unsigned)(x) & 0x3) << 20) #define G_008058_READ_PIPEID(x) (((x) >> 20) & 0x3) #define C_008058_READ_PIPEID 0xFFCFFFFF #define S_008058_READ_MEID(x) (((unsigned)(x) & 0x3) << 22) #define G_008058_READ_MEID(x) (((x) >> 22) & 0x3) #define C_008058_READ_MEID 0xFF3FFFFF #define S_008058_READ_ERROR(x) (((unsigned)(x) & 0x1) << 31) #define G_008058_READ_ERROR(x) (((x) >> 31) & 0x1) #define C_008058_READ_ERROR 0x7FFFFFFF #define R_008060_GRBM_INT_CNTL 0x008060 /* <= gfx6 */ #define S_008060_RDERR_INT_ENABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_008060_RDERR_INT_ENABLE(x) (((x) >> 0) & 0x1) #define C_008060_RDERR_INT_ENABLE 0xFFFFFFFE #define S_008060_GUI_IDLE_INT_ENABLE(x) (((unsigned)(x) & 0x1) << 19) #define G_008060_GUI_IDLE_INT_ENABLE(x) (((x) >> 19) & 0x1) #define C_008060_GUI_IDLE_INT_ENABLE 0xFFF7FFFF #define R_008070_GRBM_PERFCOUNTER0_SELECT 0x008070 /* <= gfx6 */ #define S_008070_PERF_SEL(x) (((unsigned)(x) & 0x3F) << 0) #define G_008070_PERF_SEL(x) (((x) >> 0) & 0x3F) #define C_008070_PERF_SEL 0xFFFFFFC0 #define S_008070_DB_CLEAN_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 10) #define G_008070_DB_CLEAN_USER_DEFINED_MASK(x) (((x) >> 10) & 0x1) #define C_008070_DB_CLEAN_USER_DEFINED_MASK 0xFFFFFBFF #define S_008070_CB_CLEAN_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 11) #define G_008070_CB_CLEAN_USER_DEFINED_MASK(x) (((x) >> 11) & 0x1) #define C_008070_CB_CLEAN_USER_DEFINED_MASK 0xFFFFF7FF #define S_008070_VGT_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 12) #define G_008070_VGT_BUSY_USER_DEFINED_MASK(x) (((x) >> 12) & 0x1) #define C_008070_VGT_BUSY_USER_DEFINED_MASK 0xFFFFEFFF #define S_008070_TA_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 13) #define G_008070_TA_BUSY_USER_DEFINED_MASK(x) (((x) >> 13) & 0x1) #define C_008070_TA_BUSY_USER_DEFINED_MASK 0xFFFFDFFF #define S_008070_SX_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 14) #define G_008070_SX_BUSY_USER_DEFINED_MASK(x) (((x) >> 14) & 0x1) #define C_008070_SX_BUSY_USER_DEFINED_MASK 0xFFFFBFFF #define S_008070_SPI_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 16) #define G_008070_SPI_BUSY_USER_DEFINED_MASK(x) (((x) >> 16) & 0x1) #define C_008070_SPI_BUSY_USER_DEFINED_MASK 0xFFFEFFFF #define S_008070_SC_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 17) #define G_008070_SC_BUSY_USER_DEFINED_MASK(x) (((x) >> 17) & 0x1) #define C_008070_SC_BUSY_USER_DEFINED_MASK 0xFFFDFFFF #define S_008070_PA_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 18) #define G_008070_PA_BUSY_USER_DEFINED_MASK(x) (((x) >> 18) & 0x1) #define C_008070_PA_BUSY_USER_DEFINED_MASK 0xFFFBFFFF #define S_008070_GRBM_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 19) #define G_008070_GRBM_BUSY_USER_DEFINED_MASK(x) (((x) >> 19) & 0x1) #define C_008070_GRBM_BUSY_USER_DEFINED_MASK 0xFFF7FFFF #define S_008070_DB_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 20) #define G_008070_DB_BUSY_USER_DEFINED_MASK(x) (((x) >> 20) & 0x1) #define C_008070_DB_BUSY_USER_DEFINED_MASK 0xFFEFFFFF #define S_008070_CB_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 21) #define G_008070_CB_BUSY_USER_DEFINED_MASK(x) (((x) >> 21) & 0x1) #define C_008070_CB_BUSY_USER_DEFINED_MASK 0xFFDFFFFF #define S_008070_CP_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 22) #define G_008070_CP_BUSY_USER_DEFINED_MASK(x) (((x) >> 22) & 0x1) #define C_008070_CP_BUSY_USER_DEFINED_MASK 0xFFBFFFFF #define S_008070_IA_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 23) #define G_008070_IA_BUSY_USER_DEFINED_MASK(x) (((x) >> 23) & 0x1) #define C_008070_IA_BUSY_USER_DEFINED_MASK 0xFF7FFFFF #define S_008070_GDS_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 24) #define G_008070_GDS_BUSY_USER_DEFINED_MASK(x) (((x) >> 24) & 0x1) #define C_008070_GDS_BUSY_USER_DEFINED_MASK 0xFEFFFFFF #define S_008070_BCI_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 25) #define G_008070_BCI_BUSY_USER_DEFINED_MASK(x) (((x) >> 25) & 0x1) #define C_008070_BCI_BUSY_USER_DEFINED_MASK 0xFDFFFFFF #define S_008070_RLC_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 26) #define G_008070_RLC_BUSY_USER_DEFINED_MASK(x) (((x) >> 26) & 0x1) #define C_008070_RLC_BUSY_USER_DEFINED_MASK 0xFBFFFFFF #define S_008070_TC_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 27) #define G_008070_TC_BUSY_USER_DEFINED_MASK(x) (((x) >> 27) & 0x1) #define C_008070_TC_BUSY_USER_DEFINED_MASK 0xF7FFFFFF #define S_008070_WD_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 28) #define G_008070_WD_BUSY_USER_DEFINED_MASK(x) (((x) >> 28) & 0x1) #define C_008070_WD_BUSY_USER_DEFINED_MASK 0xEFFFFFFF #define R_008074_GRBM_PERFCOUNTER1_SELECT 0x008074 /* <= gfx6 */ #define R_008078_GRBM_PERFCOUNTER0_LO 0x008078 /* <= gfx6 */ #define R_00807C_GRBM_PERFCOUNTER0_HI 0x00807C /* <= gfx6 */ #define R_008080_GRBM_PERFCOUNTER1_LO 0x008080 /* <= gfx6 */ #define R_008084_GRBM_PERFCOUNTER1_HI 0x008084 /* <= gfx6 */ #define R_008098_GRBM_SE0_PERFCOUNTER_SELECT 0x008098 /* <= gfx6 */ #define S_008098_PERF_SEL(x) (((unsigned)(x) & 0x3F) << 0) #define G_008098_PERF_SEL(x) (((x) >> 0) & 0x3F) #define C_008098_PERF_SEL 0xFFFFFFC0 #define S_008098_DB_CLEAN_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 10) #define G_008098_DB_CLEAN_USER_DEFINED_MASK(x) (((x) >> 10) & 0x1) #define C_008098_DB_CLEAN_USER_DEFINED_MASK 0xFFFFFBFF #define S_008098_CB_CLEAN_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 11) #define G_008098_CB_CLEAN_USER_DEFINED_MASK(x) (((x) >> 11) & 0x1) #define C_008098_CB_CLEAN_USER_DEFINED_MASK 0xFFFFF7FF #define S_008098_TA_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 12) #define G_008098_TA_BUSY_USER_DEFINED_MASK(x) (((x) >> 12) & 0x1) #define C_008098_TA_BUSY_USER_DEFINED_MASK 0xFFFFEFFF #define S_008098_SX_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 13) #define G_008098_SX_BUSY_USER_DEFINED_MASK(x) (((x) >> 13) & 0x1) #define C_008098_SX_BUSY_USER_DEFINED_MASK 0xFFFFDFFF #define S_008098_SPI_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 15) #define G_008098_SPI_BUSY_USER_DEFINED_MASK(x) (((x) >> 15) & 0x1) #define C_008098_SPI_BUSY_USER_DEFINED_MASK 0xFFFF7FFF #define S_008098_SC_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 16) #define G_008098_SC_BUSY_USER_DEFINED_MASK(x) (((x) >> 16) & 0x1) #define C_008098_SC_BUSY_USER_DEFINED_MASK 0xFFFEFFFF #define S_008098_DB_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 17) #define G_008098_DB_BUSY_USER_DEFINED_MASK(x) (((x) >> 17) & 0x1) #define C_008098_DB_BUSY_USER_DEFINED_MASK 0xFFFDFFFF #define S_008098_CB_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 18) #define G_008098_CB_BUSY_USER_DEFINED_MASK(x) (((x) >> 18) & 0x1) #define C_008098_CB_BUSY_USER_DEFINED_MASK 0xFFFBFFFF #define S_008098_VGT_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 19) #define G_008098_VGT_BUSY_USER_DEFINED_MASK(x) (((x) >> 19) & 0x1) #define C_008098_VGT_BUSY_USER_DEFINED_MASK 0xFFF7FFFF #define S_008098_PA_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 20) #define G_008098_PA_BUSY_USER_DEFINED_MASK(x) (((x) >> 20) & 0x1) #define C_008098_PA_BUSY_USER_DEFINED_MASK 0xFFEFFFFF #define S_008098_BCI_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 21) #define G_008098_BCI_BUSY_USER_DEFINED_MASK(x) (((x) >> 21) & 0x1) #define C_008098_BCI_BUSY_USER_DEFINED_MASK 0xFFDFFFFF #define R_00809C_GRBM_SE1_PERFCOUNTER_SELECT 0x00809C /* <= gfx6 */ #define R_0080A8_GRBM_SE0_PERFCOUNTER_LO 0x0080A8 /* <= gfx6 */ #define R_0080AC_GRBM_SE0_PERFCOUNTER_HI 0x0080AC /* <= gfx6 */ #define R_0080B0_GRBM_SE1_PERFCOUNTER_LO 0x0080B0 /* <= gfx6 */ #define R_0080B4_GRBM_SE1_PERFCOUNTER_HI 0x0080B4 /* <= gfx6 */ #define R_0080F0_DEBUG_INDEX 0x0080F0 /* <= gfx6 */ #define S_0080F0_DEBUG_INDEX(x) (((unsigned)(x) & 0x3FFFF) << 0) #define G_0080F0_DEBUG_INDEX(x) (((x) >> 0) & 0x3FFFF) #define C_0080F0_DEBUG_INDEX 0xFFFC0000 #define R_0080F4_DEBUG_DATA 0x0080F4 /* <= gfx6 */ #define R_0080FC_GRBM_NOWHERE 0x0080FC /* <= gfx6 */ #define R_008100_GRBM_SCRATCH_REG0 0x008100 /* <= gfx6 */ #define R_008104_GRBM_SCRATCH_REG1 0x008104 /* <= gfx6 */ #define R_008108_GRBM_SCRATCH_REG2 0x008108 /* <= gfx6 */ #define R_00810C_GRBM_SCRATCH_REG3 0x00810C /* <= gfx6 */ #define R_008110_GRBM_SCRATCH_REG4 0x008110 /* <= gfx6 */ #define R_008114_GRBM_SCRATCH_REG5 0x008114 /* <= gfx6 */ #define R_008118_GRBM_SCRATCH_REG6 0x008118 /* <= gfx6 */ #define R_00811C_GRBM_SCRATCH_REG7 0x00811C /* <= gfx6 */ #define R_008210_CP_CPC_STATUS 0x008210 /* >= gfx7 */ #define S_008210_MEC1_BUSY(x) (((unsigned)(x) & 0x1) << 0) #define G_008210_MEC1_BUSY(x) (((x) >> 0) & 0x1) #define C_008210_MEC1_BUSY 0xFFFFFFFE #define S_008210_MEC2_BUSY(x) (((unsigned)(x) & 0x1) << 1) #define G_008210_MEC2_BUSY(x) (((x) >> 1) & 0x1) #define C_008210_MEC2_BUSY 0xFFFFFFFD #define S_008210_DC0_BUSY(x) (((unsigned)(x) & 0x1) << 2) #define G_008210_DC0_BUSY(x) (((x) >> 2) & 0x1) #define C_008210_DC0_BUSY 0xFFFFFFFB #define S_008210_DC1_BUSY(x) (((unsigned)(x) & 0x1) << 3) #define G_008210_DC1_BUSY(x) (((x) >> 3) & 0x1) #define C_008210_DC1_BUSY 0xFFFFFFF7 #define S_008210_RCIU1_BUSY(x) (((unsigned)(x) & 0x1) << 4) #define G_008210_RCIU1_BUSY(x) (((x) >> 4) & 0x1) #define C_008210_RCIU1_BUSY 0xFFFFFFEF #define S_008210_RCIU2_BUSY(x) (((unsigned)(x) & 0x1) << 5) #define G_008210_RCIU2_BUSY(x) (((x) >> 5) & 0x1) #define C_008210_RCIU2_BUSY 0xFFFFFFDF #define S_008210_ROQ1_BUSY(x) (((unsigned)(x) & 0x1) << 6) #define G_008210_ROQ1_BUSY(x) (((x) >> 6) & 0x1) #define C_008210_ROQ1_BUSY 0xFFFFFFBF #define S_008210_ROQ2_BUSY(x) (((unsigned)(x) & 0x1) << 7) #define G_008210_ROQ2_BUSY(x) (((x) >> 7) & 0x1) #define C_008210_ROQ2_BUSY 0xFFFFFF7F #define S_008210_MIU_RDREQ_BUSY(x) (((unsigned)(x) & 0x1) << 8) /* gfx7 */ #define G_008210_MIU_RDREQ_BUSY(x) (((x) >> 8) & 0x1) #define C_008210_MIU_RDREQ_BUSY 0xFFFFFEFF #define S_008210_MIU_WRREQ_BUSY(x) (((unsigned)(x) & 0x1) << 9) /* gfx7 */ #define G_008210_MIU_WRREQ_BUSY(x) (((x) >> 9) & 0x1) #define C_008210_MIU_WRREQ_BUSY 0xFFFFFDFF #define S_008210_TCIU_BUSY(x) (((unsigned)(x) & 0x1) << 10) #define G_008210_TCIU_BUSY(x) (((x) >> 10) & 0x1) #define C_008210_TCIU_BUSY 0xFFFFFBFF #define S_008210_SCRATCH_RAM_BUSY(x) (((unsigned)(x) & 0x1) << 11) #define G_008210_SCRATCH_RAM_BUSY(x) (((x) >> 11) & 0x1) #define C_008210_SCRATCH_RAM_BUSY 0xFFFFF7FF #define S_008210_QU_BUSY(x) (((unsigned)(x) & 0x1) << 12) #define G_008210_QU_BUSY(x) (((x) >> 12) & 0x1) #define C_008210_QU_BUSY 0xFFFFEFFF #define S_008210_ATCL2IU_BUSY(x) (((unsigned)(x) & 0x1) << 13) /* gfx8, gfx81 */ #define G_008210_ATCL2IU_BUSY(x) (((x) >> 13) & 0x1) #define C_008210_ATCL2IU_BUSY 0xFFFFDFFF #define S_008210_UTCL2IU_BUSY(x) (((unsigned)(x) & 0x1) << 13) /* >= gfx9 */ #define G_008210_UTCL2IU_BUSY(x) (((x) >> 13) & 0x1) #define C_008210_UTCL2IU_BUSY 0xFFFFDFFF #define S_008210_SAVE_RESTORE_BUSY(x) (((unsigned)(x) & 0x1) << 14) /* >= gfx9 */ #define G_008210_SAVE_RESTORE_BUSY(x) (((x) >> 14) & 0x1) #define C_008210_SAVE_RESTORE_BUSY 0xFFFFBFFF #define S_008210_GCRIU_BUSY(x) (((unsigned)(x) & 0x1) << 15) /* >= gfx10 */ #define G_008210_GCRIU_BUSY(x) (((x) >> 15) & 0x1) #define C_008210_GCRIU_BUSY 0xFFFF7FFF #define S_008210_MES_BUSY(x) (((unsigned)(x) & 0x1) << 16) /* >= gfx10 */ #define G_008210_MES_BUSY(x) (((x) >> 16) & 0x1) #define C_008210_MES_BUSY 0xFFFEFFFF #define S_008210_MES_SCRATCH_RAM_BUSY(x) (((unsigned)(x) & 0x1) << 17) /* >= gfx10 */ #define G_008210_MES_SCRATCH_RAM_BUSY(x) (((x) >> 17) & 0x1) #define C_008210_MES_SCRATCH_RAM_BUSY 0xFFFDFFFF #define S_008210_RCIU3_BUSY(x) (((unsigned)(x) & 0x1) << 18) /* >= gfx10 */ #define G_008210_RCIU3_BUSY(x) (((x) >> 18) & 0x1) #define C_008210_RCIU3_BUSY 0xFFFBFFFF #define S_008210_MES_INSTRUCTION_CACHE_BUSY(x) (((unsigned)(x) & 0x1) << 19) /* >= gfx10 */ #define G_008210_MES_INSTRUCTION_CACHE_BUSY(x) (((x) >> 19) & 0x1) #define C_008210_MES_INSTRUCTION_CACHE_BUSY 0xFFF7FFFF #define S_008210_CPG_CPC_BUSY(x) (((unsigned)(x) & 0x1) << 29) #define G_008210_CPG_CPC_BUSY(x) (((x) >> 29) & 0x1) #define C_008210_CPG_CPC_BUSY 0xDFFFFFFF #define S_008210_CPF_CPC_BUSY(x) (((unsigned)(x) & 0x1) << 30) #define G_008210_CPF_CPC_BUSY(x) (((x) >> 30) & 0x1) #define C_008210_CPF_CPC_BUSY 0xBFFFFFFF #define S_008210_CPC_BUSY(x) (((unsigned)(x) & 0x1) << 31) #define G_008210_CPC_BUSY(x) (((x) >> 31) & 0x1) #define C_008210_CPC_BUSY 0x7FFFFFFF #define R_008214_CP_CPC_BUSY_STAT 0x008214 /* >= gfx7 */ #define S_008214_MEC1_LOAD_BUSY(x) (((unsigned)(x) & 0x1) << 0) #define G_008214_MEC1_LOAD_BUSY(x) (((x) >> 0) & 0x1) #define C_008214_MEC1_LOAD_BUSY 0xFFFFFFFE #define S_008214_MEC1_SEMAPOHRE_BUSY(x) (((unsigned)(x) & 0x1) << 1) #define G_008214_MEC1_SEMAPOHRE_BUSY(x) (((x) >> 1) & 0x1) #define C_008214_MEC1_SEMAPOHRE_BUSY 0xFFFFFFFD #define S_008214_MEC1_MUTEX_BUSY(x) (((unsigned)(x) & 0x1) << 2) #define G_008214_MEC1_MUTEX_BUSY(x) (((x) >> 2) & 0x1) #define C_008214_MEC1_MUTEX_BUSY 0xFFFFFFFB #define S_008214_MEC1_MESSAGE_BUSY(x) (((unsigned)(x) & 0x1) << 3) #define G_008214_MEC1_MESSAGE_BUSY(x) (((x) >> 3) & 0x1) #define C_008214_MEC1_MESSAGE_BUSY 0xFFFFFFF7 #define S_008214_MEC1_EOP_QUEUE_BUSY(x) (((unsigned)(x) & 0x1) << 4) #define G_008214_MEC1_EOP_QUEUE_BUSY(x) (((x) >> 4) & 0x1) #define C_008214_MEC1_EOP_QUEUE_BUSY 0xFFFFFFEF #define S_008214_MEC1_IQ_QUEUE_BUSY(x) (((unsigned)(x) & 0x1) << 5) #define G_008214_MEC1_IQ_QUEUE_BUSY(x) (((x) >> 5) & 0x1) #define C_008214_MEC1_IQ_QUEUE_BUSY 0xFFFFFFDF #define S_008214_MEC1_IB_QUEUE_BUSY(x) (((unsigned)(x) & 0x1) << 6) #define G_008214_MEC1_IB_QUEUE_BUSY(x) (((x) >> 6) & 0x1) #define C_008214_MEC1_IB_QUEUE_BUSY 0xFFFFFFBF #define S_008214_MEC1_TC_BUSY(x) (((unsigned)(x) & 0x1) << 7) #define G_008214_MEC1_TC_BUSY(x) (((x) >> 7) & 0x1) #define C_008214_MEC1_TC_BUSY 0xFFFFFF7F #define S_008214_MEC1_DMA_BUSY(x) (((unsigned)(x) & 0x1) << 8) #define G_008214_MEC1_DMA_BUSY(x) (((x) >> 8) & 0x1) #define C_008214_MEC1_DMA_BUSY 0xFFFFFEFF #define S_008214_MEC1_PARTIAL_FLUSH_BUSY(x) (((unsigned)(x) & 0x1) << 9) #define G_008214_MEC1_PARTIAL_FLUSH_BUSY(x) (((x) >> 9) & 0x1) #define C_008214_MEC1_PARTIAL_FLUSH_BUSY 0xFFFFFDFF #define S_008214_MEC1_PIPE0_BUSY(x) (((unsigned)(x) & 0x1) << 10) #define G_008214_MEC1_PIPE0_BUSY(x) (((x) >> 10) & 0x1) #define C_008214_MEC1_PIPE0_BUSY 0xFFFFFBFF #define S_008214_MEC1_PIPE1_BUSY(x) (((unsigned)(x) & 0x1) << 11) #define G_008214_MEC1_PIPE1_BUSY(x) (((x) >> 11) & 0x1) #define C_008214_MEC1_PIPE1_BUSY 0xFFFFF7FF #define S_008214_MEC1_PIPE2_BUSY(x) (((unsigned)(x) & 0x1) << 12) #define G_008214_MEC1_PIPE2_BUSY(x) (((x) >> 12) & 0x1) #define C_008214_MEC1_PIPE2_BUSY 0xFFFFEFFF #define S_008214_MEC1_PIPE3_BUSY(x) (((unsigned)(x) & 0x1) << 13) #define G_008214_MEC1_PIPE3_BUSY(x) (((x) >> 13) & 0x1) #define C_008214_MEC1_PIPE3_BUSY 0xFFFFDFFF #define S_008214_MEC2_LOAD_BUSY(x) (((unsigned)(x) & 0x1) << 16) #define G_008214_MEC2_LOAD_BUSY(x) (((x) >> 16) & 0x1) #define C_008214_MEC2_LOAD_BUSY 0xFFFEFFFF #define S_008214_MEC2_SEMAPOHRE_BUSY(x) (((unsigned)(x) & 0x1) << 17) #define G_008214_MEC2_SEMAPOHRE_BUSY(x) (((x) >> 17) & 0x1) #define C_008214_MEC2_SEMAPOHRE_BUSY 0xFFFDFFFF #define S_008214_MEC2_MUTEX_BUSY(x) (((unsigned)(x) & 0x1) << 18) #define G_008214_MEC2_MUTEX_BUSY(x) (((x) >> 18) & 0x1) #define C_008214_MEC2_MUTEX_BUSY 0xFFFBFFFF #define S_008214_MEC2_MESSAGE_BUSY(x) (((unsigned)(x) & 0x1) << 19) #define G_008214_MEC2_MESSAGE_BUSY(x) (((x) >> 19) & 0x1) #define C_008214_MEC2_MESSAGE_BUSY 0xFFF7FFFF #define S_008214_MEC2_EOP_QUEUE_BUSY(x) (((unsigned)(x) & 0x1) << 20) #define G_008214_MEC2_EOP_QUEUE_BUSY(x) (((x) >> 20) & 0x1) #define C_008214_MEC2_EOP_QUEUE_BUSY 0xFFEFFFFF #define S_008214_MEC2_IQ_QUEUE_BUSY(x) (((unsigned)(x) & 0x1) << 21) #define G_008214_MEC2_IQ_QUEUE_BUSY(x) (((x) >> 21) & 0x1) #define C_008214_MEC2_IQ_QUEUE_BUSY 0xFFDFFFFF #define S_008214_MEC2_IB_QUEUE_BUSY(x) (((unsigned)(x) & 0x1) << 22) #define G_008214_MEC2_IB_QUEUE_BUSY(x) (((x) >> 22) & 0x1) #define C_008214_MEC2_IB_QUEUE_BUSY 0xFFBFFFFF #define S_008214_MEC2_TC_BUSY(x) (((unsigned)(x) & 0x1) << 23) #define G_008214_MEC2_TC_BUSY(x) (((x) >> 23) & 0x1) #define C_008214_MEC2_TC_BUSY 0xFF7FFFFF #define S_008214_MEC2_DMA_BUSY(x) (((unsigned)(x) & 0x1) << 24) #define G_008214_MEC2_DMA_BUSY(x) (((x) >> 24) & 0x1) #define C_008214_MEC2_DMA_BUSY 0xFEFFFFFF #define S_008214_MEC2_PARTIAL_FLUSH_BUSY(x) (((unsigned)(x) & 0x1) << 25) #define G_008214_MEC2_PARTIAL_FLUSH_BUSY(x) (((x) >> 25) & 0x1) #define C_008214_MEC2_PARTIAL_FLUSH_BUSY 0xFDFFFFFF #define S_008214_MEC2_PIPE0_BUSY(x) (((unsigned)(x) & 0x1) << 26) #define G_008214_MEC2_PIPE0_BUSY(x) (((x) >> 26) & 0x1) #define C_008214_MEC2_PIPE0_BUSY 0xFBFFFFFF #define S_008214_MEC2_PIPE1_BUSY(x) (((unsigned)(x) & 0x1) << 27) #define G_008214_MEC2_PIPE1_BUSY(x) (((x) >> 27) & 0x1) #define C_008214_MEC2_PIPE1_BUSY 0xF7FFFFFF #define S_008214_MEC2_PIPE2_BUSY(x) (((unsigned)(x) & 0x1) << 28) #define G_008214_MEC2_PIPE2_BUSY(x) (((x) >> 28) & 0x1) #define C_008214_MEC2_PIPE2_BUSY 0xEFFFFFFF #define S_008214_MEC2_PIPE3_BUSY(x) (((unsigned)(x) & 0x1) << 29) #define G_008214_MEC2_PIPE3_BUSY(x) (((x) >> 29) & 0x1) #define C_008214_MEC2_PIPE3_BUSY 0xDFFFFFFF #define R_008218_CP_CPC_STALLED_STAT1 0x008218 /* >= gfx7 */ #define S_008218_MIU_RDREQ_FREE_STALL(x) (((unsigned)(x) & 0x1) << 0) /* gfx7 */ #define G_008218_MIU_RDREQ_FREE_STALL(x) (((x) >> 0) & 0x1) #define C_008218_MIU_RDREQ_FREE_STALL 0xFFFFFFFE #define S_008218_MIU_WRREQ_FREE_STALL(x) (((unsigned)(x) & 0x1) << 1) /* gfx7 */ #define G_008218_MIU_WRREQ_FREE_STALL(x) (((x) >> 1) & 0x1) #define C_008218_MIU_WRREQ_FREE_STALL 0xFFFFFFFD #define S_008218_RCIU_TX_FREE_STALL(x) (((unsigned)(x) & 0x1) << 3) #define G_008218_RCIU_TX_FREE_STALL(x) (((x) >> 3) & 0x1) #define C_008218_RCIU_TX_FREE_STALL 0xFFFFFFF7 #define S_008218_RCIU_PRIV_VIOLATION(x) (((unsigned)(x) & 0x1) << 4) #define G_008218_RCIU_PRIV_VIOLATION(x) (((x) >> 4) & 0x1) #define C_008218_RCIU_PRIV_VIOLATION 0xFFFFFFEF #define S_008218_TCIU_TX_FREE_STALL(x) (((unsigned)(x) & 0x1) << 6) #define G_008218_TCIU_TX_FREE_STALL(x) (((x) >> 6) & 0x1) #define C_008218_TCIU_TX_FREE_STALL 0xFFFFFFBF #define S_008218_MEC1_DECODING_PACKET(x) (((unsigned)(x) & 0x1) << 8) #define G_008218_MEC1_DECODING_PACKET(x) (((x) >> 8) & 0x1) #define C_008218_MEC1_DECODING_PACKET 0xFFFFFEFF #define S_008218_MEC1_WAIT_ON_RCIU(x) (((unsigned)(x) & 0x1) << 9) #define G_008218_MEC1_WAIT_ON_RCIU(x) (((x) >> 9) & 0x1) #define C_008218_MEC1_WAIT_ON_RCIU 0xFFFFFDFF #define S_008218_MEC1_WAIT_ON_RCIU_READ(x) (((unsigned)(x) & 0x1) << 10) #define G_008218_MEC1_WAIT_ON_RCIU_READ(x) (((x) >> 10) & 0x1) #define C_008218_MEC1_WAIT_ON_RCIU_READ 0xFFFFFBFF #define S_008218_MEC1_WAIT_ON_MC_READ(x) (((unsigned)(x) & 0x1) << 11) /* gfx7 */ #define G_008218_MEC1_WAIT_ON_MC_READ(x) (((x) >> 11) & 0x1) #define C_008218_MEC1_WAIT_ON_MC_READ 0xFFFFF7FF #define S_008218_MEC1_WAIT_ON_MC_WR_ACK(x) (((unsigned)(x) & 0x1) << 12) /* gfx7 */ #define G_008218_MEC1_WAIT_ON_MC_WR_ACK(x) (((x) >> 12) & 0x1) #define C_008218_MEC1_WAIT_ON_MC_WR_ACK 0xFFFFEFFF #define S_008218_MEC1_WAIT_ON_ROQ_DATA(x) (((unsigned)(x) & 0x1) << 13) #define G_008218_MEC1_WAIT_ON_ROQ_DATA(x) (((x) >> 13) & 0x1) #define C_008218_MEC1_WAIT_ON_ROQ_DATA 0xFFFFDFFF #define S_008218_MEC2_DECODING_PACKET(x) (((unsigned)(x) & 0x1) << 16) #define G_008218_MEC2_DECODING_PACKET(x) (((x) >> 16) & 0x1) #define C_008218_MEC2_DECODING_PACKET 0xFFFEFFFF #define S_008218_MEC2_WAIT_ON_RCIU(x) (((unsigned)(x) & 0x1) << 17) #define G_008218_MEC2_WAIT_ON_RCIU(x) (((x) >> 17) & 0x1) #define C_008218_MEC2_WAIT_ON_RCIU 0xFFFDFFFF #define S_008218_MEC2_WAIT_ON_RCIU_READ(x) (((unsigned)(x) & 0x1) << 18) #define G_008218_MEC2_WAIT_ON_RCIU_READ(x) (((x) >> 18) & 0x1) #define C_008218_MEC2_WAIT_ON_RCIU_READ 0xFFFBFFFF #define S_008218_MEC2_WAIT_ON_MC_READ(x) (((unsigned)(x) & 0x1) << 19) /* gfx7 */ #define G_008218_MEC2_WAIT_ON_MC_READ(x) (((x) >> 19) & 0x1) #define C_008218_MEC2_WAIT_ON_MC_READ 0xFFF7FFFF #define S_008218_MEC2_WAIT_ON_MC_WR_ACK(x) (((unsigned)(x) & 0x1) << 20) /* gfx7 */ #define G_008218_MEC2_WAIT_ON_MC_WR_ACK(x) (((x) >> 20) & 0x1) #define C_008218_MEC2_WAIT_ON_MC_WR_ACK 0xFFEFFFFF #define S_008218_MEC2_WAIT_ON_ROQ_DATA(x) (((unsigned)(x) & 0x1) << 21) #define G_008218_MEC2_WAIT_ON_ROQ_DATA(x) (((x) >> 21) & 0x1) #define C_008218_MEC2_WAIT_ON_ROQ_DATA 0xFFDFFFFF #define S_008218_ATCL2IU_WAITING_ON_FREE(x) (((unsigned)(x) & 0x1) << 22) /* gfx8, gfx81 */ #define G_008218_ATCL2IU_WAITING_ON_FREE(x) (((x) >> 22) & 0x1) #define C_008218_ATCL2IU_WAITING_ON_FREE 0xFFBFFFFF #define S_008218_UTCL2IU_WAITING_ON_FREE(x) (((unsigned)(x) & 0x1) << 22) /* >= gfx9 */ #define G_008218_UTCL2IU_WAITING_ON_FREE(x) (((x) >> 22) & 0x1) #define C_008218_UTCL2IU_WAITING_ON_FREE 0xFFBFFFFF #define S_008218_ATCL2IU_WAITING_ON_TAGS(x) (((unsigned)(x) & 0x1) << 23) /* gfx8, gfx81 */ #define G_008218_ATCL2IU_WAITING_ON_TAGS(x) (((x) >> 23) & 0x1) #define C_008218_ATCL2IU_WAITING_ON_TAGS 0xFF7FFFFF #define S_008218_UTCL2IU_WAITING_ON_TAGS(x) (((unsigned)(x) & 0x1) << 23) /* >= gfx9 */ #define G_008218_UTCL2IU_WAITING_ON_TAGS(x) (((x) >> 23) & 0x1) #define C_008218_UTCL2IU_WAITING_ON_TAGS 0xFF7FFFFF #define S_008218_ATCL1_WAITING_ON_TRANS(x) (((unsigned)(x) & 0x1) << 24) /* gfx8, gfx81 */ #define G_008218_ATCL1_WAITING_ON_TRANS(x) (((x) >> 24) & 0x1) #define C_008218_ATCL1_WAITING_ON_TRANS 0xFEFFFFFF #define S_008218_UTCL1_WAITING_ON_TRANS(x) (((unsigned)(x) & 0x1) << 24) /* >= gfx9 */ #define G_008218_UTCL1_WAITING_ON_TRANS(x) (((x) >> 24) & 0x1) #define C_008218_UTCL1_WAITING_ON_TRANS 0xFEFFFFFF #define S_008218_GCRIU_WAITING_ON_FREE(x) (((unsigned)(x) & 0x1) << 25) /* >= gfx10 */ #define G_008218_GCRIU_WAITING_ON_FREE(x) (((x) >> 25) & 0x1) #define C_008218_GCRIU_WAITING_ON_FREE 0xFDFFFFFF #define R_00821C_CP_CPF_STATUS 0x00821C /* >= gfx7 */ #define S_00821C_POST_WPTR_GFX_BUSY(x) (((unsigned)(x) & 0x1) << 0) #define G_00821C_POST_WPTR_GFX_BUSY(x) (((x) >> 0) & 0x1) #define C_00821C_POST_WPTR_GFX_BUSY 0xFFFFFFFE #define S_00821C_CSF_BUSY(x) (((unsigned)(x) & 0x1) << 1) #define G_00821C_CSF_BUSY(x) (((x) >> 1) & 0x1) #define C_00821C_CSF_BUSY 0xFFFFFFFD #define S_00821C_MIU_RDREQ_BUSY(x) (((unsigned)(x) & 0x1) << 2) /* gfx7 */ #define G_00821C_MIU_RDREQ_BUSY(x) (((x) >> 2) & 0x1) #define C_00821C_MIU_RDREQ_BUSY 0xFFFFFFFB #define S_00821C_MIU_WRREQ_BUSY(x) (((unsigned)(x) & 0x1) << 3) /* gfx7 */ #define G_00821C_MIU_WRREQ_BUSY(x) (((x) >> 3) & 0x1) #define C_00821C_MIU_WRREQ_BUSY 0xFFFFFFF7 #define S_00821C_ROQ_ALIGN_BUSY(x) (((unsigned)(x) & 0x1) << 4) #define G_00821C_ROQ_ALIGN_BUSY(x) (((x) >> 4) & 0x1) #define C_00821C_ROQ_ALIGN_BUSY 0xFFFFFFEF #define S_00821C_ROQ_RING_BUSY(x) (((unsigned)(x) & 0x1) << 5) #define G_00821C_ROQ_RING_BUSY(x) (((x) >> 5) & 0x1) #define C_00821C_ROQ_RING_BUSY 0xFFFFFFDF #define S_00821C_ROQ_INDIRECT1_BUSY(x) (((unsigned)(x) & 0x1) << 6) #define G_00821C_ROQ_INDIRECT1_BUSY(x) (((x) >> 6) & 0x1) #define C_00821C_ROQ_INDIRECT1_BUSY 0xFFFFFFBF #define S_00821C_ROQ_INDIRECT2_BUSY(x) (((unsigned)(x) & 0x1) << 7) #define G_00821C_ROQ_INDIRECT2_BUSY(x) (((x) >> 7) & 0x1) #define C_00821C_ROQ_INDIRECT2_BUSY 0xFFFFFF7F #define S_00821C_ROQ_STATE_BUSY(x) (((unsigned)(x) & 0x1) << 8) #define G_00821C_ROQ_STATE_BUSY(x) (((x) >> 8) & 0x1) #define C_00821C_ROQ_STATE_BUSY 0xFFFFFEFF #define S_00821C_ROQ_CE_RING_BUSY(x) (((unsigned)(x) & 0x1) << 9) #define G_00821C_ROQ_CE_RING_BUSY(x) (((x) >> 9) & 0x1) #define C_00821C_ROQ_CE_RING_BUSY 0xFFFFFDFF #define S_00821C_ROQ_CE_INDIRECT1_BUSY(x) (((unsigned)(x) & 0x1) << 10) #define G_00821C_ROQ_CE_INDIRECT1_BUSY(x) (((x) >> 10) & 0x1) #define C_00821C_ROQ_CE_INDIRECT1_BUSY 0xFFFFFBFF #define S_00821C_ROQ_CE_INDIRECT2_BUSY(x) (((unsigned)(x) & 0x1) << 11) #define G_00821C_ROQ_CE_INDIRECT2_BUSY(x) (((x) >> 11) & 0x1) #define C_00821C_ROQ_CE_INDIRECT2_BUSY 0xFFFFF7FF #define S_00821C_SEMAPHORE_BUSY(x) (((unsigned)(x) & 0x1) << 12) #define G_00821C_SEMAPHORE_BUSY(x) (((x) >> 12) & 0x1) #define C_00821C_SEMAPHORE_BUSY 0xFFFFEFFF #define S_00821C_INTERRUPT_BUSY(x) (((unsigned)(x) & 0x1) << 13) #define G_00821C_INTERRUPT_BUSY(x) (((x) >> 13) & 0x1) #define C_00821C_INTERRUPT_BUSY 0xFFFFDFFF #define S_00821C_TCIU_BUSY(x) (((unsigned)(x) & 0x1) << 14) #define G_00821C_TCIU_BUSY(x) (((x) >> 14) & 0x1) #define C_00821C_TCIU_BUSY 0xFFFFBFFF #define S_00821C_HQD_BUSY(x) (((unsigned)(x) & 0x1) << 15) #define G_00821C_HQD_BUSY(x) (((x) >> 15) & 0x1) #define C_00821C_HQD_BUSY 0xFFFF7FFF #define S_00821C_PRT_BUSY(x) (((unsigned)(x) & 0x1) << 16) /* >= gfx8 */ #define G_00821C_PRT_BUSY(x) (((x) >> 16) & 0x1) #define C_00821C_PRT_BUSY 0xFFFEFFFF #define S_00821C_ATCL2IU_BUSY(x) (((unsigned)(x) & 0x1) << 17) /* gfx8, gfx81 */ #define G_00821C_ATCL2IU_BUSY(x) (((x) >> 17) & 0x1) #define C_00821C_ATCL2IU_BUSY 0xFFFDFFFF #define S_00821C_UTCL2IU_BUSY(x) (((unsigned)(x) & 0x1) << 17) /* >= gfx9 */ #define G_00821C_UTCL2IU_BUSY(x) (((x) >> 17) & 0x1) #define C_00821C_UTCL2IU_BUSY 0xFFFDFFFF #define S_00821C_RCIU_BUSY(x) (((unsigned)(x) & 0x1) << 18) /* >= gfx10 */ #define G_00821C_RCIU_BUSY(x) (((x) >> 18) & 0x1) #define C_00821C_RCIU_BUSY 0xFFFBFFFF #define S_00821C_RCIU_GFX_BUSY(x) (((unsigned)(x) & 0x1) << 19) /* >= gfx10 */ #define G_00821C_RCIU_GFX_BUSY(x) (((x) >> 19) & 0x1) #define C_00821C_RCIU_GFX_BUSY 0xFFF7FFFF #define S_00821C_RCIU_CMP_BUSY(x) (((unsigned)(x) & 0x1) << 20) /* >= gfx10 */ #define G_00821C_RCIU_CMP_BUSY(x) (((x) >> 20) & 0x1) #define C_00821C_RCIU_CMP_BUSY 0xFFEFFFFF #define S_00821C_ROQ_DATA_BUSY(x) (((unsigned)(x) & 0x1) << 21) /* >= gfx10 */ #define G_00821C_ROQ_DATA_BUSY(x) (((x) >> 21) & 0x1) #define C_00821C_ROQ_DATA_BUSY 0xFFDFFFFF #define S_00821C_ROQ_CE_DATA_BUSY(x) (((unsigned)(x) & 0x1) << 22) /* >= gfx10 */ #define G_00821C_ROQ_CE_DATA_BUSY(x) (((x) >> 22) & 0x1) #define C_00821C_ROQ_CE_DATA_BUSY 0xFFBFFFFF #define S_00821C_GCRIU_BUSY(x) (((unsigned)(x) & 0x1) << 23) /* >= gfx10 */ #define G_00821C_GCRIU_BUSY(x) (((x) >> 23) & 0x1) #define C_00821C_GCRIU_BUSY 0xFF7FFFFF #define S_00821C_MES_HQD_BUSY(x) (((unsigned)(x) & 0x1) << 24) /* >= gfx10 */ #define G_00821C_MES_HQD_BUSY(x) (((x) >> 24) & 0x1) #define C_00821C_MES_HQD_BUSY 0xFEFFFFFF #define S_00821C_CPF_GFX_BUSY(x) (((unsigned)(x) & 0x1) << 26) /* >= gfx8 */ #define G_00821C_CPF_GFX_BUSY(x) (((x) >> 26) & 0x1) #define C_00821C_CPF_GFX_BUSY 0xFBFFFFFF #define S_00821C_CPF_CMP_BUSY(x) (((unsigned)(x) & 0x1) << 27) /* >= gfx8 */ #define G_00821C_CPF_CMP_BUSY(x) (((x) >> 27) & 0x1) #define C_00821C_CPF_CMP_BUSY 0xF7FFFFFF #define S_00821C_GRBM_CPF_STAT_BUSY(x) (((unsigned)(x) & 0x3) << 28) /* >= gfx8 */ #define G_00821C_GRBM_CPF_STAT_BUSY(x) (((x) >> 28) & 0x3) #define C_00821C_GRBM_CPF_STAT_BUSY 0xCFFFFFFF #define S_00821C_CPC_CPF_BUSY(x) (((unsigned)(x) & 0x1) << 30) #define G_00821C_CPC_CPF_BUSY(x) (((x) >> 30) & 0x1) #define C_00821C_CPC_CPF_BUSY 0xBFFFFFFF #define S_00821C_CPF_BUSY(x) (((unsigned)(x) & 0x1) << 31) #define G_00821C_CPF_BUSY(x) (((x) >> 31) & 0x1) #define C_00821C_CPF_BUSY 0x7FFFFFFF #define R_008220_CP_CPF_BUSY_STAT 0x008220 /* >= gfx7 */ #define S_008220_REG_BUS_FIFO_BUSY(x) (((unsigned)(x) & 0x1) << 0) #define G_008220_REG_BUS_FIFO_BUSY(x) (((x) >> 0) & 0x1) #define C_008220_REG_BUS_FIFO_BUSY 0xFFFFFFFE #define S_008220_CSF_RING_BUSY(x) (((unsigned)(x) & 0x1) << 1) #define G_008220_CSF_RING_BUSY(x) (((x) >> 1) & 0x1) #define C_008220_CSF_RING_BUSY 0xFFFFFFFD #define S_008220_CSF_INDIRECT1_BUSY(x) (((unsigned)(x) & 0x1) << 2) #define G_008220_CSF_INDIRECT1_BUSY(x) (((x) >> 2) & 0x1) #define C_008220_CSF_INDIRECT1_BUSY 0xFFFFFFFB #define S_008220_CSF_INDIRECT2_BUSY(x) (((unsigned)(x) & 0x1) << 3) #define G_008220_CSF_INDIRECT2_BUSY(x) (((x) >> 3) & 0x1) #define C_008220_CSF_INDIRECT2_BUSY 0xFFFFFFF7 #define S_008220_CSF_STATE_BUSY(x) (((unsigned)(x) & 0x1) << 4) #define G_008220_CSF_STATE_BUSY(x) (((x) >> 4) & 0x1) #define C_008220_CSF_STATE_BUSY 0xFFFFFFEF #define S_008220_CSF_CE_INDR1_BUSY(x) (((unsigned)(x) & 0x1) << 5) #define G_008220_CSF_CE_INDR1_BUSY(x) (((x) >> 5) & 0x1) #define C_008220_CSF_CE_INDR1_BUSY 0xFFFFFFDF #define S_008220_CSF_CE_INDR2_BUSY(x) (((unsigned)(x) & 0x1) << 6) #define G_008220_CSF_CE_INDR2_BUSY(x) (((x) >> 6) & 0x1) #define C_008220_CSF_CE_INDR2_BUSY 0xFFFFFFBF #define S_008220_CSF_ARBITER_BUSY(x) (((unsigned)(x) & 0x1) << 7) #define G_008220_CSF_ARBITER_BUSY(x) (((x) >> 7) & 0x1) #define C_008220_CSF_ARBITER_BUSY 0xFFFFFF7F #define S_008220_CSF_INPUT_BUSY(x) (((unsigned)(x) & 0x1) << 8) #define G_008220_CSF_INPUT_BUSY(x) (((x) >> 8) & 0x1) #define C_008220_CSF_INPUT_BUSY 0xFFFFFEFF #define S_008220_CSF_DATA_BUSY(x) (((unsigned)(x) & 0x1) << 9) /* >= gfx10 */ #define G_008220_CSF_DATA_BUSY(x) (((x) >> 9) & 0x1) #define C_008220_CSF_DATA_BUSY 0xFFFFFDFF #define S_008220_OUTSTANDING_READ_TAGS(x) (((unsigned)(x) & 0x1) << 9) /* gfx7, gfx8, gfx81, gfx9 */ #define G_008220_OUTSTANDING_READ_TAGS(x) (((x) >> 9) & 0x1) #define C_008220_OUTSTANDING_READ_TAGS 0xFFFFFDFF #define S_008220_CSF_CE_DATA_BUSY(x) (((unsigned)(x) & 0x1) << 10) /* >= gfx10 */ #define G_008220_CSF_CE_DATA_BUSY(x) (((x) >> 10) & 0x1) #define C_008220_CSF_CE_DATA_BUSY 0xFFFFFBFF #define S_008220_HPD_PROCESSING_EOP_BUSY(x) (((unsigned)(x) & 0x1) << 11) #define G_008220_HPD_PROCESSING_EOP_BUSY(x) (((x) >> 11) & 0x1) #define C_008220_HPD_PROCESSING_EOP_BUSY 0xFFFFF7FF #define S_008220_HQD_DISPATCH_BUSY(x) (((unsigned)(x) & 0x1) << 12) #define G_008220_HQD_DISPATCH_BUSY(x) (((x) >> 12) & 0x1) #define C_008220_HQD_DISPATCH_BUSY 0xFFFFEFFF #define S_008220_HQD_IQ_TIMER_BUSY(x) (((unsigned)(x) & 0x1) << 13) #define G_008220_HQD_IQ_TIMER_BUSY(x) (((x) >> 13) & 0x1) #define C_008220_HQD_IQ_TIMER_BUSY 0xFFFFDFFF #define S_008220_HQD_DMA_OFFLOAD_BUSY(x) (((unsigned)(x) & 0x1) << 14) #define G_008220_HQD_DMA_OFFLOAD_BUSY(x) (((x) >> 14) & 0x1) #define C_008220_HQD_DMA_OFFLOAD_BUSY 0xFFFFBFFF #define S_008220_HQD_WAIT_SEMAPHORE_BUSY(x) (((unsigned)(x) & 0x1) << 15) #define G_008220_HQD_WAIT_SEMAPHORE_BUSY(x) (((x) >> 15) & 0x1) #define C_008220_HQD_WAIT_SEMAPHORE_BUSY 0xFFFF7FFF #define S_008220_HQD_SIGNAL_SEMAPHORE_BUSY(x) (((unsigned)(x) & 0x1) << 16) #define G_008220_HQD_SIGNAL_SEMAPHORE_BUSY(x) (((x) >> 16) & 0x1) #define C_008220_HQD_SIGNAL_SEMAPHORE_BUSY 0xFFFEFFFF #define S_008220_HQD_MESSAGE_BUSY(x) (((unsigned)(x) & 0x1) << 17) #define G_008220_HQD_MESSAGE_BUSY(x) (((x) >> 17) & 0x1) #define C_008220_HQD_MESSAGE_BUSY 0xFFFDFFFF #define S_008220_HQD_PQ_FETCHER_BUSY(x) (((unsigned)(x) & 0x1) << 18) #define G_008220_HQD_PQ_FETCHER_BUSY(x) (((x) >> 18) & 0x1) #define C_008220_HQD_PQ_FETCHER_BUSY 0xFFFBFFFF #define S_008220_HQD_IB_FETCHER_BUSY(x) (((unsigned)(x) & 0x1) << 19) #define G_008220_HQD_IB_FETCHER_BUSY(x) (((x) >> 19) & 0x1) #define C_008220_HQD_IB_FETCHER_BUSY 0xFFF7FFFF #define S_008220_HQD_IQ_FETCHER_BUSY(x) (((unsigned)(x) & 0x1) << 20) #define G_008220_HQD_IQ_FETCHER_BUSY(x) (((x) >> 20) & 0x1) #define C_008220_HQD_IQ_FETCHER_BUSY 0xFFEFFFFF #define S_008220_HQD_EOP_FETCHER_BUSY(x) (((unsigned)(x) & 0x1) << 21) #define G_008220_HQD_EOP_FETCHER_BUSY(x) (((x) >> 21) & 0x1) #define C_008220_HQD_EOP_FETCHER_BUSY 0xFFDFFFFF #define S_008220_HQD_CONSUMED_RPTR_BUSY(x) (((unsigned)(x) & 0x1) << 22) #define G_008220_HQD_CONSUMED_RPTR_BUSY(x) (((x) >> 22) & 0x1) #define C_008220_HQD_CONSUMED_RPTR_BUSY 0xFFBFFFFF #define S_008220_HQD_FETCHER_ARB_BUSY(x) (((unsigned)(x) & 0x1) << 23) #define G_008220_HQD_FETCHER_ARB_BUSY(x) (((x) >> 23) & 0x1) #define C_008220_HQD_FETCHER_ARB_BUSY 0xFF7FFFFF #define S_008220_HQD_ROQ_ALIGN_BUSY(x) (((unsigned)(x) & 0x1) << 24) #define G_008220_HQD_ROQ_ALIGN_BUSY(x) (((x) >> 24) & 0x1) #define C_008220_HQD_ROQ_ALIGN_BUSY 0xFEFFFFFF #define S_008220_HQD_ROQ_EOP_BUSY(x) (((unsigned)(x) & 0x1) << 25) #define G_008220_HQD_ROQ_EOP_BUSY(x) (((x) >> 25) & 0x1) #define C_008220_HQD_ROQ_EOP_BUSY 0xFDFFFFFF #define S_008220_HQD_ROQ_IQ_BUSY(x) (((unsigned)(x) & 0x1) << 26) #define G_008220_HQD_ROQ_IQ_BUSY(x) (((x) >> 26) & 0x1) #define C_008220_HQD_ROQ_IQ_BUSY 0xFBFFFFFF #define S_008220_HQD_ROQ_PQ_BUSY(x) (((unsigned)(x) & 0x1) << 27) #define G_008220_HQD_ROQ_PQ_BUSY(x) (((x) >> 27) & 0x1) #define C_008220_HQD_ROQ_PQ_BUSY 0xF7FFFFFF #define S_008220_HQD_ROQ_IB_BUSY(x) (((unsigned)(x) & 0x1) << 28) #define G_008220_HQD_ROQ_IB_BUSY(x) (((x) >> 28) & 0x1) #define C_008220_HQD_ROQ_IB_BUSY 0xEFFFFFFF #define S_008220_HQD_WPTR_POLL_BUSY(x) (((unsigned)(x) & 0x1) << 29) #define G_008220_HQD_WPTR_POLL_BUSY(x) (((x) >> 29) & 0x1) #define C_008220_HQD_WPTR_POLL_BUSY 0xDFFFFFFF #define S_008220_HQD_PQ_BUSY(x) (((unsigned)(x) & 0x1) << 30) #define G_008220_HQD_PQ_BUSY(x) (((x) >> 30) & 0x1) #define C_008220_HQD_PQ_BUSY 0xBFFFFFFF #define S_008220_HQD_IB_BUSY(x) (((unsigned)(x) & 0x1) << 31) #define G_008220_HQD_IB_BUSY(x) (((x) >> 31) & 0x1) #define C_008220_HQD_IB_BUSY 0x7FFFFFFF #define R_008224_CP_CPF_STALLED_STAT1 0x008224 /* >= gfx7 */ #define S_008224_RING_FETCHING_DATA(x) (((unsigned)(x) & 0x1) << 0) #define G_008224_RING_FETCHING_DATA(x) (((x) >> 0) & 0x1) #define C_008224_RING_FETCHING_DATA 0xFFFFFFFE #define S_008224_INDR1_FETCHING_DATA(x) (((unsigned)(x) & 0x1) << 1) #define G_008224_INDR1_FETCHING_DATA(x) (((x) >> 1) & 0x1) #define C_008224_INDR1_FETCHING_DATA 0xFFFFFFFD #define S_008224_INDR2_FETCHING_DATA(x) (((unsigned)(x) & 0x1) << 2) #define G_008224_INDR2_FETCHING_DATA(x) (((x) >> 2) & 0x1) #define C_008224_INDR2_FETCHING_DATA 0xFFFFFFFB #define S_008224_STATE_FETCHING_DATA(x) (((unsigned)(x) & 0x1) << 3) #define G_008224_STATE_FETCHING_DATA(x) (((x) >> 3) & 0x1) #define C_008224_STATE_FETCHING_DATA 0xFFFFFFF7 #define S_008224_MIU_WAITING_ON_RDREQ_FREE(x) (((unsigned)(x) & 0x1) << 4) /* gfx7 */ #define G_008224_MIU_WAITING_ON_RDREQ_FREE(x) (((x) >> 4) & 0x1) #define C_008224_MIU_WAITING_ON_RDREQ_FREE 0xFFFFFFEF #define S_008224_TCIU_WAITING_ON_FREE(x) (((unsigned)(x) & 0x1) << 5) #define G_008224_TCIU_WAITING_ON_FREE(x) (((x) >> 5) & 0x1) #define C_008224_TCIU_WAITING_ON_FREE 0xFFFFFFDF #define S_008224_TCIU_WAITING_ON_TAGS(x) (((unsigned)(x) & 0x1) << 6) #define G_008224_TCIU_WAITING_ON_TAGS(x) (((x) >> 6) & 0x1) #define C_008224_TCIU_WAITING_ON_TAGS 0xFFFFFFBF #define S_008224_ATCL2IU_WAITING_ON_FREE(x) (((unsigned)(x) & 0x1) << 7) /* gfx8, gfx81 */ #define G_008224_ATCL2IU_WAITING_ON_FREE(x) (((x) >> 7) & 0x1) #define C_008224_ATCL2IU_WAITING_ON_FREE 0xFFFFFF7F #define S_008224_UTCL2IU_WAITING_ON_FREE(x) (((unsigned)(x) & 0x1) << 7) /* >= gfx9 */ #define G_008224_UTCL2IU_WAITING_ON_FREE(x) (((x) >> 7) & 0x1) #define C_008224_UTCL2IU_WAITING_ON_FREE 0xFFFFFF7F #define S_008224_ATCL2IU_WAITING_ON_TAGS(x) (((unsigned)(x) & 0x1) << 8) /* gfx8, gfx81 */ #define G_008224_ATCL2IU_WAITING_ON_TAGS(x) (((x) >> 8) & 0x1) #define C_008224_ATCL2IU_WAITING_ON_TAGS 0xFFFFFEFF #define S_008224_UTCL2IU_WAITING_ON_TAGS(x) (((unsigned)(x) & 0x1) << 8) /* >= gfx9 */ #define G_008224_UTCL2IU_WAITING_ON_TAGS(x) (((x) >> 8) & 0x1) #define C_008224_UTCL2IU_WAITING_ON_TAGS 0xFFFFFEFF #define S_008224_ATCL1_WAITING_ON_TRANS(x) (((unsigned)(x) & 0x1) << 9) /* gfx8, gfx81 */ #define G_008224_ATCL1_WAITING_ON_TRANS(x) (((x) >> 9) & 0x1) #define C_008224_ATCL1_WAITING_ON_TRANS 0xFFFFFDFF #define S_008224_GFX_UTCL1_WAITING_ON_TRANS(x) (((unsigned)(x) & 0x1) << 9) /* >= gfx9 */ #define G_008224_GFX_UTCL1_WAITING_ON_TRANS(x) (((x) >> 9) & 0x1) #define C_008224_GFX_UTCL1_WAITING_ON_TRANS 0xFFFFFDFF #define S_008224_CMP_UTCL1_WAITING_ON_TRANS(x) (((unsigned)(x) & 0x1) << 10) /* >= gfx9 */ #define G_008224_CMP_UTCL1_WAITING_ON_TRANS(x) (((x) >> 10) & 0x1) #define C_008224_CMP_UTCL1_WAITING_ON_TRANS 0xFFFFFBFF #define S_008224_RCIU_WAITING_ON_FREE(x) (((unsigned)(x) & 0x1) << 11) /* >= gfx9 */ #define G_008224_RCIU_WAITING_ON_FREE(x) (((x) >> 11) & 0x1) #define C_008224_RCIU_WAITING_ON_FREE 0xFFFFF7FF #define S_008224_DATA_FETCHING_DATA(x) (((unsigned)(x) & 0x1) << 12) /* >= gfx10 */ #define G_008224_DATA_FETCHING_DATA(x) (((x) >> 12) & 0x1) #define C_008224_DATA_FETCHING_DATA 0xFFFFEFFF #define S_008224_GCRIU_WAIT_ON_FREE(x) (((unsigned)(x) & 0x1) << 13) /* >= gfx10 */ #define G_008224_GCRIU_WAIT_ON_FREE(x) (((x) >> 13) & 0x1) #define C_008224_GCRIU_WAIT_ON_FREE 0xFFFFDFFF #define R_008228_CP_CPC_BUSY_STAT2 0x008228 /* >= gfx10 */ #define S_008228_MES_LOAD_BUSY(x) (((unsigned)(x) & 0x1) << 0) #define G_008228_MES_LOAD_BUSY(x) (((x) >> 0) & 0x1) #define C_008228_MES_LOAD_BUSY 0xFFFFFFFE #define S_008228_MES_MUTEX_BUSY(x) (((unsigned)(x) & 0x1) << 2) #define G_008228_MES_MUTEX_BUSY(x) (((x) >> 2) & 0x1) #define C_008228_MES_MUTEX_BUSY 0xFFFFFFFB #define S_008228_MES_MESSAGE_BUSY(x) (((unsigned)(x) & 0x1) << 3) #define G_008228_MES_MESSAGE_BUSY(x) (((x) >> 3) & 0x1) #define C_008228_MES_MESSAGE_BUSY 0xFFFFFFF7 #define S_008228_MES_TC_BUSY(x) (((unsigned)(x) & 0x1) << 7) #define G_008228_MES_TC_BUSY(x) (((x) >> 7) & 0x1) #define C_008228_MES_TC_BUSY 0xFFFFFF7F #define S_008228_MES_DMA_BUSY(x) (((unsigned)(x) & 0x1) << 8) #define G_008228_MES_DMA_BUSY(x) (((x) >> 8) & 0x1) #define C_008228_MES_DMA_BUSY 0xFFFFFEFF #define S_008228_MES_PIPE0_BUSY(x) (((unsigned)(x) & 0x1) << 10) #define G_008228_MES_PIPE0_BUSY(x) (((x) >> 10) & 0x1) #define C_008228_MES_PIPE0_BUSY 0xFFFFFBFF #define S_008228_MES_PIPE1_BUSY(x) (((unsigned)(x) & 0x1) << 11) #define G_008228_MES_PIPE1_BUSY(x) (((x) >> 11) & 0x1) #define C_008228_MES_PIPE1_BUSY 0xFFFFF7FF #define S_008228_MES_PIPE2_BUSY(x) (((unsigned)(x) & 0x1) << 12) #define G_008228_MES_PIPE2_BUSY(x) (((x) >> 12) & 0x1) #define C_008228_MES_PIPE2_BUSY 0xFFFFEFFF #define S_008228_MES_PIPE3_BUSY(x) (((unsigned)(x) & 0x1) << 13) #define G_008228_MES_PIPE3_BUSY(x) (((x) >> 13) & 0x1) #define C_008228_MES_PIPE3_BUSY 0xFFFFDFFF #define R_008228_CP_CPC_MC_CNTL 0x008228 /* gfx7 */ #define S_008228_PACK_DELAY_CNT(x) (((unsigned)(x) & 0x1F) << 0) #define G_008228_PACK_DELAY_CNT(x) (((x) >> 0) & 0x1F) #define C_008228_PACK_DELAY_CNT 0xFFFFFFE0 #define R_00822C_CP_CPC_GRBM_FREE_COUNT 0x00822C /* >= gfx7 */ #define S_00822C_FREE_COUNT(x) (((unsigned)(x) & 0x3F) << 0) #define G_00822C_FREE_COUNT(x) (((x) >> 0) & 0x3F) #define C_00822C_FREE_COUNT 0xFFFFFFC0 #define R_008230_CP_CPC_PRIV_VIOLATION_ADDR 0x008230 /* >= gfx103 */ #define S_008230_PRIV_VIOLATION_ADDR(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_008230_PRIV_VIOLATION_ADDR(x) (((x) >> 0) & 0xFFFF) #define C_008230_PRIV_VIOLATION_ADDR 0xFFFF0000 #define R_008240_CP_CPC_SCRATCH_INDEX 0x008240 /* >= gfx7 */ #define S_008240_SCRATCH_INDEX(x) (((unsigned)(x) & 0x1FF) << 0) #define G_008240_SCRATCH_INDEX(x) (((x) >> 0) & 0x1FF) #define C_008240_SCRATCH_INDEX 0xFFFFFE00 #define S_008240_SCRATCH_INDEX_64BIT_MODE(x) (((unsigned)(x) & 0x1) << 31) /* >= gfx10 */ #define G_008240_SCRATCH_INDEX_64BIT_MODE(x) (((x) >> 31) & 0x1) #define C_008240_SCRATCH_INDEX_64BIT_MODE 0x7FFFFFFF #define R_008244_CP_CPC_SCRATCH_DATA 0x008244 /* >= gfx7 */ #define R_008248_CP_CPF_GRBM_FREE_COUNT 0x008248 /* >= gfx9 */ #define S_008248_FREE_COUNT(x) (((unsigned)(x) & 0x7) << 0) #define G_008248_FREE_COUNT(x) (((x) >> 0) & 0x7) #define C_008248_FREE_COUNT 0xFFFFFFF8 #define R_00824C_CP_CPF_BUSY_STAT2 0x00824C /* >= gfx10 */ #define S_00824C_MES_HQD_DISPATCH_BUSY(x) (((unsigned)(x) & 0x1) << 12) #define G_00824C_MES_HQD_DISPATCH_BUSY(x) (((x) >> 12) & 0x1) #define C_00824C_MES_HQD_DISPATCH_BUSY 0xFFFFEFFF #define S_00824C_MES_HQD_DMA_OFFLOAD_BUSY(x) (((unsigned)(x) & 0x1) << 14) #define G_00824C_MES_HQD_DMA_OFFLOAD_BUSY(x) (((x) >> 14) & 0x1) #define C_00824C_MES_HQD_DMA_OFFLOAD_BUSY 0xFFFFBFFF #define S_00824C_MES_HQD_MESSAGE_BUSY(x) (((unsigned)(x) & 0x1) << 17) #define G_00824C_MES_HQD_MESSAGE_BUSY(x) (((x) >> 17) & 0x1) #define C_00824C_MES_HQD_MESSAGE_BUSY 0xFFFDFFFF #define S_00824C_MES_HQD_PQ_FETCHER_BUSY(x) (((unsigned)(x) & 0x1) << 18) #define G_00824C_MES_HQD_PQ_FETCHER_BUSY(x) (((x) >> 18) & 0x1) #define C_00824C_MES_HQD_PQ_FETCHER_BUSY 0xFFFBFFFF #define S_00824C_MES_HQD_CONSUMED_RPTR_BUSY(x) (((unsigned)(x) & 0x1) << 22) #define G_00824C_MES_HQD_CONSUMED_RPTR_BUSY(x) (((x) >> 22) & 0x1) #define C_00824C_MES_HQD_CONSUMED_RPTR_BUSY 0xFFBFFFFF #define S_00824C_MES_HQD_FETCHER_ARB_BUSY(x) (((unsigned)(x) & 0x1) << 23) #define G_00824C_MES_HQD_FETCHER_ARB_BUSY(x) (((x) >> 23) & 0x1) #define C_00824C_MES_HQD_FETCHER_ARB_BUSY 0xFF7FFFFF #define S_00824C_MES_HQD_ROQ_ALIGN_BUSY(x) (((unsigned)(x) & 0x1) << 24) #define G_00824C_MES_HQD_ROQ_ALIGN_BUSY(x) (((x) >> 24) & 0x1) #define C_00824C_MES_HQD_ROQ_ALIGN_BUSY 0xFEFFFFFF #define S_00824C_MES_HQD_ROQ_PQ_BUSY(x) (((unsigned)(x) & 0x1) << 27) #define G_00824C_MES_HQD_ROQ_PQ_BUSY(x) (((x) >> 27) & 0x1) #define C_00824C_MES_HQD_ROQ_PQ_BUSY 0xF7FFFFFF #define S_00824C_MES_HQD_PQ_BUSY(x) (((unsigned)(x) & 0x1) << 30) #define G_00824C_MES_HQD_PQ_BUSY(x) (((x) >> 30) & 0x1) #define C_00824C_MES_HQD_PQ_BUSY 0xBFFFFFFF #define R_00829C_CP_CPC_HALT_HYST_COUNT 0x00829C /* >= gfx7 */ #define S_00829C_COUNT(x) (((unsigned)(x) & 0xF) << 0) #define G_00829C_COUNT(x) (((x) >> 0) & 0xF) #define C_00829C_COUNT 0xFFFFFFF0 #define R_008300_SQ_INTERRUPT_WORD_AUTO 0x008300 /* <= gfx6 */ #define S_008300_THREAD_TRACE(x) (((unsigned)(x) & 0x1) << 0) #define G_008300_THREAD_TRACE(x) (((x) >> 0) & 0x1) #define C_008300_THREAD_TRACE 0xFFFFFFFE #define S_008300_WLT(x) (((unsigned)(x) & 0x1) << 1) #define G_008300_WLT(x) (((x) >> 1) & 0x1) #define C_008300_WLT 0xFFFFFFFD #define S_008300_THREAD_TRACE_BUF_FULL(x) (((unsigned)(x) & 0x1) << 2) #define G_008300_THREAD_TRACE_BUF_FULL(x) (((x) >> 2) & 0x1) #define C_008300_THREAD_TRACE_BUF_FULL 0xFFFFFFFB #define S_008300_REG_TIMESTAMP(x) (((unsigned)(x) & 0x1) << 3) #define G_008300_REG_TIMESTAMP(x) (((x) >> 3) & 0x1) #define C_008300_REG_TIMESTAMP 0xFFFFFFF7 #define S_008300_CMD_TIMESTAMP(x) (((unsigned)(x) & 0x1) << 4) #define G_008300_CMD_TIMESTAMP(x) (((x) >> 4) & 0x1) #define C_008300_CMD_TIMESTAMP 0xFFFFFFEF #define S_008300_HOST_CMD_OVERFLOW(x) (((unsigned)(x) & 0x1) << 5) #define G_008300_HOST_CMD_OVERFLOW(x) (((x) >> 5) & 0x1) #define C_008300_HOST_CMD_OVERFLOW 0xFFFFFFDF #define S_008300_HOST_REG_OVERFLOW(x) (((unsigned)(x) & 0x1) << 6) #define G_008300_HOST_REG_OVERFLOW(x) (((x) >> 6) & 0x1) #define C_008300_HOST_REG_OVERFLOW 0xFFFFFFBF #define S_008300_IMMED_OVERFLOW(x) (((unsigned)(x) & 0x1) << 7) #define G_008300_IMMED_OVERFLOW(x) (((x) >> 7) & 0x1) #define C_008300_IMMED_OVERFLOW 0xFFFFFF7F #define S_008300_SE_ID(x) (((unsigned)(x) & 0x1) << 25) #define G_008300_SE_ID(x) (((x) >> 25) & 0x1) #define C_008300_SE_ID 0xFDFFFFFF #define S_008300_ENCODING(x) (((unsigned)(x) & 0x3) << 26) #define G_008300_ENCODING(x) (((x) >> 26) & 0x3) #define C_008300_ENCODING 0xF3FFFFFF #define R_008400_CP_EOP_DONE_ADDR_LO 0x008400 /* <= gfx6 */ #define S_008400_ADDR_SWAP(x) (((unsigned)(x) & 0x3) << 0) #define G_008400_ADDR_SWAP(x) (((x) >> 0) & 0x3) #define C_008400_ADDR_SWAP 0xFFFFFFFC #define S_008400_ADDR_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_008400_ADDR_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_008400_ADDR_LO 0x00000003 #define R_008404_CP_EOP_DONE_ADDR_HI 0x008404 /* <= gfx6 */ #define S_008404_ADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_008404_ADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_008404_ADDR_HI 0xFFFF0000 #define R_008408_CP_EOP_DONE_DATA_LO 0x008408 /* <= gfx6 */ #define R_00840C_CP_EOP_DONE_DATA_HI 0x00840C /* <= gfx6 */ #define R_008410_CP_EOP_LAST_FENCE_LO 0x008410 /* <= gfx6 */ #define R_008414_CP_EOP_LAST_FENCE_HI 0x008414 /* <= gfx6 */ #define R_008418_CP_STREAM_OUT_ADDR_LO 0x008418 /* <= gfx6 */ #define S_008418_STREAM_OUT_ADDR_SWAP(x) (((unsigned)(x) & 0x3) << 0) #define G_008418_STREAM_OUT_ADDR_SWAP(x) (((x) >> 0) & 0x3) #define C_008418_STREAM_OUT_ADDR_SWAP 0xFFFFFFFC #define S_008418_STREAM_OUT_ADDR_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_008418_STREAM_OUT_ADDR_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_008418_STREAM_OUT_ADDR_LO 0x00000003 #define R_00841C_CP_STREAM_OUT_ADDR_HI 0x00841C /* <= gfx6 */ #define R_008420_CP_NUM_PRIM_WRITTEN_COUNT0_LO 0x008420 /* <= gfx6 */ #define R_008424_CP_NUM_PRIM_WRITTEN_COUNT0_HI 0x008424 /* <= gfx6 */ #define R_008428_CP_NUM_PRIM_NEEDED_COUNT0_LO 0x008428 /* <= gfx6 */ #define R_00842C_CP_NUM_PRIM_NEEDED_COUNT0_HI 0x00842C /* <= gfx6 */ #define R_008430_CP_NUM_PRIM_WRITTEN_COUNT1_LO 0x008430 /* <= gfx6 */ #define R_008434_CP_NUM_PRIM_WRITTEN_COUNT1_HI 0x008434 /* <= gfx6 */ #define R_008438_CP_NUM_PRIM_NEEDED_COUNT1_LO 0x008438 /* <= gfx6 */ #define R_00843C_CP_NUM_PRIM_NEEDED_COUNT1_HI 0x00843C /* <= gfx6 */ #define R_008440_CP_NUM_PRIM_WRITTEN_COUNT2_LO 0x008440 /* <= gfx6 */ #define R_008444_CP_NUM_PRIM_WRITTEN_COUNT2_HI 0x008444 /* <= gfx6 */ #define R_008448_CP_NUM_PRIM_NEEDED_COUNT2_LO 0x008448 /* <= gfx6 */ #define R_00844C_CP_NUM_PRIM_NEEDED_COUNT2_HI 0x00844C /* <= gfx6 */ #define R_008450_CP_NUM_PRIM_WRITTEN_COUNT3_LO 0x008450 /* <= gfx6 */ #define R_008454_CP_NUM_PRIM_WRITTEN_COUNT3_HI 0x008454 /* <= gfx6 */ #define R_008458_CP_NUM_PRIM_NEEDED_COUNT3_LO 0x008458 /* <= gfx6 */ #define R_00845C_CP_NUM_PRIM_NEEDED_COUNT3_HI 0x00845C /* <= gfx6 */ #define R_008460_CP_PIPE_STATS_ADDR_LO 0x008460 /* <= gfx6 */ #define S_008460_PIPE_STATS_ADDR_SWAP(x) (((unsigned)(x) & 0x3) << 0) #define G_008460_PIPE_STATS_ADDR_SWAP(x) (((x) >> 0) & 0x3) #define C_008460_PIPE_STATS_ADDR_SWAP 0xFFFFFFFC #define S_008460_PIPE_STATS_ADDR_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_008460_PIPE_STATS_ADDR_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_008460_PIPE_STATS_ADDR_LO 0x00000003 #define R_008464_CP_PIPE_STATS_ADDR_HI 0x008464 /* <= gfx6 */ #define R_008468_CP_VGT_IAVERT_COUNT_LO 0x008468 /* <= gfx6 */ #define R_00846C_CP_VGT_IAVERT_COUNT_HI 0x00846C /* <= gfx6 */ #define R_008470_CP_VGT_IAPRIM_COUNT_LO 0x008470 /* <= gfx6 */ #define R_008474_CP_VGT_IAPRIM_COUNT_HI 0x008474 /* <= gfx6 */ #define R_008478_CP_VGT_GSPRIM_COUNT_LO 0x008478 /* <= gfx6 */ #define R_00847C_CP_VGT_GSPRIM_COUNT_HI 0x00847C /* <= gfx6 */ #define R_008480_CP_VGT_VSINVOC_COUNT_LO 0x008480 /* <= gfx6 */ #define R_008484_CP_VGT_VSINVOC_COUNT_HI 0x008484 /* <= gfx6 */ #define R_008488_CP_VGT_GSINVOC_COUNT_LO 0x008488 /* <= gfx6 */ #define R_00848C_CP_VGT_GSINVOC_COUNT_HI 0x00848C /* <= gfx6 */ #define R_008490_CP_VGT_HSINVOC_COUNT_LO 0x008490 /* <= gfx6 */ #define R_008494_CP_VGT_HSINVOC_COUNT_HI 0x008494 /* <= gfx6 */ #define R_008498_CP_VGT_DSINVOC_COUNT_LO 0x008498 /* <= gfx6 */ #define R_00849C_CP_VGT_DSINVOC_COUNT_HI 0x00849C /* <= gfx6 */ #define R_0084A0_CP_PA_CINVOC_COUNT_LO 0x0084A0 /* <= gfx6 */ #define R_0084A4_CP_PA_CINVOC_COUNT_HI 0x0084A4 /* <= gfx6 */ #define R_0084A8_CP_PA_CPRIM_COUNT_LO 0x0084A8 /* <= gfx6 */ #define R_0084AC_CP_PA_CPRIM_COUNT_HI 0x0084AC /* <= gfx6 */ #define R_0084B0_CP_SC_PSINVOC_COUNT0_LO 0x0084B0 /* <= gfx6 */ #define R_0084B4_CP_SC_PSINVOC_COUNT0_HI 0x0084B4 /* <= gfx6 */ #define R_0084B8_CP_SC_PSINVOC_COUNT1_LO 0x0084B8 /* <= gfx6 */ #define R_0084BC_CP_SC_PSINVOC_COUNT1_HI 0x0084BC /* <= gfx6 */ #define R_0084C0_CP_VGT_CSINVOC_COUNT_LO 0x0084C0 /* <= gfx6 */ #define R_0084C4_CP_VGT_CSINVOC_COUNT_HI 0x0084C4 /* <= gfx6 */ #define R_0084FC_CP_STRMOUT_CNTL 0x0084FC /* <= gfx6 */ #define S_0084FC_OFFSET_UPDATE_DONE(x) (((unsigned)(x) & 0x1) << 0) #define G_0084FC_OFFSET_UPDATE_DONE(x) (((x) >> 0) & 0x1) #define C_0084FC_OFFSET_UPDATE_DONE 0xFFFFFFFE #define R_008500_SCRATCH_REG0 0x008500 /* <= gfx6 */ #define R_008504_SCRATCH_REG1 0x008504 /* <= gfx6 */ #define R_008508_SCRATCH_REG2 0x008508 /* <= gfx6 */ #define R_00850C_SCRATCH_REG3 0x00850C /* <= gfx6 */ #define R_008510_SCRATCH_REG4 0x008510 /* <= gfx6 */ #define R_008514_SCRATCH_REG5 0x008514 /* <= gfx6 */ #define R_008518_SCRATCH_REG6 0x008518 /* <= gfx6 */ #define R_00851C_SCRATCH_REG7 0x00851C /* <= gfx6 */ #define R_008540_SCRATCH_UMSK 0x008540 /* <= gfx6 */ #define S_008540_OBSOLETE_UMSK(x) (((unsigned)(x) & 0xFF) << 0) #define G_008540_OBSOLETE_UMSK(x) (((x) >> 0) & 0xFF) #define C_008540_OBSOLETE_UMSK 0xFFFFFF00 #define S_008540_OBSOLETE_SWAP(x) (((unsigned)(x) & 0x3) << 16) #define G_008540_OBSOLETE_SWAP(x) (((x) >> 16) & 0x3) #define C_008540_OBSOLETE_SWAP 0xFFFCFFFF #define R_008544_SCRATCH_ADDR 0x008544 /* <= gfx6 */ #define R_008560_CP_APPEND_ADDR_LO 0x008560 /* <= gfx6 */ #define S_008560_MEM_ADDR_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_008560_MEM_ADDR_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_008560_MEM_ADDR_LO 0x00000003 #define R_008564_CP_APPEND_ADDR_HI 0x008564 /* <= gfx6 */ #define S_008564_MEM_ADDR_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_008564_MEM_ADDR_HI(x) (((x) >> 0) & 0xFF) #define C_008564_MEM_ADDR_HI 0xFFFFFF00 #define S_008564_CS_PS_SEL(x) (((unsigned)(x) & 0x3) << 16) #define G_008564_CS_PS_SEL(x) (((x) >> 16) & 0x3) #define C_008564_CS_PS_SEL 0xFFFCFFFF #define S_008564_COMMAND(x) (((unsigned)(x) & 0x7) << 29) #define G_008564_COMMAND(x) (((x) >> 29) & 0x7) #define C_008564_COMMAND 0x1FFFFFFF #define R_008568_CP_APPEND_DATA 0x008568 /* <= gfx6 */ #define R_00856C_CP_APPEND_LAST_CS_FENCE 0x00856C /* <= gfx6 */ #define R_008570_CP_APPEND_LAST_PS_FENCE 0x008570 /* <= gfx6 */ #define R_008574_CP_ATOMIC_PREOP_LO 0x008574 /* <= gfx6 */ #define R_008578_CP_ATOMIC_PREOP_HI 0x008578 /* <= gfx6 */ #define R_00857C_CP_GDS_ATOMIC0_PREOP_LO 0x00857C /* <= gfx6 */ #define R_008580_CP_GDS_ATOMIC0_PREOP_HI 0x008580 /* <= gfx6 */ #define R_008584_CP_GDS_ATOMIC1_PREOP_LO 0x008584 /* <= gfx6 */ #define R_008588_CP_GDS_ATOMIC1_PREOP_HI 0x008588 /* <= gfx6 */ #define R_0085A4_CP_ME_MC_WADDR_LO 0x0085A4 /* <= gfx6 */ #define S_0085A4_ME_MC_WADDR_SWAP(x) (((unsigned)(x) & 0x3) << 0) #define G_0085A4_ME_MC_WADDR_SWAP(x) (((x) >> 0) & 0x3) #define C_0085A4_ME_MC_WADDR_SWAP 0xFFFFFFFC #define S_0085A4_ME_MC_WADDR_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_0085A4_ME_MC_WADDR_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_0085A4_ME_MC_WADDR_LO 0x00000003 #define R_0085A8_CP_ME_MC_WADDR_HI 0x0085A8 /* <= gfx6 */ #define S_0085A8_ME_MC_WADDR_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_0085A8_ME_MC_WADDR_HI(x) (((x) >> 0) & 0xFF) #define C_0085A8_ME_MC_WADDR_HI 0xFFFFFF00 #define R_0085AC_CP_ME_MC_WDATA_LO 0x0085AC /* <= gfx6 */ #define R_0085B0_CP_ME_MC_WDATA_HI 0x0085B0 /* <= gfx6 */ #define R_0085B4_CP_ME_MC_RADDR_LO 0x0085B4 /* <= gfx6 */ #define S_0085B4_ME_MC_RADDR_SWAP(x) (((unsigned)(x) & 0x3) << 0) #define G_0085B4_ME_MC_RADDR_SWAP(x) (((x) >> 0) & 0x3) #define C_0085B4_ME_MC_RADDR_SWAP 0xFFFFFFFC #define S_0085B4_ME_MC_RADDR_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_0085B4_ME_MC_RADDR_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_0085B4_ME_MC_RADDR_LO 0x00000003 #define R_0085B8_CP_ME_MC_RADDR_HI 0x0085B8 /* <= gfx6 */ #define S_0085B8_ME_MC_RADDR_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_0085B8_ME_MC_RADDR_HI(x) (((x) >> 0) & 0xFF) #define C_0085B8_ME_MC_RADDR_HI 0xFFFFFF00 #define R_0085BC_CP_SEM_WAIT_TIMER 0x0085BC /* <= gfx6 */ #define R_0085C0_CP_SIG_SEM_ADDR_LO 0x0085C0 /* <= gfx6 */ #define S_0085C0_SEM_ADDR_SWAP(x) (((unsigned)(x) & 0x3) << 0) #define G_0085C0_SEM_ADDR_SWAP(x) (((x) >> 0) & 0x3) #define C_0085C0_SEM_ADDR_SWAP 0xFFFFFFFC #define S_0085C0_SEM_ADDR_LO(x) (((unsigned)(x) & 0x1FFFFFFF) << 3) #define G_0085C0_SEM_ADDR_LO(x) (((x) >> 3) & 0x1FFFFFFF) #define C_0085C0_SEM_ADDR_LO 0x00000007 #define R_0085C4_CP_SIG_SEM_ADDR_HI 0x0085C4 /* <= gfx6 */ #define S_0085C4_SEM_ADDR_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_0085C4_SEM_ADDR_HI(x) (((x) >> 0) & 0xFF) #define C_0085C4_SEM_ADDR_HI 0xFFFFFF00 #define S_0085C4_SEM_USE_MAILBOX(x) (((unsigned)(x) & 0x1) << 16) #define G_0085C4_SEM_USE_MAILBOX(x) (((x) >> 16) & 0x1) #define C_0085C4_SEM_USE_MAILBOX 0xFFFEFFFF #define S_0085C4_SEM_SIGNAL_TYPE(x) (((unsigned)(x) & 0x1) << 20) #define G_0085C4_SEM_SIGNAL_TYPE(x) (((x) >> 20) & 0x1) #define C_0085C4_SEM_SIGNAL_TYPE 0xFFEFFFFF #define S_0085C4_SEM_CLIENT_CODE(x) (((unsigned)(x) & 0x3) << 24) #define G_0085C4_SEM_CLIENT_CODE(x) (((x) >> 24) & 0x3) #define C_0085C4_SEM_CLIENT_CODE 0xFCFFFFFF #define S_0085C4_SEM_SELECT(x) (((unsigned)(x) & 0x7) << 29) #define G_0085C4_SEM_SELECT(x) (((x) >> 29) & 0x7) #define C_0085C4_SEM_SELECT 0x1FFFFFFF #define R_0085D0_CP_WAIT_REG_MEM_TIMEOUT 0x0085D0 /* <= gfx6 */ #define R_0085D4_CP_WAIT_SEM_ADDR_LO 0x0085D4 /* <= gfx6 */ #define S_0085D4_SEM_ADDR_SWAP(x) (((unsigned)(x) & 0x3) << 0) #define G_0085D4_SEM_ADDR_SWAP(x) (((x) >> 0) & 0x3) #define C_0085D4_SEM_ADDR_SWAP 0xFFFFFFFC #define S_0085D4_SEM_ADDR_LO(x) (((unsigned)(x) & 0x1FFFFFFF) << 3) #define G_0085D4_SEM_ADDR_LO(x) (((x) >> 3) & 0x1FFFFFFF) #define C_0085D4_SEM_ADDR_LO 0x00000007 #define R_0085D8_CP_WAIT_SEM_ADDR_HI 0x0085D8 /* <= gfx6 */ #define S_0085D8_SEM_ADDR_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_0085D8_SEM_ADDR_HI(x) (((x) >> 0) & 0xFF) #define C_0085D8_SEM_ADDR_HI 0xFFFFFF00 #define S_0085D8_SEM_USE_MAILBOX(x) (((unsigned)(x) & 0x1) << 16) #define G_0085D8_SEM_USE_MAILBOX(x) (((x) >> 16) & 0x1) #define C_0085D8_SEM_USE_MAILBOX 0xFFFEFFFF #define S_0085D8_SEM_SIGNAL_TYPE(x) (((unsigned)(x) & 0x1) << 20) #define G_0085D8_SEM_SIGNAL_TYPE(x) (((x) >> 20) & 0x1) #define C_0085D8_SEM_SIGNAL_TYPE 0xFFEFFFFF #define S_0085D8_SEM_CLIENT_CODE(x) (((unsigned)(x) & 0x3) << 24) #define G_0085D8_SEM_CLIENT_CODE(x) (((x) >> 24) & 0x3) #define C_0085D8_SEM_CLIENT_CODE 0xFCFFFFFF #define S_0085D8_SEM_SELECT(x) (((unsigned)(x) & 0x7) << 29) #define G_0085D8_SEM_SELECT(x) (((x) >> 29) & 0x7) #define C_0085D8_SEM_SELECT 0x1FFFFFFF #define R_0085EC_CP_COHER_START_DELAY 0x0085EC /* <= gfx6 */ #define S_0085EC_START_DELAY_COUNT(x) (((unsigned)(x) & 0x3F) << 0) #define G_0085EC_START_DELAY_COUNT(x) (((x) >> 0) & 0x3F) #define C_0085EC_START_DELAY_COUNT 0xFFFFFFC0 #define R_0085F0_CP_COHER_CNTL 0x0085F0 /* <= gfx6 */ #define S_0085F0_DEST_BASE_0_ENA(x) (((unsigned)(x) & 0x1) << 0) #define G_0085F0_DEST_BASE_0_ENA(x) (((x) >> 0) & 0x1) #define C_0085F0_DEST_BASE_0_ENA 0xFFFFFFFE #define S_0085F0_DEST_BASE_1_ENA(x) (((unsigned)(x) & 0x1) << 1) #define G_0085F0_DEST_BASE_1_ENA(x) (((x) >> 1) & 0x1) #define C_0085F0_DEST_BASE_1_ENA 0xFFFFFFFD #define S_0085F0_CB0_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 6) #define G_0085F0_CB0_DEST_BASE_ENA(x) (((x) >> 6) & 0x1) #define C_0085F0_CB0_DEST_BASE_ENA 0xFFFFFFBF #define S_0085F0_CB1_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 7) #define G_0085F0_CB1_DEST_BASE_ENA(x) (((x) >> 7) & 0x1) #define C_0085F0_CB1_DEST_BASE_ENA 0xFFFFFF7F #define S_0085F0_CB2_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 8) #define G_0085F0_CB2_DEST_BASE_ENA(x) (((x) >> 8) & 0x1) #define C_0085F0_CB2_DEST_BASE_ENA 0xFFFFFEFF #define S_0085F0_CB3_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 9) #define G_0085F0_CB3_DEST_BASE_ENA(x) (((x) >> 9) & 0x1) #define C_0085F0_CB3_DEST_BASE_ENA 0xFFFFFDFF #define S_0085F0_CB4_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 10) #define G_0085F0_CB4_DEST_BASE_ENA(x) (((x) >> 10) & 0x1) #define C_0085F0_CB4_DEST_BASE_ENA 0xFFFFFBFF #define S_0085F0_CB5_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 11) #define G_0085F0_CB5_DEST_BASE_ENA(x) (((x) >> 11) & 0x1) #define C_0085F0_CB5_DEST_BASE_ENA 0xFFFFF7FF #define S_0085F0_CB6_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 12) #define G_0085F0_CB6_DEST_BASE_ENA(x) (((x) >> 12) & 0x1) #define C_0085F0_CB6_DEST_BASE_ENA 0xFFFFEFFF #define S_0085F0_CB7_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 13) #define G_0085F0_CB7_DEST_BASE_ENA(x) (((x) >> 13) & 0x1) #define C_0085F0_CB7_DEST_BASE_ENA 0xFFFFDFFF #define S_0085F0_DB_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 14) #define G_0085F0_DB_DEST_BASE_ENA(x) (((x) >> 14) & 0x1) #define C_0085F0_DB_DEST_BASE_ENA 0xFFFFBFFF #define S_0085F0_TCL1_VOL_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 15) #define G_0085F0_TCL1_VOL_ACTION_ENA(x) (((x) >> 15) & 0x1) #define C_0085F0_TCL1_VOL_ACTION_ENA 0xFFFF7FFF #define S_0085F0_TC_VOL_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 16) #define G_0085F0_TC_VOL_ACTION_ENA(x) (((x) >> 16) & 0x1) #define C_0085F0_TC_VOL_ACTION_ENA 0xFFFEFFFF #define S_0085F0_TC_WB_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 18) #define G_0085F0_TC_WB_ACTION_ENA(x) (((x) >> 18) & 0x1) #define C_0085F0_TC_WB_ACTION_ENA 0xFFFBFFFF #define S_0085F0_DEST_BASE_2_ENA(x) (((unsigned)(x) & 0x1) << 19) #define G_0085F0_DEST_BASE_2_ENA(x) (((x) >> 19) & 0x1) #define C_0085F0_DEST_BASE_2_ENA 0xFFF7FFFF #define S_0085F0_DEST_BASE_3_ENA(x) (((unsigned)(x) & 0x1) << 21) #define G_0085F0_DEST_BASE_3_ENA(x) (((x) >> 21) & 0x1) #define C_0085F0_DEST_BASE_3_ENA 0xFFDFFFFF #define S_0085F0_TCL1_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 22) #define G_0085F0_TCL1_ACTION_ENA(x) (((x) >> 22) & 0x1) #define C_0085F0_TCL1_ACTION_ENA 0xFFBFFFFF #define S_0085F0_TC_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 23) #define G_0085F0_TC_ACTION_ENA(x) (((x) >> 23) & 0x1) #define C_0085F0_TC_ACTION_ENA 0xFF7FFFFF #define S_0085F0_CB_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 25) #define G_0085F0_CB_ACTION_ENA(x) (((x) >> 25) & 0x1) #define C_0085F0_CB_ACTION_ENA 0xFDFFFFFF #define S_0085F0_DB_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 26) #define G_0085F0_DB_ACTION_ENA(x) (((x) >> 26) & 0x1) #define C_0085F0_DB_ACTION_ENA 0xFBFFFFFF #define S_0085F0_SH_KCACHE_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 27) #define G_0085F0_SH_KCACHE_ACTION_ENA(x) (((x) >> 27) & 0x1) #define C_0085F0_SH_KCACHE_ACTION_ENA 0xF7FFFFFF #define S_0085F0_SH_KCACHE_VOL_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 28) #define G_0085F0_SH_KCACHE_VOL_ACTION_ENA(x) (((x) >> 28) & 0x1) #define C_0085F0_SH_KCACHE_VOL_ACTION_ENA 0xEFFFFFFF #define S_0085F0_SH_ICACHE_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 29) #define G_0085F0_SH_ICACHE_ACTION_ENA(x) (((x) >> 29) & 0x1) #define C_0085F0_SH_ICACHE_ACTION_ENA 0xDFFFFFFF #define R_0085F4_CP_COHER_SIZE 0x0085F4 /* <= gfx6 */ #define R_0085F8_CP_COHER_BASE 0x0085F8 /* <= gfx6 */ #define R_0085FC_CP_COHER_STATUS 0x0085FC /* <= gfx6 */ #define S_0085FC_MATCHING_GFX_CNTX(x) (((unsigned)(x) & 0xFF) << 0) #define G_0085FC_MATCHING_GFX_CNTX(x) (((x) >> 0) & 0xFF) #define C_0085FC_MATCHING_GFX_CNTX 0xFFFFFF00 #define S_0085FC_MEID(x) (((unsigned)(x) & 0x3) << 24) #define G_0085FC_MEID(x) (((x) >> 24) & 0x3) #define C_0085FC_MEID 0xFCFFFFFF #define S_0085FC_PHASE1_STATUS(x) (((unsigned)(x) & 0x1) << 30) #define G_0085FC_PHASE1_STATUS(x) (((x) >> 30) & 0x1) #define C_0085FC_PHASE1_STATUS 0xBFFFFFFF #define S_0085FC_STATUS(x) (((unsigned)(x) & 0x1) << 31) #define G_0085FC_STATUS(x) (((x) >> 31) & 0x1) #define C_0085FC_STATUS 0x7FFFFFFF #define R_008600_CP_DMA_ME_SRC_ADDR 0x008600 /* <= gfx6 */ #define R_008604_CP_DMA_ME_SRC_ADDR_HI 0x008604 /* <= gfx6 */ #define S_008604_SRC_ADDR_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_008604_SRC_ADDR_HI(x) (((x) >> 0) & 0xFF) #define C_008604_SRC_ADDR_HI 0xFFFFFF00 #define R_008608_CP_DMA_ME_DST_ADDR 0x008608 /* <= gfx6 */ #define R_00860C_CP_DMA_ME_DST_ADDR_HI 0x00860C /* <= gfx6 */ #define S_00860C_DST_ADDR_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_00860C_DST_ADDR_HI(x) (((x) >> 0) & 0xFF) #define C_00860C_DST_ADDR_HI 0xFFFFFF00 #define R_008610_CP_DMA_ME_COMMAND 0x008610 /* <= gfx6 */ #define S_008610_BYTE_COUNT(x) (((unsigned)(x) & 0x1FFFFF) << 0) #define G_008610_BYTE_COUNT(x) (((x) >> 0) & 0x1FFFFF) #define C_008610_BYTE_COUNT 0xFFE00000 #define S_008610_DIS_WC(x) (((unsigned)(x) & 0x1) << 21) #define G_008610_DIS_WC(x) (((x) >> 21) & 0x1) #define C_008610_DIS_WC 0xFFDFFFFF #define S_008610_SRC_SWAP(x) (((unsigned)(x) & 0x3) << 22) #define G_008610_SRC_SWAP(x) (((x) >> 22) & 0x3) #define C_008610_SRC_SWAP 0xFF3FFFFF #define S_008610_DST_SWAP(x) (((unsigned)(x) & 0x3) << 24) #define G_008610_DST_SWAP(x) (((x) >> 24) & 0x3) #define C_008610_DST_SWAP 0xFCFFFFFF #define S_008610_SAS(x) (((unsigned)(x) & 0x1) << 26) #define G_008610_SAS(x) (((x) >> 26) & 0x1) #define C_008610_SAS 0xFBFFFFFF #define S_008610_DAS(x) (((unsigned)(x) & 0x1) << 27) #define G_008610_DAS(x) (((x) >> 27) & 0x1) #define C_008610_DAS 0xF7FFFFFF #define S_008610_SAIC(x) (((unsigned)(x) & 0x1) << 28) #define G_008610_SAIC(x) (((x) >> 28) & 0x1) #define C_008610_SAIC 0xEFFFFFFF #define S_008610_DAIC(x) (((unsigned)(x) & 0x1) << 29) #define G_008610_DAIC(x) (((x) >> 29) & 0x1) #define C_008610_DAIC 0xDFFFFFFF #define S_008610_RAW_WAIT(x) (((unsigned)(x) & 0x1) << 30) #define G_008610_RAW_WAIT(x) (((x) >> 30) & 0x1) #define C_008610_RAW_WAIT 0xBFFFFFFF #define R_008614_CP_DMA_PFP_SRC_ADDR 0x008614 /* <= gfx6 */ #define R_008618_CP_DMA_PFP_SRC_ADDR_HI 0x008618 /* <= gfx6 */ #define S_008618_SRC_ADDR_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_008618_SRC_ADDR_HI(x) (((x) >> 0) & 0xFF) #define C_008618_SRC_ADDR_HI 0xFFFFFF00 #define R_00861C_CP_DMA_PFP_DST_ADDR 0x00861C /* <= gfx6 */ #define R_008620_CP_DMA_PFP_DST_ADDR_HI 0x008620 /* <= gfx6 */ #define S_008620_DST_ADDR_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_008620_DST_ADDR_HI(x) (((x) >> 0) & 0xFF) #define C_008620_DST_ADDR_HI 0xFFFFFF00 #define R_008624_CP_DMA_PFP_COMMAND 0x008624 /* <= gfx6 */ #define S_008624_BYTE_COUNT(x) (((unsigned)(x) & 0x1FFFFF) << 0) #define G_008624_BYTE_COUNT(x) (((x) >> 0) & 0x1FFFFF) #define C_008624_BYTE_COUNT 0xFFE00000 #define S_008624_DIS_WC(x) (((unsigned)(x) & 0x1) << 21) #define G_008624_DIS_WC(x) (((x) >> 21) & 0x1) #define C_008624_DIS_WC 0xFFDFFFFF #define S_008624_SRC_SWAP(x) (((unsigned)(x) & 0x3) << 22) #define G_008624_SRC_SWAP(x) (((x) >> 22) & 0x3) #define C_008624_SRC_SWAP 0xFF3FFFFF #define S_008624_DST_SWAP(x) (((unsigned)(x) & 0x3) << 24) #define G_008624_DST_SWAP(x) (((x) >> 24) & 0x3) #define C_008624_DST_SWAP 0xFCFFFFFF #define S_008624_SAS(x) (((unsigned)(x) & 0x1) << 26) #define G_008624_SAS(x) (((x) >> 26) & 0x1) #define C_008624_SAS 0xFBFFFFFF #define S_008624_DAS(x) (((unsigned)(x) & 0x1) << 27) #define G_008624_DAS(x) (((x) >> 27) & 0x1) #define C_008624_DAS 0xF7FFFFFF #define S_008624_SAIC(x) (((unsigned)(x) & 0x1) << 28) #define G_008624_SAIC(x) (((x) >> 28) & 0x1) #define C_008624_SAIC 0xEFFFFFFF #define S_008624_DAIC(x) (((unsigned)(x) & 0x1) << 29) #define G_008624_DAIC(x) (((x) >> 29) & 0x1) #define C_008624_DAIC 0xDFFFFFFF #define S_008624_RAW_WAIT(x) (((unsigned)(x) & 0x1) << 30) #define G_008624_RAW_WAIT(x) (((x) >> 30) & 0x1) #define C_008624_RAW_WAIT 0xBFFFFFFF #define R_008628_CP_DMA_CNTL 0x008628 /* <= gfx6 */ #define S_008628_MIN_AVAILSZ(x) (((unsigned)(x) & 0x3) << 4) #define G_008628_MIN_AVAILSZ(x) (((x) >> 4) & 0x3) #define C_008628_MIN_AVAILSZ 0xFFFFFFCF #define S_008628_BUFFER_DEPTH(x) (((unsigned)(x) & 0xF) << 16) #define G_008628_BUFFER_DEPTH(x) (((x) >> 16) & 0xF) #define C_008628_BUFFER_DEPTH 0xFFF0FFFF #define S_008628_PIO_FIFO_EMPTY(x) (((unsigned)(x) & 0x1) << 28) #define G_008628_PIO_FIFO_EMPTY(x) (((x) >> 28) & 0x1) #define C_008628_PIO_FIFO_EMPTY 0xEFFFFFFF #define S_008628_PIO_FIFO_FULL(x) (((unsigned)(x) & 0x1) << 29) #define G_008628_PIO_FIFO_FULL(x) (((x) >> 29) & 0x1) #define C_008628_PIO_FIFO_FULL 0xDFFFFFFF #define S_008628_PIO_COUNT(x) (((unsigned)(x) & 0x3) << 30) #define G_008628_PIO_COUNT(x) (((x) >> 30) & 0x3) #define C_008628_PIO_COUNT 0x3FFFFFFF #define R_00862C_CP_DMA_READ_TAGS 0x00862C /* <= gfx6 */ #define S_00862C_DMA_READ_TAG(x) (((unsigned)(x) & 0x3FFFFFF) << 0) #define G_00862C_DMA_READ_TAG(x) (((x) >> 0) & 0x3FFFFFF) #define C_00862C_DMA_READ_TAG 0xFC000000 #define S_00862C_DMA_READ_TAG_VALID(x) (((unsigned)(x) & 0x1) << 28) #define G_00862C_DMA_READ_TAG_VALID(x) (((x) >> 28) & 0x1) #define C_00862C_DMA_READ_TAG_VALID 0xEFFFFFFF #define R_008634_CP_PFP_IB_CONTROL 0x008634 /* <= gfx6 */ #define S_008634_IB_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_008634_IB_EN(x) (((x) >> 0) & 0x1) #define C_008634_IB_EN 0xFFFFFFFE #define R_008638_CP_PFP_LOAD_CONTROL 0x008638 /* <= gfx6 */ #define S_008638_CONFIG_REG_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_008638_CONFIG_REG_EN(x) (((x) >> 0) & 0x1) #define C_008638_CONFIG_REG_EN 0xFFFFFFFE #define S_008638_CNTX_REG_EN(x) (((unsigned)(x) & 0x1) << 1) #define G_008638_CNTX_REG_EN(x) (((x) >> 1) & 0x1) #define C_008638_CNTX_REG_EN 0xFFFFFFFD #define S_008638_UCONFIG_REG_EN(x) (((unsigned)(x) & 0x1) << 15) #define G_008638_UCONFIG_REG_EN(x) (((x) >> 15) & 0x1) #define C_008638_UCONFIG_REG_EN 0xFFFF7FFF #define S_008638_SH_GFX_REG_EN(x) (((unsigned)(x) & 0x1) << 16) #define G_008638_SH_GFX_REG_EN(x) (((x) >> 16) & 0x1) #define C_008638_SH_GFX_REG_EN 0xFFFEFFFF #define S_008638_SH_CS_REG_EN(x) (((unsigned)(x) & 0x1) << 24) #define G_008638_SH_CS_REG_EN(x) (((x) >> 24) & 0x1) #define C_008638_SH_CS_REG_EN 0xFEFFFFFF #define R_00863C_CP_SCRATCH_INDEX 0x00863C /* <= gfx6 */ #define S_00863C_SCRATCH_INDEX(x) (((unsigned)(x) & 0xFF) << 0) #define G_00863C_SCRATCH_INDEX(x) (((x) >> 0) & 0xFF) #define C_00863C_SCRATCH_INDEX 0xFFFFFF00 #define R_008640_CP_SCRATCH_DATA 0x008640 /* <= gfx6 */ #define R_008644_CP_RB_OFFSET 0x008644 /* <= gfx6 */ #define S_008644_RB_OFFSET(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_008644_RB_OFFSET(x) (((x) >> 0) & 0xFFFFF) #define C_008644_RB_OFFSET 0xFFF00000 #define R_008648_CP_IB1_OFFSET 0x008648 /* <= gfx6 */ #define S_008648_IB1_OFFSET(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_008648_IB1_OFFSET(x) (((x) >> 0) & 0xFFFFF) #define C_008648_IB1_OFFSET 0xFFF00000 #define R_00864C_CP_IB2_OFFSET 0x00864C /* <= gfx6 */ #define S_00864C_IB2_OFFSET(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_00864C_IB2_OFFSET(x) (((x) >> 0) & 0xFFFFF) #define C_00864C_IB2_OFFSET 0xFFF00000 #define R_008650_CP_IB1_PREAMBLE_BEGIN 0x008650 /* <= gfx6 */ #define S_008650_IB1_PREAMBLE_BEGIN(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_008650_IB1_PREAMBLE_BEGIN(x) (((x) >> 0) & 0xFFFFF) #define C_008650_IB1_PREAMBLE_BEGIN 0xFFF00000 #define R_008654_CP_IB1_PREAMBLE_END 0x008654 /* <= gfx6 */ #define S_008654_IB1_PREAMBLE_END(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_008654_IB1_PREAMBLE_END(x) (((x) >> 0) & 0xFFFFF) #define C_008654_IB1_PREAMBLE_END 0xFFF00000 #define R_008658_CP_IB2_PREAMBLE_BEGIN 0x008658 /* <= gfx6 */ #define S_008658_IB2_PREAMBLE_BEGIN(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_008658_IB2_PREAMBLE_BEGIN(x) (((x) >> 0) & 0xFFFFF) #define C_008658_IB2_PREAMBLE_BEGIN 0xFFF00000 #define R_00865C_CP_IB2_PREAMBLE_END 0x00865C /* <= gfx6 */ #define S_00865C_IB2_PREAMBLE_END(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_00865C_IB2_PREAMBLE_END(x) (((x) >> 0) & 0xFFFFF) #define C_00865C_IB2_PREAMBLE_END 0xFFF00000 #define R_008670_CP_STALLED_STAT3 0x008670 /* <= gfx6 */ #define S_008670_CE_TO_CSF_NOT_RDY_TO_RCV(x) (((unsigned)(x) & 0x1) << 0) #define G_008670_CE_TO_CSF_NOT_RDY_TO_RCV(x) (((x) >> 0) & 0x1) #define C_008670_CE_TO_CSF_NOT_RDY_TO_RCV 0xFFFFFFFE #define S_008670_CE_TO_RAM_INIT_FETCHER_NOT_RDY_TO_RCV(x) (((unsigned)(x) & 0x1) << 1) #define G_008670_CE_TO_RAM_INIT_FETCHER_NOT_RDY_TO_RCV(x) (((x) >> 1) & 0x1) #define C_008670_CE_TO_RAM_INIT_FETCHER_NOT_RDY_TO_RCV 0xFFFFFFFD #define S_008670_CE_WAITING_ON_DATA_FROM_RAM_INIT_FETCHER(x) (((unsigned)(x) & 0x1) << 2) #define G_008670_CE_WAITING_ON_DATA_FROM_RAM_INIT_FETCHER(x) (((x) >> 2) & 0x1) #define C_008670_CE_WAITING_ON_DATA_FROM_RAM_INIT_FETCHER 0xFFFFFFFB #define S_008670_CE_TO_RAM_INIT_NOT_RDY(x) (((unsigned)(x) & 0x1) << 3) #define G_008670_CE_TO_RAM_INIT_NOT_RDY(x) (((x) >> 3) & 0x1) #define C_008670_CE_TO_RAM_INIT_NOT_RDY 0xFFFFFFF7 #define S_008670_CE_TO_RAM_DUMP_NOT_RDY(x) (((unsigned)(x) & 0x1) << 4) #define G_008670_CE_TO_RAM_DUMP_NOT_RDY(x) (((x) >> 4) & 0x1) #define C_008670_CE_TO_RAM_DUMP_NOT_RDY 0xFFFFFFEF #define S_008670_CE_TO_RAM_WRITE_NOT_RDY(x) (((unsigned)(x) & 0x1) << 5) #define G_008670_CE_TO_RAM_WRITE_NOT_RDY(x) (((x) >> 5) & 0x1) #define C_008670_CE_TO_RAM_WRITE_NOT_RDY 0xFFFFFFDF #define S_008670_CE_TO_INC_FIFO_NOT_RDY_TO_RCV(x) (((unsigned)(x) & 0x1) << 6) #define G_008670_CE_TO_INC_FIFO_NOT_RDY_TO_RCV(x) (((x) >> 6) & 0x1) #define C_008670_CE_TO_INC_FIFO_NOT_RDY_TO_RCV 0xFFFFFFBF #define S_008670_CE_TO_WR_FIFO_NOT_RDY_TO_RCV(x) (((unsigned)(x) & 0x1) << 7) #define G_008670_CE_TO_WR_FIFO_NOT_RDY_TO_RCV(x) (((x) >> 7) & 0x1) #define C_008670_CE_TO_WR_FIFO_NOT_RDY_TO_RCV 0xFFFFFF7F #define S_008670_CE_TO_MIU_WRITE_NOT_RDY_TO_RCV(x) (((unsigned)(x) & 0x1) << 8) #define G_008670_CE_TO_MIU_WRITE_NOT_RDY_TO_RCV(x) (((x) >> 8) & 0x1) #define C_008670_CE_TO_MIU_WRITE_NOT_RDY_TO_RCV 0xFFFFFEFF #define S_008670_CE_WAITING_ON_BUFFER_DATA(x) (((unsigned)(x) & 0x1) << 10) #define G_008670_CE_WAITING_ON_BUFFER_DATA(x) (((x) >> 10) & 0x1) #define C_008670_CE_WAITING_ON_BUFFER_DATA 0xFFFFFBFF #define S_008670_CE_WAITING_ON_CE_BUFFER_FLAG(x) (((unsigned)(x) & 0x1) << 11) #define G_008670_CE_WAITING_ON_CE_BUFFER_FLAG(x) (((x) >> 11) & 0x1) #define C_008670_CE_WAITING_ON_CE_BUFFER_FLAG 0xFFFFF7FF #define S_008670_CE_WAITING_ON_DE_COUNTER(x) (((unsigned)(x) & 0x1) << 12) #define G_008670_CE_WAITING_ON_DE_COUNTER(x) (((x) >> 12) & 0x1) #define C_008670_CE_WAITING_ON_DE_COUNTER 0xFFFFEFFF #define S_008670_CE_WAITING_ON_DE_COUNTER_UNDERFLOW(x) (((unsigned)(x) & 0x1) << 13) #define G_008670_CE_WAITING_ON_DE_COUNTER_UNDERFLOW(x) (((x) >> 13) & 0x1) #define C_008670_CE_WAITING_ON_DE_COUNTER_UNDERFLOW 0xFFFFDFFF #define S_008670_TCIU_WAITING_ON_FREE(x) (((unsigned)(x) & 0x1) << 14) #define G_008670_TCIU_WAITING_ON_FREE(x) (((x) >> 14) & 0x1) #define C_008670_TCIU_WAITING_ON_FREE 0xFFFFBFFF #define S_008670_TCIU_WAITING_ON_TAGS(x) (((unsigned)(x) & 0x1) << 15) #define G_008670_TCIU_WAITING_ON_TAGS(x) (((x) >> 15) & 0x1) #define C_008670_TCIU_WAITING_ON_TAGS 0xFFFF7FFF #define R_008674_CP_STALLED_STAT1 0x008674 /* <= gfx6 */ #define S_008674_RBIU_TO_DMA_NOT_RDY_TO_RCV(x) (((unsigned)(x) & 0x1) << 0) #define G_008674_RBIU_TO_DMA_NOT_RDY_TO_RCV(x) (((x) >> 0) & 0x1) #define C_008674_RBIU_TO_DMA_NOT_RDY_TO_RCV 0xFFFFFFFE #define S_008674_RBIU_TO_SEM_NOT_RDY_TO_RCV(x) (((unsigned)(x) & 0x1) << 2) #define G_008674_RBIU_TO_SEM_NOT_RDY_TO_RCV(x) (((x) >> 2) & 0x1) #define C_008674_RBIU_TO_SEM_NOT_RDY_TO_RCV 0xFFFFFFFB #define S_008674_RBIU_TO_MEMWR_NOT_RDY_TO_RCV(x) (((unsigned)(x) & 0x1) << 4) #define G_008674_RBIU_TO_MEMWR_NOT_RDY_TO_RCV(x) (((x) >> 4) & 0x1) #define C_008674_RBIU_TO_MEMWR_NOT_RDY_TO_RCV 0xFFFFFFEF #define S_008674_ME_HAS_ACTIVE_CE_BUFFER_FLAG(x) (((unsigned)(x) & 0x1) << 10) #define G_008674_ME_HAS_ACTIVE_CE_BUFFER_FLAG(x) (((x) >> 10) & 0x1) #define C_008674_ME_HAS_ACTIVE_CE_BUFFER_FLAG 0xFFFFFBFF #define S_008674_ME_HAS_ACTIVE_DE_BUFFER_FLAG(x) (((unsigned)(x) & 0x1) << 11) #define G_008674_ME_HAS_ACTIVE_DE_BUFFER_FLAG(x) (((x) >> 11) & 0x1) #define C_008674_ME_HAS_ACTIVE_DE_BUFFER_FLAG 0xFFFFF7FF #define S_008674_ME_STALLED_ON_TC_WR_CONFIRM(x) (((unsigned)(x) & 0x1) << 12) #define G_008674_ME_STALLED_ON_TC_WR_CONFIRM(x) (((x) >> 12) & 0x1) #define C_008674_ME_STALLED_ON_TC_WR_CONFIRM 0xFFFFEFFF #define S_008674_ME_STALLED_ON_ATOMIC_RTN_DATA(x) (((unsigned)(x) & 0x1) << 13) #define G_008674_ME_STALLED_ON_ATOMIC_RTN_DATA(x) (((x) >> 13) & 0x1) #define C_008674_ME_STALLED_ON_ATOMIC_RTN_DATA 0xFFFFDFFF #define S_008674_ME_WAITING_ON_MC_READ_DATA(x) (((unsigned)(x) & 0x1) << 14) #define G_008674_ME_WAITING_ON_MC_READ_DATA(x) (((x) >> 14) & 0x1) #define C_008674_ME_WAITING_ON_MC_READ_DATA 0xFFFFBFFF #define S_008674_ME_WAITING_ON_REG_READ_DATA(x) (((unsigned)(x) & 0x1) << 15) #define G_008674_ME_WAITING_ON_REG_READ_DATA(x) (((x) >> 15) & 0x1) #define C_008674_ME_WAITING_ON_REG_READ_DATA 0xFFFF7FFF #define S_008674_MIU_WAITING_ON_RDREQ_FREE(x) (((unsigned)(x) & 0x1) << 16) #define G_008674_MIU_WAITING_ON_RDREQ_FREE(x) (((x) >> 16) & 0x1) #define C_008674_MIU_WAITING_ON_RDREQ_FREE 0xFFFEFFFF #define S_008674_MIU_WAITING_ON_WRREQ_FREE(x) (((unsigned)(x) & 0x1) << 17) #define G_008674_MIU_WAITING_ON_WRREQ_FREE(x) (((x) >> 17) & 0x1) #define C_008674_MIU_WAITING_ON_WRREQ_FREE 0xFFFDFFFF #define S_008674_RCIU_WAITING_ON_GDS_FREE(x) (((unsigned)(x) & 0x1) << 23) #define G_008674_RCIU_WAITING_ON_GDS_FREE(x) (((x) >> 23) & 0x1) #define C_008674_RCIU_WAITING_ON_GDS_FREE 0xFF7FFFFF #define S_008674_RCIU_WAITING_ON_GRBM_FREE(x) (((unsigned)(x) & 0x1) << 24) #define G_008674_RCIU_WAITING_ON_GRBM_FREE(x) (((x) >> 24) & 0x1) #define C_008674_RCIU_WAITING_ON_GRBM_FREE 0xFEFFFFFF #define S_008674_RCIU_WAITING_ON_VGT_FREE(x) (((unsigned)(x) & 0x1) << 25) #define G_008674_RCIU_WAITING_ON_VGT_FREE(x) (((x) >> 25) & 0x1) #define C_008674_RCIU_WAITING_ON_VGT_FREE 0xFDFFFFFF #define S_008674_RCIU_STALLED_ON_ME_READ(x) (((unsigned)(x) & 0x1) << 26) #define G_008674_RCIU_STALLED_ON_ME_READ(x) (((x) >> 26) & 0x1) #define C_008674_RCIU_STALLED_ON_ME_READ 0xFBFFFFFF #define S_008674_RCIU_STALLED_ON_DMA_READ(x) (((unsigned)(x) & 0x1) << 27) #define G_008674_RCIU_STALLED_ON_DMA_READ(x) (((x) >> 27) & 0x1) #define C_008674_RCIU_STALLED_ON_DMA_READ 0xF7FFFFFF #define S_008674_RCIU_HALTED_BY_REG_VIOLATION(x) (((unsigned)(x) & 0x1) << 28) #define G_008674_RCIU_HALTED_BY_REG_VIOLATION(x) (((x) >> 28) & 0x1) #define C_008674_RCIU_HALTED_BY_REG_VIOLATION 0xEFFFFFFF #define S_008674_RCIU_STALLED_ON_APPEND_READ(x) (((unsigned)(x) & 0x1) << 28) #define G_008674_RCIU_STALLED_ON_APPEND_READ(x) (((x) >> 28) & 0x1) #define C_008674_RCIU_STALLED_ON_APPEND_READ 0xEFFFFFFF #define R_008678_CP_STALLED_STAT2 0x008678 /* <= gfx6 */ #define S_008678_PFP_TO_CSF_NOT_RDY_TO_RCV(x) (((unsigned)(x) & 0x1) << 0) #define G_008678_PFP_TO_CSF_NOT_RDY_TO_RCV(x) (((x) >> 0) & 0x1) #define C_008678_PFP_TO_CSF_NOT_RDY_TO_RCV 0xFFFFFFFE #define S_008678_PFP_TO_MEQ_NOT_RDY_TO_RCV(x) (((unsigned)(x) & 0x1) << 1) #define G_008678_PFP_TO_MEQ_NOT_RDY_TO_RCV(x) (((x) >> 1) & 0x1) #define C_008678_PFP_TO_MEQ_NOT_RDY_TO_RCV 0xFFFFFFFD #define S_008678_PFP_TO_RCIU_NOT_RDY_TO_RCV(x) (((unsigned)(x) & 0x1) << 2) #define G_008678_PFP_TO_RCIU_NOT_RDY_TO_RCV(x) (((x) >> 2) & 0x1) #define C_008678_PFP_TO_RCIU_NOT_RDY_TO_RCV 0xFFFFFFFB #define S_008678_PFP_TO_VGT_WRITES_PENDING(x) (((unsigned)(x) & 0x1) << 4) #define G_008678_PFP_TO_VGT_WRITES_PENDING(x) (((x) >> 4) & 0x1) #define C_008678_PFP_TO_VGT_WRITES_PENDING 0xFFFFFFEF #define S_008678_PFP_RCIU_READ_PENDING(x) (((unsigned)(x) & 0x1) << 5) #define G_008678_PFP_RCIU_READ_PENDING(x) (((x) >> 5) & 0x1) #define C_008678_PFP_RCIU_READ_PENDING 0xFFFFFFDF #define S_008678_PFP_MIU_READ_PENDING(x) (((unsigned)(x) & 0x1) << 6) #define G_008678_PFP_MIU_READ_PENDING(x) (((x) >> 6) & 0x1) #define C_008678_PFP_MIU_READ_PENDING 0xFFFFFFBF #define S_008678_PFP_TO_MIU_WRITE_NOT_RDY_TO_RCV(x) (((unsigned)(x) & 0x1) << 7) #define G_008678_PFP_TO_MIU_WRITE_NOT_RDY_TO_RCV(x) (((x) >> 7) & 0x1) #define C_008678_PFP_TO_MIU_WRITE_NOT_RDY_TO_RCV 0xFFFFFF7F #define S_008678_PFP_WAITING_ON_BUFFER_DATA(x) (((unsigned)(x) & 0x1) << 8) #define G_008678_PFP_WAITING_ON_BUFFER_DATA(x) (((x) >> 8) & 0x1) #define C_008678_PFP_WAITING_ON_BUFFER_DATA 0xFFFFFEFF #define S_008678_ME_WAIT_ON_CE_COUNTER(x) (((unsigned)(x) & 0x1) << 9) #define G_008678_ME_WAIT_ON_CE_COUNTER(x) (((x) >> 9) & 0x1) #define C_008678_ME_WAIT_ON_CE_COUNTER 0xFFFFFDFF #define S_008678_ME_WAIT_ON_AVAIL_BUFFER(x) (((unsigned)(x) & 0x1) << 10) #define G_008678_ME_WAIT_ON_AVAIL_BUFFER(x) (((x) >> 10) & 0x1) #define C_008678_ME_WAIT_ON_AVAIL_BUFFER 0xFFFFFBFF #define S_008678_GFX_CNTX_NOT_AVAIL_TO_ME(x) (((unsigned)(x) & 0x1) << 11) #define G_008678_GFX_CNTX_NOT_AVAIL_TO_ME(x) (((x) >> 11) & 0x1) #define C_008678_GFX_CNTX_NOT_AVAIL_TO_ME 0xFFFFF7FF #define S_008678_ME_RCIU_NOT_RDY_TO_RCV(x) (((unsigned)(x) & 0x1) << 12) #define G_008678_ME_RCIU_NOT_RDY_TO_RCV(x) (((x) >> 12) & 0x1) #define C_008678_ME_RCIU_NOT_RDY_TO_RCV 0xFFFFEFFF #define S_008678_ME_TO_CONST_NOT_RDY_TO_RCV(x) (((unsigned)(x) & 0x1) << 13) #define G_008678_ME_TO_CONST_NOT_RDY_TO_RCV(x) (((x) >> 13) & 0x1) #define C_008678_ME_TO_CONST_NOT_RDY_TO_RCV 0xFFFFDFFF #define S_008678_ME_WAITING_DATA_FROM_PFP(x) (((unsigned)(x) & 0x1) << 14) #define G_008678_ME_WAITING_DATA_FROM_PFP(x) (((x) >> 14) & 0x1) #define C_008678_ME_WAITING_DATA_FROM_PFP 0xFFFFBFFF #define S_008678_ME_WAITING_ON_PARTIAL_FLUSH(x) (((unsigned)(x) & 0x1) << 15) #define G_008678_ME_WAITING_ON_PARTIAL_FLUSH(x) (((x) >> 15) & 0x1) #define C_008678_ME_WAITING_ON_PARTIAL_FLUSH 0xFFFF7FFF #define S_008678_MEQ_TO_ME_NOT_RDY_TO_RCV(x) (((unsigned)(x) & 0x1) << 16) #define G_008678_MEQ_TO_ME_NOT_RDY_TO_RCV(x) (((x) >> 16) & 0x1) #define C_008678_MEQ_TO_ME_NOT_RDY_TO_RCV 0xFFFEFFFF #define S_008678_STQ_TO_ME_NOT_RDY_TO_RCV(x) (((unsigned)(x) & 0x1) << 17) #define G_008678_STQ_TO_ME_NOT_RDY_TO_RCV(x) (((x) >> 17) & 0x1) #define C_008678_STQ_TO_ME_NOT_RDY_TO_RCV 0xFFFDFFFF #define S_008678_ME_WAITING_DATA_FROM_STQ(x) (((unsigned)(x) & 0x1) << 18) #define G_008678_ME_WAITING_DATA_FROM_STQ(x) (((x) >> 18) & 0x1) #define C_008678_ME_WAITING_DATA_FROM_STQ 0xFFFBFFFF #define S_008678_PFP_STALLED_ON_TC_WR_CONFIRM(x) (((unsigned)(x) & 0x1) << 19) #define G_008678_PFP_STALLED_ON_TC_WR_CONFIRM(x) (((x) >> 19) & 0x1) #define C_008678_PFP_STALLED_ON_TC_WR_CONFIRM 0xFFF7FFFF #define S_008678_PFP_STALLED_ON_ATOMIC_RTN_DATA(x) (((unsigned)(x) & 0x1) << 20) #define G_008678_PFP_STALLED_ON_ATOMIC_RTN_DATA(x) (((x) >> 20) & 0x1) #define C_008678_PFP_STALLED_ON_ATOMIC_RTN_DATA 0xFFEFFFFF #define S_008678_EOPD_FIFO_NEEDS_SC_EOP_DONE(x) (((unsigned)(x) & 0x1) << 21) #define G_008678_EOPD_FIFO_NEEDS_SC_EOP_DONE(x) (((x) >> 21) & 0x1) #define C_008678_EOPD_FIFO_NEEDS_SC_EOP_DONE 0xFFDFFFFF #define S_008678_EOPD_FIFO_NEEDS_WR_CONFIRM(x) (((unsigned)(x) & 0x1) << 22) #define G_008678_EOPD_FIFO_NEEDS_WR_CONFIRM(x) (((x) >> 22) & 0x1) #define C_008678_EOPD_FIFO_NEEDS_WR_CONFIRM 0xFFBFFFFF #define S_008678_STRMO_WR_OF_PRIM_DATA_PENDING(x) (((unsigned)(x) & 0x1) << 23) #define G_008678_STRMO_WR_OF_PRIM_DATA_PENDING(x) (((x) >> 23) & 0x1) #define C_008678_STRMO_WR_OF_PRIM_DATA_PENDING 0xFF7FFFFF #define S_008678_PIPE_STATS_WR_DATA_PENDING(x) (((unsigned)(x) & 0x1) << 24) #define G_008678_PIPE_STATS_WR_DATA_PENDING(x) (((x) >> 24) & 0x1) #define C_008678_PIPE_STATS_WR_DATA_PENDING 0xFEFFFFFF #define S_008678_APPEND_RDY_WAIT_ON_CS_DONE(x) (((unsigned)(x) & 0x1) << 25) #define G_008678_APPEND_RDY_WAIT_ON_CS_DONE(x) (((x) >> 25) & 0x1) #define C_008678_APPEND_RDY_WAIT_ON_CS_DONE 0xFDFFFFFF #define S_008678_APPEND_RDY_WAIT_ON_PS_DONE(x) (((unsigned)(x) & 0x1) << 26) #define G_008678_APPEND_RDY_WAIT_ON_PS_DONE(x) (((x) >> 26) & 0x1) #define C_008678_APPEND_RDY_WAIT_ON_PS_DONE 0xFBFFFFFF #define S_008678_APPEND_WAIT_ON_WR_CONFIRM(x) (((unsigned)(x) & 0x1) << 27) #define G_008678_APPEND_WAIT_ON_WR_CONFIRM(x) (((x) >> 27) & 0x1) #define C_008678_APPEND_WAIT_ON_WR_CONFIRM 0xF7FFFFFF #define S_008678_APPEND_ACTIVE_PARTITION(x) (((unsigned)(x) & 0x1) << 28) #define G_008678_APPEND_ACTIVE_PARTITION(x) (((x) >> 28) & 0x1) #define C_008678_APPEND_ACTIVE_PARTITION 0xEFFFFFFF #define S_008678_APPEND_WAITING_TO_SEND_MEMWRITE(x) (((unsigned)(x) & 0x1) << 29) #define G_008678_APPEND_WAITING_TO_SEND_MEMWRITE(x) (((x) >> 29) & 0x1) #define C_008678_APPEND_WAITING_TO_SEND_MEMWRITE 0xDFFFFFFF #define S_008678_SURF_SYNC_NEEDS_IDLE_CNTXS(x) (((unsigned)(x) & 0x1) << 30) #define G_008678_SURF_SYNC_NEEDS_IDLE_CNTXS(x) (((x) >> 30) & 0x1) #define C_008678_SURF_SYNC_NEEDS_IDLE_CNTXS 0xBFFFFFFF #define S_008678_SURF_SYNC_NEEDS_ALL_CLEAN(x) (((unsigned)(x) & 0x1) << 31) #define G_008678_SURF_SYNC_NEEDS_ALL_CLEAN(x) (((x) >> 31) & 0x1) #define C_008678_SURF_SYNC_NEEDS_ALL_CLEAN 0x7FFFFFFF #define R_00867C_CP_BUSY_STAT 0x00867C /* <= gfx6 */ #define S_00867C_REG_BUS_FIFO_BUSY(x) (((unsigned)(x) & 0x1) << 0) #define G_00867C_REG_BUS_FIFO_BUSY(x) (((x) >> 0) & 0x1) #define C_00867C_REG_BUS_FIFO_BUSY 0xFFFFFFFE #define S_00867C_COHER_CNT_NEQ_ZERO(x) (((unsigned)(x) & 0x1) << 6) #define G_00867C_COHER_CNT_NEQ_ZERO(x) (((x) >> 6) & 0x1) #define C_00867C_COHER_CNT_NEQ_ZERO 0xFFFFFFBF #define S_00867C_PFP_PARSING_PACKETS(x) (((unsigned)(x) & 0x1) << 7) #define G_00867C_PFP_PARSING_PACKETS(x) (((x) >> 7) & 0x1) #define C_00867C_PFP_PARSING_PACKETS 0xFFFFFF7F #define S_00867C_ME_PARSING_PACKETS(x) (((unsigned)(x) & 0x1) << 8) #define G_00867C_ME_PARSING_PACKETS(x) (((x) >> 8) & 0x1) #define C_00867C_ME_PARSING_PACKETS 0xFFFFFEFF #define S_00867C_RCIU_PFP_BUSY(x) (((unsigned)(x) & 0x1) << 9) #define G_00867C_RCIU_PFP_BUSY(x) (((x) >> 9) & 0x1) #define C_00867C_RCIU_PFP_BUSY 0xFFFFFDFF #define S_00867C_RCIU_ME_BUSY(x) (((unsigned)(x) & 0x1) << 10) #define G_00867C_RCIU_ME_BUSY(x) (((x) >> 10) & 0x1) #define C_00867C_RCIU_ME_BUSY 0xFFFFFBFF #define S_00867C_SEM_CMDFIFO_NOT_EMPTY(x) (((unsigned)(x) & 0x1) << 12) #define G_00867C_SEM_CMDFIFO_NOT_EMPTY(x) (((x) >> 12) & 0x1) #define C_00867C_SEM_CMDFIFO_NOT_EMPTY 0xFFFFEFFF #define S_00867C_SEM_FAILED_AND_HOLDING(x) (((unsigned)(x) & 0x1) << 13) #define G_00867C_SEM_FAILED_AND_HOLDING(x) (((x) >> 13) & 0x1) #define C_00867C_SEM_FAILED_AND_HOLDING 0xFFFFDFFF #define S_00867C_SEM_POLLING_FOR_PASS(x) (((unsigned)(x) & 0x1) << 14) #define G_00867C_SEM_POLLING_FOR_PASS(x) (((x) >> 14) & 0x1) #define C_00867C_SEM_POLLING_FOR_PASS 0xFFFFBFFF #define S_00867C_GFX_CONTEXT_BUSY(x) (((unsigned)(x) & 0x1) << 15) #define G_00867C_GFX_CONTEXT_BUSY(x) (((x) >> 15) & 0x1) #define C_00867C_GFX_CONTEXT_BUSY 0xFFFF7FFF #define S_00867C_ME_PARSER_BUSY(x) (((unsigned)(x) & 0x1) << 17) #define G_00867C_ME_PARSER_BUSY(x) (((x) >> 17) & 0x1) #define C_00867C_ME_PARSER_BUSY 0xFFFDFFFF #define S_00867C_EOP_DONE_BUSY(x) (((unsigned)(x) & 0x1) << 18) #define G_00867C_EOP_DONE_BUSY(x) (((x) >> 18) & 0x1) #define C_00867C_EOP_DONE_BUSY 0xFFFBFFFF #define S_00867C_STRM_OUT_BUSY(x) (((unsigned)(x) & 0x1) << 19) #define G_00867C_STRM_OUT_BUSY(x) (((x) >> 19) & 0x1) #define C_00867C_STRM_OUT_BUSY 0xFFF7FFFF #define S_00867C_PIPE_STATS_BUSY(x) (((unsigned)(x) & 0x1) << 20) #define G_00867C_PIPE_STATS_BUSY(x) (((x) >> 20) & 0x1) #define C_00867C_PIPE_STATS_BUSY 0xFFEFFFFF #define S_00867C_RCIU_CE_BUSY(x) (((unsigned)(x) & 0x1) << 21) #define G_00867C_RCIU_CE_BUSY(x) (((x) >> 21) & 0x1) #define C_00867C_RCIU_CE_BUSY 0xFFDFFFFF #define S_00867C_CE_PARSING_PACKETS(x) (((unsigned)(x) & 0x1) << 22) #define G_00867C_CE_PARSING_PACKETS(x) (((x) >> 22) & 0x1) #define C_00867C_CE_PARSING_PACKETS 0xFFBFFFFF #define R_008680_CP_STAT 0x008680 /* <= gfx6 */ #define S_008680_MIU_RDREQ_BUSY(x) (((unsigned)(x) & 0x1) << 7) #define G_008680_MIU_RDREQ_BUSY(x) (((x) >> 7) & 0x1) #define C_008680_MIU_RDREQ_BUSY 0xFFFFFF7F #define S_008680_MIU_WRREQ_BUSY(x) (((unsigned)(x) & 0x1) << 8) #define G_008680_MIU_WRREQ_BUSY(x) (((x) >> 8) & 0x1) #define C_008680_MIU_WRREQ_BUSY 0xFFFFFEFF #define S_008680_ROQ_RING_BUSY(x) (((unsigned)(x) & 0x1) << 9) #define G_008680_ROQ_RING_BUSY(x) (((x) >> 9) & 0x1) #define C_008680_ROQ_RING_BUSY 0xFFFFFDFF #define S_008680_ROQ_INDIRECT1_BUSY(x) (((unsigned)(x) & 0x1) << 10) #define G_008680_ROQ_INDIRECT1_BUSY(x) (((x) >> 10) & 0x1) #define C_008680_ROQ_INDIRECT1_BUSY 0xFFFFFBFF #define S_008680_ROQ_INDIRECT2_BUSY(x) (((unsigned)(x) & 0x1) << 11) #define G_008680_ROQ_INDIRECT2_BUSY(x) (((x) >> 11) & 0x1) #define C_008680_ROQ_INDIRECT2_BUSY 0xFFFFF7FF #define S_008680_ROQ_STATE_BUSY(x) (((unsigned)(x) & 0x1) << 12) #define G_008680_ROQ_STATE_BUSY(x) (((x) >> 12) & 0x1) #define C_008680_ROQ_STATE_BUSY 0xFFFFEFFF #define S_008680_DC_BUSY(x) (((unsigned)(x) & 0x1) << 13) #define G_008680_DC_BUSY(x) (((x) >> 13) & 0x1) #define C_008680_DC_BUSY 0xFFFFDFFF #define S_008680_PFP_BUSY(x) (((unsigned)(x) & 0x1) << 15) #define G_008680_PFP_BUSY(x) (((x) >> 15) & 0x1) #define C_008680_PFP_BUSY 0xFFFF7FFF #define S_008680_MEQ_BUSY(x) (((unsigned)(x) & 0x1) << 16) #define G_008680_MEQ_BUSY(x) (((x) >> 16) & 0x1) #define C_008680_MEQ_BUSY 0xFFFEFFFF #define S_008680_ME_BUSY(x) (((unsigned)(x) & 0x1) << 17) #define G_008680_ME_BUSY(x) (((x) >> 17) & 0x1) #define C_008680_ME_BUSY 0xFFFDFFFF #define S_008680_QUERY_BUSY(x) (((unsigned)(x) & 0x1) << 18) #define G_008680_QUERY_BUSY(x) (((x) >> 18) & 0x1) #define C_008680_QUERY_BUSY 0xFFFBFFFF #define S_008680_SEMAPHORE_BUSY(x) (((unsigned)(x) & 0x1) << 19) #define G_008680_SEMAPHORE_BUSY(x) (((x) >> 19) & 0x1) #define C_008680_SEMAPHORE_BUSY 0xFFF7FFFF #define S_008680_INTERRUPT_BUSY(x) (((unsigned)(x) & 0x1) << 20) #define G_008680_INTERRUPT_BUSY(x) (((x) >> 20) & 0x1) #define C_008680_INTERRUPT_BUSY 0xFFEFFFFF #define S_008680_SURFACE_SYNC_BUSY(x) (((unsigned)(x) & 0x1) << 21) #define G_008680_SURFACE_SYNC_BUSY(x) (((x) >> 21) & 0x1) #define C_008680_SURFACE_SYNC_BUSY 0xFFDFFFFF #define S_008680_DMA_BUSY(x) (((unsigned)(x) & 0x1) << 22) #define G_008680_DMA_BUSY(x) (((x) >> 22) & 0x1) #define C_008680_DMA_BUSY 0xFFBFFFFF #define S_008680_RCIU_BUSY(x) (((unsigned)(x) & 0x1) << 23) #define G_008680_RCIU_BUSY(x) (((x) >> 23) & 0x1) #define C_008680_RCIU_BUSY 0xFF7FFFFF #define S_008680_SCRATCH_RAM_BUSY(x) (((unsigned)(x) & 0x1) << 24) #define G_008680_SCRATCH_RAM_BUSY(x) (((x) >> 24) & 0x1) #define C_008680_SCRATCH_RAM_BUSY 0xFEFFFFFF #define S_008680_CPC_CPG_BUSY(x) (((unsigned)(x) & 0x1) << 25) #define G_008680_CPC_CPG_BUSY(x) (((x) >> 25) & 0x1) #define C_008680_CPC_CPG_BUSY 0xFDFFFFFF #define S_008680_CE_BUSY(x) (((unsigned)(x) & 0x1) << 26) #define G_008680_CE_BUSY(x) (((x) >> 26) & 0x1) #define C_008680_CE_BUSY 0xFBFFFFFF #define S_008680_TCIU_BUSY(x) (((unsigned)(x) & 0x1) << 27) #define G_008680_TCIU_BUSY(x) (((x) >> 27) & 0x1) #define C_008680_TCIU_BUSY 0xF7FFFFFF #define S_008680_ROQ_CE_RING_BUSY(x) (((unsigned)(x) & 0x1) << 28) #define G_008680_ROQ_CE_RING_BUSY(x) (((x) >> 28) & 0x1) #define C_008680_ROQ_CE_RING_BUSY 0xEFFFFFFF #define S_008680_ROQ_CE_INDIRECT1_BUSY(x) (((unsigned)(x) & 0x1) << 29) #define G_008680_ROQ_CE_INDIRECT1_BUSY(x) (((x) >> 29) & 0x1) #define C_008680_ROQ_CE_INDIRECT1_BUSY 0xDFFFFFFF #define S_008680_ROQ_CE_INDIRECT2_BUSY(x) (((unsigned)(x) & 0x1) << 30) #define G_008680_ROQ_CE_INDIRECT2_BUSY(x) (((x) >> 30) & 0x1) #define C_008680_ROQ_CE_INDIRECT2_BUSY 0xBFFFFFFF #define S_008680_CP_BUSY(x) (((unsigned)(x) & 0x1) << 31) #define G_008680_CP_BUSY(x) (((x) >> 31) & 0x1) #define C_008680_CP_BUSY 0x7FFFFFFF #define R_008684_CP_ME_HEADER_DUMP 0x008684 /* <= gfx6 */ #define R_008688_CP_PFP_HEADER_DUMP 0x008688 /* <= gfx6 */ #define R_00868C_CP_GRBM_FREE_COUNT 0x00868C /* <= gfx6 */ #define S_00868C_FREE_COUNT(x) (((unsigned)(x) & 0x3F) << 0) #define G_00868C_FREE_COUNT(x) (((x) >> 0) & 0x3F) #define C_00868C_FREE_COUNT 0xFFFFFFC0 #define S_00868C_FREE_COUNT_GDS(x) (((unsigned)(x) & 0x3F) << 8) #define G_00868C_FREE_COUNT_GDS(x) (((x) >> 8) & 0x3F) #define C_00868C_FREE_COUNT_GDS 0xFFFFC0FF #define S_00868C_FREE_COUNT_PFP(x) (((unsigned)(x) & 0x3F) << 16) #define G_00868C_FREE_COUNT_PFP(x) (((x) >> 16) & 0x3F) #define C_00868C_FREE_COUNT_PFP 0xFFC0FFFF #define R_008690_CP_CE_HEADER_DUMP 0x008690 /* <= gfx6 */ #define R_00869C_CP_MC_PACK_DELAY_CNT 0x00869C /* <= gfx6 */ #define S_00869C_PACK_DELAY_CNT(x) (((unsigned)(x) & 0x1F) << 0) #define G_00869C_PACK_DELAY_CNT(x) (((x) >> 0) & 0x1F) #define C_00869C_PACK_DELAY_CNT 0xFFFFFFE0 #define R_0086D0_CP_CSF_STAT 0x0086D0 /* <= gfx6 */ #define S_0086D0_BUFFER_SLOTS_ALLOCATED(x) (((unsigned)(x) & 0xF) << 0) #define G_0086D0_BUFFER_SLOTS_ALLOCATED(x) (((x) >> 0) & 0xF) #define C_0086D0_BUFFER_SLOTS_ALLOCATED 0xFFFFFFF0 #define S_0086D0_BUFFER_REQUEST_COUNT(x) (((unsigned)(x) & 0x3F) << 8) #define G_0086D0_BUFFER_REQUEST_COUNT(x) (((x) >> 8) & 0x3F) #define C_0086D0_BUFFER_REQUEST_COUNT 0xFFFFC0FF #define R_0086D4_CP_CSF_CNTL 0x0086D4 /* <= gfx6 */ #define S_0086D4_FETCH_BUFFER_DEPTH(x) (((unsigned)(x) & 0xF) << 0) #define G_0086D4_FETCH_BUFFER_DEPTH(x) (((x) >> 0) & 0xF) #define C_0086D4_FETCH_BUFFER_DEPTH 0xFFFFFFF0 #define R_0086D8_CP_ME_CNTL 0x0086D8 /* <= gfx6 */ #define S_0086D8_CE_INVALIDATE_ICACHE(x) (((unsigned)(x) & 0x1) << 4) #define G_0086D8_CE_INVALIDATE_ICACHE(x) (((x) >> 4) & 0x1) #define C_0086D8_CE_INVALIDATE_ICACHE 0xFFFFFFEF #define S_0086D8_PFP_INVALIDATE_ICACHE(x) (((unsigned)(x) & 0x1) << 6) #define G_0086D8_PFP_INVALIDATE_ICACHE(x) (((x) >> 6) & 0x1) #define C_0086D8_PFP_INVALIDATE_ICACHE 0xFFFFFFBF #define S_0086D8_ME_INVALIDATE_ICACHE(x) (((unsigned)(x) & 0x1) << 8) #define G_0086D8_ME_INVALIDATE_ICACHE(x) (((x) >> 8) & 0x1) #define C_0086D8_ME_INVALIDATE_ICACHE 0xFFFFFEFF #define S_0086D8_CE_HALT(x) (((unsigned)(x) & 0x1) << 24) #define G_0086D8_CE_HALT(x) (((x) >> 24) & 0x1) #define C_0086D8_CE_HALT 0xFEFFFFFF #define S_0086D8_CE_STEP(x) (((unsigned)(x) & 0x1) << 25) #define G_0086D8_CE_STEP(x) (((x) >> 25) & 0x1) #define C_0086D8_CE_STEP 0xFDFFFFFF #define S_0086D8_PFP_HALT(x) (((unsigned)(x) & 0x1) << 26) #define G_0086D8_PFP_HALT(x) (((x) >> 26) & 0x1) #define C_0086D8_PFP_HALT 0xFBFFFFFF #define S_0086D8_PFP_STEP(x) (((unsigned)(x) & 0x1) << 27) #define G_0086D8_PFP_STEP(x) (((x) >> 27) & 0x1) #define C_0086D8_PFP_STEP 0xF7FFFFFF #define S_0086D8_ME_HALT(x) (((unsigned)(x) & 0x1) << 28) #define G_0086D8_ME_HALT(x) (((x) >> 28) & 0x1) #define C_0086D8_ME_HALT 0xEFFFFFFF #define S_0086D8_ME_STEP(x) (((unsigned)(x) & 0x1) << 29) #define G_0086D8_ME_STEP(x) (((x) >> 29) & 0x1) #define C_0086D8_ME_STEP 0xDFFFFFFF #define R_0086E0_CP_CNTX_STAT 0x0086E0 /* <= gfx6 */ #define S_0086E0_ACTIVE_HP3D_CONTEXTS(x) (((unsigned)(x) & 0xFF) << 0) #define G_0086E0_ACTIVE_HP3D_CONTEXTS(x) (((x) >> 0) & 0xFF) #define C_0086E0_ACTIVE_HP3D_CONTEXTS 0xFFFFFF00 #define S_0086E0_CURRENT_HP3D_CONTEXT(x) (((unsigned)(x) & 0x7) << 8) #define G_0086E0_CURRENT_HP3D_CONTEXT(x) (((x) >> 8) & 0x7) #define C_0086E0_CURRENT_HP3D_CONTEXT 0xFFFFF8FF #define S_0086E0_ACTIVE_GFX_CONTEXTS(x) (((unsigned)(x) & 0xFF) << 20) #define G_0086E0_ACTIVE_GFX_CONTEXTS(x) (((x) >> 20) & 0xFF) #define C_0086E0_ACTIVE_GFX_CONTEXTS 0xF00FFFFF #define S_0086E0_CURRENT_GFX_CONTEXT(x) (((unsigned)(x) & 0x7) << 28) #define G_0086E0_CURRENT_GFX_CONTEXT(x) (((x) >> 28) & 0x7) #define C_0086E0_CURRENT_GFX_CONTEXT 0x8FFFFFFF #define R_0086E4_CP_ME_PREEMPTION 0x0086E4 /* <= gfx6 */ #define S_0086E4_ME_CNTXSW_PREEMPTION(x) (((unsigned)(x) & 0x1) << 0) #define G_0086E4_ME_CNTXSW_PREEMPTION(x) (((x) >> 0) & 0x1) #define C_0086E4_ME_CNTXSW_PREEMPTION 0xFFFFFFFE #define R_0086F8_CP_RB2_RPTR 0x0086F8 /* <= gfx6 */ #define S_0086F8_RB_RPTR(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_0086F8_RB_RPTR(x) (((x) >> 0) & 0xFFFFF) #define C_0086F8_RB_RPTR 0xFFF00000 #define R_0086FC_CP_RB1_RPTR 0x0086FC /* <= gfx6 */ #define R_008700_CP_RB0_RPTR 0x008700 /* <= gfx6 */ #define R_008704_CP_RB_WPTR_DELAY 0x008704 /* <= gfx6 */ #define S_008704_PRE_WRITE_TIMER(x) (((unsigned)(x) & 0xFFFFFFF) << 0) #define G_008704_PRE_WRITE_TIMER(x) (((x) >> 0) & 0xFFFFFFF) #define C_008704_PRE_WRITE_TIMER 0xF0000000 #define S_008704_PRE_WRITE_LIMIT(x) (((unsigned)(x) & 0xF) << 28) #define G_008704_PRE_WRITE_LIMIT(x) (((x) >> 28) & 0xF) #define C_008704_PRE_WRITE_LIMIT 0x0FFFFFFF #define R_008708_CP_RB_WPTR_POLL_CNTL 0x008708 /* <= gfx6 */ #define S_008708_POLL_FREQUENCY(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_008708_POLL_FREQUENCY(x) (((x) >> 0) & 0xFFFF) #define C_008708_POLL_FREQUENCY 0xFFFF0000 #define S_008708_IDLE_POLL_COUNT(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_008708_IDLE_POLL_COUNT(x) (((x) >> 16) & 0xFFFF) #define C_008708_IDLE_POLL_COUNT 0x0000FFFF #define R_00870C_CP_CE_INIT_BASE_LO 0x00870C /* <= gfx6 */ #define S_00870C_INIT_BASE_LO(x) (((unsigned)(x) & 0x7FFFFFF) << 5) #define G_00870C_INIT_BASE_LO(x) (((x) >> 5) & 0x7FFFFFF) #define C_00870C_INIT_BASE_LO 0x0000001F #define R_008710_CP_CE_INIT_BASE_HI 0x008710 /* <= gfx6 */ #define S_008710_INIT_BASE_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_008710_INIT_BASE_HI(x) (((x) >> 0) & 0xFF) #define C_008710_INIT_BASE_HI 0xFFFFFF00 #define R_008714_CP_CE_INIT_BUFSZ 0x008714 /* <= gfx6 */ #define S_008714_INIT_BUFSZ(x) (((unsigned)(x) & 0xFFF) << 0) #define G_008714_INIT_BUFSZ(x) (((x) >> 0) & 0xFFF) #define C_008714_INIT_BUFSZ 0xFFFFF000 #define R_008718_CP_CE_IB1_BASE_LO 0x008718 /* <= gfx6 */ #define S_008718_IB1_BASE_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_008718_IB1_BASE_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_008718_IB1_BASE_LO 0x00000003 #define R_00871C_CP_CE_IB1_BASE_HI 0x00871C /* <= gfx6 */ #define S_00871C_IB1_BASE_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_00871C_IB1_BASE_HI(x) (((x) >> 0) & 0xFF) #define C_00871C_IB1_BASE_HI 0xFFFFFF00 #define R_008720_CP_CE_IB1_BUFSZ 0x008720 /* <= gfx6 */ #define S_008720_IB1_BUFSZ(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_008720_IB1_BUFSZ(x) (((x) >> 0) & 0xFFFFF) #define C_008720_IB1_BUFSZ 0xFFF00000 #define R_008724_CP_CE_IB2_BASE_LO 0x008724 /* <= gfx6 */ #define S_008724_IB2_BASE_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_008724_IB2_BASE_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_008724_IB2_BASE_LO 0x00000003 #define R_008728_CP_CE_IB2_BASE_HI 0x008728 /* <= gfx6 */ #define S_008728_IB2_BASE_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_008728_IB2_BASE_HI(x) (((x) >> 0) & 0xFF) #define C_008728_IB2_BASE_HI 0xFFFFFF00 #define R_00872C_CP_CE_IB2_BUFSZ 0x00872C /* <= gfx6 */ #define S_00872C_IB2_BUFSZ(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_00872C_IB2_BUFSZ(x) (((x) >> 0) & 0xFFFFF) #define C_00872C_IB2_BUFSZ 0xFFF00000 #define R_008730_CP_IB1_BASE_LO 0x008730 /* <= gfx6 */ #define S_008730_IB1_BASE_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_008730_IB1_BASE_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_008730_IB1_BASE_LO 0x00000003 #define R_008734_CP_IB1_BASE_HI 0x008734 /* <= gfx6 */ #define S_008734_IB1_BASE_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_008734_IB1_BASE_HI(x) (((x) >> 0) & 0xFF) #define C_008734_IB1_BASE_HI 0xFFFFFF00 #define R_008738_CP_IB1_BUFSZ 0x008738 /* <= gfx6 */ #define S_008738_IB1_BUFSZ(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_008738_IB1_BUFSZ(x) (((x) >> 0) & 0xFFFFF) #define C_008738_IB1_BUFSZ 0xFFF00000 #define R_00873C_CP_IB2_BASE_LO 0x00873C /* <= gfx6 */ #define S_00873C_IB2_BASE_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_00873C_IB2_BASE_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_00873C_IB2_BASE_LO 0x00000003 #define R_008740_CP_IB2_BASE_HI 0x008740 /* <= gfx6 */ #define S_008740_IB2_BASE_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_008740_IB2_BASE_HI(x) (((x) >> 0) & 0xFF) #define C_008740_IB2_BASE_HI 0xFFFFFF00 #define R_008744_CP_IB2_BUFSZ 0x008744 /* <= gfx6 */ #define S_008744_IB2_BUFSZ(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_008744_IB2_BUFSZ(x) (((x) >> 0) & 0xFFFFF) #define C_008744_IB2_BUFSZ 0xFFF00000 #define R_008748_CP_ST_BASE_LO 0x008748 /* <= gfx6 */ #define S_008748_ST_BASE_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_008748_ST_BASE_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_008748_ST_BASE_LO 0x00000003 #define R_00874C_CP_ST_BASE_HI 0x00874C /* <= gfx6 */ #define S_00874C_ST_BASE_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_00874C_ST_BASE_HI(x) (((x) >> 0) & 0xFF) #define C_00874C_ST_BASE_HI 0xFFFFFF00 #define R_008750_CP_ST_BUFSZ 0x008750 /* <= gfx6 */ #define S_008750_ST_BUFSZ(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_008750_ST_BUFSZ(x) (((x) >> 0) & 0xFFFFF) #define C_008750_ST_BUFSZ 0xFFF00000 #define R_008754_CP_ROQ1_THRESHOLDS 0x008754 /* <= gfx6 */ #define S_008754_RB1_START(x) (((unsigned)(x) & 0xFF) << 0) #define G_008754_RB1_START(x) (((x) >> 0) & 0xFF) #define C_008754_RB1_START 0xFFFFFF00 #define S_008754_RB2_START(x) (((unsigned)(x) & 0xFF) << 8) #define G_008754_RB2_START(x) (((x) >> 8) & 0xFF) #define C_008754_RB2_START 0xFFFF00FF #define S_008754_R0_IB1_START(x) (((unsigned)(x) & 0xFF) << 16) #define G_008754_R0_IB1_START(x) (((x) >> 16) & 0xFF) #define C_008754_R0_IB1_START 0xFF00FFFF #define S_008754_R1_IB1_START(x) (((unsigned)(x) & 0xFF) << 24) #define G_008754_R1_IB1_START(x) (((x) >> 24) & 0xFF) #define C_008754_R1_IB1_START 0x00FFFFFF #define R_008758_CP_ROQ2_THRESHOLDS 0x008758 /* <= gfx6 */ #define S_008758_R2_IB1_START(x) (((unsigned)(x) & 0xFF) << 0) #define G_008758_R2_IB1_START(x) (((x) >> 0) & 0xFF) #define C_008758_R2_IB1_START 0xFFFFFF00 #define S_008758_R0_IB2_START(x) (((unsigned)(x) & 0xFF) << 8) #define G_008758_R0_IB2_START(x) (((x) >> 8) & 0xFF) #define C_008758_R0_IB2_START 0xFFFF00FF #define S_008758_R1_IB2_START(x) (((unsigned)(x) & 0xFF) << 16) #define G_008758_R1_IB2_START(x) (((x) >> 16) & 0xFF) #define C_008758_R1_IB2_START 0xFF00FFFF #define S_008758_R2_IB2_START(x) (((unsigned)(x) & 0xFF) << 24) #define G_008758_R2_IB2_START(x) (((x) >> 24) & 0xFF) #define C_008758_R2_IB2_START 0x00FFFFFF #define R_00875C_CP_STQ_THRESHOLDS 0x00875C /* <= gfx6 */ #define S_00875C_STQ0_START(x) (((unsigned)(x) & 0xFF) << 0) #define G_00875C_STQ0_START(x) (((x) >> 0) & 0xFF) #define C_00875C_STQ0_START 0xFFFFFF00 #define S_00875C_STQ1_START(x) (((unsigned)(x) & 0xFF) << 8) #define G_00875C_STQ1_START(x) (((x) >> 8) & 0xFF) #define C_00875C_STQ1_START 0xFFFF00FF #define S_00875C_STQ2_START(x) (((unsigned)(x) & 0xFF) << 16) #define G_00875C_STQ2_START(x) (((x) >> 16) & 0xFF) #define C_00875C_STQ2_START 0xFF00FFFF #define R_008760_CP_QUEUE_THRESHOLDS 0x008760 /* <= gfx6 */ #define S_008760_ROQ_IB1_START(x) (((unsigned)(x) & 0x3F) << 0) #define G_008760_ROQ_IB1_START(x) (((x) >> 0) & 0x3F) #define C_008760_ROQ_IB1_START 0xFFFFFFC0 #define S_008760_ROQ_IB2_START(x) (((unsigned)(x) & 0x3F) << 8) #define G_008760_ROQ_IB2_START(x) (((x) >> 8) & 0x3F) #define C_008760_ROQ_IB2_START 0xFFFFC0FF #define R_008764_CP_MEQ_THRESHOLDS 0x008764 /* <= gfx6 */ #define S_008764_MEQ1_START(x) (((unsigned)(x) & 0xFF) << 0) #define G_008764_MEQ1_START(x) (((x) >> 0) & 0xFF) #define C_008764_MEQ1_START 0xFFFFFF00 #define S_008764_MEQ2_START(x) (((unsigned)(x) & 0xFF) << 8) #define G_008764_MEQ2_START(x) (((x) >> 8) & 0xFF) #define C_008764_MEQ2_START 0xFFFF00FF #define R_008768_CP_ROQ_AVAIL 0x008768 /* <= gfx6 */ #define S_008768_ROQ_CNT_RING(x) (((unsigned)(x) & 0x7FF) << 0) #define G_008768_ROQ_CNT_RING(x) (((x) >> 0) & 0x7FF) #define C_008768_ROQ_CNT_RING 0xFFFFF800 #define S_008768_ROQ_CNT_IB1(x) (((unsigned)(x) & 0x7FF) << 16) #define G_008768_ROQ_CNT_IB1(x) (((x) >> 16) & 0x7FF) #define C_008768_ROQ_CNT_IB1 0xF800FFFF #define R_00876C_CP_STQ_AVAIL 0x00876C /* <= gfx6 */ #define S_00876C_STQ_CNT(x) (((unsigned)(x) & 0x1FF) << 0) #define G_00876C_STQ_CNT(x) (((x) >> 0) & 0x1FF) #define C_00876C_STQ_CNT 0xFFFFFE00 #define R_008770_CP_ROQ2_AVAIL 0x008770 /* <= gfx6 */ #define S_008770_ROQ_CNT_IB2(x) (((unsigned)(x) & 0x7FF) << 0) #define G_008770_ROQ_CNT_IB2(x) (((x) >> 0) & 0x7FF) #define C_008770_ROQ_CNT_IB2 0xFFFFF800 #define R_008774_CP_MEQ_AVAIL 0x008774 /* <= gfx6 */ #define S_008774_MEQ_CNT(x) (((unsigned)(x) & 0x3FF) << 0) #define G_008774_MEQ_CNT(x) (((x) >> 0) & 0x3FF) #define C_008774_MEQ_CNT 0xFFFFFC00 #define R_008778_CP_CMD_INDEX 0x008778 /* <= gfx6 */ #define S_008778_CMD_INDEX(x) (((unsigned)(x) & 0x7FF) << 0) #define G_008778_CMD_INDEX(x) (((x) >> 0) & 0x7FF) #define C_008778_CMD_INDEX 0xFFFFF800 #define S_008778_CMD_ME_SEL(x) (((unsigned)(x) & 0x3) << 12) #define G_008778_CMD_ME_SEL(x) (((x) >> 12) & 0x3) #define C_008778_CMD_ME_SEL 0xFFFFCFFF #define S_008778_CMD_QUEUE_SEL(x) (((unsigned)(x) & 0x3) << 16) #define G_008778_CMD_QUEUE_SEL(x) (((x) >> 16) & 0x3) #define C_008778_CMD_QUEUE_SEL 0xFFFCFFFF #define R_00877C_CP_CMD_DATA 0x00877C /* <= gfx6 */ #define R_008780_CP_ROQ_RB_STAT 0x008780 /* <= gfx6 */ #define S_008780_ROQ_RPTR_PRIMARY(x) (((unsigned)(x) & 0x3FF) << 0) #define G_008780_ROQ_RPTR_PRIMARY(x) (((x) >> 0) & 0x3FF) #define C_008780_ROQ_RPTR_PRIMARY 0xFFFFFC00 #define S_008780_ROQ_WPTR_PRIMARY(x) (((unsigned)(x) & 0x3FF) << 16) #define G_008780_ROQ_WPTR_PRIMARY(x) (((x) >> 16) & 0x3FF) #define C_008780_ROQ_WPTR_PRIMARY 0xFC00FFFF #define R_008784_CP_ROQ_IB1_STAT 0x008784 /* <= gfx6 */ #define S_008784_ROQ_RPTR_INDIRECT1(x) (((unsigned)(x) & 0x3FF) << 0) #define G_008784_ROQ_RPTR_INDIRECT1(x) (((x) >> 0) & 0x3FF) #define C_008784_ROQ_RPTR_INDIRECT1 0xFFFFFC00 #define S_008784_ROQ_WPTR_INDIRECT1(x) (((unsigned)(x) & 0x3FF) << 16) #define G_008784_ROQ_WPTR_INDIRECT1(x) (((x) >> 16) & 0x3FF) #define C_008784_ROQ_WPTR_INDIRECT1 0xFC00FFFF #define R_008788_CP_ROQ_IB2_STAT 0x008788 /* <= gfx6 */ #define S_008788_ROQ_RPTR_INDIRECT2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_008788_ROQ_RPTR_INDIRECT2(x) (((x) >> 0) & 0x3FF) #define C_008788_ROQ_RPTR_INDIRECT2 0xFFFFFC00 #define S_008788_ROQ_WPTR_INDIRECT2(x) (((unsigned)(x) & 0x3FF) << 16) #define G_008788_ROQ_WPTR_INDIRECT2(x) (((x) >> 16) & 0x3FF) #define C_008788_ROQ_WPTR_INDIRECT2 0xFC00FFFF #define R_00878C_CP_STQ_STAT 0x00878C /* <= gfx6 */ #define S_00878C_STQ_RPTR(x) (((unsigned)(x) & 0x3FF) << 0) #define G_00878C_STQ_RPTR(x) (((x) >> 0) & 0x3FF) #define C_00878C_STQ_RPTR 0xFFFFFC00 #define R_008794_CP_MEQ_STAT 0x008794 /* <= gfx6 */ #define S_008794_MEQ_RPTR(x) (((unsigned)(x) & 0x3FF) << 0) #define G_008794_MEQ_RPTR(x) (((x) >> 0) & 0x3FF) #define C_008794_MEQ_RPTR 0xFFFFFC00 #define S_008794_MEQ_WPTR(x) (((unsigned)(x) & 0x3FF) << 16) #define G_008794_MEQ_WPTR(x) (((x) >> 16) & 0x3FF) #define C_008794_MEQ_WPTR 0xFC00FFFF #define R_008798_CP_CEQ1_AVAIL 0x008798 /* <= gfx6 */ #define S_008798_CEQ_CNT_RING(x) (((unsigned)(x) & 0x7FF) << 0) #define G_008798_CEQ_CNT_RING(x) (((x) >> 0) & 0x7FF) #define C_008798_CEQ_CNT_RING 0xFFFFF800 #define S_008798_CEQ_CNT_IB1(x) (((unsigned)(x) & 0x7FF) << 16) #define G_008798_CEQ_CNT_IB1(x) (((x) >> 16) & 0x7FF) #define C_008798_CEQ_CNT_IB1 0xF800FFFF #define R_00879C_CP_CEQ2_AVAIL 0x00879C /* <= gfx6 */ #define S_00879C_CEQ_CNT_IB2(x) (((unsigned)(x) & 0x7FF) << 0) #define G_00879C_CEQ_CNT_IB2(x) (((x) >> 0) & 0x7FF) #define C_00879C_CEQ_CNT_IB2 0xFFFFF800 #define R_0087A0_CP_CE_ROQ_RB_STAT 0x0087A0 /* <= gfx6 */ #define S_0087A0_CEQ_RPTR_PRIMARY(x) (((unsigned)(x) & 0x3FF) << 0) #define G_0087A0_CEQ_RPTR_PRIMARY(x) (((x) >> 0) & 0x3FF) #define C_0087A0_CEQ_RPTR_PRIMARY 0xFFFFFC00 #define S_0087A0_CEQ_WPTR_PRIMARY(x) (((unsigned)(x) & 0x3FF) << 16) #define G_0087A0_CEQ_WPTR_PRIMARY(x) (((x) >> 16) & 0x3FF) #define C_0087A0_CEQ_WPTR_PRIMARY 0xFC00FFFF #define R_0087A4_CP_CE_ROQ_IB1_STAT 0x0087A4 /* <= gfx6 */ #define S_0087A4_CEQ_RPTR_INDIRECT1(x) (((unsigned)(x) & 0x3FF) << 0) #define G_0087A4_CEQ_RPTR_INDIRECT1(x) (((x) >> 0) & 0x3FF) #define C_0087A4_CEQ_RPTR_INDIRECT1 0xFFFFFC00 #define S_0087A4_CEQ_WPTR_INDIRECT1(x) (((unsigned)(x) & 0x3FF) << 16) #define G_0087A4_CEQ_WPTR_INDIRECT1(x) (((x) >> 16) & 0x3FF) #define C_0087A4_CEQ_WPTR_INDIRECT1 0xFC00FFFF #define R_0087A8_CP_CE_ROQ_IB2_STAT 0x0087A8 /* <= gfx6 */ #define S_0087A8_CEQ_RPTR_INDIRECT2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_0087A8_CEQ_RPTR_INDIRECT2(x) (((x) >> 0) & 0x3FF) #define C_0087A8_CEQ_RPTR_INDIRECT2 0xFFFFFC00 #define S_0087A8_CEQ_WPTR_INDIRECT2(x) (((unsigned)(x) & 0x3FF) << 16) #define G_0087A8_CEQ_WPTR_INDIRECT2(x) (((x) >> 16) & 0x3FF) #define C_0087A8_CEQ_WPTR_INDIRECT2 0xFC00FFFF #define R_0087DC_CP_INT_STAT_DEBUG 0x0087DC /* <= gfx6 */ #define S_0087DC_CP_ECC_ERROR_INT_ASSERTED(x) (((unsigned)(x) & 0x1) << 14) #define G_0087DC_CP_ECC_ERROR_INT_ASSERTED(x) (((x) >> 14) & 0x1) #define C_0087DC_CP_ECC_ERROR_INT_ASSERTED 0xFFFFBFFF #define S_0087DC_WRM_POLL_TIMEOUT_INT_ASSERTED(x) (((unsigned)(x) & 0x1) << 17) #define G_0087DC_WRM_POLL_TIMEOUT_INT_ASSERTED(x) (((x) >> 17) & 0x1) #define C_0087DC_WRM_POLL_TIMEOUT_INT_ASSERTED 0xFFFDFFFF #define S_0087DC_CNTX_BUSY_INT_ASSERTED(x) (((unsigned)(x) & 0x1) << 19) #define G_0087DC_CNTX_BUSY_INT_ASSERTED(x) (((x) >> 19) & 0x1) #define C_0087DC_CNTX_BUSY_INT_ASSERTED 0xFFF7FFFF #define S_0087DC_CNTX_EMPTY_INT_ASSERTED(x) (((unsigned)(x) & 0x1) << 20) #define G_0087DC_CNTX_EMPTY_INT_ASSERTED(x) (((x) >> 20) & 0x1) #define C_0087DC_CNTX_EMPTY_INT_ASSERTED 0xFFEFFFFF #define S_0087DC_PRIV_INSTR_INT_ASSERTED(x) (((unsigned)(x) & 0x1) << 22) #define G_0087DC_PRIV_INSTR_INT_ASSERTED(x) (((x) >> 22) & 0x1) #define C_0087DC_PRIV_INSTR_INT_ASSERTED 0xFFBFFFFF #define S_0087DC_PRIV_REG_INT_ASSERTED(x) (((unsigned)(x) & 0x1) << 23) #define G_0087DC_PRIV_REG_INT_ASSERTED(x) (((x) >> 23) & 0x1) #define C_0087DC_PRIV_REG_INT_ASSERTED 0xFF7FFFFF #define S_0087DC_OPCODE_ERROR_INT_ASSERTED(x) (((unsigned)(x) & 0x1) << 24) #define G_0087DC_OPCODE_ERROR_INT_ASSERTED(x) (((x) >> 24) & 0x1) #define C_0087DC_OPCODE_ERROR_INT_ASSERTED 0xFEFFFFFF #define S_0087DC_TIME_STAMP_INT_ASSERTED(x) (((unsigned)(x) & 0x1) << 26) #define G_0087DC_TIME_STAMP_INT_ASSERTED(x) (((x) >> 26) & 0x1) #define C_0087DC_TIME_STAMP_INT_ASSERTED 0xFBFFFFFF #define S_0087DC_RESERVED_BIT_ERROR_INT_ASSERTED(x) (((unsigned)(x) & 0x1) << 27) #define G_0087DC_RESERVED_BIT_ERROR_INT_ASSERTED(x) (((x) >> 27) & 0x1) #define C_0087DC_RESERVED_BIT_ERROR_INT_ASSERTED 0xF7FFFFFF #define S_0087DC_GENERIC2_INT_ASSERTED(x) (((unsigned)(x) & 0x1) << 29) #define G_0087DC_GENERIC2_INT_ASSERTED(x) (((x) >> 29) & 0x1) #define C_0087DC_GENERIC2_INT_ASSERTED 0xDFFFFFFF #define S_0087DC_GENERIC1_INT_ASSERTED(x) (((unsigned)(x) & 0x1) << 30) #define G_0087DC_GENERIC1_INT_ASSERTED(x) (((x) >> 30) & 0x1) #define C_0087DC_GENERIC1_INT_ASSERTED 0xBFFFFFFF #define S_0087DC_GENERIC0_INT_ASSERTED(x) (((unsigned)(x) & 0x1) << 31) #define G_0087DC_GENERIC0_INT_ASSERTED(x) (((x) >> 31) & 0x1) #define C_0087DC_GENERIC0_INT_ASSERTED 0x7FFFFFFF #define R_0087FC_CP_PERFMON_CNTL 0x0087FC /* <= gfx6 */ #define S_0087FC_PERFMON_STATE(x) (((unsigned)(x) & 0xF) << 0) #define G_0087FC_PERFMON_STATE(x) (((x) >> 0) & 0xF) #define C_0087FC_PERFMON_STATE 0xFFFFFFF0 #define V_0087FC_CP_PERFMON_STATE_DISABLE_AND_RESET 0 #define V_0087FC_CP_PERFMON_STATE_START_COUNTING 1 #define V_0087FC_CP_PERFMON_STATE_STOP_COUNTING 2 #define V_0087FC_CP_PERFMON_STATE_RESERVED_3 3 #define V_0087FC_CP_PERFMON_STATE_DISABLE_AND_RESET_PHANTOM 4 #define V_0087FC_CP_PERFMON_STATE_COUNT_AND_DUMP_PHANTOM 5 #define S_0087FC_SPM_PERFMON_STATE(x) (((unsigned)(x) & 0xF) << 4) #define G_0087FC_SPM_PERFMON_STATE(x) (((x) >> 4) & 0xF) #define C_0087FC_SPM_PERFMON_STATE 0xFFFFFF0F #define V_0087FC_STRM_PERFMON_STATE_DISABLE_AND_RESET 0 #define V_0087FC_STRM_PERFMON_STATE_START_COUNTING 1 #define V_0087FC_STRM_PERFMON_STATE_STOP_COUNTING 2 #define V_0087FC_STRM_PERFMON_STATE_RESERVED_3 3 #define V_0087FC_STRM_PERFMON_STATE_DISABLE_AND_RESET_PHANTOM 4 #define V_0087FC_STRM_PERFMON_STATE_COUNT_AND_DUMP_PHANTOM 5 #define S_0087FC_PERFMON_ENABLE_MODE(x) (((unsigned)(x) & 0x3) << 8) #define G_0087FC_PERFMON_ENABLE_MODE(x) (((x) >> 8) & 0x3) #define C_0087FC_PERFMON_ENABLE_MODE 0xFFFFFCFF #define V_0087FC_CP_PERFMON_ENABLE_MODE_ALWAYS_COUNT 0 #define V_0087FC_CP_PERFMON_ENABLE_MODE_RESERVED_1 1 #define V_0087FC_CP_PERFMON_ENABLE_MODE_COUNT_CONTEXT_TRUE 2 #define V_0087FC_CP_PERFMON_ENABLE_MODE_COUNT_CONTEXT_FALSE 3 #define S_0087FC_PERFMON_SAMPLE_ENABLE(x) (((unsigned)(x) & 0x1) << 10) #define G_0087FC_PERFMON_SAMPLE_ENABLE(x) (((x) >> 10) & 0x1) #define C_0087FC_PERFMON_SAMPLE_ENABLE 0xFFFFFBFF #define R_008880_IA_PERFCOUNTER0_SELECT 0x008880 /* <= gfx6 */ #define S_008880_PERF_SEL(x) (((unsigned)(x) & 0xFF) << 0) #define G_008880_PERF_SEL(x) (((x) >> 0) & 0xFF) #define C_008880_PERF_SEL 0xFFFFFF00 #define S_008880_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_008880_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_008880_PERF_SEL1 0xFFF003FF #define S_008880_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_008880_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_008880_CNTR_MODE 0xFF0FFFFF #define S_008880_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) #define G_008880_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_008880_PERF_MODE1 0xF0FFFFFF #define S_008880_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_008880_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_008880_PERF_MODE 0x0FFFFFFF #define R_008884_IA_PERFCOUNTER1_SELECT 0x008884 /* <= gfx6 */ #define S_008884_PERF_SEL(x) (((unsigned)(x) & 0xFF) << 0) #define G_008884_PERF_SEL(x) (((x) >> 0) & 0xFF) #define C_008884_PERF_SEL 0xFFFFFF00 #define S_008884_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_008884_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_008884_PERF_MODE 0x0FFFFFFF #define R_008888_IA_PERFCOUNTER2_SELECT 0x008888 /* <= gfx6 */ #define R_00888C_IA_PERFCOUNTER3_SELECT 0x00888C /* <= gfx6 */ #define R_008890_IA_PERFCOUNTER0_LO 0x008890 /* <= gfx6 */ #define R_008894_IA_PERFCOUNTER0_HI 0x008894 /* <= gfx6 */ #define R_008898_IA_PERFCOUNTER1_LO 0x008898 /* <= gfx6 */ #define R_00889C_IA_PERFCOUNTER1_HI 0x00889C /* <= gfx6 */ #define R_0088A0_IA_PERFCOUNTER2_LO 0x0088A0 /* <= gfx6 */ #define R_0088A4_IA_PERFCOUNTER2_HI 0x0088A4 /* <= gfx6 */ #define R_0088A8_IA_PERFCOUNTER3_LO 0x0088A8 /* <= gfx6 */ #define R_0088AC_IA_PERFCOUNTER3_HI 0x0088AC /* <= gfx6 */ #define R_0088B0_VGT_VTX_VECT_EJECT_REG 0x0088B0 /* <= gfx6 */ #define S_0088B0_PRIM_COUNT(x) (((unsigned)(x) & 0x3FF) << 0) #define G_0088B0_PRIM_COUNT(x) (((x) >> 0) & 0x3FF) #define C_0088B0_PRIM_COUNT 0xFFFFFC00 #define R_0088B4_VGT_DMA_DATA_FIFO_DEPTH 0x0088B4 /* <= gfx6 */ #define S_0088B4_DMA_DATA_FIFO_DEPTH(x) (((unsigned)(x) & 0x1FF) << 0) #define G_0088B4_DMA_DATA_FIFO_DEPTH(x) (((x) >> 0) & 0x1FF) #define C_0088B4_DMA_DATA_FIFO_DEPTH 0xFFFFFE00 #define R_0088B8_VGT_DMA_REQ_FIFO_DEPTH 0x0088B8 /* <= gfx6 */ #define S_0088B8_DMA_REQ_FIFO_DEPTH(x) (((unsigned)(x) & 0x3F) << 0) #define G_0088B8_DMA_REQ_FIFO_DEPTH(x) (((x) >> 0) & 0x3F) #define C_0088B8_DMA_REQ_FIFO_DEPTH 0xFFFFFFC0 #define R_0088BC_VGT_DRAW_INIT_FIFO_DEPTH 0x0088BC /* <= gfx6 */ #define S_0088BC_DRAW_INIT_FIFO_DEPTH(x) (((unsigned)(x) & 0x3F) << 0) #define G_0088BC_DRAW_INIT_FIFO_DEPTH(x) (((x) >> 0) & 0x3F) #define C_0088BC_DRAW_INIT_FIFO_DEPTH 0xFFFFFFC0 #define R_0088C0_VGT_LAST_COPY_STATE 0x0088C0 /* <= gfx6 */ #define S_0088C0_SRC_STATE_ID(x) (((unsigned)(x) & 0x7) << 0) #define G_0088C0_SRC_STATE_ID(x) (((x) >> 0) & 0x7) #define C_0088C0_SRC_STATE_ID 0xFFFFFFF8 #define S_0088C0_DST_STATE_ID(x) (((unsigned)(x) & 0x7) << 16) #define G_0088C0_DST_STATE_ID(x) (((x) >> 16) & 0x7) #define C_0088C0_DST_STATE_ID 0xFFF8FFFF #define R_0088C4_VGT_CACHE_INVALIDATION 0x0088C4 /* <= gfx6 */ #define S_0088C4_CACHE_INVALIDATION(x) (((unsigned)(x) & 0x3) << 0) #define G_0088C4_CACHE_INVALIDATION(x) (((x) >> 0) & 0x3) #define C_0088C4_CACHE_INVALIDATION 0xFFFFFFFC #define S_0088C4_VS_NO_EXTRA_BUFFER(x) (((unsigned)(x) & 0x1) << 5) #define G_0088C4_VS_NO_EXTRA_BUFFER(x) (((x) >> 5) & 0x1) #define C_0088C4_VS_NO_EXTRA_BUFFER 0xFFFFFFDF #define S_0088C4_AUTO_INVLD_EN(x) (((unsigned)(x) & 0x3) << 6) #define G_0088C4_AUTO_INVLD_EN(x) (((x) >> 6) & 0x3) #define C_0088C4_AUTO_INVLD_EN 0xFFFFFF3F #define S_0088C4_USE_GS_DONE(x) (((unsigned)(x) & 0x1) << 9) #define G_0088C4_USE_GS_DONE(x) (((x) >> 9) & 0x1) #define C_0088C4_USE_GS_DONE 0xFFFFFDFF #define S_0088C4_DIS_RANGE_FULL_INVLD(x) (((unsigned)(x) & 0x1) << 11) #define G_0088C4_DIS_RANGE_FULL_INVLD(x) (((x) >> 11) & 0x1) #define C_0088C4_DIS_RANGE_FULL_INVLD 0xFFFFF7FF #define S_0088C4_GS_LATE_ALLOC_EN(x) (((unsigned)(x) & 0x1) << 12) #define G_0088C4_GS_LATE_ALLOC_EN(x) (((x) >> 12) & 0x1) #define C_0088C4_GS_LATE_ALLOC_EN 0xFFFFEFFF #define S_0088C4_STREAMOUT_FULL_FLUSH(x) (((unsigned)(x) & 0x1) << 13) #define G_0088C4_STREAMOUT_FULL_FLUSH(x) (((x) >> 13) & 0x1) #define C_0088C4_STREAMOUT_FULL_FLUSH 0xFFFFDFFF #define S_0088C4_ES_LIMIT(x) (((unsigned)(x) & 0x1F) << 16) #define G_0088C4_ES_LIMIT(x) (((x) >> 16) & 0x1F) #define C_0088C4_ES_LIMIT 0xFFE0FFFF #define R_0088C8_VGT_ESGS_RING_SIZE 0x0088C8 /* <= gfx6 */ #define R_0088CC_VGT_GSVS_RING_SIZE 0x0088CC /* <= gfx6 */ #define R_0088D0_VGT_FIFO_DEPTHS 0x0088D0 /* <= gfx6 */ #define S_0088D0_VS_DEALLOC_TBL_DEPTH(x) (((unsigned)(x) & 0x7F) << 0) #define G_0088D0_VS_DEALLOC_TBL_DEPTH(x) (((x) >> 0) & 0x7F) #define C_0088D0_VS_DEALLOC_TBL_DEPTH 0xFFFFFF80 #define S_0088D0_RESERVED_0(x) (((unsigned)(x) & 0x1) << 7) #define G_0088D0_RESERVED_0(x) (((x) >> 7) & 0x1) #define C_0088D0_RESERVED_0 0xFFFFFF7F #define S_0088D0_CLIPP_FIFO_DEPTH(x) (((unsigned)(x) & 0x3FFF) << 8) #define G_0088D0_CLIPP_FIFO_DEPTH(x) (((x) >> 8) & 0x3FFF) #define C_0088D0_CLIPP_FIFO_DEPTH 0xFFC000FF #define S_0088D0_RESERVED_1(x) (((unsigned)(x) & 0x3FF) << 22) #define G_0088D0_RESERVED_1(x) (((x) >> 22) & 0x3FF) #define C_0088D0_RESERVED_1 0x003FFFFF #define R_0088D4_VGT_GS_VERTEX_REUSE 0x0088D4 /* <= gfx6 */ #define S_0088D4_VERT_REUSE(x) (((unsigned)(x) & 0x1F) << 0) #define G_0088D4_VERT_REUSE(x) (((x) >> 0) & 0x1F) #define C_0088D4_VERT_REUSE 0xFFFFFFE0 #define R_0088D8_VGT_MC_LAT_CNTL 0x0088D8 /* <= gfx6 */ #define S_0088D8_MC_TIME_STAMP_RES(x) (((unsigned)(x) & 0x3) << 0) #define G_0088D8_MC_TIME_STAMP_RES(x) (((x) >> 0) & 0x3) #define C_0088D8_MC_TIME_STAMP_RES 0xFFFFFFFC #define R_0088DC_IA_CNTL_STATUS 0x0088DC /* <= gfx6 */ #define S_0088DC_IA_BUSY(x) (((unsigned)(x) & 0x1) << 0) #define G_0088DC_IA_BUSY(x) (((x) >> 0) & 0x1) #define C_0088DC_IA_BUSY 0xFFFFFFFE #define S_0088DC_IA_DMA_BUSY(x) (((unsigned)(x) & 0x1) << 1) #define G_0088DC_IA_DMA_BUSY(x) (((x) >> 1) & 0x1) #define C_0088DC_IA_DMA_BUSY 0xFFFFFFFD #define S_0088DC_IA_DMA_REQ_BUSY(x) (((unsigned)(x) & 0x1) << 2) #define G_0088DC_IA_DMA_REQ_BUSY(x) (((x) >> 2) & 0x1) #define C_0088DC_IA_DMA_REQ_BUSY 0xFFFFFFFB #define S_0088DC_IA_GRP_BUSY(x) (((unsigned)(x) & 0x1) << 3) #define G_0088DC_IA_GRP_BUSY(x) (((x) >> 3) & 0x1) #define C_0088DC_IA_GRP_BUSY 0xFFFFFFF7 #define S_0088DC_IA_ADC_BUSY(x) (((unsigned)(x) & 0x1) << 4) #define G_0088DC_IA_ADC_BUSY(x) (((x) >> 4) & 0x1) #define C_0088DC_IA_ADC_BUSY 0xFFFFFFEF #define R_0088E0_VGT_DEBUG_CNTL 0x0088E0 /* <= gfx6 */ #define S_0088E0_VGT_DEBUG_INDX(x) (((unsigned)(x) & 0x3F) << 0) #define G_0088E0_VGT_DEBUG_INDX(x) (((x) >> 0) & 0x3F) #define C_0088E0_VGT_DEBUG_INDX 0xFFFFFFC0 #define S_0088E0_VGT_DEBUG_SEL_BUS_B(x) (((unsigned)(x) & 0x1) << 6) #define G_0088E0_VGT_DEBUG_SEL_BUS_B(x) (((x) >> 6) & 0x1) #define C_0088E0_VGT_DEBUG_SEL_BUS_B 0xFFFFFFBF #define R_0088E4_VGT_DEBUG_DATA 0x0088E4 /* <= gfx6 */ #define R_0088E8_IA_DEBUG_CNTL 0x0088E8 /* <= gfx6 */ #define S_0088E8_IA_DEBUG_INDX(x) (((unsigned)(x) & 0x3F) << 0) #define G_0088E8_IA_DEBUG_INDX(x) (((x) >> 0) & 0x3F) #define C_0088E8_IA_DEBUG_INDX 0xFFFFFFC0 #define S_0088E8_IA_DEBUG_SEL_BUS_B(x) (((unsigned)(x) & 0x1) << 6) #define G_0088E8_IA_DEBUG_SEL_BUS_B(x) (((x) >> 6) & 0x1) #define C_0088E8_IA_DEBUG_SEL_BUS_B 0xFFFFFFBF #define R_0088EC_IA_DEBUG_DATA 0x0088EC /* <= gfx6 */ #define R_0088F0_VGT_CNTL_STATUS 0x0088F0 /* <= gfx6 */ #define S_0088F0_VGT_BUSY(x) (((unsigned)(x) & 0x1) << 0) #define G_0088F0_VGT_BUSY(x) (((x) >> 0) & 0x1) #define C_0088F0_VGT_BUSY 0xFFFFFFFE #define S_0088F0_VGT_OUT_INDX_BUSY(x) (((unsigned)(x) & 0x1) << 1) #define G_0088F0_VGT_OUT_INDX_BUSY(x) (((x) >> 1) & 0x1) #define C_0088F0_VGT_OUT_INDX_BUSY 0xFFFFFFFD #define S_0088F0_VGT_OUT_BUSY(x) (((unsigned)(x) & 0x1) << 2) #define G_0088F0_VGT_OUT_BUSY(x) (((x) >> 2) & 0x1) #define C_0088F0_VGT_OUT_BUSY 0xFFFFFFFB #define S_0088F0_VGT_PT_BUSY(x) (((unsigned)(x) & 0x1) << 3) #define G_0088F0_VGT_PT_BUSY(x) (((x) >> 3) & 0x1) #define C_0088F0_VGT_PT_BUSY 0xFFFFFFF7 #define S_0088F0_VGT_TE_BUSY(x) (((unsigned)(x) & 0x1) << 4) #define G_0088F0_VGT_TE_BUSY(x) (((x) >> 4) & 0x1) #define C_0088F0_VGT_TE_BUSY 0xFFFFFFEF #define S_0088F0_VGT_VR_BUSY(x) (((unsigned)(x) & 0x1) << 5) #define G_0088F0_VGT_VR_BUSY(x) (((x) >> 5) & 0x1) #define C_0088F0_VGT_VR_BUSY 0xFFFFFFDF #define S_0088F0_VGT_PI_BUSY(x) (((unsigned)(x) & 0x1) << 6) #define G_0088F0_VGT_PI_BUSY(x) (((x) >> 6) & 0x1) #define C_0088F0_VGT_PI_BUSY 0xFFFFFFBF #define S_0088F0_VGT_GS_BUSY(x) (((unsigned)(x) & 0x1) << 7) #define G_0088F0_VGT_GS_BUSY(x) (((x) >> 7) & 0x1) #define C_0088F0_VGT_GS_BUSY 0xFFFFFF7F #define S_0088F0_VGT_HS_BUSY(x) (((unsigned)(x) & 0x1) << 8) #define G_0088F0_VGT_HS_BUSY(x) (((x) >> 8) & 0x1) #define C_0088F0_VGT_HS_BUSY 0xFFFFFEFF #define S_0088F0_VGT_TE11_BUSY(x) (((unsigned)(x) & 0x1) << 9) #define G_0088F0_VGT_TE11_BUSY(x) (((x) >> 9) & 0x1) #define C_0088F0_VGT_TE11_BUSY 0xFFFFFDFF #define R_00891C_VGT_PERFCOUNTER_SEID_MASK 0x00891C /* <= gfx6 */ #define S_00891C_PERF_SEID_IGNORE_MASK(x) (((unsigned)(x) & 0xFF) << 0) #define G_00891C_PERF_SEID_IGNORE_MASK(x) (((x) >> 0) & 0xFF) #define C_00891C_PERF_SEID_IGNORE_MASK 0xFFFFFF00 #define R_008920_VGT_PERFCOUNTER0_SELECT 0x008920 /* <= gfx6 */ #define S_008920_PERF_SEL(x) (((unsigned)(x) & 0xFF) << 0) #define G_008920_PERF_SEL(x) (((x) >> 0) & 0xFF) #define C_008920_PERF_SEL 0xFFFFFF00 #define S_008920_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_008920_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_008920_PERF_SEL1 0xFFF003FF #define S_008920_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_008920_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_008920_CNTR_MODE 0xFF0FFFFF #define S_008920_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) #define G_008920_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_008920_PERF_MODE1 0xF0FFFFFF #define S_008920_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_008920_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_008920_PERF_MODE 0x0FFFFFFF #define R_008924_VGT_PERFCOUNTER1_SELECT 0x008924 /* <= gfx6 */ #define R_008928_VGT_PERFCOUNTER2_SELECT 0x008928 /* <= gfx6 */ #define S_008928_PERF_SEL(x) (((unsigned)(x) & 0xFF) << 0) #define G_008928_PERF_SEL(x) (((x) >> 0) & 0xFF) #define C_008928_PERF_SEL 0xFFFFFF00 #define S_008928_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_008928_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_008928_PERF_MODE 0x0FFFFFFF #define R_00892C_VGT_PERFCOUNTER3_SELECT 0x00892C /* <= gfx6 */ #define R_008930_VGT_PERFCOUNTER0_LO 0x008930 /* <= gfx6 */ #define R_008934_VGT_PERFCOUNTER0_HI 0x008934 /* <= gfx6 */ #define R_008938_VGT_PERFCOUNTER1_LO 0x008938 /* <= gfx6 */ #define R_00893C_VGT_PERFCOUNTER1_HI 0x00893C /* <= gfx6 */ #define R_008940_VGT_PERFCOUNTER2_LO 0x008940 /* <= gfx6 */ #define R_008944_VGT_PERFCOUNTER2_HI 0x008944 /* <= gfx6 */ #define R_008948_VGT_PERFCOUNTER3_LO 0x008948 /* <= gfx6 */ #define R_00894C_VGT_PERFCOUNTER3_HI 0x00894C /* <= gfx6 */ #define R_008958_VGT_PRIMITIVE_TYPE 0x008958 /* <= gfx6 */ #define S_008958_PRIM_TYPE(x) (((unsigned)(x) & 0x3F) << 0) #define G_008958_PRIM_TYPE(x) (((x) >> 0) & 0x3F) #define C_008958_PRIM_TYPE 0xFFFFFFC0 #define V_008958_DI_PT_NONE 0 #define V_008958_DI_PT_POINTLIST 1 #define V_008958_DI_PT_LINELIST 2 #define V_008958_DI_PT_LINESTRIP 3 #define V_008958_DI_PT_TRILIST 4 #define V_008958_DI_PT_TRIFAN 5 #define V_008958_DI_PT_TRISTRIP 6 #define V_008958_DI_PT_UNUSED_0 7 #define V_008958_DI_PT_UNUSED_1 8 #define V_008958_DI_PT_PATCH 9 #define V_008958_DI_PT_LINELIST_ADJ 10 #define V_008958_DI_PT_LINESTRIP_ADJ 11 #define V_008958_DI_PT_TRILIST_ADJ 12 #define V_008958_DI_PT_TRISTRIP_ADJ 13 #define V_008958_DI_PT_UNUSED_3 14 #define V_008958_DI_PT_UNUSED_4 15 #define V_008958_DI_PT_TRI_WITH_WFLAGS 16 #define V_008958_DI_PT_RECTLIST 17 #define V_008958_DI_PT_LINELOOP 18 #define V_008958_DI_PT_QUADLIST 19 #define V_008958_DI_PT_QUADSTRIP 20 #define V_008958_DI_PT_POLYGON 21 #define V_008958_DI_PT_2D_COPY_RECT_LIST_V0 22 #define V_008958_DI_PT_2D_COPY_RECT_LIST_V1 23 #define V_008958_DI_PT_2D_COPY_RECT_LIST_V2 24 #define V_008958_DI_PT_2D_COPY_RECT_LIST_V3 25 #define V_008958_DI_PT_2D_FILL_RECT_LIST 26 #define V_008958_DI_PT_2D_LINE_STRIP 27 #define V_008958_DI_PT_2D_TRI_STRIP 28 #define R_00895C_VGT_INDEX_TYPE 0x00895C /* <= gfx6 */ #define S_00895C_INDEX_TYPE(x) (((unsigned)(x) & 0x3) << 0) #define G_00895C_INDEX_TYPE(x) (((x) >> 0) & 0x3) #define C_00895C_INDEX_TYPE 0xFFFFFFFC #define V_00895C_VGT_INDEX_16 0 #define V_00895C_VGT_INDEX_32 1 #define R_008960_VGT_STRMOUT_BUFFER_FILLED_SIZE_0 0x008960 /* <= gfx6 */ #define R_008964_VGT_STRMOUT_BUFFER_FILLED_SIZE_1 0x008964 /* <= gfx6 */ #define R_008968_VGT_STRMOUT_BUFFER_FILLED_SIZE_2 0x008968 /* <= gfx6 */ #define R_00896C_VGT_STRMOUT_BUFFER_FILLED_SIZE_3 0x00896C /* <= gfx6 */ #define R_008970_VGT_NUM_INDICES 0x008970 /* <= gfx6 */ #define R_008974_VGT_NUM_INSTANCES 0x008974 /* <= gfx6 */ #define R_00897C_CGTT_VGT_CLK_CTRL 0x00897C /* <= gfx6 */ #define S_00897C_ON_DELAY(x) (((unsigned)(x) & 0xF) << 0) #define G_00897C_ON_DELAY(x) (((x) >> 0) & 0xF) #define C_00897C_ON_DELAY 0xFFFFFFF0 #define S_00897C_OFF_HYSTERESIS(x) (((unsigned)(x) & 0xFF) << 4) #define G_00897C_OFF_HYSTERESIS(x) (((x) >> 4) & 0xFF) #define C_00897C_OFF_HYSTERESIS 0xFFFFF00F #define S_00897C_SOFT_OVERRIDE7(x) (((unsigned)(x) & 0x1) << 24) #define G_00897C_SOFT_OVERRIDE7(x) (((x) >> 24) & 0x1) #define C_00897C_SOFT_OVERRIDE7 0xFEFFFFFF #define S_00897C_PERF_ENABLE(x) (((unsigned)(x) & 0x1) << 25) #define G_00897C_PERF_ENABLE(x) (((x) >> 25) & 0x1) #define C_00897C_PERF_ENABLE 0xFDFFFFFF #define S_00897C_DBG_ENABLE(x) (((unsigned)(x) & 0x1) << 26) #define G_00897C_DBG_ENABLE(x) (((x) >> 26) & 0x1) #define C_00897C_DBG_ENABLE 0xFBFFFFFF #define S_00897C_SOFT_OVERRIDE4(x) (((unsigned)(x) & 0x1) << 27) #define G_00897C_SOFT_OVERRIDE4(x) (((x) >> 27) & 0x1) #define C_00897C_SOFT_OVERRIDE4 0xF7FFFFFF #define S_00897C_SOFT_OVERRIDE3(x) (((unsigned)(x) & 0x1) << 28) #define G_00897C_SOFT_OVERRIDE3(x) (((x) >> 28) & 0x1) #define C_00897C_SOFT_OVERRIDE3 0xEFFFFFFF #define S_00897C_GS_OVERRIDE(x) (((unsigned)(x) & 0x1) << 29) #define G_00897C_GS_OVERRIDE(x) (((x) >> 29) & 0x1) #define C_00897C_GS_OVERRIDE 0xDFFFFFFF #define S_00897C_CORE_OVERRIDE(x) (((unsigned)(x) & 0x1) << 30) #define G_00897C_CORE_OVERRIDE(x) (((x) >> 30) & 0x1) #define C_00897C_CORE_OVERRIDE 0xBFFFFFFF #define S_00897C_REG_OVERRIDE(x) (((unsigned)(x) & 0x1) << 31) #define G_00897C_REG_OVERRIDE(x) (((x) >> 31) & 0x1) #define C_00897C_REG_OVERRIDE 0x7FFFFFFF #define R_008980_IA_VMID_OVERRIDE 0x008980 /* <= gfx6 */ #define S_008980_ENABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_008980_ENABLE(x) (((x) >> 0) & 0x1) #define C_008980_ENABLE 0xFFFFFFFE #define S_008980_VMID(x) (((unsigned)(x) & 0xF) << 1) #define G_008980_VMID(x) (((x) >> 1) & 0xF) #define C_008980_VMID 0xFFFFFFE1 #define R_008984_CGTT_IA_CLK_CTRL 0x008984 /* <= gfx6 */ #define S_008984_ON_DELAY(x) (((unsigned)(x) & 0xF) << 0) #define G_008984_ON_DELAY(x) (((x) >> 0) & 0xF) #define C_008984_ON_DELAY 0xFFFFFFF0 #define S_008984_OFF_HYSTERESIS(x) (((unsigned)(x) & 0xFF) << 4) #define G_008984_OFF_HYSTERESIS(x) (((x) >> 4) & 0xFF) #define C_008984_OFF_HYSTERESIS 0xFFFFF00F #define S_008984_SOFT_OVERRIDE7(x) (((unsigned)(x) & 0x1) << 24) #define G_008984_SOFT_OVERRIDE7(x) (((x) >> 24) & 0x1) #define C_008984_SOFT_OVERRIDE7 0xFEFFFFFF #define S_008984_PERF_ENABLE(x) (((unsigned)(x) & 0x1) << 25) #define G_008984_PERF_ENABLE(x) (((x) >> 25) & 0x1) #define C_008984_PERF_ENABLE 0xFDFFFFFF #define S_008984_DBG_ENABLE(x) (((unsigned)(x) & 0x1) << 26) #define G_008984_DBG_ENABLE(x) (((x) >> 26) & 0x1) #define C_008984_DBG_ENABLE 0xFBFFFFFF #define S_008984_SOFT_OVERRIDE4(x) (((unsigned)(x) & 0x1) << 27) #define G_008984_SOFT_OVERRIDE4(x) (((x) >> 27) & 0x1) #define C_008984_SOFT_OVERRIDE4 0xF7FFFFFF #define S_008984_SOFT_OVERRIDE3(x) (((unsigned)(x) & 0x1) << 28) #define G_008984_SOFT_OVERRIDE3(x) (((x) >> 28) & 0x1) #define C_008984_SOFT_OVERRIDE3 0xEFFFFFFF #define S_008984_CORE_OVERRIDE(x) (((unsigned)(x) & 0x1) << 29) #define G_008984_CORE_OVERRIDE(x) (((x) >> 29) & 0x1) #define C_008984_CORE_OVERRIDE 0xDFFFFFFF #define S_008984_SOFT_OVERRIDE2(x) (((unsigned)(x) & 0x1) << 29) #define G_008984_SOFT_OVERRIDE2(x) (((x) >> 29) & 0x1) #define C_008984_SOFT_OVERRIDE2 0xDFFFFFFF #define S_008984_REG_OVERRIDE(x) (((unsigned)(x) & 0x1) << 31) #define G_008984_REG_OVERRIDE(x) (((x) >> 31) & 0x1) #define C_008984_REG_OVERRIDE 0x7FFFFFFF #define R_008988_VGT_TF_RING_SIZE 0x008988 /* <= gfx6 */ #define S_008988_SIZE(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_008988_SIZE(x) (((x) >> 0) & 0xFFFF) #define C_008988_SIZE 0xFFFF0000 #define R_00898C_VGT_SYS_CONFIG 0x00898C /* <= gfx6 */ #define S_00898C_DUAL_CORE_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_00898C_DUAL_CORE_EN(x) (((x) >> 0) & 0x1) #define C_00898C_DUAL_CORE_EN 0xFFFFFFFE #define S_00898C_MAX_LS_HS_THDGRP(x) (((unsigned)(x) & 0x3F) << 1) #define G_00898C_MAX_LS_HS_THDGRP(x) (((x) >> 1) & 0x3F) #define C_00898C_MAX_LS_HS_THDGRP 0xFFFFFF81 #define S_00898C_ADC_EVENT_FILTER_DISABLE(x) (((unsigned)(x) & 0x1) << 7) #define G_00898C_ADC_EVENT_FILTER_DISABLE(x) (((x) >> 7) & 0x1) #define C_00898C_ADC_EVENT_FILTER_DISABLE 0xFFFFFF7F #define R_0089B0_VGT_HS_OFFCHIP_PARAM 0x0089B0 /* <= gfx6 */ #define S_0089B0_OFFCHIP_BUFFERING(x) (((unsigned)(x) & 0x7F) << 0) #define G_0089B0_OFFCHIP_BUFFERING(x) (((x) >> 0) & 0x7F) #define C_0089B0_OFFCHIP_BUFFERING 0xFFFFFF80 #define S_0089B0_OFFCHIP_GRANULARITY(x) (((unsigned)(x) & 0x3) << 9) #define G_0089B0_OFFCHIP_GRANULARITY(x) (((x) >> 9) & 0x3) #define C_0089B0_OFFCHIP_GRANULARITY 0xFFFFF9FF #define V_0089B0_X_8K_DWORDS 0 #define V_0089B0_X_4K_DWORDS 1 #define V_0089B0_X_2K_DWORDS 2 #define V_0089B0_X_1K_DWORDS 3 #define R_0089B8_VGT_TF_MEMORY_BASE 0x0089B8 /* <= gfx6 */ #define R_0089BC_CC_GC_SHADER_ARRAY_CONFIG 0x0089BC /* <= gfx6 */ #define S_0089BC_DPFP_RATE(x) (((unsigned)(x) & 0x3) << 1) #define G_0089BC_DPFP_RATE(x) (((x) >> 1) & 0x3) #define C_0089BC_DPFP_RATE 0xFFFFFFF9 #define S_0089BC_SQC_BALANCE_DISABLE(x) (((unsigned)(x) & 0x1) << 3) #define G_0089BC_SQC_BALANCE_DISABLE(x) (((x) >> 3) & 0x1) #define C_0089BC_SQC_BALANCE_DISABLE 0xFFFFFFF7 #define S_0089BC_HALF_LDS(x) (((unsigned)(x) & 0x1) << 4) #define G_0089BC_HALF_LDS(x) (((x) >> 4) & 0x1) #define C_0089BC_HALF_LDS 0xFFFFFFEF #define S_0089BC_INACTIVE_CUS(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_0089BC_INACTIVE_CUS(x) (((x) >> 16) & 0xFFFF) #define C_0089BC_INACTIVE_CUS 0x0000FFFF #define R_0089C0_GC_USER_SHADER_ARRAY_CONFIG 0x0089C0 /* <= gfx6 */ #define S_0089C0_DPFP_RATE(x) (((unsigned)(x) & 0x3) << 1) #define G_0089C0_DPFP_RATE(x) (((x) >> 1) & 0x3) #define C_0089C0_DPFP_RATE 0xFFFFFFF9 #define S_0089C0_SQC_BALANCE_DISABLE(x) (((unsigned)(x) & 0x1) << 3) #define G_0089C0_SQC_BALANCE_DISABLE(x) (((x) >> 3) & 0x1) #define C_0089C0_SQC_BALANCE_DISABLE 0xFFFFFFF7 #define S_0089C0_HALF_LDS(x) (((unsigned)(x) & 0x1) << 4) #define G_0089C0_HALF_LDS(x) (((x) >> 4) & 0x1) #define C_0089C0_HALF_LDS 0xFFFFFFEF #define S_0089C0_INACTIVE_CUS(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_0089C0_INACTIVE_CUS(x) (((x) >> 16) & 0xFFFF) #define C_0089C0_INACTIVE_CUS 0x0000FFFF #define R_008A00_PA_SU_DEBUG_CNTL 0x008A00 /* <= gfx6 */ #define S_008A00_SU_DEBUG_INDX(x) (((unsigned)(x) & 0x1F) << 0) #define G_008A00_SU_DEBUG_INDX(x) (((x) >> 0) & 0x1F) #define C_008A00_SU_DEBUG_INDX 0xFFFFFFE0 #define R_008A04_PA_SU_DEBUG_DATA 0x008A04 /* <= gfx6 */ #define R_008A10_PA_CL_CNTL_STATUS 0x008A10 /* <= gfx6 */ #define S_008A10_CL_BUSY(x) (((unsigned)(x) & 0x1) << 31) #define G_008A10_CL_BUSY(x) (((x) >> 31) & 0x1) #define C_008A10_CL_BUSY 0x7FFFFFFF #define R_008A14_PA_CL_ENHANCE 0x008A14 /* <= gfx6 */ #define S_008A14_CLIP_VTX_REORDER_ENA(x) (((unsigned)(x) & 0x1) << 0) #define G_008A14_CLIP_VTX_REORDER_ENA(x) (((x) >> 0) & 0x1) #define C_008A14_CLIP_VTX_REORDER_ENA 0xFFFFFFFE #define S_008A14_NUM_CLIP_SEQ(x) (((unsigned)(x) & 0x3) << 1) #define G_008A14_NUM_CLIP_SEQ(x) (((x) >> 1) & 0x3) #define C_008A14_NUM_CLIP_SEQ 0xFFFFFFF9 #define S_008A14_CLIPPED_PRIM_SEQ_STALL(x) (((unsigned)(x) & 0x1) << 3) #define G_008A14_CLIPPED_PRIM_SEQ_STALL(x) (((x) >> 3) & 0x1) #define C_008A14_CLIPPED_PRIM_SEQ_STALL 0xFFFFFFF7 #define S_008A14_VE_NAN_PROC_DISABLE(x) (((unsigned)(x) & 0x1) << 4) #define G_008A14_VE_NAN_PROC_DISABLE(x) (((x) >> 4) & 0x1) #define C_008A14_VE_NAN_PROC_DISABLE 0xFFFFFFEF #define S_008A14_XTRA_DEBUG_REG_SEL(x) (((unsigned)(x) & 0x1) << 5) #define G_008A14_XTRA_DEBUG_REG_SEL(x) (((x) >> 5) & 0x1) #define C_008A14_XTRA_DEBUG_REG_SEL 0xFFFFFFDF #define S_008A14_ECO_SPARE3(x) (((unsigned)(x) & 0x1) << 28) #define G_008A14_ECO_SPARE3(x) (((x) >> 28) & 0x1) #define C_008A14_ECO_SPARE3 0xEFFFFFFF #define S_008A14_ECO_SPARE2(x) (((unsigned)(x) & 0x1) << 29) #define G_008A14_ECO_SPARE2(x) (((x) >> 29) & 0x1) #define C_008A14_ECO_SPARE2 0xDFFFFFFF #define S_008A14_ECO_SPARE1(x) (((unsigned)(x) & 0x1) << 30) #define G_008A14_ECO_SPARE1(x) (((x) >> 30) & 0x1) #define C_008A14_ECO_SPARE1 0xBFFFFFFF #define S_008A14_ECO_SPARE0(x) (((unsigned)(x) & 0x1) << 31) #define G_008A14_ECO_SPARE0(x) (((x) >> 31) & 0x1) #define C_008A14_ECO_SPARE0 0x7FFFFFFF #define R_008A18_CGTT_PA_CLK_CTRL 0x008A18 /* <= gfx6 */ #define S_008A18_ON_DELAY(x) (((unsigned)(x) & 0xF) << 0) #define G_008A18_ON_DELAY(x) (((x) >> 0) & 0xF) #define C_008A18_ON_DELAY 0xFFFFFFF0 #define S_008A18_OFF_HYSTERESIS(x) (((unsigned)(x) & 0xFF) << 4) #define G_008A18_OFF_HYSTERESIS(x) (((x) >> 4) & 0xFF) #define C_008A18_OFF_HYSTERESIS 0xFFFFF00F #define S_008A18_SOFT_OVERRIDE7(x) (((unsigned)(x) & 0x1) << 24) #define G_008A18_SOFT_OVERRIDE7(x) (((x) >> 24) & 0x1) #define C_008A18_SOFT_OVERRIDE7 0xFEFFFFFF #define S_008A18_SOFT_OVERRIDE6(x) (((unsigned)(x) & 0x1) << 25) #define G_008A18_SOFT_OVERRIDE6(x) (((x) >> 25) & 0x1) #define C_008A18_SOFT_OVERRIDE6 0xFDFFFFFF #define S_008A18_SOFT_OVERRIDE5(x) (((unsigned)(x) & 0x1) << 26) #define G_008A18_SOFT_OVERRIDE5(x) (((x) >> 26) & 0x1) #define C_008A18_SOFT_OVERRIDE5 0xFBFFFFFF #define S_008A18_SOFT_OVERRIDE4(x) (((unsigned)(x) & 0x1) << 27) #define G_008A18_SOFT_OVERRIDE4(x) (((x) >> 27) & 0x1) #define C_008A18_SOFT_OVERRIDE4 0xF7FFFFFF #define S_008A18_SOFT_OVERRIDE3(x) (((unsigned)(x) & 0x1) << 28) #define G_008A18_SOFT_OVERRIDE3(x) (((x) >> 28) & 0x1) #define C_008A18_SOFT_OVERRIDE3 0xEFFFFFFF #define S_008A18_SU_CLK_OVERRIDE(x) (((unsigned)(x) & 0x1) << 29) #define G_008A18_SU_CLK_OVERRIDE(x) (((x) >> 29) & 0x1) #define C_008A18_SU_CLK_OVERRIDE 0xDFFFFFFF #define S_008A18_CL_CLK_OVERRIDE(x) (((unsigned)(x) & 0x1) << 30) #define G_008A18_CL_CLK_OVERRIDE(x) (((x) >> 30) & 0x1) #define C_008A18_CL_CLK_OVERRIDE 0xBFFFFFFF #define S_008A18_REG_CLK_OVERRIDE(x) (((unsigned)(x) & 0x1) << 31) #define G_008A18_REG_CLK_OVERRIDE(x) (((x) >> 31) & 0x1) #define C_008A18_REG_CLK_OVERRIDE 0x7FFFFFFF #define R_008A20_PA_SU_PERFCOUNTER0_SELECT 0x008A20 /* <= gfx6 */ #define S_008A20_PERF_SEL(x) (((unsigned)(x) & 0xFF) << 0) #define G_008A20_PERF_SEL(x) (((x) >> 0) & 0xFF) #define C_008A20_PERF_SEL 0xFFFFFF00 #define S_008A20_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_008A20_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_008A20_PERF_SEL1 0xFFF003FF #define S_008A20_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_008A20_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_008A20_CNTR_MODE 0xFF0FFFFF #define R_008A24_PA_SU_PERFCOUNTER1_SELECT 0x008A24 /* <= gfx6 */ #define R_008A28_PA_SU_PERFCOUNTER2_SELECT 0x008A28 /* <= gfx6 */ #define S_008A28_PERF_SEL(x) (((unsigned)(x) & 0xFF) << 0) #define G_008A28_PERF_SEL(x) (((x) >> 0) & 0xFF) #define C_008A28_PERF_SEL 0xFFFFFF00 #define S_008A28_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_008A28_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_008A28_CNTR_MODE 0xFF0FFFFF #define R_008A2C_PA_SU_PERFCOUNTER3_SELECT 0x008A2C /* <= gfx6 */ #define R_008A30_PA_SU_PERFCOUNTER0_LO 0x008A30 /* <= gfx6 */ #define R_008A34_PA_SU_PERFCOUNTER0_HI 0x008A34 /* <= gfx6 */ #define S_008A34_PERFCOUNTER_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_008A34_PERFCOUNTER_HI(x) (((x) >> 0) & 0xFFFF) #define C_008A34_PERFCOUNTER_HI 0xFFFF0000 #define R_008A38_PA_SU_PERFCOUNTER1_LO 0x008A38 /* <= gfx6 */ #define R_008A3C_PA_SU_PERFCOUNTER1_HI 0x008A3C /* <= gfx6 */ #define R_008A40_PA_SU_PERFCOUNTER2_LO 0x008A40 /* <= gfx6 */ #define R_008A44_PA_SU_PERFCOUNTER2_HI 0x008A44 /* <= gfx6 */ #define R_008A48_PA_SU_PERFCOUNTER3_LO 0x008A48 /* <= gfx6 */ #define R_008A4C_PA_SU_PERFCOUNTER3_HI 0x008A4C /* <= gfx6 */ #define R_008A50_PA_SU_CNTL_STATUS 0x008A50 /* <= gfx6 */ #define S_008A50_SU_BUSY(x) (((unsigned)(x) & 0x1) << 31) #define G_008A50_SU_BUSY(x) (((x) >> 31) & 0x1) #define C_008A50_SU_BUSY 0x7FFFFFFF #define R_008A54_PA_SC_FIFO_DEPTH_CNTL 0x008A54 /* <= gfx6 */ #define S_008A54_DEPTH(x) (((unsigned)(x) & 0xFF) << 0) #define G_008A54_DEPTH(x) (((x) >> 0) & 0xFF) #define C_008A54_DEPTH 0xFFFFFF00 #define R_008A60_PA_SU_LINE_STIPPLE_VALUE 0x008A60 /* <= gfx6 */ #define S_008A60_LINE_STIPPLE_VALUE(x) (((unsigned)(x) & 0xFFFFFF) << 0) #define G_008A60_LINE_STIPPLE_VALUE(x) (((x) >> 0) & 0xFFFFFF) #define C_008A60_LINE_STIPPLE_VALUE 0xFF000000 #define R_008A80_PA_SC_PERFCOUNTER0_SELECT 0x008A80 /* <= gfx6 */ #define S_008A80_PERF_SEL(x) (((unsigned)(x) & 0x1FF) << 0) #define G_008A80_PERF_SEL(x) (((x) >> 0) & 0x1FF) #define C_008A80_PERF_SEL 0xFFFFFE00 #define S_008A80_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_008A80_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_008A80_PERF_SEL1 0xFFF003FF #define S_008A80_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_008A80_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_008A80_CNTR_MODE 0xFF0FFFFF #define R_008A84_PA_SC_PERFCOUNTER1_SELECT 0x008A84 /* <= gfx6 */ #define S_008A84_PERF_SEL(x) (((unsigned)(x) & 0x1FF) << 0) #define G_008A84_PERF_SEL(x) (((x) >> 0) & 0x1FF) #define C_008A84_PERF_SEL 0xFFFFFE00 #define R_008A88_PA_SC_PERFCOUNTER2_SELECT 0x008A88 /* <= gfx6 */ #define R_008A8C_PA_SC_PERFCOUNTER3_SELECT 0x008A8C /* <= gfx6 */ #define R_008A90_PA_SC_PERFCOUNTER4_SELECT 0x008A90 /* <= gfx6 */ #define R_008A94_PA_SC_PERFCOUNTER5_SELECT 0x008A94 /* <= gfx6 */ #define R_008A98_PA_SC_PERFCOUNTER6_SELECT 0x008A98 /* <= gfx6 */ #define R_008A9C_PA_SC_PERFCOUNTER7_SELECT 0x008A9C /* <= gfx6 */ #define R_008AA0_PA_SC_PERFCOUNTER0_LO 0x008AA0 /* <= gfx6 */ #define R_008AA4_PA_SC_PERFCOUNTER0_HI 0x008AA4 /* <= gfx6 */ #define R_008AA8_PA_SC_PERFCOUNTER1_LO 0x008AA8 /* <= gfx6 */ #define R_008AAC_PA_SC_PERFCOUNTER1_HI 0x008AAC /* <= gfx6 */ #define R_008AB0_PA_SC_PERFCOUNTER2_LO 0x008AB0 /* <= gfx6 */ #define R_008AB4_PA_SC_PERFCOUNTER2_HI 0x008AB4 /* <= gfx6 */ #define R_008AB8_PA_SC_PERFCOUNTER3_LO 0x008AB8 /* <= gfx6 */ #define R_008ABC_PA_SC_PERFCOUNTER3_HI 0x008ABC /* <= gfx6 */ #define R_008AC0_PA_SC_PERFCOUNTER4_LO 0x008AC0 /* <= gfx6 */ #define R_008AC4_PA_SC_PERFCOUNTER4_HI 0x008AC4 /* <= gfx6 */ #define R_008AC8_PA_SC_PERFCOUNTER5_LO 0x008AC8 /* <= gfx6 */ #define R_008ACC_PA_SC_PERFCOUNTER5_HI 0x008ACC /* <= gfx6 */ #define R_008AD0_PA_SC_PERFCOUNTER6_LO 0x008AD0 /* <= gfx6 */ #define R_008AD4_PA_SC_PERFCOUNTER6_HI 0x008AD4 /* <= gfx6 */ #define R_008AD8_PA_SC_PERFCOUNTER7_LO 0x008AD8 /* <= gfx6 */ #define R_008ADC_PA_SC_PERFCOUNTER7_HI 0x008ADC /* <= gfx6 */ #define R_008B10_PA_SC_LINE_STIPPLE_STATE 0x008B10 /* <= gfx6 */ #define S_008B10_CURRENT_PTR(x) (((unsigned)(x) & 0xF) << 0) #define G_008B10_CURRENT_PTR(x) (((x) >> 0) & 0xF) #define C_008B10_CURRENT_PTR 0xFFFFFFF0 #define S_008B10_CURRENT_COUNT(x) (((unsigned)(x) & 0xFF) << 8) #define G_008B10_CURRENT_COUNT(x) (((x) >> 8) & 0xFF) #define C_008B10_CURRENT_COUNT 0xFFFF00FF #define R_008B24_PA_SC_FORCE_EOV_MAX_CNTS 0x008B24 /* <= gfx6 */ #define S_008B24_FORCE_EOV_MAX_CLK_CNT(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_008B24_FORCE_EOV_MAX_CLK_CNT(x) (((x) >> 0) & 0xFFFF) #define C_008B24_FORCE_EOV_MAX_CLK_CNT 0xFFFF0000 #define S_008B24_FORCE_EOV_MAX_REZ_CNT(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_008B24_FORCE_EOV_MAX_REZ_CNT(x) (((x) >> 16) & 0xFFFF) #define C_008B24_FORCE_EOV_MAX_REZ_CNT 0x0000FFFF #define R_008B28_CGTT_SC_CLK_CTRL 0x008B28 /* <= gfx6 */ #define S_008B28_ON_DELAY(x) (((unsigned)(x) & 0xF) << 0) #define G_008B28_ON_DELAY(x) (((x) >> 0) & 0xF) #define C_008B28_ON_DELAY 0xFFFFFFF0 #define S_008B28_OFF_HYSTERESIS(x) (((unsigned)(x) & 0xFF) << 4) #define G_008B28_OFF_HYSTERESIS(x) (((x) >> 4) & 0xFF) #define C_008B28_OFF_HYSTERESIS 0xFFFFF00F #define S_008B28_SOFT_OVERRIDE7(x) (((unsigned)(x) & 0x1) << 24) #define G_008B28_SOFT_OVERRIDE7(x) (((x) >> 24) & 0x1) #define C_008B28_SOFT_OVERRIDE7 0xFEFFFFFF #define S_008B28_SOFT_OVERRIDE6(x) (((unsigned)(x) & 0x1) << 25) #define G_008B28_SOFT_OVERRIDE6(x) (((x) >> 25) & 0x1) #define C_008B28_SOFT_OVERRIDE6 0xFDFFFFFF #define S_008B28_SOFT_OVERRIDE5(x) (((unsigned)(x) & 0x1) << 26) #define G_008B28_SOFT_OVERRIDE5(x) (((x) >> 26) & 0x1) #define C_008B28_SOFT_OVERRIDE5 0xFBFFFFFF #define S_008B28_SOFT_OVERRIDE4(x) (((unsigned)(x) & 0x1) << 27) #define G_008B28_SOFT_OVERRIDE4(x) (((x) >> 27) & 0x1) #define C_008B28_SOFT_OVERRIDE4 0xF7FFFFFF #define S_008B28_SOFT_OVERRIDE3(x) (((unsigned)(x) & 0x1) << 28) #define G_008B28_SOFT_OVERRIDE3(x) (((x) >> 28) & 0x1) #define C_008B28_SOFT_OVERRIDE3 0xEFFFFFFF #define S_008B28_SOFT_OVERRIDE2(x) (((unsigned)(x) & 0x1) << 29) #define G_008B28_SOFT_OVERRIDE2(x) (((x) >> 29) & 0x1) #define C_008B28_SOFT_OVERRIDE2 0xDFFFFFFF #define S_008B28_SOFT_OVERRIDE1(x) (((unsigned)(x) & 0x1) << 30) #define G_008B28_SOFT_OVERRIDE1(x) (((x) >> 30) & 0x1) #define C_008B28_SOFT_OVERRIDE1 0xBFFFFFFF #define S_008B28_SOFT_OVERRIDE0(x) (((unsigned)(x) & 0x1) << 31) #define G_008B28_SOFT_OVERRIDE0(x) (((x) >> 31) & 0x1) #define C_008B28_SOFT_OVERRIDE0 0x7FFFFFFF #define R_008BCC_PA_SC_FIFO_SIZE 0x008BCC /* <= gfx6 */ #define S_008BCC_SC_FRONTEND_PRIM_FIFO_SIZE(x) (((unsigned)(x) & 0x3F) << 0) #define G_008BCC_SC_FRONTEND_PRIM_FIFO_SIZE(x) (((x) >> 0) & 0x3F) #define C_008BCC_SC_FRONTEND_PRIM_FIFO_SIZE 0xFFFFFFC0 #define S_008BCC_SC_BACKEND_PRIM_FIFO_SIZE(x) (((unsigned)(x) & 0x1FF) << 6) #define G_008BCC_SC_BACKEND_PRIM_FIFO_SIZE(x) (((x) >> 6) & 0x1FF) #define C_008BCC_SC_BACKEND_PRIM_FIFO_SIZE 0xFFFF803F #define S_008BCC_SC_HIZ_TILE_FIFO_SIZE(x) (((unsigned)(x) & 0x3F) << 15) #define G_008BCC_SC_HIZ_TILE_FIFO_SIZE(x) (((x) >> 15) & 0x3F) #define C_008BCC_SC_HIZ_TILE_FIFO_SIZE 0xFFE07FFF #define S_008BCC_SC_EARLYZ_TILE_FIFO_SIZE(x) (((unsigned)(x) & 0x1FF) << 23) #define G_008BCC_SC_EARLYZ_TILE_FIFO_SIZE(x) (((x) >> 23) & 0x1FF) #define C_008BCC_SC_EARLYZ_TILE_FIFO_SIZE 0x007FFFFF #define R_008BD4_PA_SC_IF_FIFO_SIZE 0x008BD4 /* <= gfx6 */ #define S_008BD4_SC_DB_TILE_IF_FIFO_SIZE(x) (((unsigned)(x) & 0x3F) << 0) #define G_008BD4_SC_DB_TILE_IF_FIFO_SIZE(x) (((x) >> 0) & 0x3F) #define C_008BD4_SC_DB_TILE_IF_FIFO_SIZE 0xFFFFFFC0 #define S_008BD4_SC_DB_QUAD_IF_FIFO_SIZE(x) (((unsigned)(x) & 0x3F) << 6) #define G_008BD4_SC_DB_QUAD_IF_FIFO_SIZE(x) (((x) >> 6) & 0x3F) #define C_008BD4_SC_DB_QUAD_IF_FIFO_SIZE 0xFFFFF03F #define S_008BD4_SC_SPI_IF_FIFO_SIZE(x) (((unsigned)(x) & 0x3F) << 12) #define G_008BD4_SC_SPI_IF_FIFO_SIZE(x) (((x) >> 12) & 0x3F) #define C_008BD4_SC_SPI_IF_FIFO_SIZE 0xFFFC0FFF #define S_008BD4_SC_BCI_IF_FIFO_SIZE(x) (((unsigned)(x) & 0x3F) << 18) #define G_008BD4_SC_BCI_IF_FIFO_SIZE(x) (((x) >> 18) & 0x3F) #define C_008BD4_SC_BCI_IF_FIFO_SIZE 0xFF03FFFF #define R_008BD8_PA_SC_DEBUG_CNTL 0x008BD8 /* <= gfx6 */ #define S_008BD8_SC_DEBUG_INDX(x) (((unsigned)(x) & 0x3F) << 0) #define G_008BD8_SC_DEBUG_INDX(x) (((x) >> 0) & 0x3F) #define C_008BD8_SC_DEBUG_INDX 0xFFFFFFC0 #define R_008BDC_PA_SC_DEBUG_DATA 0x008BDC /* <= gfx6 */ #define R_008BF0_PA_SC_ENHANCE 0x008BF0 /* <= gfx6 */ #define S_008BF0_ENABLE_PA_SC_OUT_OF_ORDER(x) (((unsigned)(x) & 0x1) << 0) #define G_008BF0_ENABLE_PA_SC_OUT_OF_ORDER(x) (((x) >> 0) & 0x1) #define C_008BF0_ENABLE_PA_SC_OUT_OF_ORDER 0xFFFFFFFE #define S_008BF0_DISABLE_SC_DB_TILE_FIX(x) (((unsigned)(x) & 0x1) << 1) #define G_008BF0_DISABLE_SC_DB_TILE_FIX(x) (((x) >> 1) & 0x1) #define C_008BF0_DISABLE_SC_DB_TILE_FIX 0xFFFFFFFD #define S_008BF0_DISABLE_AA_MASK_FULL_FIX(x) (((unsigned)(x) & 0x1) << 2) #define G_008BF0_DISABLE_AA_MASK_FULL_FIX(x) (((x) >> 2) & 0x1) #define C_008BF0_DISABLE_AA_MASK_FULL_FIX 0xFFFFFFFB #define S_008BF0_ENABLE_1XMSAA_SAMPLE_LOCATIONS(x) (((unsigned)(x) & 0x1) << 3) #define G_008BF0_ENABLE_1XMSAA_SAMPLE_LOCATIONS(x) (((x) >> 3) & 0x1) #define C_008BF0_ENABLE_1XMSAA_SAMPLE_LOCATIONS 0xFFFFFFF7 #define S_008BF0_ENABLE_1XMSAA_SAMPLE_LOC_CENTROID(x) (((unsigned)(x) & 0x1) << 4) #define G_008BF0_ENABLE_1XMSAA_SAMPLE_LOC_CENTROID(x) (((x) >> 4) & 0x1) #define C_008BF0_ENABLE_1XMSAA_SAMPLE_LOC_CENTROID 0xFFFFFFEF #define S_008BF0_DISABLE_SCISSOR_FIX(x) (((unsigned)(x) & 0x1) << 5) #define G_008BF0_DISABLE_SCISSOR_FIX(x) (((x) >> 5) & 0x1) #define C_008BF0_DISABLE_SCISSOR_FIX 0xFFFFFFDF #define S_008BF0_DISABLE_PW_BUBBLE_COLLAPSE(x) (((unsigned)(x) & 0x3) << 6) #define G_008BF0_DISABLE_PW_BUBBLE_COLLAPSE(x) (((x) >> 6) & 0x3) #define C_008BF0_DISABLE_PW_BUBBLE_COLLAPSE 0xFFFFFF3F #define S_008BF0_SEND_UNLIT_STILES_TO_PACKER(x) (((unsigned)(x) & 0x1) << 8) #define G_008BF0_SEND_UNLIT_STILES_TO_PACKER(x) (((x) >> 8) & 0x1) #define C_008BF0_SEND_UNLIT_STILES_TO_PACKER 0xFFFFFEFF #define S_008BF0_DISABLE_DUALGRAD_PERF_OPTIMIZATION(x) (((unsigned)(x) & 0x1) << 9) #define G_008BF0_DISABLE_DUALGRAD_PERF_OPTIMIZATION(x) (((x) >> 9) & 0x1) #define C_008BF0_DISABLE_DUALGRAD_PERF_OPTIMIZATION 0xFFFFFDFF #define S_008BF0_DISABLE_SC_PROCESS_RESET_PRIM(x) (((unsigned)(x) & 0x1) << 10) #define G_008BF0_DISABLE_SC_PROCESS_RESET_PRIM(x) (((x) >> 10) & 0x1) #define C_008BF0_DISABLE_SC_PROCESS_RESET_PRIM 0xFFFFFBFF #define S_008BF0_DISABLE_SC_PROCESS_RESET_SUPERTILE(x) (((unsigned)(x) & 0x1) << 11) #define G_008BF0_DISABLE_SC_PROCESS_RESET_SUPERTILE(x) (((x) >> 11) & 0x1) #define C_008BF0_DISABLE_SC_PROCESS_RESET_SUPERTILE 0xFFFFF7FF #define S_008BF0_DISABLE_SC_PROCESS_RESET_TILE(x) (((unsigned)(x) & 0x1) << 12) #define G_008BF0_DISABLE_SC_PROCESS_RESET_TILE(x) (((x) >> 12) & 0x1) #define C_008BF0_DISABLE_SC_PROCESS_RESET_TILE 0xFFFFEFFF #define S_008BF0_DISABLE_PA_SC_GUIDANCE(x) (((unsigned)(x) & 0x1) << 13) #define G_008BF0_DISABLE_PA_SC_GUIDANCE(x) (((x) >> 13) & 0x1) #define C_008BF0_DISABLE_PA_SC_GUIDANCE 0xFFFFDFFF #define S_008BF0_DISABLE_EOV_ALL_CTRL_ONLY_COMBINATIONS(x) (((unsigned)(x) & 0x1) << 14) #define G_008BF0_DISABLE_EOV_ALL_CTRL_ONLY_COMBINATIONS(x) (((x) >> 14) & 0x1) #define C_008BF0_DISABLE_EOV_ALL_CTRL_ONLY_COMBINATIONS 0xFFFFBFFF #define S_008BF0_ENABLE_MULTICYCLE_BUBBLE_FREEZE(x) (((unsigned)(x) & 0x1) << 15) #define G_008BF0_ENABLE_MULTICYCLE_BUBBLE_FREEZE(x) (((x) >> 15) & 0x1) #define C_008BF0_ENABLE_MULTICYCLE_BUBBLE_FREEZE 0xFFFF7FFF #define S_008BF0_DISABLE_OUT_OF_ORDER_PA_SC_GUIDANCE(x) (((unsigned)(x) & 0x1) << 16) #define G_008BF0_DISABLE_OUT_OF_ORDER_PA_SC_GUIDANCE(x) (((x) >> 16) & 0x1) #define C_008BF0_DISABLE_OUT_OF_ORDER_PA_SC_GUIDANCE 0xFFFEFFFF #define S_008BF0_ENABLE_OUT_OF_ORDER_POLY_MODE(x) (((unsigned)(x) & 0x1) << 17) #define G_008BF0_ENABLE_OUT_OF_ORDER_POLY_MODE(x) (((x) >> 17) & 0x1) #define C_008BF0_ENABLE_OUT_OF_ORDER_POLY_MODE 0xFFFDFFFF #define S_008BF0_DISABLE_OUT_OF_ORDER_EOP_SYNC_NULL_PRIMS_LAST(x) (((unsigned)(x) & 0x1) << 18) #define G_008BF0_DISABLE_OUT_OF_ORDER_EOP_SYNC_NULL_PRIMS_LAST(x) (((x) >> 18) & 0x1) #define C_008BF0_DISABLE_OUT_OF_ORDER_EOP_SYNC_NULL_PRIMS_LAST 0xFFFBFFFF #define S_008BF0_DISABLE_OUT_OF_ORDER_THRESHOLD_SWITCHING(x) (((unsigned)(x) & 0x1) << 19) #define G_008BF0_DISABLE_OUT_OF_ORDER_THRESHOLD_SWITCHING(x) (((x) >> 19) & 0x1) #define C_008BF0_DISABLE_OUT_OF_ORDER_THRESHOLD_SWITCHING 0xFFF7FFFF #define S_008BF0_ENABLE_OUT_OF_ORDER_THRESHOLD_SWITCH_AT_EOPG_ONLY(x) (((unsigned)(x) & 0x1) << 20) #define G_008BF0_ENABLE_OUT_OF_ORDER_THRESHOLD_SWITCH_AT_EOPG_ONLY(x) (((x) >> 20) & 0x1) #define C_008BF0_ENABLE_OUT_OF_ORDER_THRESHOLD_SWITCH_AT_EOPG_ONLY 0xFFEFFFFF #define S_008BF0_DISABLE_OUT_OF_ORDER_DESIRED_FIFO_EMPTY_SWITCHING(x) (((unsigned)(x) & 0x1) << 21) #define G_008BF0_DISABLE_OUT_OF_ORDER_DESIRED_FIFO_EMPTY_SWITCHING(x) (((x) >> 21) & 0x1) #define C_008BF0_DISABLE_OUT_OF_ORDER_DESIRED_FIFO_EMPTY_SWITCHING 0xFFDFFFFF #define S_008BF0_DISABLE_OUT_OF_ORDER_SELECTED_FIFO_EMPTY_SWITCHING(x) (((unsigned)(x) & 0x1) << 22) #define G_008BF0_DISABLE_OUT_OF_ORDER_SELECTED_FIFO_EMPTY_SWITCHING(x) (((x) >> 22) & 0x1) #define C_008BF0_DISABLE_OUT_OF_ORDER_SELECTED_FIFO_EMPTY_SWITCHING 0xFFBFFFFF #define S_008BF0_DISABLE_OUT_OF_ORDER_EMPTY_SWITCHING_HYSTERYSIS(x) (((unsigned)(x) & 0x1) << 23) #define G_008BF0_DISABLE_OUT_OF_ORDER_EMPTY_SWITCHING_HYSTERYSIS(x) (((x) >> 23) & 0x1) #define C_008BF0_DISABLE_OUT_OF_ORDER_EMPTY_SWITCHING_HYSTERYSIS 0xFF7FFFFF #define S_008BF0_ENABLE_OUT_OF_ORDER_DESIRED_FIFO_IS_NEXT_FEID(x) (((unsigned)(x) & 0x1) << 24) #define G_008BF0_ENABLE_OUT_OF_ORDER_DESIRED_FIFO_IS_NEXT_FEID(x) (((x) >> 24) & 0x1) #define C_008BF0_ENABLE_OUT_OF_ORDER_DESIRED_FIFO_IS_NEXT_FEID 0xFEFFFFFF #define S_008BF0_ECO_SPARE1(x) (((unsigned)(x) & 0x1) << 30) #define G_008BF0_ECO_SPARE1(x) (((x) >> 30) & 0x1) #define C_008BF0_ECO_SPARE1 0xBFFFFFFF #define S_008BF0_ECO_SPARE0(x) (((unsigned)(x) & 0x1) << 31) #define G_008BF0_ECO_SPARE0(x) (((x) >> 31) & 0x1) #define C_008BF0_ECO_SPARE0 0x7FFFFFFF #define R_008C00_SQ_CONFIG 0x008C00 /* <= gfx6 */ #define S_008C00_UNUSED(x) (((unsigned)(x) & 0xFF) << 0) #define G_008C00_UNUSED(x) (((x) >> 0) & 0xFF) #define C_008C00_UNUSED 0xFFFFFF00 #define S_008C00_DEBUG_EN(x) (((unsigned)(x) & 0x1) << 8) #define G_008C00_DEBUG_EN(x) (((x) >> 8) & 0x1) #define C_008C00_DEBUG_EN 0xFFFFFEFF #define S_008C00_DISABLE_SCA_BYPASS(x) (((unsigned)(x) & 0x1) << 9) #define G_008C00_DISABLE_SCA_BYPASS(x) (((x) >> 9) & 0x1) #define C_008C00_DISABLE_SCA_BYPASS 0xFFFFFDFF #define S_008C00_DISABLE_IB_DEP_CHECK(x) (((unsigned)(x) & 0x1) << 10) #define G_008C00_DISABLE_IB_DEP_CHECK(x) (((x) >> 10) & 0x1) #define C_008C00_DISABLE_IB_DEP_CHECK 0xFFFFFBFF #define S_008C00_ENABLE_SOFT_CLAUSE(x) (((unsigned)(x) & 0x1) << 11) #define G_008C00_ENABLE_SOFT_CLAUSE(x) (((x) >> 11) & 0x1) #define C_008C00_ENABLE_SOFT_CLAUSE 0xFFFFF7FF #define S_008C00_EARLY_TA_DONE_DISABLE(x) (((unsigned)(x) & 0x1) << 12) #define G_008C00_EARLY_TA_DONE_DISABLE(x) (((x) >> 12) & 0x1) #define C_008C00_EARLY_TA_DONE_DISABLE 0xFFFFEFFF #define S_008C00_DUA_FLAT_LOCK_ENABLE(x) (((unsigned)(x) & 0x1) << 13) #define G_008C00_DUA_FLAT_LOCK_ENABLE(x) (((x) >> 13) & 0x1) #define C_008C00_DUA_FLAT_LOCK_ENABLE 0xFFFFDFFF #define S_008C00_DUA_LDS_BYPASS_DISABLE(x) (((unsigned)(x) & 0x1) << 14) #define G_008C00_DUA_LDS_BYPASS_DISABLE(x) (((x) >> 14) & 0x1) #define C_008C00_DUA_LDS_BYPASS_DISABLE 0xFFFFBFFF #define S_008C00_DUA_FLAT_LDS_PINGPONG_DISABLE(x) (((unsigned)(x) & 0x1) << 15) #define G_008C00_DUA_FLAT_LDS_PINGPONG_DISABLE(x) (((x) >> 15) & 0x1) #define C_008C00_DUA_FLAT_LDS_PINGPONG_DISABLE 0xFFFF7FFF #define R_008C04_SQC_CONFIG 0x008C04 /* <= gfx6 */ #define S_008C04_INST_CACHE_SIZE(x) (((unsigned)(x) & 0x3) << 0) #define G_008C04_INST_CACHE_SIZE(x) (((x) >> 0) & 0x3) #define C_008C04_INST_CACHE_SIZE 0xFFFFFFFC #define S_008C04_DATA_CACHE_SIZE(x) (((unsigned)(x) & 0x3) << 2) #define G_008C04_DATA_CACHE_SIZE(x) (((x) >> 2) & 0x3) #define C_008C04_DATA_CACHE_SIZE 0xFFFFFFF3 #define S_008C04_MISS_FIFO_DEPTH(x) (((unsigned)(x) & 0x3) << 4) #define G_008C04_MISS_FIFO_DEPTH(x) (((x) >> 4) & 0x3) #define C_008C04_MISS_FIFO_DEPTH 0xFFFFFFCF #define S_008C04_HIT_FIFO_DEPTH(x) (((unsigned)(x) & 0x1) << 6) #define G_008C04_HIT_FIFO_DEPTH(x) (((x) >> 6) & 0x1) #define C_008C04_HIT_FIFO_DEPTH 0xFFFFFFBF #define S_008C04_FORCE_ALWAYS_MISS(x) (((unsigned)(x) & 0x1) << 7) #define G_008C04_FORCE_ALWAYS_MISS(x) (((x) >> 7) & 0x1) #define C_008C04_FORCE_ALWAYS_MISS 0xFFFFFF7F #define S_008C04_FORCE_IN_ORDER(x) (((unsigned)(x) & 0x1) << 8) #define G_008C04_FORCE_IN_ORDER(x) (((x) >> 8) & 0x1) #define C_008C04_FORCE_IN_ORDER 0xFFFFFEFF #define S_008C04_IDENTITY_HASH_BANK(x) (((unsigned)(x) & 0x1) << 9) #define G_008C04_IDENTITY_HASH_BANK(x) (((x) >> 9) & 0x1) #define C_008C04_IDENTITY_HASH_BANK 0xFFFFFDFF #define S_008C04_IDENTITY_HASH_SET(x) (((unsigned)(x) & 0x1) << 10) #define G_008C04_IDENTITY_HASH_SET(x) (((x) >> 10) & 0x1) #define C_008C04_IDENTITY_HASH_SET 0xFFFFFBFF #define S_008C04_PER_VMID_INV_DISABLE(x) (((unsigned)(x) & 0x1) << 11) #define G_008C04_PER_VMID_INV_DISABLE(x) (((x) >> 11) & 0x1) #define C_008C04_PER_VMID_INV_DISABLE 0xFFFFF7FF #define R_008C08_SQC_CACHES 0x008C08 /* <= gfx6 */ #define S_008C08_INST_INVALIDATE(x) (((unsigned)(x) & 0x1) << 0) #define G_008C08_INST_INVALIDATE(x) (((x) >> 0) & 0x1) #define C_008C08_INST_INVALIDATE 0xFFFFFFFE #define S_008C08_DATA_INVALIDATE(x) (((unsigned)(x) & 0x1) << 1) #define G_008C08_DATA_INVALIDATE(x) (((x) >> 1) & 0x1) #define C_008C08_DATA_INVALIDATE 0xFFFFFFFD #define S_008C08_INVALIDATE_VOLATILE(x) (((unsigned)(x) & 0x1) << 2) #define G_008C08_INVALIDATE_VOLATILE(x) (((x) >> 2) & 0x1) #define C_008C08_INVALIDATE_VOLATILE 0xFFFFFFFB #define R_008C0C_SQ_RANDOM_WAVE_PRI 0x008C0C /* <= gfx6 */ #define S_008C0C_RET(x) (((unsigned)(x) & 0x7F) << 0) #define G_008C0C_RET(x) (((x) >> 0) & 0x7F) #define C_008C0C_RET 0xFFFFFF80 #define S_008C0C_RUI(x) (((unsigned)(x) & 0x7) << 7) #define G_008C0C_RUI(x) (((x) >> 7) & 0x7) #define C_008C0C_RUI 0xFFFFFC7F #define S_008C0C_RNG(x) (((unsigned)(x) & 0x7FF) << 10) #define G_008C0C_RNG(x) (((x) >> 10) & 0x7FF) #define C_008C0C_RNG 0xFFE003FF #define R_008C10_SQ_REG_CREDITS 0x008C10 /* <= gfx6 */ #define S_008C10_SRBM_CREDITS(x) (((unsigned)(x) & 0x3F) << 0) #define G_008C10_SRBM_CREDITS(x) (((x) >> 0) & 0x3F) #define C_008C10_SRBM_CREDITS 0xFFFFFFC0 #define S_008C10_CMD_CREDITS(x) (((unsigned)(x) & 0xF) << 8) #define G_008C10_CMD_CREDITS(x) (((x) >> 8) & 0xF) #define C_008C10_CMD_CREDITS 0xFFFFF0FF #define S_008C10_REG_BUSY(x) (((unsigned)(x) & 0x1) << 28) #define G_008C10_REG_BUSY(x) (((x) >> 28) & 0x1) #define C_008C10_REG_BUSY 0xEFFFFFFF #define S_008C10_SRBM_OVERFLOW(x) (((unsigned)(x) & 0x1) << 29) #define G_008C10_SRBM_OVERFLOW(x) (((x) >> 29) & 0x1) #define C_008C10_SRBM_OVERFLOW 0xDFFFFFFF #define S_008C10_IMMED_OVERFLOW(x) (((unsigned)(x) & 0x1) << 30) #define G_008C10_IMMED_OVERFLOW(x) (((x) >> 30) & 0x1) #define C_008C10_IMMED_OVERFLOW 0xBFFFFFFF #define S_008C10_CMD_OVERFLOW(x) (((unsigned)(x) & 0x1) << 31) #define G_008C10_CMD_OVERFLOW(x) (((x) >> 31) & 0x1) #define C_008C10_CMD_OVERFLOW 0x7FFFFFFF #define R_008C14_SQ_FIFO_SIZES 0x008C14 /* <= gfx6 */ #define S_008C14_INTERRUPT_FIFO_SIZE(x) (((unsigned)(x) & 0xF) << 0) #define G_008C14_INTERRUPT_FIFO_SIZE(x) (((x) >> 0) & 0xF) #define C_008C14_INTERRUPT_FIFO_SIZE 0xFFFFFFF0 #define S_008C14_TTRACE_FIFO_SIZE(x) (((unsigned)(x) & 0xF) << 8) #define G_008C14_TTRACE_FIFO_SIZE(x) (((x) >> 8) & 0xF) #define C_008C14_TTRACE_FIFO_SIZE 0xFFFFF0FF #define S_008C14_EXPORT_BUF_SIZE(x) (((unsigned)(x) & 0x3) << 16) #define G_008C14_EXPORT_BUF_SIZE(x) (((x) >> 16) & 0x3) #define C_008C14_EXPORT_BUF_SIZE 0xFFFCFFFF #define S_008C14_VMEM_DATA_FIFO_SIZE(x) (((unsigned)(x) & 0x3) << 18) #define G_008C14_VMEM_DATA_FIFO_SIZE(x) (((x) >> 18) & 0x3) #define C_008C14_VMEM_DATA_FIFO_SIZE 0xFFF3FFFF #define R_008C18_SQ_PERFCOUNTER_CTRL 0x008C18 /* <= gfx6 */ #define S_008C18_PS_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_008C18_PS_EN(x) (((x) >> 0) & 0x1) #define C_008C18_PS_EN 0xFFFFFFFE #define S_008C18_VS_EN(x) (((unsigned)(x) & 0x1) << 1) #define G_008C18_VS_EN(x) (((x) >> 1) & 0x1) #define C_008C18_VS_EN 0xFFFFFFFD #define V_008C18_VS_STAGE_REAL 0 #define V_008C18_VS_STAGE_DS 1 #define V_008C18_VS_STAGE_COPY_SHADER 2 #define V_008C18_RESERVED_VS 3 #define S_008C18_GS_EN(x) (((unsigned)(x) & 0x1) << 2) #define G_008C18_GS_EN(x) (((x) >> 2) & 0x1) #define C_008C18_GS_EN 0xFFFFFFFB #define V_008C18_GS_STAGE_OFF 0 #define V_008C18_GS_STAGE_ON 1 #define S_008C18_ES_EN(x) (((unsigned)(x) & 0x1) << 3) #define G_008C18_ES_EN(x) (((x) >> 3) & 0x1) #define C_008C18_ES_EN 0xFFFFFFF7 #define V_008C18_ES_STAGE_OFF 0 #define V_008C18_ES_STAGE_DS 1 #define V_008C18_ES_STAGE_REAL 2 #define V_008C18_RESERVED_ES 3 #define S_008C18_HS_EN(x) (((unsigned)(x) & 0x1) << 4) #define G_008C18_HS_EN(x) (((x) >> 4) & 0x1) #define C_008C18_HS_EN 0xFFFFFFEF #define V_008C18_HS_STAGE_OFF 0 #define V_008C18_HS_STAGE_ON 1 #define S_008C18_LS_EN(x) (((unsigned)(x) & 0x1) << 5) #define G_008C18_LS_EN(x) (((x) >> 5) & 0x1) #define C_008C18_LS_EN 0xFFFFFFDF #define V_008C18_LS_STAGE_OFF 0 #define V_008C18_LS_STAGE_ON 1 #define V_008C18_CS_STAGE_ON 2 #define V_008C18_RESERVED_LS 3 #define S_008C18_CS_EN(x) (((unsigned)(x) & 0x1) << 6) #define G_008C18_CS_EN(x) (((x) >> 6) & 0x1) #define C_008C18_CS_EN 0xFFFFFFBF #define S_008C18_CNTR_RATE(x) (((unsigned)(x) & 0x1F) << 8) #define G_008C18_CNTR_RATE(x) (((x) >> 8) & 0x1F) #define C_008C18_CNTR_RATE 0xFFFFE0FF #define S_008C18_DISABLE_FLUSH(x) (((unsigned)(x) & 0x1) << 13) #define G_008C18_DISABLE_FLUSH(x) (((x) >> 13) & 0x1) #define C_008C18_DISABLE_FLUSH 0xFFFFDFFF #define R_008C1C_CC_SQC_BANK_DISABLE 0x008C1C /* <= gfx6 */ #define S_008C1C_SQC0_BANK_DISABLE(x) (((unsigned)(x) & 0xF) << 16) #define G_008C1C_SQC0_BANK_DISABLE(x) (((x) >> 16) & 0xF) #define C_008C1C_SQC0_BANK_DISABLE 0xFFF0FFFF #define S_008C1C_SQC1_BANK_DISABLE(x) (((unsigned)(x) & 0xF) << 20) #define G_008C1C_SQC1_BANK_DISABLE(x) (((x) >> 20) & 0xF) #define C_008C1C_SQC1_BANK_DISABLE 0xFF0FFFFF #define S_008C1C_SQC2_BANK_DISABLE(x) (((unsigned)(x) & 0xF) << 24) #define G_008C1C_SQC2_BANK_DISABLE(x) (((x) >> 24) & 0xF) #define C_008C1C_SQC2_BANK_DISABLE 0xF0FFFFFF #define S_008C1C_SQC3_BANK_DISABLE(x) (((unsigned)(x) & 0xF) << 28) #define G_008C1C_SQC3_BANK_DISABLE(x) (((x) >> 28) & 0xF) #define C_008C1C_SQC3_BANK_DISABLE 0x0FFFFFFF #define R_008C20_USER_SQC_BANK_DISABLE 0x008C20 /* <= gfx6 */ #define S_008C20_SQC0_BANK_DISABLE(x) (((unsigned)(x) & 0xF) << 16) #define G_008C20_SQC0_BANK_DISABLE(x) (((x) >> 16) & 0xF) #define C_008C20_SQC0_BANK_DISABLE 0xFFF0FFFF #define S_008C20_SQC1_BANK_DISABLE(x) (((unsigned)(x) & 0xF) << 20) #define G_008C20_SQC1_BANK_DISABLE(x) (((x) >> 20) & 0xF) #define C_008C20_SQC1_BANK_DISABLE 0xFF0FFFFF #define S_008C20_SQC2_BANK_DISABLE(x) (((unsigned)(x) & 0xF) << 24) #define G_008C20_SQC2_BANK_DISABLE(x) (((x) >> 24) & 0xF) #define C_008C20_SQC2_BANK_DISABLE 0xF0FFFFFF #define S_008C20_SQC3_BANK_DISABLE(x) (((unsigned)(x) & 0xF) << 28) #define G_008C20_SQC3_BANK_DISABLE(x) (((x) >> 28) & 0xF) #define C_008C20_SQC3_BANK_DISABLE 0x0FFFFFFF #define R_008C24_SQ_DEBUG_STS_GLOBAL 0x008C24 /* <= gfx6 */ #define S_008C24_BUSY(x) (((unsigned)(x) & 0x1) << 0) #define G_008C24_BUSY(x) (((x) >> 0) & 0x1) #define C_008C24_BUSY 0xFFFFFFFE #define S_008C24_INTERRUPT_MSG_BUSY(x) (((unsigned)(x) & 0x1) << 1) #define G_008C24_INTERRUPT_MSG_BUSY(x) (((x) >> 1) & 0x1) #define C_008C24_INTERRUPT_MSG_BUSY 0xFFFFFFFD #define S_008C24_WAVE_LEVEL_SH0(x) (((unsigned)(x) & 0xFFF) << 4) #define G_008C24_WAVE_LEVEL_SH0(x) (((x) >> 4) & 0xFFF) #define C_008C24_WAVE_LEVEL_SH0 0xFFFF000F #define S_008C24_WAVE_LEVEL_SH1(x) (((unsigned)(x) & 0xFFF) << 16) #define G_008C24_WAVE_LEVEL_SH1(x) (((x) >> 16) & 0xFFF) #define C_008C24_WAVE_LEVEL_SH1 0xF000FFFF #define R_008C80_SQ_PERFCOUNTER0_LO 0x008C80 /* <= gfx6 */ #define R_008C84_SQ_PERFCOUNTER0_HI 0x008C84 /* <= gfx6 */ #define R_008C88_SQ_PERFCOUNTER1_LO 0x008C88 /* <= gfx6 */ #define R_008C8C_SQ_PERFCOUNTER1_HI 0x008C8C /* <= gfx6 */ #define R_008C90_SQ_PERFCOUNTER2_LO 0x008C90 /* <= gfx6 */ #define R_008C94_SQ_PERFCOUNTER2_HI 0x008C94 /* <= gfx6 */ #define R_008C98_SQ_PERFCOUNTER3_LO 0x008C98 /* <= gfx6 */ #define R_008C9C_SQ_PERFCOUNTER3_HI 0x008C9C /* <= gfx6 */ #define R_008CA0_SQ_PERFCOUNTER4_LO 0x008CA0 /* <= gfx6 */ #define R_008CA4_SQ_PERFCOUNTER4_HI 0x008CA4 /* <= gfx6 */ #define R_008CA8_SQ_PERFCOUNTER5_LO 0x008CA8 /* <= gfx6 */ #define R_008CAC_SQ_PERFCOUNTER5_HI 0x008CAC /* <= gfx6 */ #define R_008CB0_SQ_PERFCOUNTER6_LO 0x008CB0 /* <= gfx6 */ #define R_008CB4_SQ_PERFCOUNTER6_HI 0x008CB4 /* <= gfx6 */ #define R_008CB8_SQ_PERFCOUNTER7_LO 0x008CB8 /* <= gfx6 */ #define R_008CBC_SQ_PERFCOUNTER7_HI 0x008CBC /* <= gfx6 */ #define R_008CC0_SQ_PERFCOUNTER8_LO 0x008CC0 /* <= gfx6 */ #define R_008CC4_SQ_PERFCOUNTER8_HI 0x008CC4 /* <= gfx6 */ #define R_008CC8_SQ_PERFCOUNTER9_LO 0x008CC8 /* <= gfx6 */ #define R_008CCC_SQ_PERFCOUNTER9_HI 0x008CCC /* <= gfx6 */ #define R_008CD0_SQ_PERFCOUNTER10_LO 0x008CD0 /* <= gfx6 */ #define R_008CD4_SQ_PERFCOUNTER10_HI 0x008CD4 /* <= gfx6 */ #define R_008CD8_SQ_PERFCOUNTER11_LO 0x008CD8 /* <= gfx6 */ #define R_008CDC_SQ_PERFCOUNTER11_HI 0x008CDC /* <= gfx6 */ #define R_008CE0_SQ_PERFCOUNTER12_LO 0x008CE0 /* <= gfx6 */ #define R_008CE4_SQ_PERFCOUNTER12_HI 0x008CE4 /* <= gfx6 */ #define R_008CE8_SQ_PERFCOUNTER13_LO 0x008CE8 /* <= gfx6 */ #define R_008CEC_SQ_PERFCOUNTER13_HI 0x008CEC /* <= gfx6 */ #define R_008CF0_SQ_PERFCOUNTER14_LO 0x008CF0 /* <= gfx6 */ #define R_008CF4_SQ_PERFCOUNTER14_HI 0x008CF4 /* <= gfx6 */ #define R_008CF8_SQ_PERFCOUNTER15_LO 0x008CF8 /* <= gfx6 */ #define R_008CFC_SQ_PERFCOUNTER15_HI 0x008CFC /* <= gfx6 */ #define R_008D00_SQ_PERFCOUNTER0_SELECT 0x008D00 /* <= gfx6 */ #define S_008D00_PERF_SEL(x) (((unsigned)(x) & 0x1FF) << 0) #define G_008D00_PERF_SEL(x) (((x) >> 0) & 0x1FF) #define C_008D00_PERF_SEL 0xFFFFFE00 #define S_008D00_SQC_BANK_MASK(x) (((unsigned)(x) & 0xF) << 12) #define G_008D00_SQC_BANK_MASK(x) (((x) >> 12) & 0xF) #define C_008D00_SQC_BANK_MASK 0xFFFF0FFF #define S_008D00_SQC_CLIENT_MASK(x) (((unsigned)(x) & 0xF) << 16) #define G_008D00_SQC_CLIENT_MASK(x) (((x) >> 16) & 0xF) #define C_008D00_SQC_CLIENT_MASK 0xFFF0FFFF #define S_008D00_SPM_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_008D00_SPM_MODE(x) (((x) >> 20) & 0xF) #define C_008D00_SPM_MODE 0xFF0FFFFF #define S_008D00_SIMD_MASK(x) (((unsigned)(x) & 0xF) << 24) #define G_008D00_SIMD_MASK(x) (((x) >> 24) & 0xF) #define C_008D00_SIMD_MASK 0xF0FFFFFF #define S_008D00_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_008D00_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_008D00_PERF_MODE 0x0FFFFFFF #define R_008D00_SQ_THREAD_TRACE_BUF0_BASE 0x008D00 /* >= gfx10 */ #define R_008D04_SQ_PERFCOUNTER1_SELECT 0x008D04 /* <= gfx6 */ #define R_008D04_SQ_THREAD_TRACE_BUF0_SIZE 0x008D04 /* >= gfx10 */ #define S_008D04_BASE_HI(x) (((unsigned)(x) & 0xF) << 0) #define G_008D04_BASE_HI(x) (((x) >> 0) & 0xF) #define C_008D04_BASE_HI 0xFFFFFFF0 #define S_008D04_SIZE(x) (((unsigned)(x) & 0x3FFFFF) << 8) #define G_008D04_SIZE(x) (((x) >> 8) & 0x3FFFFF) #define C_008D04_SIZE 0xC00000FF #define R_008D08_SQ_PERFCOUNTER2_SELECT 0x008D08 /* <= gfx6 */ #define R_008D08_SQ_THREAD_TRACE_BUF1_BASE 0x008D08 /* >= gfx10 */ #define R_008D0C_SQ_PERFCOUNTER3_SELECT 0x008D0C /* <= gfx6 */ #define R_008D0C_SQ_THREAD_TRACE_BUF1_SIZE 0x008D0C /* >= gfx10 */ #define R_008D10_SQ_PERFCOUNTER4_SELECT 0x008D10 /* <= gfx6 */ #define R_008D10_SQ_THREAD_TRACE_WPTR 0x008D10 /* >= gfx10 */ #define S_008D10_OFFSET(x) (((unsigned)(x) & 0x1FFFFFFF) << 0) #define G_008D10_OFFSET(x) (((x) >> 0) & 0x1FFFFFFF) #define C_008D10_OFFSET 0xE0000000 #define S_008D10_BUFFER_ID(x) (((unsigned)(x) & 0x1) << 31) #define G_008D10_BUFFER_ID(x) (((x) >> 31) & 0x1) #define C_008D10_BUFFER_ID 0x7FFFFFFF #define R_008D14_SQ_PERFCOUNTER5_SELECT 0x008D14 /* <= gfx6 */ #define R_008D14_SQ_THREAD_TRACE_MASK 0x008D14 /* >= gfx10 */ #define S_008D14_SIMD_SEL(x) (((unsigned)(x) & 0x3) << 0) #define G_008D14_SIMD_SEL(x) (((x) >> 0) & 0x3) #define C_008D14_SIMD_SEL 0xFFFFFFFC #define S_008D14_WGP_SEL(x) (((unsigned)(x) & 0xF) << 4) #define G_008D14_WGP_SEL(x) (((x) >> 4) & 0xF) #define C_008D14_WGP_SEL 0xFFFFFF0F #define S_008D14_SA_SEL(x) (((unsigned)(x) & 0x1) << 9) #define G_008D14_SA_SEL(x) (((x) >> 9) & 0x1) #define C_008D14_SA_SEL 0xFFFFFDFF #define S_008D14_WTYPE_INCLUDE(x) (((unsigned)(x) & 0x7F) << 10) #define G_008D14_WTYPE_INCLUDE(x) (((x) >> 10) & 0x7F) #define C_008D14_WTYPE_INCLUDE 0xFFFE03FF #define R_008D18_SQ_PERFCOUNTER6_SELECT 0x008D18 /* <= gfx6 */ #define R_008D18_SQ_THREAD_TRACE_TOKEN_MASK 0x008D18 /* >= gfx10 */ #define S_008D18_TOKEN_EXCLUDE(x) (((unsigned)(x) & 0xFFF) << 0) #define G_008D18_TOKEN_EXCLUDE(x) (((x) >> 0) & 0xFFF) #define C_008D18_TOKEN_EXCLUDE 0xFFFFF000 #define V_008D18_TOKEN_EXCLUDE_VMEMEXEC 1 #define V_008D18_TOKEN_EXCLUDE_ALUEXEC 2 #define V_008D18_TOKEN_EXCLUDE_VALUINST 4 #define V_008D18_TOKEN_EXCLUDE_WAVERDY 8 #define V_008D18_TOKEN_EXCLUDE_IMMED1 16 #define V_008D18_TOKEN_EXCLUDE_IMMEDIATE 32 #define V_008D18_TOKEN_EXCLUDE_REG 64 #define V_008D18_TOKEN_EXCLUDE_EVENT 128 #define V_008D18_TOKEN_EXCLUDE_INST 256 #define V_008D18_TOKEN_EXCLUDE_UTILCTR 512 #define V_008D18_TOKEN_EXCLUDE_WAVEALLOC 1024 #define V_008D18_TOKEN_EXCLUDE_PERF 2048 #define S_008D18_BOP_EVENTS_TOKEN_INCLUDE(x) (((unsigned)(x) & 0x1) << 12) /* >= gfx103 */ #define G_008D18_BOP_EVENTS_TOKEN_INCLUDE(x) (((x) >> 12) & 0x1) #define C_008D18_BOP_EVENTS_TOKEN_INCLUDE 0xFFFFEFFF #define S_008D18_REG_INCLUDE(x) (((unsigned)(x) & 0xFF) << 16) #define G_008D18_REG_INCLUDE(x) (((x) >> 16) & 0xFF) #define C_008D18_REG_INCLUDE 0xFF00FFFF #define V_008D18_REG_INCLUDE_SQDEC 1 #define V_008D18_REG_INCLUDE_SHDEC 2 #define V_008D18_REG_INCLUDE_GFXUDEC 4 #define V_008D18_REG_INCLUDE_COMP 8 #define V_008D18_REG_INCLUDE_CONTEXT 16 #define V_008D18_REG_INCLUDE_CONFIG 32 #define V_008D18_REG_INCLUDE_OTHER 64 #define V_008D18_REG_INCLUDE_READS 128 #define S_008D18_INST_EXCLUDE(x) (((unsigned)(x) & 0x3) << 24) #define G_008D18_INST_EXCLUDE(x) (((x) >> 24) & 0x3) #define C_008D18_INST_EXCLUDE 0xFCFFFFFF #define S_008D18_REG_EXCLUDE(x) (((unsigned)(x) & 0x7) << 26) /* >= gfx103 */ #define G_008D18_REG_EXCLUDE(x) (((x) >> 26) & 0x7) #define C_008D18_REG_EXCLUDE 0xE3FFFFFF #define S_008D18_REG_DETAIL_ALL(x) (((unsigned)(x) & 0x1) << 31) #define G_008D18_REG_DETAIL_ALL(x) (((x) >> 31) & 0x1) #define C_008D18_REG_DETAIL_ALL 0x7FFFFFFF #define R_008D1C_SQ_PERFCOUNTER7_SELECT 0x008D1C /* <= gfx6 */ #define R_008D1C_SQ_THREAD_TRACE_CTRL 0x008D1C /* >= gfx10 */ #define S_008D1C_MODE(x) (((unsigned)(x) & 0x3) << 0) #define G_008D1C_MODE(x) (((x) >> 0) & 0x3) #define C_008D1C_MODE 0xFFFFFFFC #define S_008D1C_ALL_VMID(x) (((unsigned)(x) & 0x1) << 2) #define G_008D1C_ALL_VMID(x) (((x) >> 2) & 0x1) #define C_008D1C_ALL_VMID 0xFFFFFFFB #define S_008D1C_CH_PERF_EN(x) (((unsigned)(x) & 0x1) << 3) #define G_008D1C_CH_PERF_EN(x) (((x) >> 3) & 0x1) #define C_008D1C_CH_PERF_EN 0xFFFFFFF7 #define S_008D1C_INTERRUPT_EN(x) (((unsigned)(x) & 0x1) << 4) #define G_008D1C_INTERRUPT_EN(x) (((x) >> 4) & 0x1) #define C_008D1C_INTERRUPT_EN 0xFFFFFFEF #define S_008D1C_DOUBLE_BUFFER(x) (((unsigned)(x) & 0x1) << 5) #define G_008D1C_DOUBLE_BUFFER(x) (((x) >> 5) & 0x1) #define C_008D1C_DOUBLE_BUFFER 0xFFFFFFDF #define S_008D1C_HIWATER(x) (((unsigned)(x) & 0x7) << 6) #define G_008D1C_HIWATER(x) (((x) >> 6) & 0x7) #define C_008D1C_HIWATER 0xFFFFFE3F #define S_008D1C_REG_STALL_EN(x) (((unsigned)(x) & 0x1) << 9) #define G_008D1C_REG_STALL_EN(x) (((x) >> 9) & 0x1) #define C_008D1C_REG_STALL_EN 0xFFFFFDFF #define S_008D1C_SPI_STALL_EN(x) (((unsigned)(x) & 0x1) << 10) #define G_008D1C_SPI_STALL_EN(x) (((x) >> 10) & 0x1) #define C_008D1C_SPI_STALL_EN 0xFFFFFBFF #define S_008D1C_SQ_STALL_EN(x) (((unsigned)(x) & 0x1) << 11) #define G_008D1C_SQ_STALL_EN(x) (((x) >> 11) & 0x1) #define C_008D1C_SQ_STALL_EN 0xFFFFF7FF #define S_008D1C_REG_DROP_ON_STALL(x) (((unsigned)(x) & 0x1) << 12) #define G_008D1C_REG_DROP_ON_STALL(x) (((x) >> 12) & 0x1) #define C_008D1C_REG_DROP_ON_STALL 0xFFFFEFFF #define S_008D1C_UTIL_TIMER(x) (((unsigned)(x) & 0x1) << 13) #define G_008D1C_UTIL_TIMER(x) (((x) >> 13) & 0x1) #define C_008D1C_UTIL_TIMER 0xFFFFDFFF #define S_008D1C_WAVESTART_MODE(x) (((unsigned)(x) & 0x3) << 14) #define G_008D1C_WAVESTART_MODE(x) (((x) >> 14) & 0x3) #define C_008D1C_WAVESTART_MODE 0xFFFF3FFF #define S_008D1C_RT_FREQ(x) (((unsigned)(x) & 0x3) << 16) #define G_008D1C_RT_FREQ(x) (((x) >> 16) & 0x3) #define C_008D1C_RT_FREQ 0xFFFCFFFF #define S_008D1C_SYNC_COUNT_MARKERS(x) (((unsigned)(x) & 0x1) << 18) #define G_008D1C_SYNC_COUNT_MARKERS(x) (((x) >> 18) & 0x1) #define C_008D1C_SYNC_COUNT_MARKERS 0xFFFBFFFF #define S_008D1C_SYNC_COUNT_DRAWS(x) (((unsigned)(x) & 0x1) << 19) #define G_008D1C_SYNC_COUNT_DRAWS(x) (((x) >> 19) & 0x1) #define C_008D1C_SYNC_COUNT_DRAWS 0xFFF7FFFF #define S_008D1C_LOWATER_OFFSET(x) (((unsigned)(x) & 0x7) << 20) /* >= gfx103 */ #define G_008D1C_LOWATER_OFFSET(x) (((x) >> 20) & 0x7) #define C_008D1C_LOWATER_OFFSET 0xFF8FFFFF #define S_008D1C_AUTO_FLUSH_PADDING_DIS(x) (((unsigned)(x) & 0x1) << 28) /* >= gfx103 */ #define G_008D1C_AUTO_FLUSH_PADDING_DIS(x) (((x) >> 28) & 0x1) #define C_008D1C_AUTO_FLUSH_PADDING_DIS 0xEFFFFFFF #define S_008D1C_AUTO_FLUSH_MODE(x) (((unsigned)(x) & 0x1) << 29) /* >= gfx103 */ #define G_008D1C_AUTO_FLUSH_MODE(x) (((x) >> 29) & 0x1) #define C_008D1C_AUTO_FLUSH_MODE 0xDFFFFFFF #define S_008D1C_CAPTURE_ALL(x) (((unsigned)(x) & 0x1) << 30) #define G_008D1C_CAPTURE_ALL(x) (((x) >> 30) & 0x1) #define C_008D1C_CAPTURE_ALL 0xBFFFFFFF #define S_008D1C_DRAW_EVENT_EN(x) (((unsigned)(x) & 0x1) << 31) #define G_008D1C_DRAW_EVENT_EN(x) (((x) >> 31) & 0x1) #define C_008D1C_DRAW_EVENT_EN 0x7FFFFFFF #define R_008D20_SQ_PERFCOUNTER8_SELECT 0x008D20 /* <= gfx6 */ #define R_008D20_SQ_THREAD_TRACE_STATUS 0x008D20 /* >= gfx10 */ #define S_008D20_FINISH_PENDING(x) (((unsigned)(x) & 0xFFF) << 0) #define G_008D20_FINISH_PENDING(x) (((x) >> 0) & 0xFFF) #define C_008D20_FINISH_PENDING 0xFFFFF000 #define S_008D20_FINISH_DONE(x) (((unsigned)(x) & 0xFFF) << 12) #define G_008D20_FINISH_DONE(x) (((x) >> 12) & 0xFFF) #define C_008D20_FINISH_DONE 0xFF000FFF #define S_008D20_UTC_ERR(x) (((unsigned)(x) & 0x1) << 24) #define G_008D20_UTC_ERR(x) (((x) >> 24) & 0x1) #define C_008D20_UTC_ERR 0xFEFFFFFF #define S_008D20_BUSY(x) (((unsigned)(x) & 0x1) << 25) #define G_008D20_BUSY(x) (((x) >> 25) & 0x1) #define C_008D20_BUSY 0xFDFFFFFF #define S_008D20_EVENT_CNTR_OVERFLOW(x) (((unsigned)(x) & 0x1) << 26) #define G_008D20_EVENT_CNTR_OVERFLOW(x) (((x) >> 26) & 0x1) #define C_008D20_EVENT_CNTR_OVERFLOW 0xFBFFFFFF #define S_008D20_EVENT_CNTR_STALL(x) (((unsigned)(x) & 0x1) << 27) #define G_008D20_EVENT_CNTR_STALL(x) (((x) >> 27) & 0x1) #define C_008D20_EVENT_CNTR_STALL 0xF7FFFFFF #define S_008D20_OWNER_VMID(x) (((unsigned)(x) & 0xF) << 28) /* >= gfx103 */ #define G_008D20_OWNER_VMID(x) (((x) >> 28) & 0xF) #define C_008D20_OWNER_VMID 0x0FFFFFFF #define R_008D24_SQ_PERFCOUNTER9_SELECT 0x008D24 /* <= gfx6 */ #define R_008D24_SQ_THREAD_TRACE_DROPPED_CNTR 0x008D24 /* >= gfx10 */ #define R_008D28_SQ_PERFCOUNTER10_SELECT 0x008D28 /* <= gfx6 */ #define R_008D2C_SQ_PERFCOUNTER11_SELECT 0x008D2C /* <= gfx6 */ #define R_008D2C_SQ_THREAD_TRACE_GFX_DRAW_CNTR 0x008D2C /* >= gfx10 */ #define R_008D30_SQ_PERFCOUNTER12_SELECT 0x008D30 /* <= gfx6 */ #define R_008D30_SQ_THREAD_TRACE_GFX_MARKER_CNTR 0x008D30 /* >= gfx10 */ #define R_008D34_SQ_PERFCOUNTER13_SELECT 0x008D34 /* <= gfx6 */ #define R_008D34_SQ_THREAD_TRACE_HP3D_DRAW_CNTR 0x008D34 /* >= gfx10 */ #define R_008D38_SQ_PERFCOUNTER14_SELECT 0x008D38 /* <= gfx6 */ #define R_008D38_SQ_THREAD_TRACE_HP3D_MARKER_CNTR 0x008D38 /* >= gfx10 */ #define R_008D3C_SQ_PERFCOUNTER15_SELECT 0x008D3C /* <= gfx6 */ #define R_008D3C_SQ_THREAD_TRACE_STATUS2 0x008D3C /* >= gfx103 */ #define S_008D3C_BUF0_FULL(x) (((unsigned)(x) & 0x1) << 0) #define G_008D3C_BUF0_FULL(x) (((x) >> 0) & 0x1) #define C_008D3C_BUF0_FULL 0xFFFFFFFE #define S_008D3C_BUF1_FULL(x) (((unsigned)(x) & 0x1) << 1) #define G_008D3C_BUF1_FULL(x) (((x) >> 1) & 0x1) #define C_008D3C_BUF1_FULL 0xFFFFFFFD #define S_008D3C_PACKET_LOST_BUF_NO_LOCKDOWN(x) (((unsigned)(x) & 0x1) << 4) #define G_008D3C_PACKET_LOST_BUF_NO_LOCKDOWN(x) (((x) >> 4) & 0x1) #define C_008D3C_PACKET_LOST_BUF_NO_LOCKDOWN 0xFFFFFFEF #define R_008D80_SQ_ALU_CLK_CTRL 0x008D80 /* <= gfx6 */ #define S_008D80_FORCE_CU_ON_SH0(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_008D80_FORCE_CU_ON_SH0(x) (((x) >> 0) & 0xFFFF) #define C_008D80_FORCE_CU_ON_SH0 0xFFFF0000 #define S_008D80_FORCE_CU_ON_SH1(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_008D80_FORCE_CU_ON_SH1(x) (((x) >> 16) & 0xFFFF) #define C_008D80_FORCE_CU_ON_SH1 0x0000FFFF #define R_008D84_SQ_TEX_CLK_CTRL 0x008D84 /* <= gfx6 */ #define S_008D84_FORCE_CU_ON_SH0(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_008D84_FORCE_CU_ON_SH0(x) (((x) >> 0) & 0xFFFF) #define C_008D84_FORCE_CU_ON_SH0 0xFFFF0000 #define S_008D84_FORCE_CU_ON_SH1(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_008D84_FORCE_CU_ON_SH1(x) (((x) >> 16) & 0xFFFF) #define C_008D84_FORCE_CU_ON_SH1 0x0000FFFF #define R_008D88_CGTT_SQ_CLK_CTRL 0x008D88 /* <= gfx6 */ #define S_008D88_ON_DELAY(x) (((unsigned)(x) & 0xF) << 0) #define G_008D88_ON_DELAY(x) (((x) >> 0) & 0xF) #define C_008D88_ON_DELAY 0xFFFFFFF0 #define S_008D88_OFF_HYSTERESIS(x) (((unsigned)(x) & 0xFF) << 4) #define G_008D88_OFF_HYSTERESIS(x) (((x) >> 4) & 0xFF) #define C_008D88_OFF_HYSTERESIS 0xFFFFF00F #define S_008D88_CORE_OVERRIDE(x) (((unsigned)(x) & 0x1) << 30) #define G_008D88_CORE_OVERRIDE(x) (((x) >> 30) & 0x1) #define C_008D88_CORE_OVERRIDE 0xBFFFFFFF #define S_008D88_REG_OVERRIDE(x) (((unsigned)(x) & 0x1) << 31) #define G_008D88_REG_OVERRIDE(x) (((x) >> 31) & 0x1) #define C_008D88_REG_OVERRIDE 0x7FFFFFFF #define R_008D8C_CGTT_SQG_CLK_CTRL 0x008D8C /* <= gfx6 */ #define S_008D8C_ON_DELAY(x) (((unsigned)(x) & 0xF) << 0) #define G_008D8C_ON_DELAY(x) (((x) >> 0) & 0xF) #define C_008D8C_ON_DELAY 0xFFFFFFF0 #define S_008D8C_OFF_HYSTERESIS(x) (((unsigned)(x) & 0xFF) << 4) #define G_008D8C_OFF_HYSTERESIS(x) (((x) >> 4) & 0xFF) #define C_008D8C_OFF_HYSTERESIS 0xFFFFF00F #define S_008D8C_CORE_OVERRIDE(x) (((unsigned)(x) & 0x1) << 30) #define G_008D8C_CORE_OVERRIDE(x) (((x) >> 30) & 0x1) #define C_008D8C_CORE_OVERRIDE 0xBFFFFFFF #define S_008D8C_REG_OVERRIDE(x) (((unsigned)(x) & 0x1) << 31) #define G_008D8C_REG_OVERRIDE(x) (((x) >> 31) & 0x1) #define C_008D8C_REG_OVERRIDE 0x7FFFFFFF #define R_008DE0_SQ_IND_INDEX 0x008DE0 /* <= gfx6 */ #define S_008DE0_WAVE_ID(x) (((unsigned)(x) & 0xF) << 0) #define G_008DE0_WAVE_ID(x) (((x) >> 0) & 0xF) #define C_008DE0_WAVE_ID 0xFFFFFFF0 #define S_008DE0_SIMD_ID(x) (((unsigned)(x) & 0x3) << 4) #define G_008DE0_SIMD_ID(x) (((x) >> 4) & 0x3) #define C_008DE0_SIMD_ID 0xFFFFFFCF #define S_008DE0_THREAD_ID(x) (((unsigned)(x) & 0x3F) << 6) #define G_008DE0_THREAD_ID(x) (((x) >> 6) & 0x3F) #define C_008DE0_THREAD_ID 0xFFFFF03F #define S_008DE0_AUTO_INCR(x) (((unsigned)(x) & 0x1) << 12) #define G_008DE0_AUTO_INCR(x) (((x) >> 12) & 0x1) #define C_008DE0_AUTO_INCR 0xFFFFEFFF #define S_008DE0_FORCE_READ(x) (((unsigned)(x) & 0x1) << 13) #define G_008DE0_FORCE_READ(x) (((x) >> 13) & 0x1) #define C_008DE0_FORCE_READ 0xFFFFDFFF #define S_008DE0_READ_TIMEOUT(x) (((unsigned)(x) & 0x1) << 14) #define G_008DE0_READ_TIMEOUT(x) (((x) >> 14) & 0x1) #define C_008DE0_READ_TIMEOUT 0xFFFFBFFF #define S_008DE0_UNINDEXED(x) (((unsigned)(x) & 0x1) << 15) #define G_008DE0_UNINDEXED(x) (((x) >> 15) & 0x1) #define C_008DE0_UNINDEXED 0xFFFF7FFF #define S_008DE0_INDEX(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_008DE0_INDEX(x) (((x) >> 16) & 0xFFFF) #define C_008DE0_INDEX 0x0000FFFF #define R_008DE4_SQ_IND_DATA 0x008DE4 /* <= gfx6 */ #define R_008DF0_SQ_TIME_HI 0x008DF0 /* <= gfx6 */ #define R_008DF4_SQ_TIME_LO 0x008DF4 /* <= gfx6 */ #define R_008DFC_SQ_EXP_0 0x008DFC /* >= gfx10 */ #define S_008DFC_EN(x) (((unsigned)(x) & 0xF) << 0) #define G_008DFC_EN(x) (((x) >> 0) & 0xF) #define C_008DFC_EN 0xFFFFFFF0 #define S_008DFC_TGT(x) (((unsigned)(x) & 0x3F) << 4) #define G_008DFC_TGT(x) (((x) >> 4) & 0x3F) #define C_008DFC_TGT 0xFFFFFC0F #define V_008DFC_SQ_EXP_MRT 0 #define V_008DFC_SQ_EXP_MRTZ 8 #define V_008DFC_SQ_EXP_NULL 9 #define V_008DFC_SQ_EXP_POS 12 #define V_008DFC_SQ_EXP_PRIM 20 #define V_008DFC_SQ_EXP_PARAM 32 #define S_008DFC_COMPR(x) (((unsigned)(x) & 0x1) << 10) #define G_008DFC_COMPR(x) (((x) >> 10) & 0x1) #define C_008DFC_COMPR 0xFFFFFBFF #define S_008DFC_DONE(x) (((unsigned)(x) & 0x1) << 11) #define G_008DFC_DONE(x) (((x) >> 11) & 0x1) #define C_008DFC_DONE 0xFFFFF7FF #define S_008DFC_VM(x) (((unsigned)(x) & 0x1) << 12) #define G_008DFC_VM(x) (((x) >> 12) & 0x1) #define C_008DFC_VM 0xFFFFEFFF #define R_008E00_SQ_THREAD_TRACE_BASE 0x008E00 /* <= gfx7 */ #define R_008E04_SQ_THREAD_TRACE_SIZE 0x008E04 /* <= gfx7 */ #define S_008E04_SIZE(x) (((unsigned)(x) & 0x3FFFFF) << 0) #define G_008E04_SIZE(x) (((x) >> 0) & 0x3FFFFF) #define C_008E04_SIZE 0xFFC00000 #define R_008E08_SQ_THREAD_TRACE_MASK 0x008E08 /* <= gfx7 */ #define S_008E08_CU_SEL(x) (((unsigned)(x) & 0x1F) << 0) #define G_008E08_CU_SEL(x) (((x) >> 0) & 0x1F) #define C_008E08_CU_SEL 0xFFFFFFE0 #define S_008E08_SH_SEL(x) (((unsigned)(x) & 0x1) << 5) #define G_008E08_SH_SEL(x) (((x) >> 5) & 0x1) #define C_008E08_SH_SEL 0xFFFFFFDF #define S_008E08_REG_STALL_EN(x) (((unsigned)(x) & 0x1) << 7) #define G_008E08_REG_STALL_EN(x) (((x) >> 7) & 0x1) #define C_008E08_REG_STALL_EN 0xFFFFFF7F #define S_008E08_SIMD_EN(x) (((unsigned)(x) & 0xF) << 8) /* gfx7 */ #define G_008E08_SIMD_EN(x) (((x) >> 8) & 0xF) #define C_008E08_SIMD_EN 0xFFFFF0FF #define S_008E08_VM_ID_MASK(x) (((unsigned)(x) & 0x3) << 12) #define G_008E08_VM_ID_MASK(x) (((x) >> 12) & 0x3) #define C_008E08_VM_ID_MASK 0xFFFFCFFF #define S_008E08_SPI_STALL_EN(x) (((unsigned)(x) & 0x1) << 14) #define G_008E08_SPI_STALL_EN(x) (((x) >> 14) & 0x1) #define C_008E08_SPI_STALL_EN 0xFFFFBFFF #define S_008E08_SQ_STALL_EN(x) (((unsigned)(x) & 0x1) << 15) #define G_008E08_SQ_STALL_EN(x) (((x) >> 15) & 0x1) #define C_008E08_SQ_STALL_EN 0xFFFF7FFF #define S_008E08_RANDOM_SEED(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_008E08_RANDOM_SEED(x) (((x) >> 16) & 0xFFFF) #define C_008E08_RANDOM_SEED 0x0000FFFF #define R_008E0C_SQ_THREAD_TRACE_TOKEN_MASK 0x008E0C /* <= gfx7 */ #define S_008E0C_TOKEN_MASK(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_008E0C_TOKEN_MASK(x) (((x) >> 0) & 0xFFFF) #define C_008E0C_TOKEN_MASK 0xFFFF0000 #define S_008E0C_REG_MASK(x) (((unsigned)(x) & 0xFF) << 16) #define G_008E0C_REG_MASK(x) (((x) >> 16) & 0xFF) #define C_008E0C_REG_MASK 0xFF00FFFF #define S_008E0C_REG_DROP_ON_STALL(x) (((unsigned)(x) & 0x1) << 24) #define G_008E0C_REG_DROP_ON_STALL(x) (((x) >> 24) & 0x1) #define C_008E0C_REG_DROP_ON_STALL 0xFEFFFFFF #define R_008E10_SQ_THREAD_TRACE_PERF_MASK 0x008E10 /* <= gfx7 */ #define S_008E10_SH0_MASK(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_008E10_SH0_MASK(x) (((x) >> 0) & 0xFFFF) #define C_008E10_SH0_MASK 0xFFFF0000 #define S_008E10_SH1_MASK(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_008E10_SH1_MASK(x) (((x) >> 16) & 0xFFFF) #define C_008E10_SH1_MASK 0x0000FFFF #define R_008E14_SQ_THREAD_TRACE_BASE2 0x008E14 /* gfx7 */ #define S_008E14_ADDR_HI(x) (((unsigned)(x) & 0xF) << 0) #define G_008E14_ADDR_HI(x) (((x) >> 0) & 0xF) #define C_008E14_ADDR_HI 0xFFFFFFF0 #define S_008E14_ATC(x) (((unsigned)(x) & 0x1) << 4) #define G_008E14_ATC(x) (((x) >> 4) & 0x1) #define C_008E14_ATC 0xFFFFFFEF #define R_008E18_SQ_THREAD_TRACE_TOKEN_MASK2 0x008E18 /* gfx7 */ #define S_008E18_INST_MASK(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_008E18_INST_MASK(x) (((x) >> 0) & 0xFFFF) #define C_008E18_INST_MASK 0xFFFF0000 #define R_008E20_SQ_THREAD_TRACE_USERDATA_0 0x008E20 /* <= gfx6 */ #define R_008E24_SQ_THREAD_TRACE_USERDATA_1 0x008E24 /* <= gfx6 */ #define R_008E28_SQ_THREAD_TRACE_USERDATA_2 0x008E28 /* <= gfx6 */ #define R_008E2C_SQ_THREAD_TRACE_USERDATA_3 0x008E2C /* <= gfx6 */ #define R_008E30_SQ_THREAD_TRACE_WPTR 0x008E30 /* <= gfx7 */ #define S_008E30_WPTR(x) (((unsigned)(x) & 0x3FFFFFFF) << 0) #define G_008E30_WPTR(x) (((x) >> 0) & 0x3FFFFFFF) #define C_008E30_WPTR 0xC0000000 #define S_008E30_READ_OFFSET(x) (((unsigned)(x) & 0x3) << 30) #define G_008E30_READ_OFFSET(x) (((x) >> 30) & 0x3) #define C_008E30_READ_OFFSET 0x3FFFFFFF #define R_008E34_SQ_THREAD_TRACE_STATUS 0x008E34 /* <= gfx7 */ #define S_008E34_FINISH_PENDING(x) (((unsigned)(x) & 0x3FF) << 0) #define G_008E34_FINISH_PENDING(x) (((x) >> 0) & 0x3FF) #define C_008E34_FINISH_PENDING 0xFFFFFC00 #define S_008E34_FINISH_DONE(x) (((unsigned)(x) & 0x3FF) << 16) #define G_008E34_FINISH_DONE(x) (((x) >> 16) & 0x3FF) #define C_008E34_FINISH_DONE 0xFC00FFFF #define S_008E34_NEW_BUF(x) (((unsigned)(x) & 0x1) << 29) #define G_008E34_NEW_BUF(x) (((x) >> 29) & 0x1) #define C_008E34_NEW_BUF 0xDFFFFFFF #define S_008E34_BUSY(x) (((unsigned)(x) & 0x1) << 30) #define G_008E34_BUSY(x) (((x) >> 30) & 0x1) #define C_008E34_BUSY 0xBFFFFFFF #define S_008E34_FULL(x) (((unsigned)(x) & 0x1) << 31) #define G_008E34_FULL(x) (((x) >> 31) & 0x1) #define C_008E34_FULL 0x7FFFFFFF #define R_008E38_SQ_THREAD_TRACE_MODE 0x008E38 /* <= gfx7 */ #define S_008E38_MASK_PS(x) (((unsigned)(x) & 0x7) << 0) #define G_008E38_MASK_PS(x) (((x) >> 0) & 0x7) #define C_008E38_MASK_PS 0xFFFFFFF8 #define S_008E38_MASK_VS(x) (((unsigned)(x) & 0x7) << 3) #define G_008E38_MASK_VS(x) (((x) >> 3) & 0x7) #define C_008E38_MASK_VS 0xFFFFFFC7 #define S_008E38_MASK_GS(x) (((unsigned)(x) & 0x7) << 6) #define G_008E38_MASK_GS(x) (((x) >> 6) & 0x7) #define C_008E38_MASK_GS 0xFFFFFE3F #define S_008E38_MASK_ES(x) (((unsigned)(x) & 0x7) << 9) #define G_008E38_MASK_ES(x) (((x) >> 9) & 0x7) #define C_008E38_MASK_ES 0xFFFFF1FF #define S_008E38_MASK_HS(x) (((unsigned)(x) & 0x7) << 12) #define G_008E38_MASK_HS(x) (((x) >> 12) & 0x7) #define C_008E38_MASK_HS 0xFFFF8FFF #define S_008E38_MASK_LS(x) (((unsigned)(x) & 0x7) << 15) #define G_008E38_MASK_LS(x) (((x) >> 15) & 0x7) #define C_008E38_MASK_LS 0xFFFC7FFF #define S_008E38_MASK_CS(x) (((unsigned)(x) & 0x7) << 18) #define G_008E38_MASK_CS(x) (((x) >> 18) & 0x7) #define C_008E38_MASK_CS 0xFFE3FFFF #define S_008E38_MODE(x) (((unsigned)(x) & 0x3) << 21) #define G_008E38_MODE(x) (((x) >> 21) & 0x3) #define C_008E38_MODE 0xFF9FFFFF #define S_008E38_CAPTURE_MODE(x) (((unsigned)(x) & 0x3) << 23) #define G_008E38_CAPTURE_MODE(x) (((x) >> 23) & 0x3) #define C_008E38_CAPTURE_MODE 0xFE7FFFFF #define S_008E38_AUTOFLUSH_EN(x) (((unsigned)(x) & 0x1) << 25) #define G_008E38_AUTOFLUSH_EN(x) (((x) >> 25) & 0x1) #define C_008E38_AUTOFLUSH_EN 0xFDFFFFFF #define S_008E38_PRIV(x) (((unsigned)(x) & 0x1) << 26) #define G_008E38_PRIV(x) (((x) >> 26) & 0x1) #define C_008E38_PRIV 0xFBFFFFFF #define S_008E38_ISSUE_MASK(x) (((unsigned)(x) & 0x3) << 27) #define G_008E38_ISSUE_MASK(x) (((x) >> 27) & 0x3) #define C_008E38_ISSUE_MASK 0xE7FFFFFF #define S_008E38_TEST_MODE(x) (((unsigned)(x) & 0x1) << 29) #define G_008E38_TEST_MODE(x) (((x) >> 29) & 0x1) #define C_008E38_TEST_MODE 0xDFFFFFFF #define S_008E38_INTERRUPT_EN(x) (((unsigned)(x) & 0x1) << 30) #define G_008E38_INTERRUPT_EN(x) (((x) >> 30) & 0x1) #define C_008E38_INTERRUPT_EN 0xBFFFFFFF #define S_008E38_WRAP(x) (((unsigned)(x) & 0x1) << 31) #define G_008E38_WRAP(x) (((x) >> 31) & 0x1) #define C_008E38_WRAP 0x7FFFFFFF #define R_008E3C_SQ_THREAD_TRACE_CTRL 0x008E3C /* <= gfx7 */ #define S_008E3C_RESET_BUFFER(x) (((unsigned)(x) & 0x1) << 31) #define G_008E3C_RESET_BUFFER(x) (((x) >> 31) & 0x1) #define C_008E3C_RESET_BUFFER 0x7FFFFFFF #define R_008E40_SQ_THREAD_TRACE_CNTR 0x008E40 /* <= gfx81 */ #define R_008E48_SQ_THREAD_TRACE_HIWATER 0x008E48 /* <= gfx7 */ #define S_008E48_HIWATER(x) (((unsigned)(x) & 0x7) << 0) #define G_008E48_HIWATER(x) (((x) >> 0) & 0x7) #define C_008E48_HIWATER 0xFFFFFFF8 #define R_008E58_SQ_POWER_THROTTLE 0x008E58 /* <= gfx6 */ #define S_008E58_MIN_POWER(x) (((unsigned)(x) & 0x3FFF) << 0) #define G_008E58_MIN_POWER(x) (((x) >> 0) & 0x3FFF) #define C_008E58_MIN_POWER 0xFFFFC000 #define S_008E58_MAX_POWER(x) (((unsigned)(x) & 0x3FFF) << 16) #define G_008E58_MAX_POWER(x) (((x) >> 16) & 0x3FFF) #define C_008E58_MAX_POWER 0xC000FFFF #define S_008E58_PHASE_OFFSET(x) (((unsigned)(x) & 0x3) << 30) #define G_008E58_PHASE_OFFSET(x) (((x) >> 30) & 0x3) #define C_008E58_PHASE_OFFSET 0x3FFFFFFF #define R_008E5C_SQ_POWER_THROTTLE2 0x008E5C /* <= gfx6 */ #define S_008E5C_MAX_POWER_DELTA(x) (((unsigned)(x) & 0x3FFF) << 0) #define G_008E5C_MAX_POWER_DELTA(x) (((x) >> 0) & 0x3FFF) #define C_008E5C_MAX_POWER_DELTA 0xFFFFC000 #define S_008E5C_SHORT_TERM_INTERVAL_SIZE(x) (((unsigned)(x) & 0x3FF) << 16) #define G_008E5C_SHORT_TERM_INTERVAL_SIZE(x) (((x) >> 16) & 0x3FF) #define C_008E5C_SHORT_TERM_INTERVAL_SIZE 0xFC00FFFF #define S_008E5C_LONG_TERM_INTERVAL_RATIO(x) (((unsigned)(x) & 0xF) << 27) #define G_008E5C_LONG_TERM_INTERVAL_RATIO(x) (((x) >> 27) & 0xF) #define C_008E5C_LONG_TERM_INTERVAL_RATIO 0x87FFFFFF #define S_008E5C_USE_REF_CLOCK(x) (((unsigned)(x) & 0x1) << 31) #define G_008E5C_USE_REF_CLOCK(x) (((x) >> 31) & 0x1) #define C_008E5C_USE_REF_CLOCK 0x7FFFFFFF #define R_008E60_SQ_LB_CTR_CTRL 0x008E60 /* <= gfx6 */ #define S_008E60_START(x) (((unsigned)(x) & 0x1) << 0) #define G_008E60_START(x) (((x) >> 0) & 0x1) #define C_008E60_START 0xFFFFFFFE #define S_008E60_LOAD(x) (((unsigned)(x) & 0x1) << 1) #define G_008E60_LOAD(x) (((x) >> 1) & 0x1) #define C_008E60_LOAD 0xFFFFFFFD #define S_008E60_CLEAR(x) (((unsigned)(x) & 0x1) << 2) #define G_008E60_CLEAR(x) (((x) >> 2) & 0x1) #define C_008E60_CLEAR 0xFFFFFFFB #define R_008E64_SQ_LB_DATA_ALU_CYCLES 0x008E64 /* <= gfx6 */ #define R_008E68_SQ_LB_DATA_TEX_CYCLES 0x008E68 /* <= gfx6 */ #define R_008E6C_SQ_LB_DATA_ALU_STALLS 0x008E6C /* <= gfx6 */ #define R_008E70_SQ_LB_DATA_TEX_STALLS 0x008E70 /* <= gfx6 */ #define R_008E80_SQC_SECDED_CNT 0x008E80 /* <= gfx6 */ #define S_008E80_INST_SEC(x) (((unsigned)(x) & 0xFF) << 0) #define G_008E80_INST_SEC(x) (((x) >> 0) & 0xFF) #define C_008E80_INST_SEC 0xFFFFFF00 #define S_008E80_INST_DED(x) (((unsigned)(x) & 0xFF) << 8) #define G_008E80_INST_DED(x) (((x) >> 8) & 0xFF) #define C_008E80_INST_DED 0xFFFF00FF #define S_008E80_DATA_SEC(x) (((unsigned)(x) & 0xFF) << 16) #define G_008E80_DATA_SEC(x) (((x) >> 16) & 0xFF) #define C_008E80_DATA_SEC 0xFF00FFFF #define S_008E80_DATA_DED(x) (((unsigned)(x) & 0xFF) << 24) #define G_008E80_DATA_DED(x) (((x) >> 24) & 0xFF) #define C_008E80_DATA_DED 0x00FFFFFF #define R_008E84_SQ_SEC_CNT 0x008E84 /* <= gfx6 */ #define S_008E84_LDS_SEC(x) (((unsigned)(x) & 0x3F) << 0) #define G_008E84_LDS_SEC(x) (((x) >> 0) & 0x3F) #define C_008E84_LDS_SEC 0xFFFFFFC0 #define S_008E84_SGPR_SEC(x) (((unsigned)(x) & 0x1F) << 8) #define G_008E84_SGPR_SEC(x) (((x) >> 8) & 0x1F) #define C_008E84_SGPR_SEC 0xFFFFE0FF #define S_008E84_VGPR_SEC(x) (((unsigned)(x) & 0x1FF) << 16) #define G_008E84_VGPR_SEC(x) (((x) >> 16) & 0x1FF) #define C_008E84_VGPR_SEC 0xFE00FFFF #define R_008E88_SQ_DED_CNT 0x008E88 /* <= gfx6 */ #define S_008E88_LDS_DED(x) (((unsigned)(x) & 0x3F) << 0) #define G_008E88_LDS_DED(x) (((x) >> 0) & 0x3F) #define C_008E88_LDS_DED 0xFFFFFFC0 #define S_008E88_SGPR_DED(x) (((unsigned)(x) & 0x1F) << 8) #define G_008E88_SGPR_DED(x) (((x) >> 8) & 0x1F) #define C_008E88_SGPR_DED 0xFFFFE0FF #define S_008E88_VGPR_DED(x) (((unsigned)(x) & 0x1FF) << 16) #define G_008E88_VGPR_DED(x) (((x) >> 16) & 0x1FF) #define C_008E88_VGPR_DED 0xFE00FFFF #define R_008E8C_SQ_DED_INFO 0x008E8C /* <= gfx6 */ #define S_008E8C_WAVE_ID(x) (((unsigned)(x) & 0xF) << 0) #define G_008E8C_WAVE_ID(x) (((x) >> 0) & 0xF) #define C_008E8C_WAVE_ID 0xFFFFFFF0 #define S_008E8C_SIMD_ID(x) (((unsigned)(x) & 0x3) << 4) #define G_008E8C_SIMD_ID(x) (((x) >> 4) & 0x3) #define C_008E8C_SIMD_ID 0xFFFFFFCF #define S_008E8C_SOURCE(x) (((unsigned)(x) & 0x7) << 6) #define G_008E8C_SOURCE(x) (((x) >> 6) & 0x7) #define C_008E8C_SOURCE 0xFFFFFE3F #define S_008E8C_VM_ID(x) (((unsigned)(x) & 0xF) << 9) #define G_008E8C_VM_ID(x) (((x) >> 9) & 0xF) #define C_008E8C_VM_ID 0xFFFFE1FF #define R_008F00_SQ_BUF_RSRC_WORD0 0x008F00 #define R_008F04_SQ_BUF_RSRC_WORD1 0x008F04 #define S_008F04_BASE_ADDRESS_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_008F04_BASE_ADDRESS_HI(x) (((x) >> 0) & 0xFFFF) #define C_008F04_BASE_ADDRESS_HI 0xFFFF0000 #define S_008F04_STRIDE(x) (((unsigned)(x) & 0x3FFF) << 16) #define G_008F04_STRIDE(x) (((x) >> 16) & 0x3FFF) #define C_008F04_STRIDE 0xC000FFFF #define S_008F04_CACHE_SWIZZLE(x) (((unsigned)(x) & 0x1) << 30) #define G_008F04_CACHE_SWIZZLE(x) (((x) >> 30) & 0x1) #define C_008F04_CACHE_SWIZZLE 0xBFFFFFFF #define S_008F04_SWIZZLE_ENABLE(x) (((unsigned)(x) & 0x1) << 31) #define G_008F04_SWIZZLE_ENABLE(x) (((x) >> 31) & 0x1) #define C_008F04_SWIZZLE_ENABLE 0x7FFFFFFF #define R_008F08_SQ_BUF_RSRC_WORD2 0x008F08 #define R_008F0C_SQ_BUF_RSRC_WORD3 0x008F0C #define S_008F0C_DST_SEL_X(x) (((unsigned)(x) & 0x7) << 0) #define G_008F0C_DST_SEL_X(x) (((x) >> 0) & 0x7) #define C_008F0C_DST_SEL_X 0xFFFFFFF8 #define V_008F0C_SQ_SEL_0 0 /* <= gfx9 */ #define V_008F0C_SQ_SEL_1 1 /* <= gfx9 */ #define V_008F0C_SQ_SEL_RESERVED_0 2 /* <= gfx9 */ #define V_008F0C_SQ_SEL_RESERVED_1 3 /* <= gfx9 */ #define V_008F0C_SQ_SEL_X 4 /* <= gfx9 */ #define V_008F0C_SQ_SEL_Y 5 /* <= gfx9 */ #define V_008F0C_SQ_SEL_Z 6 /* <= gfx9 */ #define V_008F0C_SQ_SEL_W 7 /* <= gfx9 */ #define S_008F0C_DST_SEL_Y(x) (((unsigned)(x) & 0x7) << 3) #define G_008F0C_DST_SEL_Y(x) (((x) >> 3) & 0x7) #define C_008F0C_DST_SEL_Y 0xFFFFFFC7 #define S_008F0C_DST_SEL_Z(x) (((unsigned)(x) & 0x7) << 6) #define G_008F0C_DST_SEL_Z(x) (((x) >> 6) & 0x7) #define C_008F0C_DST_SEL_Z 0xFFFFFE3F #define S_008F0C_DST_SEL_W(x) (((unsigned)(x) & 0x7) << 9) #define G_008F0C_DST_SEL_W(x) (((x) >> 9) & 0x7) #define C_008F0C_DST_SEL_W 0xFFFFF1FF #define S_008F0C_FORMAT(x) (((unsigned)(x) & 0x7F) << 12) /* >= gfx10 */ #define G_008F0C_FORMAT(x) (((x) >> 12) & 0x7F) #define C_008F0C_FORMAT 0xFFF80FFF #define V_008F0C_GFX10_FORMAT_INVALID 0 #define V_008F0C_GFX10_FORMAT_8_UNORM 1 #define V_008F0C_GFX10_FORMAT_8_SNORM 2 #define V_008F0C_GFX10_FORMAT_8_USCALED 3 #define V_008F0C_GFX10_FORMAT_8_SSCALED 4 #define V_008F0C_GFX10_FORMAT_8_UINT 5 #define V_008F0C_GFX10_FORMAT_8_SINT 6 #define V_008F0C_GFX10_FORMAT_16_UNORM 7 #define V_008F0C_GFX10_FORMAT_16_SNORM 8 #define V_008F0C_GFX10_FORMAT_16_USCALED 9 #define V_008F0C_GFX10_FORMAT_16_SSCALED 10 #define V_008F0C_GFX10_FORMAT_16_UINT 11 #define V_008F0C_GFX10_FORMAT_16_SINT 12 #define V_008F0C_GFX10_FORMAT_16_FLOAT 13 #define V_008F0C_GFX10_FORMAT_8_8_UNORM 14 #define V_008F0C_GFX10_FORMAT_8_8_SNORM 15 #define V_008F0C_GFX10_FORMAT_8_8_USCALED 16 #define V_008F0C_GFX10_FORMAT_8_8_SSCALED 17 #define V_008F0C_GFX10_FORMAT_8_8_UINT 18 #define V_008F0C_GFX10_FORMAT_8_8_SINT 19 #define V_008F0C_GFX10_FORMAT_32_UINT 20 #define V_008F0C_GFX10_FORMAT_32_SINT 21 #define V_008F0C_GFX10_FORMAT_32_FLOAT 22 #define V_008F0C_GFX10_FORMAT_16_16_UNORM 23 #define V_008F0C_GFX10_FORMAT_16_16_SNORM 24 #define V_008F0C_GFX10_FORMAT_16_16_USCALED 25 #define V_008F0C_GFX10_FORMAT_16_16_SSCALED 26 #define V_008F0C_GFX10_FORMAT_16_16_UINT 27 #define V_008F0C_GFX10_FORMAT_16_16_SINT 28 #define V_008F0C_GFX10_FORMAT_16_16_FLOAT 29 #define V_008F0C_GFX10_FORMAT_10_11_11_UNORM 30 #define V_008F0C_GFX10_FORMAT_10_11_11_SNORM 31 #define V_008F0C_GFX10_FORMAT_10_11_11_USCALED 32 #define V_008F0C_GFX10_FORMAT_10_11_11_SSCALED 33 #define V_008F0C_GFX10_FORMAT_10_11_11_UINT 34 #define V_008F0C_GFX10_FORMAT_10_11_11_SINT 35 #define V_008F0C_GFX10_FORMAT_10_11_11_FLOAT 36 #define V_008F0C_GFX10_FORMAT_11_11_10_UNORM 37 #define V_008F0C_GFX10_FORMAT_11_11_10_SNORM 38 #define V_008F0C_GFX10_FORMAT_11_11_10_USCALED 39 #define V_008F0C_GFX10_FORMAT_11_11_10_SSCALED 40 #define V_008F0C_GFX10_FORMAT_11_11_10_UINT 41 #define V_008F0C_GFX10_FORMAT_11_11_10_SINT 42 #define V_008F0C_GFX10_FORMAT_11_11_10_FLOAT 43 #define V_008F0C_GFX10_FORMAT_10_10_10_2_UNORM 44 #define V_008F0C_GFX10_FORMAT_10_10_10_2_SNORM 45 #define V_008F0C_GFX10_FORMAT_10_10_10_2_USCALED 46 #define V_008F0C_GFX10_FORMAT_10_10_10_2_SSCALED 47 #define V_008F0C_GFX10_FORMAT_10_10_10_2_UINT 48 #define V_008F0C_GFX10_FORMAT_10_10_10_2_SINT 49 #define V_008F0C_GFX10_FORMAT_2_10_10_10_UNORM 50 #define V_008F0C_GFX10_FORMAT_2_10_10_10_SNORM 51 #define V_008F0C_GFX10_FORMAT_2_10_10_10_USCALED 52 #define V_008F0C_GFX10_FORMAT_2_10_10_10_SSCALED 53 #define V_008F0C_GFX10_FORMAT_2_10_10_10_UINT 54 #define V_008F0C_GFX10_FORMAT_2_10_10_10_SINT 55 #define V_008F0C_GFX10_FORMAT_8_8_8_8_UNORM 56 #define V_008F0C_GFX10_FORMAT_8_8_8_8_SNORM 57 #define V_008F0C_GFX10_FORMAT_8_8_8_8_USCALED 58 #define V_008F0C_GFX10_FORMAT_8_8_8_8_SSCALED 59 #define V_008F0C_GFX10_FORMAT_8_8_8_8_UINT 60 #define V_008F0C_GFX10_FORMAT_8_8_8_8_SINT 61 #define V_008F0C_GFX10_FORMAT_32_32_UINT 62 #define V_008F0C_GFX10_FORMAT_32_32_SINT 63 #define V_008F0C_GFX10_FORMAT_32_32_FLOAT 64 #define V_008F0C_GFX10_FORMAT_16_16_16_16_UNORM 65 #define V_008F0C_GFX10_FORMAT_16_16_16_16_SNORM 66 #define V_008F0C_GFX10_FORMAT_16_16_16_16_USCALED 67 #define V_008F0C_GFX10_FORMAT_16_16_16_16_SSCALED 68 #define V_008F0C_GFX10_FORMAT_16_16_16_16_UINT 69 #define V_008F0C_GFX10_FORMAT_16_16_16_16_SINT 70 #define V_008F0C_GFX10_FORMAT_16_16_16_16_FLOAT 71 #define V_008F0C_GFX10_FORMAT_32_32_32_UINT 72 #define V_008F0C_GFX10_FORMAT_32_32_32_SINT 73 #define V_008F0C_GFX10_FORMAT_32_32_32_FLOAT 74 #define V_008F0C_GFX10_FORMAT_32_32_32_32_UINT 75 #define V_008F0C_GFX10_FORMAT_32_32_32_32_SINT 76 #define V_008F0C_GFX10_FORMAT_32_32_32_32_FLOAT 77 #define V_008F0C_GFX10_FORMAT_8_SRGB 128 #define V_008F0C_GFX10_FORMAT_8_8_SRGB 129 #define V_008F0C_GFX10_FORMAT_8_8_8_8_SRGB 130 #define V_008F0C_GFX10_FORMAT_6E4_FLOAT 131 #define V_008F0C_GFX10_FORMAT_5_9_9_9_FLOAT 132 #define V_008F0C_GFX10_FORMAT_5_6_5_UNORM 133 #define V_008F0C_GFX10_FORMAT_1_5_5_5_UNORM 134 #define V_008F0C_GFX10_FORMAT_5_5_5_1_UNORM 135 #define V_008F0C_GFX10_FORMAT_4_4_4_4_UNORM 136 #define V_008F0C_GFX10_FORMAT_4_4_UNORM 137 #define V_008F0C_GFX10_FORMAT_1_UNORM 138 #define V_008F0C_GFX10_FORMAT_1_REVERSED_UNORM 139 #define V_008F0C_GFX10_FORMAT_32_FLOAT_CLAMP 140 #define V_008F0C_GFX10_FORMAT_8_24_UNORM 141 #define V_008F0C_GFX10_FORMAT_8_24_UINT 142 #define V_008F0C_GFX10_FORMAT_24_8_UNORM 143 #define V_008F0C_GFX10_FORMAT_24_8_UINT 144 #define V_008F0C_GFX10_FORMAT_X24_8_32_UINT 145 #define V_008F0C_GFX10_FORMAT_X24_8_32_FLOAT 146 #define V_008F0C_GFX10_FORMAT_GB_GR_UNORM 147 #define V_008F0C_GFX10_FORMAT_GB_GR_SNORM 148 #define V_008F0C_GFX10_FORMAT_GB_GR_UINT 149 #define V_008F0C_GFX10_FORMAT_GB_GR_SRGB 150 #define V_008F0C_GFX10_FORMAT_BG_RG_UNORM 151 #define V_008F0C_GFX10_FORMAT_BG_RG_SNORM 152 #define V_008F0C_GFX10_FORMAT_BG_RG_UINT 153 #define V_008F0C_GFX10_FORMAT_BG_RG_SRGB 154 #define V_008F0C_GFX10_FORMAT_FMASK8_S2_F1 156 #define V_008F0C_GFX10_FORMAT_FMASK8_S4_F1 157 #define V_008F0C_GFX10_FORMAT_FMASK8_S8_F1 158 #define V_008F0C_GFX10_FORMAT_FMASK8_S2_F2 159 #define V_008F0C_GFX10_FORMAT_FMASK8_S4_F2 160 #define V_008F0C_GFX10_FORMAT_FMASK8_S4_F4 161 #define V_008F0C_GFX10_FORMAT_FMASK16_S16_F1 162 #define V_008F0C_GFX10_FORMAT_FMASK16_S8_F2 163 #define V_008F0C_GFX10_FORMAT_FMASK32_S16_F2 164 #define V_008F0C_GFX10_FORMAT_FMASK32_S8_F4 165 #define V_008F0C_GFX10_FORMAT_FMASK32_S8_F8 166 #define V_008F0C_GFX10_FORMAT_FMASK64_S16_F4 167 #define V_008F0C_GFX10_FORMAT_FMASK64_S16_F8 168 #define V_008F0C_GFX10_FORMAT_BC1_UNORM 169 #define V_008F0C_GFX10_FORMAT_BC1_SRGB 170 #define V_008F0C_GFX10_FORMAT_BC2_UNORM 171 #define V_008F0C_GFX10_FORMAT_BC2_SRGB 172 #define V_008F0C_GFX10_FORMAT_BC3_UNORM 173 #define V_008F0C_GFX10_FORMAT_BC3_SRGB 174 #define V_008F0C_GFX10_FORMAT_BC4_UNORM 175 #define V_008F0C_GFX10_FORMAT_BC4_SNORM 176 #define V_008F0C_GFX10_FORMAT_BC5_UNORM 177 #define V_008F0C_GFX10_FORMAT_BC5_SNORM 178 #define V_008F0C_GFX10_FORMAT_BC6_UFLOAT 179 #define V_008F0C_GFX10_FORMAT_BC6_SFLOAT 180 #define V_008F0C_GFX10_FORMAT_BC7_UNORM 181 #define V_008F0C_GFX10_FORMAT_BC7_SRGB 182 #define V_008F0C_GFX10_FORMAT_MM_8_UNORM 265 #define V_008F0C_GFX10_FORMAT_MM_8_UINT 266 #define V_008F0C_GFX10_FORMAT_MM_8_8_UNORM 267 #define V_008F0C_GFX10_FORMAT_MM_8_8_UINT 268 #define V_008F0C_GFX10_FORMAT_MM_8_8_8_8_UNORM 269 #define V_008F0C_GFX10_FORMAT_MM_8_8_8_8_UINT 270 #define V_008F0C_GFX10_FORMAT_MM_VYUY8_UNORM 271 #define V_008F0C_GFX10_FORMAT_MM_VYUY8_UINT 272 #define V_008F0C_GFX10_FORMAT_MM_10_11_11_UNORM 273 #define V_008F0C_GFX10_FORMAT_MM_10_11_11_UINT 274 #define V_008F0C_GFX10_FORMAT_MM_2_10_10_10_UNORM 275 #define V_008F0C_GFX10_FORMAT_MM_2_10_10_10_UINT 276 #define V_008F0C_GFX10_FORMAT_MM_16_16_16_16_UNORM 277 #define V_008F0C_GFX10_FORMAT_MM_16_16_16_16_UINT 278 #define V_008F0C_GFX10_FORMAT_MM_10_IN_16_UNORM 279 #define V_008F0C_GFX10_FORMAT_MM_10_IN_16_UINT 280 #define V_008F0C_GFX10_FORMAT_MM_10_IN_16_16_UNORM 281 #define V_008F0C_GFX10_FORMAT_MM_10_IN_16_16_UINT 282 #define V_008F0C_GFX10_FORMAT_MM_10_IN_16_16_16_16_UNORM 283 #define V_008F0C_GFX10_FORMAT_MM_10_IN_16_16_16_16_UINT 284 #define V_008F0C_GFX10_FORMAT_7E3_FLOAT 285 #define V_008F0C_GFX10_FORMAT_YCBCR_UNORM 286 #define V_008F0C_GFX10_FORMAT_YCBCR_SNORM 287 #define V_008F0C_GFX10_FORMAT_YCBCR_USCALED 288 #define V_008F0C_GFX10_FORMAT_YCBCR_SSCALED 289 #define V_008F0C_GFX10_FORMAT_YCBCR_UINT 290 #define V_008F0C_GFX10_FORMAT_YCBCR_SINT 291 #define V_008F0C_GFX10_FORMAT_YCBCR_SRGB 292 #define S_008F0C_NUM_FORMAT(x) (((unsigned)(x) & 0x7) << 12) /* <= gfx9 */ #define G_008F0C_NUM_FORMAT(x) (((x) >> 12) & 0x7) #define C_008F0C_NUM_FORMAT 0xFFFF8FFF #define V_008F0C_BUF_NUM_FORMAT_UNORM 0 #define V_008F0C_BUF_NUM_FORMAT_SNORM 1 #define V_008F0C_BUF_NUM_FORMAT_USCALED 2 #define V_008F0C_BUF_NUM_FORMAT_SSCALED 3 #define V_008F0C_BUF_NUM_FORMAT_UINT 4 #define V_008F0C_BUF_NUM_FORMAT_SINT 5 #define V_008F0C_BUF_NUM_FORMAT_RESERVED_6 6 /* gfx8, gfx81 */ #define V_008F0C_BUF_NUM_FORMAT_SNORM_OGL 6 /* <= gfx7 */ #define V_008F0C_BUF_NUM_FORMAT_UNORM_UINT 6 /* gfx9 */ #define V_008F0C_BUF_NUM_FORMAT_FLOAT 7 #define S_008F0C_DATA_FORMAT(x) (((unsigned)(x) & 0xF) << 15) /* <= gfx9 */ #define G_008F0C_DATA_FORMAT(x) (((x) >> 15) & 0xF) #define C_008F0C_DATA_FORMAT 0xFFF87FFF #define V_008F0C_BUF_DATA_FORMAT_INVALID 0 #define V_008F0C_BUF_DATA_FORMAT_8 1 #define V_008F0C_BUF_DATA_FORMAT_16 2 #define V_008F0C_BUF_DATA_FORMAT_8_8 3 #define V_008F0C_BUF_DATA_FORMAT_32 4 #define V_008F0C_BUF_DATA_FORMAT_16_16 5 #define V_008F0C_BUF_DATA_FORMAT_10_11_11 6 #define V_008F0C_BUF_DATA_FORMAT_11_11_10 7 #define V_008F0C_BUF_DATA_FORMAT_10_10_10_2 8 #define V_008F0C_BUF_DATA_FORMAT_2_10_10_10 9 #define V_008F0C_BUF_DATA_FORMAT_8_8_8_8 10 #define V_008F0C_BUF_DATA_FORMAT_32_32 11 #define V_008F0C_BUF_DATA_FORMAT_16_16_16_16 12 #define V_008F0C_BUF_DATA_FORMAT_32_32_32 13 #define V_008F0C_BUF_DATA_FORMAT_32_32_32_32 14 #define V_008F0C_BUF_DATA_FORMAT_RESERVED_15 15 #define S_008F0C_ELEMENT_SIZE(x) (((unsigned)(x) & 0x3) << 19) /* <= gfx81 */ #define G_008F0C_ELEMENT_SIZE(x) (((x) >> 19) & 0x3) #define C_008F0C_ELEMENT_SIZE 0xFFE7FFFF #define S_008F0C_USER_VM_ENABLE(x) (((unsigned)(x) & 0x1) << 19) /* gfx9 */ #define G_008F0C_USER_VM_ENABLE(x) (((x) >> 19) & 0x1) #define C_008F0C_USER_VM_ENABLE 0xFFF7FFFF #define S_008F0C_USER_VM_MODE(x) (((unsigned)(x) & 0x1) << 20) /* gfx9 */ #define G_008F0C_USER_VM_MODE(x) (((x) >> 20) & 0x1) #define C_008F0C_USER_VM_MODE 0xFFEFFFFF #define S_008F0C_INDEX_STRIDE(x) (((unsigned)(x) & 0x3) << 21) #define G_008F0C_INDEX_STRIDE(x) (((x) >> 21) & 0x3) #define C_008F0C_INDEX_STRIDE 0xFF9FFFFF #define S_008F0C_ADD_TID_ENABLE(x) (((unsigned)(x) & 0x1) << 23) #define G_008F0C_ADD_TID_ENABLE(x) (((x) >> 23) & 0x1) #define C_008F0C_ADD_TID_ENABLE 0xFF7FFFFF #define S_008F0C_ATC(x) (((unsigned)(x) & 0x1) << 24) /* <= gfx81 */ #define G_008F0C_ATC(x) (((x) >> 24) & 0x1) #define C_008F0C_ATC 0xFEFFFFFF #define S_008F0C_RESOURCE_LEVEL(x) (((unsigned)(x) & 0x1) << 24) /* >= gfx10 */ #define G_008F0C_RESOURCE_LEVEL(x) (((x) >> 24) & 0x1) #define C_008F0C_RESOURCE_LEVEL 0xFEFFFFFF #define S_008F0C_HASH_ENABLE(x) (((unsigned)(x) & 0x1) << 25) /* <= gfx81 */ #define G_008F0C_HASH_ENABLE(x) (((x) >> 25) & 0x1) #define C_008F0C_HASH_ENABLE 0xFDFFFFFF #define S_008F0C_HEAP(x) (((unsigned)(x) & 0x1) << 26) /* <= gfx81 */ #define G_008F0C_HEAP(x) (((x) >> 26) & 0x1) #define C_008F0C_HEAP 0xFBFFFFFF #define S_008F0C_LLC_NOALLOC(x) (((unsigned)(x) & 0x3) << 26) /* >= gfx103 */ #define G_008F0C_LLC_NOALLOC(x) (((x) >> 26) & 0x3) #define C_008F0C_LLC_NOALLOC 0xF3FFFFFF #define S_008F0C_MTYPE(x) (((unsigned)(x) & 0x7) << 27) /* <= gfx81 */ #define G_008F0C_MTYPE(x) (((x) >> 27) & 0x7) #define C_008F0C_MTYPE 0xC7FFFFFF #define S_008F0C_NV(x) (((unsigned)(x) & 0x1) << 27) /* gfx9 */ #define G_008F0C_NV(x) (((x) >> 27) & 0x1) #define C_008F0C_NV 0xF7FFFFFF #define S_008F0C_OOB_SELECT(x) (((unsigned)(x) & 0x3) << 28) /* >= gfx10 */ #define G_008F0C_OOB_SELECT(x) (((x) >> 28) & 0x3) #define C_008F0C_OOB_SELECT 0xCFFFFFFF #define V_008F0C_OOB_SELECT_STRUCTURED_WITH_OFFSET 0 #define V_008F0C_OOB_SELECT_STRUCTURED 1 #define V_008F0C_OOB_SELECT_DISABLED 2 #define V_008F0C_OOB_SELECT_RAW 3 #define S_008F0C_TYPE(x) (((unsigned)(x) & 0x3) << 30) #define G_008F0C_TYPE(x) (((x) >> 30) & 0x3) #define C_008F0C_TYPE 0x3FFFFFFF #define V_008F0C_SQ_RSRC_BUF 0 /* <= gfx9 */ #define V_008F0C_SQ_RSRC_BUF_RSVD_1 1 /* <= gfx9 */ #define V_008F0C_SQ_RSRC_BUF_RSVD_2 2 /* <= gfx9 */ #define V_008F0C_SQ_RSRC_BUF_RSVD_3 3 /* <= gfx9 */ #define R_008F10_SQ_IMG_RSRC_WORD0 0x008F10 /* <= gfx9 */ #define R_008F14_SQ_IMG_RSRC_WORD1 0x008F14 /* <= gfx9 */ #define S_008F14_BASE_ADDRESS_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_008F14_BASE_ADDRESS_HI(x) (((x) >> 0) & 0xFF) #define C_008F14_BASE_ADDRESS_HI 0xFFFFFF00 #define S_008F14_MIN_LOD(x) (((unsigned)(x) & 0xFFF) << 8) #define G_008F14_MIN_LOD(x) (((x) >> 8) & 0xFFF) #define C_008F14_MIN_LOD 0xFFF000FF #define S_008F14_DATA_FORMAT(x) (((unsigned)(x) & 0x3F) << 20) #define G_008F14_DATA_FORMAT(x) (((x) >> 20) & 0x3F) #define C_008F14_DATA_FORMAT 0xFC0FFFFF #define V_008F14_IMG_DATA_FORMAT_INVALID 0 #define V_008F14_IMG_DATA_FORMAT_8 1 #define V_008F14_IMG_DATA_FORMAT_16 2 #define V_008F14_IMG_DATA_FORMAT_8_8 3 #define V_008F14_IMG_DATA_FORMAT_32 4 #define V_008F14_IMG_DATA_FORMAT_16_16 5 #define V_008F14_IMG_DATA_FORMAT_10_11_11 6 #define V_008F14_IMG_DATA_FORMAT_11_11_10 7 #define V_008F14_IMG_DATA_FORMAT_10_10_10_2 8 #define V_008F14_IMG_DATA_FORMAT_2_10_10_10 9 #define V_008F14_IMG_DATA_FORMAT_8_8_8_8 10 #define V_008F14_IMG_DATA_FORMAT_32_32 11 #define V_008F14_IMG_DATA_FORMAT_16_16_16_16 12 #define V_008F14_IMG_DATA_FORMAT_32_32_32 13 #define V_008F14_IMG_DATA_FORMAT_32_32_32_32 14 #define V_008F14_IMG_DATA_FORMAT_16_AS_32_32_GFX81 15 /* gfx81 */ #define V_008F14_IMG_DATA_FORMAT_RESERVED_15 15 /* <= gfx8, gfx9 */ #define V_008F14_IMG_DATA_FORMAT_5_6_5 16 #define V_008F14_IMG_DATA_FORMAT_1_5_5_5 17 #define V_008F14_IMG_DATA_FORMAT_5_5_5_1 18 #define V_008F14_IMG_DATA_FORMAT_4_4_4_4 19 #define V_008F14_IMG_DATA_FORMAT_8_24 20 #define V_008F14_IMG_DATA_FORMAT_24_8 21 #define V_008F14_IMG_DATA_FORMAT_X24_8_32 22 #define V_008F14_IMG_DATA_FORMAT_8_AS_8_8_8_8 23 /* gfx81, gfx9 */ #define V_008F14_IMG_DATA_FORMAT_RESERVED_23 23 /* <= gfx8 */ #define V_008F14_IMG_DATA_FORMAT_ETC2_RGB 24 /* gfx81, gfx9 */ #define V_008F14_IMG_DATA_FORMAT_RESERVED_24 24 /* <= gfx8 */ #define V_008F14_IMG_DATA_FORMAT_ETC2_RGBA 25 /* gfx81, gfx9 */ #define V_008F14_IMG_DATA_FORMAT_RESERVED_25 25 /* <= gfx8 */ #define V_008F14_IMG_DATA_FORMAT_ETC2_R 26 /* gfx81, gfx9 */ #define V_008F14_IMG_DATA_FORMAT_RESERVED_26 26 /* <= gfx8 */ #define V_008F14_IMG_DATA_FORMAT_ETC2_RG 27 /* gfx81, gfx9 */ #define V_008F14_IMG_DATA_FORMAT_RESERVED_27 27 /* <= gfx8 */ #define V_008F14_IMG_DATA_FORMAT_ETC2_RGBA1 28 /* gfx81, gfx9 */ #define V_008F14_IMG_DATA_FORMAT_RESERVED_28 28 /* <= gfx8 */ #define V_008F14_IMG_DATA_FORMAT_RESERVED_29 29 #define V_008F14_IMG_DATA_FORMAT_RESERVED_30 30 #define V_008F14_IMG_DATA_FORMAT_6E4 31 /* gfx9 */ #define V_008F14_IMG_DATA_FORMAT_RESERVED_31 31 /* <= gfx81 */ #define V_008F14_IMG_DATA_FORMAT_GB_GR 32 #define V_008F14_IMG_DATA_FORMAT_BG_RG 33 #define V_008F14_IMG_DATA_FORMAT_5_9_9_9 34 #define V_008F14_IMG_DATA_FORMAT_BC1 35 #define V_008F14_IMG_DATA_FORMAT_BC2 36 #define V_008F14_IMG_DATA_FORMAT_BC3 37 #define V_008F14_IMG_DATA_FORMAT_BC4 38 #define V_008F14_IMG_DATA_FORMAT_BC5 39 #define V_008F14_IMG_DATA_FORMAT_BC6 40 #define V_008F14_IMG_DATA_FORMAT_BC7 41 #define V_008F14_IMG_DATA_FORMAT_16_AS_16_16_16_16_GFX81 42 /* gfx81 */ #define V_008F14_IMG_DATA_FORMAT_16_AS_32_32_GFX9 42 /* gfx9 */ #define V_008F14_IMG_DATA_FORMAT_RESERVED_42 42 /* <= gfx8 */ #define V_008F14_IMG_DATA_FORMAT_16_AS_16_16_16_16_GFX9 43 /* gfx9 */ #define V_008F14_IMG_DATA_FORMAT_16_AS_32_32_32_32_GFX81 43 /* gfx81 */ #define V_008F14_IMG_DATA_FORMAT_RESERVED_43 43 /* <= gfx8 */ #define V_008F14_IMG_DATA_FORMAT_16_AS_32_32_32_32_GFX9 44 /* gfx9 */ #define V_008F14_IMG_DATA_FORMAT_FMASK8_S2_F1 44 /* <= gfx81 */ #define V_008F14_IMG_DATA_FORMAT_FMASK 45 /* gfx9 */ #define V_008F14_IMG_DATA_FORMAT_FMASK8_S4_F1 45 /* <= gfx81 */ #define V_008F14_IMG_DATA_FORMAT_ASTC_2D_LDR 46 /* gfx9 */ #define V_008F14_IMG_DATA_FORMAT_FMASK8_S8_F1 46 /* <= gfx81 */ #define V_008F14_IMG_DATA_FORMAT_ASTC_2D_HDR 47 /* gfx9 */ #define V_008F14_IMG_DATA_FORMAT_FMASK8_S2_F2 47 /* <= gfx81 */ #define V_008F14_IMG_DATA_FORMAT_ASTC_2D_LDR_SRGB 48 /* gfx9 */ #define V_008F14_IMG_DATA_FORMAT_FMASK8_S4_F2 48 /* <= gfx81 */ #define V_008F14_IMG_DATA_FORMAT_ASTC_3D_LDR 49 /* gfx9 */ #define V_008F14_IMG_DATA_FORMAT_FMASK8_S4_F4 49 /* <= gfx81 */ #define V_008F14_IMG_DATA_FORMAT_ASTC_3D_HDR 50 /* gfx9 */ #define V_008F14_IMG_DATA_FORMAT_FMASK16_S16_F1 50 /* <= gfx81 */ #define V_008F14_IMG_DATA_FORMAT_ASTC_3D_LDR_SRGB 51 /* gfx9 */ #define V_008F14_IMG_DATA_FORMAT_FMASK16_S8_F2 51 /* <= gfx81 */ #define V_008F14_IMG_DATA_FORMAT_FMASK32_S16_F2 52 /* <= gfx81 */ #define V_008F14_IMG_DATA_FORMAT_N_IN_16 52 /* gfx9 */ #define V_008F14_IMG_DATA_FORMAT_FMASK32_S8_F4 53 /* <= gfx81 */ #define V_008F14_IMG_DATA_FORMAT_N_IN_16_16 53 /* gfx9 */ #define V_008F14_IMG_DATA_FORMAT_FMASK32_S8_F8 54 /* <= gfx81 */ #define V_008F14_IMG_DATA_FORMAT_N_IN_16_16_16_16 54 /* gfx9 */ #define V_008F14_IMG_DATA_FORMAT_FMASK64_S16_F4 55 /* <= gfx81 */ #define V_008F14_IMG_DATA_FORMAT_N_IN_16_AS_16_16_16_16 55 /* gfx9 */ #define V_008F14_IMG_DATA_FORMAT_FMASK64_S16_F8 56 /* <= gfx81 */ #define V_008F14_IMG_DATA_FORMAT_RESERVED_56 56 /* gfx9 */ #define V_008F14_IMG_DATA_FORMAT_4_4 57 #define V_008F14_IMG_DATA_FORMAT_6_5_5 58 #define V_008F14_IMG_DATA_FORMAT_1 59 /* <= gfx81 */ #define V_008F14_IMG_DATA_FORMAT_RESERVED_59 59 /* gfx9 */ #define V_008F14_IMG_DATA_FORMAT_1_REVERSED 60 /* <= gfx81 */ #define V_008F14_IMG_DATA_FORMAT_RESERVED_60 60 /* gfx9 */ #define V_008F14_IMG_DATA_FORMAT_32_AS_8 61 /* <= gfx8 */ #define V_008F14_IMG_DATA_FORMAT_8_AS_32 61 /* gfx81, gfx9 */ #define V_008F14_IMG_DATA_FORMAT_32_AS_8_8 62 /* <= gfx8 */ #define V_008F14_IMG_DATA_FORMAT_8_AS_32_32 62 /* gfx81, gfx9 */ #define V_008F14_IMG_DATA_FORMAT_32_AS_32_32_32_32 63 #define S_008F14_DATA_FORMAT_STENCIL(x) (((unsigned)(x) & 0x3F) << 20) /* gfx9 */ #define G_008F14_DATA_FORMAT_STENCIL(x) (((x) >> 20) & 0x3F) #define C_008F14_DATA_FORMAT_STENCIL 0xFC0FFFFF #define V_008F14_IMG_DATA_FORMAT_S8_16 59 #define V_008F14_IMG_DATA_FORMAT_S8_32 60 #define S_008F14_NUM_FORMAT(x) (((unsigned)(x) & 0xF) << 26) #define G_008F14_NUM_FORMAT(x) (((x) >> 26) & 0xF) #define C_008F14_NUM_FORMAT 0xC3FFFFFF #define V_008F14_IMG_NUM_FORMAT_UNORM 0 #define V_008F14_IMG_NUM_FORMAT_SNORM 1 #define V_008F14_IMG_NUM_FORMAT_USCALED 2 #define V_008F14_IMG_NUM_FORMAT_SSCALED 3 #define V_008F14_IMG_NUM_FORMAT_UINT 4 #define V_008F14_IMG_NUM_FORMAT_SINT 5 #define V_008F14_IMG_NUM_FORMAT_RESERVED_6 6 /* gfx8, gfx81 */ #define V_008F14_IMG_NUM_FORMAT_SNORM_OGL 6 /* <= gfx7 */ #define V_008F14_IMG_NUM_FORMAT_UNORM_UINT 6 /* gfx9 */ #define V_008F14_IMG_NUM_FORMAT_FLOAT 7 #define V_008F14_IMG_NUM_FORMAT_RESERVED_8 8 #define V_008F14_IMG_NUM_FORMAT_SRGB 9 #define V_008F14_IMG_NUM_FORMAT_RESERVED_10 10 /* gfx8, gfx81, gfx9 */ #define V_008F14_IMG_NUM_FORMAT_UBNORM 10 /* <= gfx7 */ #define V_008F14_IMG_NUM_FORMAT_RESERVED_11 11 /* gfx8, gfx81, gfx9 */ #define V_008F14_IMG_NUM_FORMAT_UBNORM_OGL 11 /* <= gfx7 */ #define V_008F14_IMG_NUM_FORMAT_RESERVED_12 12 /* gfx8, gfx81, gfx9 */ #define V_008F14_IMG_NUM_FORMAT_UBINT 12 /* <= gfx7 */ #define V_008F14_IMG_NUM_FORMAT_RESERVED_13 13 /* gfx8, gfx81, gfx9 */ #define V_008F14_IMG_NUM_FORMAT_UBSCALED 13 /* <= gfx7 */ #define V_008F14_IMG_NUM_FORMAT_RESERVED_14 14 #define V_008F14_IMG_NUM_FORMAT_RESERVED_15 15 #define S_008F14_NUM_FORMAT_FMASK(x) (((unsigned)(x) & 0xF) << 26) /* gfx9 */ #define G_008F14_NUM_FORMAT_FMASK(x) (((x) >> 26) & 0xF) #define C_008F14_NUM_FORMAT_FMASK 0xC3FFFFFF #define V_008F14_IMG_NUM_FORMAT_FMASK_8_2_1 0 #define V_008F14_IMG_NUM_FORMAT_FMASK_8_4_1 1 #define V_008F14_IMG_NUM_FORMAT_FMASK_8_8_1 2 #define V_008F14_IMG_NUM_FORMAT_FMASK_8_2_2 3 #define V_008F14_IMG_NUM_FORMAT_FMASK_8_4_2 4 #define V_008F14_IMG_NUM_FORMAT_FMASK_8_4_4 5 #define V_008F14_IMG_NUM_FORMAT_FMASK_16_16_1 6 #define V_008F14_IMG_NUM_FORMAT_FMASK_16_8_2 7 #define V_008F14_IMG_NUM_FORMAT_FMASK_32_16_2 8 #define V_008F14_IMG_NUM_FORMAT_FMASK_32_8_4 9 #define V_008F14_IMG_NUM_FORMAT_FMASK_32_8_8 10 #define V_008F14_IMG_NUM_FORMAT_FMASK_64_16_4 11 #define V_008F14_IMG_NUM_FORMAT_FMASK_64_16_8 12 #define V_008F14_IMG_NUM_FORMAT_FMASK_RESERVED_13 13 #define V_008F14_IMG_NUM_FORMAT_FMASK_RESERVED_14 14 #define V_008F14_IMG_NUM_FORMAT_FMASK_RESERVED_15 15 #define S_008F14_MTYPE(x) (((unsigned)(x) & 0x3) << 30) /* <= gfx81 */ #define G_008F14_MTYPE(x) (((x) >> 30) & 0x3) #define C_008F14_MTYPE 0x3FFFFFFF #define S_008F14_NV(x) (((unsigned)(x) & 0x1) << 30) /* gfx9 */ #define G_008F14_NV(x) (((x) >> 30) & 0x1) #define C_008F14_NV 0xBFFFFFFF #define S_008F14_META_DIRECT(x) (((unsigned)(x) & 0x1) << 31) /* gfx9 */ #define G_008F14_META_DIRECT(x) (((x) >> 31) & 0x1) #define C_008F14_META_DIRECT 0x7FFFFFFF #define R_008F18_SQ_IMG_RSRC_WORD2 0x008F18 /* <= gfx9 */ #define S_008F18_WIDTH(x) (((unsigned)(x) & 0x3FFF) << 0) #define G_008F18_WIDTH(x) (((x) >> 0) & 0x3FFF) #define C_008F18_WIDTH 0xFFFFC000 #define S_008F18_HEIGHT(x) (((unsigned)(x) & 0x3FFF) << 14) #define G_008F18_HEIGHT(x) (((x) >> 14) & 0x3FFF) #define C_008F18_HEIGHT 0xF0003FFF #define S_008F18_PERF_MOD(x) (((unsigned)(x) & 0x7) << 28) #define G_008F18_PERF_MOD(x) (((x) >> 28) & 0x7) #define C_008F18_PERF_MOD 0x8FFFFFFF #define S_008F18_INTERLACED(x) (((unsigned)(x) & 0x1) << 31) /* <= gfx81 */ #define G_008F18_INTERLACED(x) (((x) >> 31) & 0x1) #define C_008F18_INTERLACED 0x7FFFFFFF #define R_008F1C_SQ_IMG_RSRC_WORD3 0x008F1C /* <= gfx9 */ #define S_008F1C_DST_SEL_X(x) (((unsigned)(x) & 0x7) << 0) #define G_008F1C_DST_SEL_X(x) (((x) >> 0) & 0x7) #define C_008F1C_DST_SEL_X 0xFFFFFFF8 #define V_008F1C_SQ_SEL_0 0 #define V_008F1C_SQ_SEL_1 1 #define V_008F1C_SQ_SEL_RESERVED_0 2 #define V_008F1C_SQ_SEL_RESERVED_1 3 #define V_008F1C_SQ_SEL_X 4 #define V_008F1C_SQ_SEL_Y 5 #define V_008F1C_SQ_SEL_Z 6 #define V_008F1C_SQ_SEL_W 7 #define S_008F1C_DST_SEL_Y(x) (((unsigned)(x) & 0x7) << 3) #define G_008F1C_DST_SEL_Y(x) (((x) >> 3) & 0x7) #define C_008F1C_DST_SEL_Y 0xFFFFFFC7 #define S_008F1C_DST_SEL_Z(x) (((unsigned)(x) & 0x7) << 6) #define G_008F1C_DST_SEL_Z(x) (((x) >> 6) & 0x7) #define C_008F1C_DST_SEL_Z 0xFFFFFE3F #define S_008F1C_DST_SEL_W(x) (((unsigned)(x) & 0x7) << 9) #define G_008F1C_DST_SEL_W(x) (((x) >> 9) & 0x7) #define C_008F1C_DST_SEL_W 0xFFFFF1FF #define S_008F1C_BASE_LEVEL(x) (((unsigned)(x) & 0xF) << 12) #define G_008F1C_BASE_LEVEL(x) (((x) >> 12) & 0xF) #define C_008F1C_BASE_LEVEL 0xFFFF0FFF #define S_008F1C_LAST_LEVEL(x) (((unsigned)(x) & 0xF) << 16) #define G_008F1C_LAST_LEVEL(x) (((x) >> 16) & 0xF) #define C_008F1C_LAST_LEVEL 0xFFF0FFFF #define S_008F1C_SW_MODE(x) (((unsigned)(x) & 0x1F) << 20) /* gfx9 */ #define G_008F1C_SW_MODE(x) (((x) >> 20) & 0x1F) #define C_008F1C_SW_MODE 0xFE0FFFFF #define S_008F1C_TILING_INDEX(x) (((unsigned)(x) & 0x1F) << 20) /* <= gfx81 */ #define G_008F1C_TILING_INDEX(x) (((x) >> 20) & 0x1F) #define C_008F1C_TILING_INDEX 0xFE0FFFFF #define S_008F1C_POW2_PAD(x) (((unsigned)(x) & 0x1) << 25) /* <= gfx81 */ #define G_008F1C_POW2_PAD(x) (((x) >> 25) & 0x1) #define C_008F1C_POW2_PAD 0xFDFFFFFF #define S_008F1C_MTYPE(x) (((unsigned)(x) & 0x1) << 26) /* <= gfx81 */ #define G_008F1C_MTYPE(x) (((x) >> 26) & 0x1) #define C_008F1C_MTYPE 0xFBFFFFFF #define S_008F1C_ATC(x) (((unsigned)(x) & 0x1) << 27) /* <= gfx81 */ #define G_008F1C_ATC(x) (((x) >> 27) & 0x1) #define C_008F1C_ATC 0xF7FFFFFF #define S_008F1C_TYPE(x) (((unsigned)(x) & 0xF) << 28) #define G_008F1C_TYPE(x) (((x) >> 28) & 0xF) #define C_008F1C_TYPE 0x0FFFFFFF #define V_008F1C_SQ_RSRC_IMG_RSVD_0 0 #define V_008F1C_SQ_RSRC_IMG_RSVD_1 1 #define V_008F1C_SQ_RSRC_IMG_RSVD_2 2 #define V_008F1C_SQ_RSRC_IMG_RSVD_3 3 #define V_008F1C_SQ_RSRC_IMG_RSVD_4 4 #define V_008F1C_SQ_RSRC_IMG_RSVD_5 5 #define V_008F1C_SQ_RSRC_IMG_RSVD_6 6 #define V_008F1C_SQ_RSRC_IMG_RSVD_7 7 #define V_008F1C_SQ_RSRC_IMG_1D 8 #define V_008F1C_SQ_RSRC_IMG_2D 9 #define V_008F1C_SQ_RSRC_IMG_3D 10 #define V_008F1C_SQ_RSRC_IMG_CUBE 11 #define V_008F1C_SQ_RSRC_IMG_1D_ARRAY 12 #define V_008F1C_SQ_RSRC_IMG_2D_ARRAY 13 #define V_008F1C_SQ_RSRC_IMG_2D_MSAA 14 #define V_008F1C_SQ_RSRC_IMG_2D_MSAA_ARRAY 15 #define R_008F20_SQ_IMG_RSRC_WORD4 0x008F20 /* <= gfx9 */ #define S_008F20_DEPTH(x) (((unsigned)(x) & 0x1FFF) << 0) #define G_008F20_DEPTH(x) (((x) >> 0) & 0x1FFF) #define C_008F20_DEPTH 0xFFFFE000 #define S_008F20_PITCH(x) (((unsigned)(x) & 0xFFFF) << 13) #define G_008F20_PITCH(x) (((x) >> 13) & 0xFFFF) #define C_008F20_PITCH 0xE0001FFF #define S_008F20_BC_SWIZZLE(x) (((unsigned)(x) & 0x7) << 29) /* gfx9 */ #define G_008F20_BC_SWIZZLE(x) (((x) >> 29) & 0x7) #define C_008F20_BC_SWIZZLE 0x1FFFFFFF #define V_008F20_BC_SWIZZLE_XYZW 0 #define V_008F20_BC_SWIZZLE_XWYZ 1 #define V_008F20_BC_SWIZZLE_WZYX 2 #define V_008F20_BC_SWIZZLE_WXYZ 3 #define V_008F20_BC_SWIZZLE_ZYXW 4 #define V_008F20_BC_SWIZZLE_YXWZ 5 #define R_008F24_SQ_IMG_RSRC_WORD5 0x008F24 /* <= gfx9 */ #define S_008F24_BASE_ARRAY(x) (((unsigned)(x) & 0x1FFF) << 0) #define G_008F24_BASE_ARRAY(x) (((x) >> 0) & 0x1FFF) #define C_008F24_BASE_ARRAY 0xFFFFE000 #define S_008F24_ARRAY_PITCH(x) (((unsigned)(x) & 0xF) << 13) /* gfx9 */ #define G_008F24_ARRAY_PITCH(x) (((x) >> 13) & 0xF) #define C_008F24_ARRAY_PITCH 0xFFFE1FFF #define S_008F24_LAST_ARRAY(x) (((unsigned)(x) & 0x1FFF) << 13) /* <= gfx81 */ #define G_008F24_LAST_ARRAY(x) (((x) >> 13) & 0x1FFF) #define C_008F24_LAST_ARRAY 0xFC001FFF #define S_008F24_META_DATA_ADDRESS(x) (((unsigned)(x) & 0xFF) << 17) /* gfx9 */ #define G_008F24_META_DATA_ADDRESS(x) (((x) >> 17) & 0xFF) #define C_008F24_META_DATA_ADDRESS 0xFE01FFFF #define S_008F24_META_LINEAR(x) (((unsigned)(x) & 0x1) << 25) /* gfx9 */ #define G_008F24_META_LINEAR(x) (((x) >> 25) & 0x1) #define C_008F24_META_LINEAR 0xFDFFFFFF #define S_008F24_META_PIPE_ALIGNED(x) (((unsigned)(x) & 0x1) << 26) /* gfx9 */ #define G_008F24_META_PIPE_ALIGNED(x) (((x) >> 26) & 0x1) #define C_008F24_META_PIPE_ALIGNED 0xFBFFFFFF #define S_008F24_META_RB_ALIGNED(x) (((unsigned)(x) & 0x1) << 27) /* gfx9 */ #define G_008F24_META_RB_ALIGNED(x) (((x) >> 27) & 0x1) #define C_008F24_META_RB_ALIGNED 0xF7FFFFFF #define S_008F24_MAX_MIP(x) (((unsigned)(x) & 0xF) << 28) /* gfx9 */ #define G_008F24_MAX_MIP(x) (((x) >> 28) & 0xF) #define C_008F24_MAX_MIP 0x0FFFFFFF #define R_008F28_SQ_IMG_RSRC_WORD6 0x008F28 /* <= gfx9 */ #define S_008F28_MIN_LOD_WARN(x) (((unsigned)(x) & 0xFFF) << 0) #define G_008F28_MIN_LOD_WARN(x) (((x) >> 0) & 0xFFF) #define C_008F28_MIN_LOD_WARN 0xFFFFF000 #define S_008F28_COUNTER_BANK_ID(x) (((unsigned)(x) & 0xFF) << 12) #define G_008F28_COUNTER_BANK_ID(x) (((x) >> 12) & 0xFF) #define C_008F28_COUNTER_BANK_ID 0xFFF00FFF #define S_008F28_LOD_HDW_CNT_EN(x) (((unsigned)(x) & 0x1) << 20) #define G_008F28_LOD_HDW_CNT_EN(x) (((x) >> 20) & 0x1) #define C_008F28_LOD_HDW_CNT_EN 0xFFEFFFFF #define S_008F28_COMPRESSION_EN(x) (((unsigned)(x) & 0x1) << 21) /* gfx8, gfx81, gfx9 */ #define G_008F28_COMPRESSION_EN(x) (((x) >> 21) & 0x1) #define C_008F28_COMPRESSION_EN 0xFFDFFFFF #define S_008F28_UNUNSED(x) (((unsigned)(x) & 0x7FF) << 21) /* <= gfx7 */ #define G_008F28_UNUNSED(x) (((x) >> 21) & 0x7FF) #define C_008F28_UNUNSED 0x001FFFFF #define S_008F28_ALPHA_IS_ON_MSB(x) (((unsigned)(x) & 0x1) << 22) /* gfx8, gfx81, gfx9 */ #define G_008F28_ALPHA_IS_ON_MSB(x) (((x) >> 22) & 0x1) #define C_008F28_ALPHA_IS_ON_MSB 0xFFBFFFFF #define S_008F28_COLOR_TRANSFORM(x) (((unsigned)(x) & 0x1) << 23) /* gfx8, gfx81, gfx9 */ #define G_008F28_COLOR_TRANSFORM(x) (((x) >> 23) & 0x1) #define C_008F28_COLOR_TRANSFORM 0xFF7FFFFF #define S_008F28_LOST_ALPHA_BITS(x) (((unsigned)(x) & 0xF) << 24) /* gfx8, gfx81, gfx9 */ #define G_008F28_LOST_ALPHA_BITS(x) (((x) >> 24) & 0xF) #define C_008F28_LOST_ALPHA_BITS 0xF0FFFFFF #define S_008F28_LOST_COLOR_BITS(x) (((unsigned)(x) & 0xF) << 28) /* gfx8, gfx81, gfx9 */ #define G_008F28_LOST_COLOR_BITS(x) (((x) >> 28) & 0xF) #define C_008F28_LOST_COLOR_BITS 0x0FFFFFFF #define R_008F2C_SQ_IMG_RSRC_WORD7 0x008F2C /* <= gfx9 */ #define R_008F30_SQ_IMG_SAMP_WORD0 0x008F30 #define S_008F30_CLAMP_X(x) (((unsigned)(x) & 0x7) << 0) #define G_008F30_CLAMP_X(x) (((x) >> 0) & 0x7) #define C_008F30_CLAMP_X 0xFFFFFFF8 #define V_008F30_SQ_TEX_WRAP 0 /* <= gfx9 */ #define V_008F30_SQ_TEX_MIRROR 1 /* <= gfx9 */ #define V_008F30_SQ_TEX_CLAMP_LAST_TEXEL 2 /* <= gfx9 */ #define V_008F30_SQ_TEX_MIRROR_ONCE_LAST_TEXEL 3 /* <= gfx9 */ #define V_008F30_SQ_TEX_CLAMP_HALF_BORDER 4 /* <= gfx9 */ #define V_008F30_SQ_TEX_MIRROR_ONCE_HALF_BORDER 5 /* <= gfx9 */ #define V_008F30_SQ_TEX_CLAMP_BORDER 6 /* <= gfx9 */ #define V_008F30_SQ_TEX_MIRROR_ONCE_BORDER 7 /* <= gfx9 */ #define S_008F30_CLAMP_Y(x) (((unsigned)(x) & 0x7) << 3) #define G_008F30_CLAMP_Y(x) (((x) >> 3) & 0x7) #define C_008F30_CLAMP_Y 0xFFFFFFC7 #define S_008F30_CLAMP_Z(x) (((unsigned)(x) & 0x7) << 6) #define G_008F30_CLAMP_Z(x) (((x) >> 6) & 0x7) #define C_008F30_CLAMP_Z 0xFFFFFE3F #define S_008F30_MAX_ANISO_RATIO(x) (((unsigned)(x) & 0x7) << 9) #define G_008F30_MAX_ANISO_RATIO(x) (((x) >> 9) & 0x7) #define C_008F30_MAX_ANISO_RATIO 0xFFFFF1FF #define S_008F30_DEPTH_COMPARE_FUNC(x) (((unsigned)(x) & 0x7) << 12) #define G_008F30_DEPTH_COMPARE_FUNC(x) (((x) >> 12) & 0x7) #define C_008F30_DEPTH_COMPARE_FUNC 0xFFFF8FFF #define V_008F30_SQ_TEX_DEPTH_COMPARE_NEVER 0 /* <= gfx9 */ #define V_008F30_SQ_TEX_DEPTH_COMPARE_LESS 1 /* <= gfx9 */ #define V_008F30_SQ_TEX_DEPTH_COMPARE_EQUAL 2 /* <= gfx9 */ #define V_008F30_SQ_TEX_DEPTH_COMPARE_LESSEQUAL 3 /* <= gfx9 */ #define V_008F30_SQ_TEX_DEPTH_COMPARE_GREATER 4 /* <= gfx9 */ #define V_008F30_SQ_TEX_DEPTH_COMPARE_NOTEQUAL 5 /* <= gfx9 */ #define V_008F30_SQ_TEX_DEPTH_COMPARE_GREATEREQUAL 6 /* <= gfx9 */ #define V_008F30_SQ_TEX_DEPTH_COMPARE_ALWAYS 7 /* <= gfx9 */ #define S_008F30_FORCE_UNNORMALIZED(x) (((unsigned)(x) & 0x1) << 15) #define G_008F30_FORCE_UNNORMALIZED(x) (((x) >> 15) & 0x1) #define C_008F30_FORCE_UNNORMALIZED 0xFFFF7FFF #define S_008F30_ANISO_THRESHOLD(x) (((unsigned)(x) & 0x7) << 16) #define G_008F30_ANISO_THRESHOLD(x) (((x) >> 16) & 0x7) #define C_008F30_ANISO_THRESHOLD 0xFFF8FFFF #define S_008F30_MC_COORD_TRUNC(x) (((unsigned)(x) & 0x1) << 19) #define G_008F30_MC_COORD_TRUNC(x) (((x) >> 19) & 0x1) #define C_008F30_MC_COORD_TRUNC 0xFFF7FFFF #define S_008F30_FORCE_DEGAMMA(x) (((unsigned)(x) & 0x1) << 20) #define G_008F30_FORCE_DEGAMMA(x) (((x) >> 20) & 0x1) #define C_008F30_FORCE_DEGAMMA 0xFFEFFFFF #define S_008F30_ANISO_BIAS(x) (((unsigned)(x) & 0x3F) << 21) #define G_008F30_ANISO_BIAS(x) (((x) >> 21) & 0x3F) #define C_008F30_ANISO_BIAS 0xF81FFFFF #define S_008F30_TRUNC_COORD(x) (((unsigned)(x) & 0x1) << 27) #define G_008F30_TRUNC_COORD(x) (((x) >> 27) & 0x1) #define C_008F30_TRUNC_COORD 0xF7FFFFFF #define S_008F30_DISABLE_CUBE_WRAP(x) (((unsigned)(x) & 0x1) << 28) #define G_008F30_DISABLE_CUBE_WRAP(x) (((x) >> 28) & 0x1) #define C_008F30_DISABLE_CUBE_WRAP 0xEFFFFFFF #define S_008F30_FILTER_MODE(x) (((unsigned)(x) & 0x3) << 29) #define G_008F30_FILTER_MODE(x) (((x) >> 29) & 0x3) #define C_008F30_FILTER_MODE 0x9FFFFFFF #define V_008F30_SQ_IMG_FILTER_MODE_BLEND 0 /* <= gfx9 */ #define V_008F30_SQ_IMG_FILTER_MODE_MIN 1 /* <= gfx9 */ #define V_008F30_SQ_IMG_FILTER_MODE_MAX 2 /* <= gfx9 */ #define S_008F30_COMPAT_MODE(x) (((unsigned)(x) & 0x1) << 31) /* gfx8, gfx81, gfx9 */ #define G_008F30_COMPAT_MODE(x) (((x) >> 31) & 0x1) #define C_008F30_COMPAT_MODE 0x7FFFFFFF #define S_008F30_SKIP_DEGAMMA(x) (((unsigned)(x) & 0x1) << 31) /* >= gfx10 */ #define G_008F30_SKIP_DEGAMMA(x) (((x) >> 31) & 0x1) #define C_008F30_SKIP_DEGAMMA 0x7FFFFFFF #define R_008F34_SQ_IMG_SAMP_WORD1 0x008F34 #define S_008F34_MIN_LOD(x) (((unsigned)(x) & 0xFFF) << 0) #define G_008F34_MIN_LOD(x) (((x) >> 0) & 0xFFF) #define C_008F34_MIN_LOD 0xFFFFF000 #define S_008F34_MAX_LOD(x) (((unsigned)(x) & 0xFFF) << 12) #define G_008F34_MAX_LOD(x) (((x) >> 12) & 0xFFF) #define C_008F34_MAX_LOD 0xFF000FFF #define S_008F34_PERF_MIP(x) (((unsigned)(x) & 0xF) << 24) #define G_008F34_PERF_MIP(x) (((x) >> 24) & 0xF) #define C_008F34_PERF_MIP 0xF0FFFFFF #define S_008F34_PERF_Z(x) (((unsigned)(x) & 0xF) << 28) #define G_008F34_PERF_Z(x) (((x) >> 28) & 0xF) #define C_008F34_PERF_Z 0x0FFFFFFF #define R_008F38_SQ_IMG_SAMP_WORD2 0x008F38 #define S_008F38_BORDER_COLOR_PTR(x) (((unsigned)(x) & 0xFFF) << 0) /* >= gfx10 */ #define G_008F38_BORDER_COLOR_PTR(x) (((x) >> 0) & 0xFFF) #define C_008F38_BORDER_COLOR_PTR 0xFFFFF000 #define S_008F38_LOD_BIAS(x) (((unsigned)(x) & 0x3FFF) << 0) #define G_008F38_LOD_BIAS(x) (((x) >> 0) & 0x3FFF) #define C_008F38_LOD_BIAS 0xFFFFC000 #define S_008F38_BORDER_COLOR_TYPE(x) (((unsigned)(x) & 0x3) << 12) /* >= gfx10 */ #define G_008F38_BORDER_COLOR_TYPE(x) (((x) >> 12) & 0x3) #define C_008F38_BORDER_COLOR_TYPE 0xFFFFCFFF #define S_008F38_LOD_BIAS_SEC(x) (((unsigned)(x) & 0x3F) << 14) #define G_008F38_LOD_BIAS_SEC(x) (((x) >> 14) & 0x3F) #define C_008F38_LOD_BIAS_SEC 0xFFF03FFF #define S_008F38_XY_MAG_FILTER(x) (((unsigned)(x) & 0x3) << 20) #define G_008F38_XY_MAG_FILTER(x) (((x) >> 20) & 0x3) #define C_008F38_XY_MAG_FILTER 0xFFCFFFFF #define V_008F38_SQ_TEX_XY_FILTER_POINT 0 /* <= gfx9 */ #define V_008F38_SQ_TEX_XY_FILTER_BILINEAR 1 /* <= gfx9 */ #define V_008F38_SQ_TEX_XY_FILTER_ANISO_POINT 2 /* <= gfx9 */ #define V_008F38_SQ_TEX_XY_FILTER_ANISO_BILINEAR 3 /* <= gfx9 */ #define S_008F38_XY_MIN_FILTER(x) (((unsigned)(x) & 0x3) << 22) #define G_008F38_XY_MIN_FILTER(x) (((x) >> 22) & 0x3) #define C_008F38_XY_MIN_FILTER 0xFF3FFFFF #define S_008F38_Z_FILTER(x) (((unsigned)(x) & 0x3) << 24) #define G_008F38_Z_FILTER(x) (((x) >> 24) & 0x3) #define C_008F38_Z_FILTER 0xFCFFFFFF #define V_008F38_SQ_TEX_Z_FILTER_NONE 0 /* <= gfx9 */ #define V_008F38_SQ_TEX_Z_FILTER_POINT 1 /* <= gfx9 */ #define V_008F38_SQ_TEX_Z_FILTER_LINEAR 2 /* <= gfx9 */ #define S_008F38_MIP_FILTER(x) (((unsigned)(x) & 0x3) << 26) #define G_008F38_MIP_FILTER(x) (((x) >> 26) & 0x3) #define C_008F38_MIP_FILTER 0xF3FFFFFF #define V_008F38_SQ_TEX_MIP_FILTER_NONE 0 /* <= gfx9 */ #define V_008F38_SQ_TEX_MIP_FILTER_POINT 1 /* <= gfx9 */ #define V_008F38_SQ_TEX_MIP_FILTER_LINEAR 2 /* <= gfx9 */ #define V_008F38_SQ_TEX_MIP_FILTER_POINT_ANISO_ADJ 3 /* gfx8, gfx81, gfx9 */ #define S_008F38_MIP_POINT_PRECLAMP(x) (((unsigned)(x) & 0x1) << 28) #define G_008F38_MIP_POINT_PRECLAMP(x) (((x) >> 28) & 0x1) #define C_008F38_MIP_POINT_PRECLAMP 0xEFFFFFFF #define S_008F38_ANISO_OVERRIDE_GFX10(x) (((unsigned)(x) & 0x1) << 29) /* >= gfx10 */ #define G_008F38_ANISO_OVERRIDE_GFX10(x) (((x) >> 29) & 0x1) #define C_008F38_ANISO_OVERRIDE_GFX10 0xDFFFFFFF #define S_008F38_BLEND_ZERO_PRT_GFX9(x) (((unsigned)(x) & 0x1) << 29) /* gfx9 */ #define G_008F38_BLEND_ZERO_PRT_GFX9(x) (((x) >> 29) & 0x1) #define C_008F38_BLEND_ZERO_PRT_GFX9 0xDFFFFFFF #define S_008F38_DISABLE_LSB_CEIL(x) (((unsigned)(x) & 0x1) << 29) /* <= gfx81 */ #define G_008F38_DISABLE_LSB_CEIL(x) (((x) >> 29) & 0x1) #define C_008F38_DISABLE_LSB_CEIL 0xDFFFFFFF #define S_008F38_BLEND_ZERO_PRT_GFX10(x) (((unsigned)(x) & 0x1) << 30) /* >= gfx10 */ #define G_008F38_BLEND_ZERO_PRT_GFX10(x) (((x) >> 30) & 0x1) #define C_008F38_BLEND_ZERO_PRT_GFX10 0xBFFFFFFF #define S_008F38_FILTER_PREC_FIX(x) (((unsigned)(x) & 0x1) << 30) /* <= gfx9 */ #define G_008F38_FILTER_PREC_FIX(x) (((x) >> 30) & 0x1) #define C_008F38_FILTER_PREC_FIX 0xBFFFFFFF #define S_008F38_ANISO_OVERRIDE_GFX8(x) (((unsigned)(x) & 0x1) << 31) /* gfx8, gfx81, gfx9 */ #define G_008F38_ANISO_OVERRIDE_GFX8(x) (((x) >> 31) & 0x1) #define C_008F38_ANISO_OVERRIDE_GFX8 0x7FFFFFFF #define S_008F38_DERIV_ADJUST_EN(x) (((unsigned)(x) & 0x1) << 31) /* >= gfx10 */ #define G_008F38_DERIV_ADJUST_EN(x) (((x) >> 31) & 0x1) #define C_008F38_DERIV_ADJUST_EN 0x7FFFFFFF #define R_008F3C_SQ_IMG_SAMP_WORD3 0x008F3C #define S_008F3C_BORDER_COLOR_PTR(x) (((unsigned)(x) & 0xFFF) << 0) #define G_008F3C_BORDER_COLOR_PTR(x) (((x) >> 0) & 0xFFF) #define C_008F3C_BORDER_COLOR_PTR 0xFFFFF000 #define S_008F3C_SKIP_DEGAMMA(x) (((unsigned)(x) & 0x1) << 12) /* gfx9 */ #define G_008F3C_SKIP_DEGAMMA(x) (((x) >> 12) & 0x1) #define C_008F3C_SKIP_DEGAMMA 0xFFFFEFFF #define S_008F3C_UPGRADED_DEPTH(x) (((unsigned)(x) & 0x1) << 29) /* <= gfx81 */ #define G_008F3C_UPGRADED_DEPTH(x) (((x) >> 29) & 0x1) #define C_008F3C_UPGRADED_DEPTH 0xDFFFFFFF #define S_008F3C_BORDER_COLOR_TYPE(x) (((unsigned)(x) & 0x3) << 30) #define G_008F3C_BORDER_COLOR_TYPE(x) (((x) >> 30) & 0x3) #define C_008F3C_BORDER_COLOR_TYPE 0x3FFFFFFF #define V_008F3C_SQ_TEX_BORDER_COLOR_TRANS_BLACK 0 /* <= gfx9 */ #define V_008F3C_SQ_TEX_BORDER_COLOR_OPAQUE_BLACK 1 /* <= gfx9 */ #define V_008F3C_SQ_TEX_BORDER_COLOR_OPAQUE_WHITE 2 /* <= gfx9 */ #define V_008F3C_SQ_TEX_BORDER_COLOR_REGISTER 3 /* <= gfx9 */ #define R_009100_SPI_CONFIG_CNTL 0x009100 /* <= gfx81, gfx10 */ #define S_009100_GPR_WRITE_PRIORITY(x) (((unsigned)(x) & 0x1FFFFF) << 0) #define G_009100_GPR_WRITE_PRIORITY(x) (((x) >> 0) & 0x1FFFFF) #define C_009100_GPR_WRITE_PRIORITY 0xFFE00000 #define S_009100_EXP_PRIORITY_ORDER(x) (((unsigned)(x) & 0x7) << 21) #define G_009100_EXP_PRIORITY_ORDER(x) (((x) >> 21) & 0x7) #define C_009100_EXP_PRIORITY_ORDER 0xFF1FFFFF #define S_009100_ENABLE_SQG_TOP_EVENTS(x) (((unsigned)(x) & 0x1) << 24) #define G_009100_ENABLE_SQG_TOP_EVENTS(x) (((x) >> 24) & 0x1) #define C_009100_ENABLE_SQG_TOP_EVENTS 0xFEFFFFFF #define S_009100_ENABLE_SQG_BOP_EVENTS(x) (((unsigned)(x) & 0x1) << 25) #define G_009100_ENABLE_SQG_BOP_EVENTS(x) (((x) >> 25) & 0x1) #define C_009100_ENABLE_SQG_BOP_EVENTS 0xFDFFFFFF #define S_009100_RSRC_MGMT_RESET(x) (((unsigned)(x) & 0x1) << 26) #define G_009100_RSRC_MGMT_RESET(x) (((x) >> 26) & 0x1) #define C_009100_RSRC_MGMT_RESET 0xFBFFFFFF #define S_009100_TTRACE_STALL_ALL(x) (((unsigned)(x) & 0x1) << 27) #define G_009100_TTRACE_STALL_ALL(x) (((x) >> 27) & 0x1) #define C_009100_TTRACE_STALL_ALL 0xF7FFFFFF #define S_009100_ALLOC_ARB_LRU_ENA(x) (((unsigned)(x) & 0x1) << 28) /* gfx10 */ #define G_009100_ALLOC_ARB_LRU_ENA(x) (((x) >> 28) & 0x1) #define C_009100_ALLOC_ARB_LRU_ENA 0xEFFFFFFF #define S_009100_EXP_ARB_LRU_ENA(x) (((unsigned)(x) & 0x1) << 29) /* gfx10 */ #define G_009100_EXP_ARB_LRU_ENA(x) (((x) >> 29) & 0x1) #define C_009100_EXP_ARB_LRU_ENA 0xDFFFFFFF #define S_009100_PS_PKR_PRIORITY_CNTL(x) (((unsigned)(x) & 0x3) << 30) /* gfx10 */ #define G_009100_PS_PKR_PRIORITY_CNTL(x) (((x) >> 30) & 0x3) #define C_009100_PS_PKR_PRIORITY_CNTL 0x3FFFFFFF #define R_009130_SPI_CONFIG_CNTL 0x009130 /* >= gfx103 */ #define S_009130_GPR_WRITE_PRIORITY(x) (((unsigned)(x) & 0x1FFFFF) << 0) #define G_009130_GPR_WRITE_PRIORITY(x) (((x) >> 0) & 0x1FFFFF) #define C_009130_GPR_WRITE_PRIORITY 0xFFE00000 #define S_009130_EXP_PRIORITY_ORDER(x) (((unsigned)(x) & 0x7) << 21) #define G_009130_EXP_PRIORITY_ORDER(x) (((x) >> 21) & 0x7) #define C_009130_EXP_PRIORITY_ORDER 0xFF1FFFFF #define S_009130_ENABLE_SQG_TOP_EVENTS(x) (((unsigned)(x) & 0x1) << 24) #define G_009130_ENABLE_SQG_TOP_EVENTS(x) (((x) >> 24) & 0x1) #define C_009130_ENABLE_SQG_TOP_EVENTS 0xFEFFFFFF #define S_009130_ENABLE_SQG_BOP_EVENTS(x) (((unsigned)(x) & 0x1) << 25) #define G_009130_ENABLE_SQG_BOP_EVENTS(x) (((x) >> 25) & 0x1) #define C_009130_ENABLE_SQG_BOP_EVENTS 0xFDFFFFFF #define S_009130_FORCE_HALF_RATE_PC_EXP(x) (((unsigned)(x) & 0x1) << 26) #define G_009130_FORCE_HALF_RATE_PC_EXP(x) (((x) >> 26) & 0x1) #define C_009130_FORCE_HALF_RATE_PC_EXP 0xFBFFFFFF #define S_009130_TTRACE_STALL_ALL(x) (((unsigned)(x) & 0x1) << 27) #define G_009130_TTRACE_STALL_ALL(x) (((x) >> 27) & 0x1) #define C_009130_TTRACE_STALL_ALL 0xF7FFFFFF #define S_009130_ALLOC_ARB_LRU_ENA(x) (((unsigned)(x) & 0x1) << 28) #define G_009130_ALLOC_ARB_LRU_ENA(x) (((x) >> 28) & 0x1) #define C_009130_ALLOC_ARB_LRU_ENA 0xEFFFFFFF #define S_009130_EXP_ARB_LRU_ENA(x) (((unsigned)(x) & 0x1) << 29) #define G_009130_EXP_ARB_LRU_ENA(x) (((x) >> 29) & 0x1) #define C_009130_EXP_ARB_LRU_ENA 0xDFFFFFFF #define S_009130_PS_PKR_PRIORITY_CNTL(x) (((unsigned)(x) & 0x3) << 30) #define G_009130_PS_PKR_PRIORITY_CNTL(x) (((x) >> 30) & 0x3) #define C_009130_PS_PKR_PRIORITY_CNTL 0x3FFFFFFF #define R_00950C_TA_CS_BC_BASE_ADDR 0x00950C /* <= gfx6 */ #define R_0098F8_GB_ADDR_CONFIG 0x0098F8 #define S_0098F8_NUM_PIPES(x) (((unsigned)(x) & 0x7) << 0) #define G_0098F8_NUM_PIPES(x) (((x) >> 0) & 0x7) #define C_0098F8_NUM_PIPES 0xFFFFFFF8 #define S_0098F8_PIPE_INTERLEAVE_SIZE_GFX9(x) (((unsigned)(x) & 0x7) << 3) /* >= gfx9 */ #define G_0098F8_PIPE_INTERLEAVE_SIZE_GFX9(x) (((x) >> 3) & 0x7) #define C_0098F8_PIPE_INTERLEAVE_SIZE_GFX9 0xFFFFFFC7 #define S_0098F8_PIPE_INTERLEAVE_SIZE_GFX6(x) (((unsigned)(x) & 0x7) << 4) /* <= gfx81 */ #define G_0098F8_PIPE_INTERLEAVE_SIZE_GFX6(x) (((x) >> 4) & 0x7) #define C_0098F8_PIPE_INTERLEAVE_SIZE_GFX6 0xFFFFFF8F #define S_0098F8_MAX_COMPRESSED_FRAGS(x) (((unsigned)(x) & 0x3) << 6) /* >= gfx9 */ #define G_0098F8_MAX_COMPRESSED_FRAGS(x) (((x) >> 6) & 0x3) #define C_0098F8_MAX_COMPRESSED_FRAGS 0xFFFFFF3F #define S_0098F8_BANK_INTERLEAVE_SIZE(x) (((unsigned)(x) & 0x7) << 8) /* <= gfx9 */ #define G_0098F8_BANK_INTERLEAVE_SIZE(x) (((x) >> 8) & 0x7) #define C_0098F8_BANK_INTERLEAVE_SIZE 0xFFFFF8FF #define S_0098F8_NUM_PKRS(x) (((unsigned)(x) & 0x7) << 8) /* >= gfx103 */ #define G_0098F8_NUM_PKRS(x) (((x) >> 8) & 0x7) #define C_0098F8_NUM_PKRS 0xFFFFF8FF #define S_0098F8_NUM_BANKS(x) (((unsigned)(x) & 0x7) << 12) /* gfx9 */ #define G_0098F8_NUM_BANKS(x) (((x) >> 12) & 0x7) #define C_0098F8_NUM_BANKS 0xFFFF8FFF #define V_0098F8_ADDR_SURF_2_BANK 0 #define V_0098F8_ADDR_SURF_4_BANK 1 #define V_0098F8_ADDR_SURF_8_BANK 2 #define V_0098F8_ADDR_SURF_16_BANK 3 #define S_0098F8_NUM_SHADER_ENGINES_GFX6(x) (((unsigned)(x) & 0x3) << 12) /* <= gfx81 */ #define G_0098F8_NUM_SHADER_ENGINES_GFX6(x) (((x) >> 12) & 0x3) #define C_0098F8_NUM_SHADER_ENGINES_GFX6 0xFFFFCFFF #define S_0098F8_SHADER_ENGINE_TILE_SIZE(x) (((unsigned)(x) & 0x7) << 16) /* <= gfx9 */ #define G_0098F8_SHADER_ENGINE_TILE_SIZE(x) (((x) >> 16) & 0x7) #define C_0098F8_SHADER_ENGINE_TILE_SIZE 0xFFF8FFFF #define S_0098F8_NUM_SHADER_ENGINES_GFX9(x) (((unsigned)(x) & 0x3) << 19) /* >= gfx9 */ #define G_0098F8_NUM_SHADER_ENGINES_GFX9(x) (((x) >> 19) & 0x3) #define C_0098F8_NUM_SHADER_ENGINES_GFX9 0xFFE7FFFF #define S_0098F8_NUM_GPUS_GFX6(x) (((unsigned)(x) & 0x7) << 20) /* <= gfx81 */ #define G_0098F8_NUM_GPUS_GFX6(x) (((x) >> 20) & 0x7) #define C_0098F8_NUM_GPUS_GFX6 0xFF8FFFFF #define S_0098F8_NUM_GPUS_GFX9(x) (((unsigned)(x) & 0x7) << 21) /* gfx9 */ #define G_0098F8_NUM_GPUS_GFX9(x) (((x) >> 21) & 0x7) #define C_0098F8_NUM_GPUS_GFX9 0xFF1FFFFF #define S_0098F8_MULTI_GPU_TILE_SIZE(x) (((unsigned)(x) & 0x3) << 24) /* <= gfx9 */ #define G_0098F8_MULTI_GPU_TILE_SIZE(x) (((x) >> 24) & 0x3) #define C_0098F8_MULTI_GPU_TILE_SIZE 0xFCFFFFFF #define S_0098F8_NUM_RB_PER_SE(x) (((unsigned)(x) & 0x3) << 26) /* >= gfx9 */ #define G_0098F8_NUM_RB_PER_SE(x) (((x) >> 26) & 0x3) #define C_0098F8_NUM_RB_PER_SE 0xF3FFFFFF #define S_0098F8_ROW_SIZE(x) (((unsigned)(x) & 0x3) << 28) /* <= gfx9 */ #define G_0098F8_ROW_SIZE(x) (((x) >> 28) & 0x3) #define C_0098F8_ROW_SIZE 0xCFFFFFFF #define S_0098F8_NUM_LOWER_PIPES(x) (((unsigned)(x) & 0x1) << 30) /* <= gfx9 */ #define G_0098F8_NUM_LOWER_PIPES(x) (((x) >> 30) & 0x1) #define C_0098F8_NUM_LOWER_PIPES 0xBFFFFFFF #define S_0098F8_SE_ENABLE(x) (((unsigned)(x) & 0x1) << 31) /* gfx9 */ #define G_0098F8_SE_ENABLE(x) (((x) >> 31) & 0x1) #define C_0098F8_SE_ENABLE 0x7FFFFFFF #define R_009910_GB_TILE_MODE0 0x009910 /* <= gfx10 */ #define S_009910_MICRO_TILE_MODE(x) (((unsigned)(x) & 0x3) << 0) /* <= gfx6 */ #define G_009910_MICRO_TILE_MODE(x) (((x) >> 0) & 0x3) #define C_009910_MICRO_TILE_MODE 0xFFFFFFFC #define V_009910_ADDR_SURF_DISPLAY_MICRO_TILING 0 #define V_009910_ADDR_SURF_THIN_MICRO_TILING 1 #define V_009910_ADDR_SURF_DEPTH_MICRO_TILING 2 #define V_009910_ADDR_SURF_THICK_MICRO_TILING_GFX6 3 #define S_009910_ARRAY_MODE(x) (((unsigned)(x) & 0xF) << 2) #define G_009910_ARRAY_MODE(x) (((x) >> 2) & 0xF) #define C_009910_ARRAY_MODE 0xFFFFFFC3 #define V_009910_ARRAY_LINEAR_GENERAL 0 #define V_009910_ARRAY_LINEAR_ALIGNED 1 #define V_009910_ARRAY_1D_TILED_THIN1 2 #define V_009910_ARRAY_1D_TILED_THICK 3 #define V_009910_ARRAY_2D_TILED_THIN1 4 #define V_009910_ARRAY_PRT_TILED_THIN1 5 #define V_009910_ARRAY_PRT_2D_TILED_THIN1 6 #define V_009910_ARRAY_2D_TILED_THICK 7 #define V_009910_ARRAY_2D_TILED_XTHICK 8 #define V_009910_ARRAY_PRT_TILED_THICK 9 #define V_009910_ARRAY_PRT_2D_TILED_THICK 10 #define V_009910_ARRAY_PRT_3D_TILED_THIN1 11 #define V_009910_ARRAY_3D_TILED_THIN1 12 #define V_009910_ARRAY_3D_TILED_THICK 13 #define V_009910_ARRAY_3D_TILED_XTHICK 14 #define V_009910_ARRAY_PRT_3D_TILED_THICK 15 #define S_009910_PIPE_CONFIG(x) (((unsigned)(x) & 0x1F) << 6) #define G_009910_PIPE_CONFIG(x) (((x) >> 6) & 0x1F) #define C_009910_PIPE_CONFIG 0xFFFFF83F #define V_009910_ADDR_SURF_P2 0 #define V_009910_ADDR_SURF_P2_RESERVED0 1 #define V_009910_ADDR_SURF_P2_RESERVED1 2 #define V_009910_ADDR_SURF_P2_RESERVED2 3 #define V_009910_ADDR_SURF_P4_8x16 4 #define V_009910_ADDR_SURF_P4_16x16 5 #define V_009910_ADDR_SURF_P4_16x32 6 #define V_009910_ADDR_SURF_P4_32x32 7 #define V_009910_ADDR_SURF_P8_16x16_8x16 8 #define V_009910_ADDR_SURF_P8_16x32_8x16 9 #define V_009910_ADDR_SURF_P8_32x32_8x16 10 #define V_009910_ADDR_SURF_P8_16x32_16x16 11 #define V_009910_ADDR_SURF_P8_32x32_16x16 12 #define V_009910_ADDR_SURF_P8_32x32_16x32 13 #define V_009910_ADDR_SURF_P8_32x64_32x32 14 #define V_009910_ADDR_SURF_P8_RESERVED0 15 #define V_009910_ADDR_SURF_P16_32x32_8x16 16 #define V_009910_ADDR_SURF_P16_32x32_16x16 17 #define V_009910_ADDR_SURF_P16 18 /* gfx10 */ #define S_009910_TILE_SPLIT(x) (((unsigned)(x) & 0x7) << 11) #define G_009910_TILE_SPLIT(x) (((x) >> 11) & 0x7) #define C_009910_TILE_SPLIT 0xFFFFC7FF #define V_009910_ADDR_SURF_TILE_SPLIT_64B 0 #define V_009910_ADDR_SURF_TILE_SPLIT_128B 1 #define V_009910_ADDR_SURF_TILE_SPLIT_256B 2 #define V_009910_ADDR_SURF_TILE_SPLIT_512B 3 #define V_009910_ADDR_SURF_TILE_SPLIT_1KB 4 #define V_009910_ADDR_SURF_TILE_SPLIT_2KB 5 #define V_009910_ADDR_SURF_TILE_SPLIT_4KB 6 #define S_009910_MICRO_TILE_MODE_NEW(x) (((unsigned)(x) & 0x7) << 22) #define G_009910_MICRO_TILE_MODE_NEW(x) (((x) >> 22) & 0x7) #define C_009910_MICRO_TILE_MODE_NEW 0xFE3FFFFF #define V_009910_ADDR_SURF_ROTATED_MICRO_TILING 3 #define V_009910_ADDR_SURF_THICK_MICRO_TILING 4 #define S_009910_SAMPLE_SPLIT(x) (((unsigned)(x) & 0x3) << 25) #define G_009910_SAMPLE_SPLIT(x) (((x) >> 25) & 0x3) #define C_009910_SAMPLE_SPLIT 0xF9FFFFFF #define R_009914_GB_TILE_MODE1 0x009914 /* <= gfx10 */ #define R_009918_GB_TILE_MODE2 0x009918 /* <= gfx10 */ #define R_00991C_GB_TILE_MODE3 0x00991C /* <= gfx10 */ #define R_009920_GB_TILE_MODE4 0x009920 /* <= gfx10 */ #define R_009924_GB_TILE_MODE5 0x009924 /* <= gfx10 */ #define R_009928_GB_TILE_MODE6 0x009928 /* <= gfx10 */ #define R_00992C_GB_TILE_MODE7 0x00992C /* <= gfx10 */ #define R_009930_GB_TILE_MODE8 0x009930 /* <= gfx10 */ #define R_009934_GB_TILE_MODE9 0x009934 /* <= gfx10 */ #define R_009938_GB_TILE_MODE10 0x009938 /* <= gfx10 */ #define R_00993C_GB_TILE_MODE11 0x00993C /* <= gfx10 */ #define R_009940_GB_TILE_MODE12 0x009940 /* <= gfx10 */ #define R_009944_GB_TILE_MODE13 0x009944 /* <= gfx10 */ #define R_009948_GB_TILE_MODE14 0x009948 /* <= gfx10 */ #define R_00994C_GB_TILE_MODE15 0x00994C /* <= gfx10 */ #define R_009950_GB_TILE_MODE16 0x009950 /* <= gfx10 */ #define R_009954_GB_TILE_MODE17 0x009954 /* <= gfx10 */ #define R_009958_GB_TILE_MODE18 0x009958 /* <= gfx10 */ #define R_00995C_GB_TILE_MODE19 0x00995C /* <= gfx10 */ #define R_009960_GB_TILE_MODE20 0x009960 /* <= gfx10 */ #define R_009964_GB_TILE_MODE21 0x009964 /* <= gfx10 */ #define R_009968_GB_TILE_MODE22 0x009968 /* <= gfx10 */ #define R_00996C_GB_TILE_MODE23 0x00996C /* <= gfx10 */ #define R_009970_GB_TILE_MODE24 0x009970 /* <= gfx10 */ #define R_009974_GB_TILE_MODE25 0x009974 /* <= gfx10 */ #define R_009978_GB_TILE_MODE26 0x009978 /* <= gfx10 */ #define R_00997C_GB_TILE_MODE27 0x00997C /* <= gfx10 */ #define R_009980_GB_TILE_MODE28 0x009980 /* <= gfx10 */ #define R_009984_GB_TILE_MODE29 0x009984 /* <= gfx10 */ #define R_009988_GB_TILE_MODE30 0x009988 /* <= gfx10 */ #define R_00998C_GB_TILE_MODE31 0x00998C /* <= gfx10 */ #define R_009990_GB_MACROTILE_MODE0 0x009990 /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define S_009990_BANK_WIDTH(x) (((unsigned)(x) & 0x3) << 0) #define G_009990_BANK_WIDTH(x) (((x) >> 0) & 0x3) #define C_009990_BANK_WIDTH 0xFFFFFFFC #define V_009990_ADDR_SURF_BANK_WIDTH_1 0 #define V_009990_ADDR_SURF_BANK_WIDTH_2 1 #define V_009990_ADDR_SURF_BANK_WIDTH_4 2 #define V_009990_ADDR_SURF_BANK_WIDTH_8 3 #define S_009990_BANK_HEIGHT(x) (((unsigned)(x) & 0x3) << 2) #define G_009990_BANK_HEIGHT(x) (((x) >> 2) & 0x3) #define C_009990_BANK_HEIGHT 0xFFFFFFF3 #define V_009990_ADDR_SURF_BANK_HEIGHT_1 0 #define V_009990_ADDR_SURF_BANK_HEIGHT_2 1 #define V_009990_ADDR_SURF_BANK_HEIGHT_4 2 #define V_009990_ADDR_SURF_BANK_HEIGHT_8 3 #define S_009990_MACRO_TILE_ASPECT(x) (((unsigned)(x) & 0x3) << 4) #define G_009990_MACRO_TILE_ASPECT(x) (((x) >> 4) & 0x3) #define C_009990_MACRO_TILE_ASPECT 0xFFFFFFCF #define V_009990_ADDR_SURF_MACRO_ASPECT_1 0 #define V_009990_ADDR_SURF_MACRO_ASPECT_2 1 #define V_009990_ADDR_SURF_MACRO_ASPECT_4 2 #define V_009990_ADDR_SURF_MACRO_ASPECT_8 3 #define S_009990_NUM_BANKS(x) (((unsigned)(x) & 0x3) << 6) #define G_009990_NUM_BANKS(x) (((x) >> 6) & 0x3) #define C_009990_NUM_BANKS 0xFFFFFF3F #define V_009990_ADDR_SURF_2_BANK 0 #define V_009990_ADDR_SURF_4_BANK 1 #define V_009990_ADDR_SURF_8_BANK 2 #define V_009990_ADDR_SURF_16_BANK 3 #define R_009994_GB_MACROTILE_MODE1 0x009994 /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define R_009998_GB_MACROTILE_MODE2 0x009998 /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define R_00999C_GB_MACROTILE_MODE3 0x00999C /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define R_0099A0_GB_MACROTILE_MODE4 0x0099A0 /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define R_0099A4_GB_MACROTILE_MODE5 0x0099A4 /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define R_0099A8_GB_MACROTILE_MODE6 0x0099A8 /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define R_0099AC_GB_MACROTILE_MODE7 0x0099AC /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define R_0099B0_GB_MACROTILE_MODE8 0x0099B0 /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define R_0099B4_GB_MACROTILE_MODE9 0x0099B4 /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define R_0099B8_GB_MACROTILE_MODE10 0x0099B8 /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define R_0099BC_GB_MACROTILE_MODE11 0x0099BC /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define R_0099C0_GB_MACROTILE_MODE12 0x0099C0 /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define R_0099C4_GB_MACROTILE_MODE13 0x0099C4 /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define R_0099C8_GB_MACROTILE_MODE14 0x0099C8 /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define R_0099CC_GB_MACROTILE_MODE15 0x0099CC /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define R_00A000_SQ_IMG_RSRC_WORD0 0x00A000 /* >= gfx10 */ #define R_00A004_SQ_IMG_RSRC_WORD1 0x00A004 /* >= gfx10 */ #define S_00A004_BASE_ADDRESS_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_00A004_BASE_ADDRESS_HI(x) (((x) >> 0) & 0xFF) #define C_00A004_BASE_ADDRESS_HI 0xFFFFFF00 #define S_00A004_MIN_LOD(x) (((unsigned)(x) & 0xFFF) << 8) #define G_00A004_MIN_LOD(x) (((x) >> 8) & 0xFFF) #define C_00A004_MIN_LOD 0xFFF000FF #define S_00A004_FORMAT(x) (((unsigned)(x) & 0x1FF) << 20) #define G_00A004_FORMAT(x) (((x) >> 20) & 0x1FF) #define C_00A004_FORMAT 0xE00FFFFF #define V_00A004_GFX10_FORMAT_INVALID 0 #define V_00A004_GFX10_FORMAT_8_UNORM 1 #define V_00A004_GFX10_FORMAT_8_SNORM 2 #define V_00A004_GFX10_FORMAT_8_USCALED 3 #define V_00A004_GFX10_FORMAT_8_SSCALED 4 #define V_00A004_GFX10_FORMAT_8_UINT 5 #define V_00A004_GFX10_FORMAT_8_SINT 6 #define V_00A004_GFX10_FORMAT_16_UNORM 7 #define V_00A004_GFX10_FORMAT_16_SNORM 8 #define V_00A004_GFX10_FORMAT_16_USCALED 9 #define V_00A004_GFX10_FORMAT_16_SSCALED 10 #define V_00A004_GFX10_FORMAT_16_UINT 11 #define V_00A004_GFX10_FORMAT_16_SINT 12 #define V_00A004_GFX10_FORMAT_16_FLOAT 13 #define V_00A004_GFX10_FORMAT_8_8_UNORM 14 #define V_00A004_GFX10_FORMAT_8_8_SNORM 15 #define V_00A004_GFX10_FORMAT_8_8_USCALED 16 #define V_00A004_GFX10_FORMAT_8_8_SSCALED 17 #define V_00A004_GFX10_FORMAT_8_8_UINT 18 #define V_00A004_GFX10_FORMAT_8_8_SINT 19 #define V_00A004_GFX10_FORMAT_32_UINT 20 #define V_00A004_GFX10_FORMAT_32_SINT 21 #define V_00A004_GFX10_FORMAT_32_FLOAT 22 #define V_00A004_GFX10_FORMAT_16_16_UNORM 23 #define V_00A004_GFX10_FORMAT_16_16_SNORM 24 #define V_00A004_GFX10_FORMAT_16_16_USCALED 25 #define V_00A004_GFX10_FORMAT_16_16_SSCALED 26 #define V_00A004_GFX10_FORMAT_16_16_UINT 27 #define V_00A004_GFX10_FORMAT_16_16_SINT 28 #define V_00A004_GFX10_FORMAT_16_16_FLOAT 29 #define V_00A004_GFX10_FORMAT_10_11_11_UNORM 30 #define V_00A004_GFX10_FORMAT_10_11_11_SNORM 31 #define V_00A004_GFX10_FORMAT_10_11_11_USCALED 32 #define V_00A004_GFX10_FORMAT_10_11_11_SSCALED 33 #define V_00A004_GFX10_FORMAT_10_11_11_UINT 34 #define V_00A004_GFX10_FORMAT_10_11_11_SINT 35 #define V_00A004_GFX10_FORMAT_10_11_11_FLOAT 36 #define V_00A004_GFX10_FORMAT_11_11_10_UNORM 37 #define V_00A004_GFX10_FORMAT_11_11_10_SNORM 38 #define V_00A004_GFX10_FORMAT_11_11_10_USCALED 39 #define V_00A004_GFX10_FORMAT_11_11_10_SSCALED 40 #define V_00A004_GFX10_FORMAT_11_11_10_UINT 41 #define V_00A004_GFX10_FORMAT_11_11_10_SINT 42 #define V_00A004_GFX10_FORMAT_11_11_10_FLOAT 43 #define V_00A004_GFX10_FORMAT_10_10_10_2_UNORM 44 #define V_00A004_GFX10_FORMAT_10_10_10_2_SNORM 45 #define V_00A004_GFX10_FORMAT_10_10_10_2_USCALED 46 #define V_00A004_GFX10_FORMAT_10_10_10_2_SSCALED 47 #define V_00A004_GFX10_FORMAT_10_10_10_2_UINT 48 #define V_00A004_GFX10_FORMAT_10_10_10_2_SINT 49 #define V_00A004_GFX10_FORMAT_2_10_10_10_UNORM 50 #define V_00A004_GFX10_FORMAT_2_10_10_10_SNORM 51 #define V_00A004_GFX10_FORMAT_2_10_10_10_USCALED 52 #define V_00A004_GFX10_FORMAT_2_10_10_10_SSCALED 53 #define V_00A004_GFX10_FORMAT_2_10_10_10_UINT 54 #define V_00A004_GFX10_FORMAT_2_10_10_10_SINT 55 #define V_00A004_GFX10_FORMAT_8_8_8_8_UNORM 56 #define V_00A004_GFX10_FORMAT_8_8_8_8_SNORM 57 #define V_00A004_GFX10_FORMAT_8_8_8_8_USCALED 58 #define V_00A004_GFX10_FORMAT_8_8_8_8_SSCALED 59 #define V_00A004_GFX10_FORMAT_8_8_8_8_UINT 60 #define V_00A004_GFX10_FORMAT_8_8_8_8_SINT 61 #define V_00A004_GFX10_FORMAT_32_32_UINT 62 #define V_00A004_GFX10_FORMAT_32_32_SINT 63 #define V_00A004_GFX10_FORMAT_32_32_FLOAT 64 #define V_00A004_GFX10_FORMAT_16_16_16_16_UNORM 65 #define V_00A004_GFX10_FORMAT_16_16_16_16_SNORM 66 #define V_00A004_GFX10_FORMAT_16_16_16_16_USCALED 67 #define V_00A004_GFX10_FORMAT_16_16_16_16_SSCALED 68 #define V_00A004_GFX10_FORMAT_16_16_16_16_UINT 69 #define V_00A004_GFX10_FORMAT_16_16_16_16_SINT 70 #define V_00A004_GFX10_FORMAT_16_16_16_16_FLOAT 71 #define V_00A004_GFX10_FORMAT_32_32_32_UINT 72 #define V_00A004_GFX10_FORMAT_32_32_32_SINT 73 #define V_00A004_GFX10_FORMAT_32_32_32_FLOAT 74 #define V_00A004_GFX10_FORMAT_32_32_32_32_UINT 75 #define V_00A004_GFX10_FORMAT_32_32_32_32_SINT 76 #define V_00A004_GFX10_FORMAT_32_32_32_32_FLOAT 77 #define V_00A004_GFX10_FORMAT_8_SRGB 128 #define V_00A004_GFX10_FORMAT_8_8_SRGB 129 #define V_00A004_GFX10_FORMAT_8_8_8_8_SRGB 130 #define V_00A004_GFX10_FORMAT_6E4_FLOAT 131 #define V_00A004_GFX10_FORMAT_5_9_9_9_FLOAT 132 #define V_00A004_GFX10_FORMAT_5_6_5_UNORM 133 #define V_00A004_GFX10_FORMAT_1_5_5_5_UNORM 134 #define V_00A004_GFX10_FORMAT_5_5_5_1_UNORM 135 #define V_00A004_GFX10_FORMAT_4_4_4_4_UNORM 136 #define V_00A004_GFX10_FORMAT_4_4_UNORM 137 #define V_00A004_GFX10_FORMAT_1_UNORM 138 #define V_00A004_GFX10_FORMAT_1_REVERSED_UNORM 139 #define V_00A004_GFX10_FORMAT_32_FLOAT_CLAMP 140 #define V_00A004_GFX10_FORMAT_8_24_UNORM 141 #define V_00A004_GFX10_FORMAT_8_24_UINT 142 #define V_00A004_GFX10_FORMAT_24_8_UNORM 143 #define V_00A004_GFX10_FORMAT_24_8_UINT 144 #define V_00A004_GFX10_FORMAT_X24_8_32_UINT 145 #define V_00A004_GFX10_FORMAT_X24_8_32_FLOAT 146 #define V_00A004_GFX10_FORMAT_GB_GR_UNORM 147 #define V_00A004_GFX10_FORMAT_GB_GR_SNORM 148 #define V_00A004_GFX10_FORMAT_GB_GR_UINT 149 #define V_00A004_GFX10_FORMAT_GB_GR_SRGB 150 #define V_00A004_GFX10_FORMAT_BG_RG_UNORM 151 #define V_00A004_GFX10_FORMAT_BG_RG_SNORM 152 #define V_00A004_GFX10_FORMAT_BG_RG_UINT 153 #define V_00A004_GFX10_FORMAT_BG_RG_SRGB 154 #define V_00A004_GFX10_FORMAT_FMASK8_S2_F1 156 #define V_00A004_GFX10_FORMAT_FMASK8_S4_F1 157 #define V_00A004_GFX10_FORMAT_FMASK8_S8_F1 158 #define V_00A004_GFX10_FORMAT_FMASK8_S2_F2 159 #define V_00A004_GFX10_FORMAT_FMASK8_S4_F2 160 #define V_00A004_GFX10_FORMAT_FMASK8_S4_F4 161 #define V_00A004_GFX10_FORMAT_FMASK16_S16_F1 162 #define V_00A004_GFX10_FORMAT_FMASK16_S8_F2 163 #define V_00A004_GFX10_FORMAT_FMASK32_S16_F2 164 #define V_00A004_GFX10_FORMAT_FMASK32_S8_F4 165 #define V_00A004_GFX10_FORMAT_FMASK32_S8_F8 166 #define V_00A004_GFX10_FORMAT_FMASK64_S16_F4 167 #define V_00A004_GFX10_FORMAT_FMASK64_S16_F8 168 #define V_00A004_GFX10_FORMAT_BC1_UNORM 169 #define V_00A004_GFX10_FORMAT_BC1_SRGB 170 #define V_00A004_GFX10_FORMAT_BC2_UNORM 171 #define V_00A004_GFX10_FORMAT_BC2_SRGB 172 #define V_00A004_GFX10_FORMAT_BC3_UNORM 173 #define V_00A004_GFX10_FORMAT_BC3_SRGB 174 #define V_00A004_GFX10_FORMAT_BC4_UNORM 175 #define V_00A004_GFX10_FORMAT_BC4_SNORM 176 #define V_00A004_GFX10_FORMAT_BC5_UNORM 177 #define V_00A004_GFX10_FORMAT_BC5_SNORM 178 #define V_00A004_GFX10_FORMAT_BC6_UFLOAT 179 #define V_00A004_GFX10_FORMAT_BC6_SFLOAT 180 #define V_00A004_GFX10_FORMAT_BC7_UNORM 181 #define V_00A004_GFX10_FORMAT_BC7_SRGB 182 #define V_00A004_GFX10_FORMAT_MM_8_UNORM 265 #define V_00A004_GFX10_FORMAT_MM_8_UINT 266 #define V_00A004_GFX10_FORMAT_MM_8_8_UNORM 267 #define V_00A004_GFX10_FORMAT_MM_8_8_UINT 268 #define V_00A004_GFX10_FORMAT_MM_8_8_8_8_UNORM 269 #define V_00A004_GFX10_FORMAT_MM_8_8_8_8_UINT 270 #define V_00A004_GFX10_FORMAT_MM_VYUY8_UNORM 271 #define V_00A004_GFX10_FORMAT_MM_VYUY8_UINT 272 #define V_00A004_GFX10_FORMAT_MM_10_11_11_UNORM 273 #define V_00A004_GFX10_FORMAT_MM_10_11_11_UINT 274 #define V_00A004_GFX10_FORMAT_MM_2_10_10_10_UNORM 275 #define V_00A004_GFX10_FORMAT_MM_2_10_10_10_UINT 276 #define V_00A004_GFX10_FORMAT_MM_16_16_16_16_UNORM 277 #define V_00A004_GFX10_FORMAT_MM_16_16_16_16_UINT 278 #define V_00A004_GFX10_FORMAT_MM_10_IN_16_UNORM 279 #define V_00A004_GFX10_FORMAT_MM_10_IN_16_UINT 280 #define V_00A004_GFX10_FORMAT_MM_10_IN_16_16_UNORM 281 #define V_00A004_GFX10_FORMAT_MM_10_IN_16_16_UINT 282 #define V_00A004_GFX10_FORMAT_MM_10_IN_16_16_16_16_UNORM 283 #define V_00A004_GFX10_FORMAT_MM_10_IN_16_16_16_16_UINT 284 #define V_00A004_GFX10_FORMAT_7E3_FLOAT 285 #define V_00A004_GFX10_FORMAT_YCBCR_UNORM 286 #define V_00A004_GFX10_FORMAT_YCBCR_SNORM 287 #define V_00A004_GFX10_FORMAT_YCBCR_USCALED 288 #define V_00A004_GFX10_FORMAT_YCBCR_SSCALED 289 #define V_00A004_GFX10_FORMAT_YCBCR_UINT 290 #define V_00A004_GFX10_FORMAT_YCBCR_SINT 291 #define V_00A004_GFX10_FORMAT_YCBCR_SRGB 292 #define S_00A004_WIDTH_LO(x) (((unsigned)(x) & 0x3) << 30) #define G_00A004_WIDTH_LO(x) (((x) >> 30) & 0x3) #define C_00A004_WIDTH_LO 0x3FFFFFFF #define R_00A008_SQ_IMG_RSRC_WORD2 0x00A008 /* >= gfx10 */ #define S_00A008_WIDTH_HI(x) (((unsigned)(x) & 0xFFF) << 0) #define G_00A008_WIDTH_HI(x) (((x) >> 0) & 0xFFF) #define C_00A008_WIDTH_HI 0xFFFFF000 #define S_00A008_HEIGHT(x) (((unsigned)(x) & 0x3FFF) << 14) #define G_00A008_HEIGHT(x) (((x) >> 14) & 0x3FFF) #define C_00A008_HEIGHT 0xF0003FFF #define S_00A008_RESOURCE_LEVEL(x) (((unsigned)(x) & 0x1) << 31) #define G_00A008_RESOURCE_LEVEL(x) (((x) >> 31) & 0x1) #define C_00A008_RESOURCE_LEVEL 0x7FFFFFFF #define R_00A00C_SQ_IMG_RSRC_WORD3 0x00A00C /* >= gfx10 */ #define S_00A00C_DST_SEL_X(x) (((unsigned)(x) & 0x7) << 0) #define G_00A00C_DST_SEL_X(x) (((x) >> 0) & 0x7) #define C_00A00C_DST_SEL_X 0xFFFFFFF8 #define S_00A00C_DST_SEL_Y(x) (((unsigned)(x) & 0x7) << 3) #define G_00A00C_DST_SEL_Y(x) (((x) >> 3) & 0x7) #define C_00A00C_DST_SEL_Y 0xFFFFFFC7 #define S_00A00C_DST_SEL_Z(x) (((unsigned)(x) & 0x7) << 6) #define G_00A00C_DST_SEL_Z(x) (((x) >> 6) & 0x7) #define C_00A00C_DST_SEL_Z 0xFFFFFE3F #define S_00A00C_DST_SEL_W(x) (((unsigned)(x) & 0x7) << 9) #define G_00A00C_DST_SEL_W(x) (((x) >> 9) & 0x7) #define C_00A00C_DST_SEL_W 0xFFFFF1FF #define S_00A00C_BASE_LEVEL(x) (((unsigned)(x) & 0xF) << 12) #define G_00A00C_BASE_LEVEL(x) (((x) >> 12) & 0xF) #define C_00A00C_BASE_LEVEL 0xFFFF0FFF #define S_00A00C_LAST_LEVEL(x) (((unsigned)(x) & 0xF) << 16) #define G_00A00C_LAST_LEVEL(x) (((x) >> 16) & 0xF) #define C_00A00C_LAST_LEVEL 0xFFF0FFFF #define S_00A00C_SW_MODE(x) (((unsigned)(x) & 0x1F) << 20) #define G_00A00C_SW_MODE(x) (((x) >> 20) & 0x1F) #define C_00A00C_SW_MODE 0xFE0FFFFF #define S_00A00C_BC_SWIZZLE(x) (((unsigned)(x) & 0x7) << 25) #define G_00A00C_BC_SWIZZLE(x) (((x) >> 25) & 0x7) #define C_00A00C_BC_SWIZZLE 0xF1FFFFFF #define V_00A00C_BC_SWIZZLE_XYZW 0 #define V_00A00C_BC_SWIZZLE_XWYZ 1 #define V_00A00C_BC_SWIZZLE_WZYX 2 #define V_00A00C_BC_SWIZZLE_WXYZ 3 #define V_00A00C_BC_SWIZZLE_ZYXW 4 #define V_00A00C_BC_SWIZZLE_YXWZ 5 #define S_00A00C_TYPE(x) (((unsigned)(x) & 0xF) << 28) #define G_00A00C_TYPE(x) (((x) >> 28) & 0xF) #define C_00A00C_TYPE 0x0FFFFFFF #define R_00A010_SQ_IMG_RSRC_WORD4 0x00A010 /* >= gfx10 */ #define S_00A010_DEPTH(x) (((unsigned)(x) & 0x1FFF) << 0) #define G_00A010_DEPTH(x) (((x) >> 0) & 0x1FFF) #define C_00A010_DEPTH 0xFFFFE000 #define S_00A010_PITCH(x) (((unsigned)(x) & 0x3FFF) << 0) /* >= gfx103 */ #define G_00A010_PITCH(x) (((x) >> 0) & 0x3FFF) #define C_00A010_PITCH 0xFFFFC000 #define S_00A010_BASE_ARRAY(x) (((unsigned)(x) & 0x1FFF) << 16) #define G_00A010_BASE_ARRAY(x) (((x) >> 16) & 0x1FFF) #define C_00A010_BASE_ARRAY 0xE000FFFF #define R_00A014_SQ_IMG_RSRC_WORD5 0x00A014 /* >= gfx10 */ #define S_00A014_ARRAY_PITCH(x) (((unsigned)(x) & 0xF) << 0) #define G_00A014_ARRAY_PITCH(x) (((x) >> 0) & 0xF) #define C_00A014_ARRAY_PITCH 0xFFFFFFF0 #define S_00A014_MAX_MIP(x) (((unsigned)(x) & 0xF) << 4) #define G_00A014_MAX_MIP(x) (((x) >> 4) & 0xF) #define C_00A014_MAX_MIP 0xFFFFFF0F #define S_00A014_MIN_LOD_WARN(x) (((unsigned)(x) & 0xFFF) << 8) #define G_00A014_MIN_LOD_WARN(x) (((x) >> 8) & 0xFFF) #define C_00A014_MIN_LOD_WARN 0xFFF000FF #define S_00A014_PERF_MOD(x) (((unsigned)(x) & 0x7) << 20) #define G_00A014_PERF_MOD(x) (((x) >> 20) & 0x7) #define C_00A014_PERF_MOD 0xFF8FFFFF #define S_00A014_CORNER_SAMPLES(x) (((unsigned)(x) & 0x1) << 23) #define G_00A014_CORNER_SAMPLES(x) (((x) >> 23) & 0x1) #define C_00A014_CORNER_SAMPLES 0xFF7FFFFF #define S_00A014_LOD_HDW_CNT_EN(x) (((unsigned)(x) & 0x1) << 25) #define G_00A014_LOD_HDW_CNT_EN(x) (((x) >> 25) & 0x1) #define C_00A014_LOD_HDW_CNT_EN 0xFDFFFFFF #define S_00A014_PRT_DEFAULT(x) (((unsigned)(x) & 0x1) << 26) #define G_00A014_PRT_DEFAULT(x) (((x) >> 26) & 0x1) #define C_00A014_PRT_DEFAULT 0xFBFFFFFF #define S_00A014_BIG_PAGE(x) (((unsigned)(x) & 0x1) << 31) /* >= gfx103 */ #define G_00A014_BIG_PAGE(x) (((x) >> 31) & 0x1) #define C_00A014_BIG_PAGE 0x7FFFFFFF #define R_00A018_SQ_IMG_RSRC_WORD6 0x00A018 /* >= gfx10 */ #define S_00A018_COUNTER_BANK_ID(x) (((unsigned)(x) & 0xFF) << 0) #define G_00A018_COUNTER_BANK_ID(x) (((x) >> 0) & 0xFF) #define C_00A018_COUNTER_BANK_ID 0xFFFFFF00 #define S_00A018_LLC_NOALLOC(x) (((unsigned)(x) & 0x3) << 8) /* >= gfx103 */ #define G_00A018_LLC_NOALLOC(x) (((x) >> 8) & 0x3) #define C_00A018_LLC_NOALLOC 0xFFFFFCFF #define S_00A018_ITERATE_256(x) (((unsigned)(x) & 0x1) << 10) #define G_00A018_ITERATE_256(x) (((x) >> 10) & 0x1) #define C_00A018_ITERATE_256 0xFFFFFBFF #define S_00A018_MAX_UNCOMPRESSED_BLOCK_SIZE(x) (((unsigned)(x) & 0x3) << 15) #define G_00A018_MAX_UNCOMPRESSED_BLOCK_SIZE(x) (((x) >> 15) & 0x3) #define C_00A018_MAX_UNCOMPRESSED_BLOCK_SIZE 0xFFFE7FFF #define S_00A018_MAX_COMPRESSED_BLOCK_SIZE(x) (((unsigned)(x) & 0x3) << 17) #define G_00A018_MAX_COMPRESSED_BLOCK_SIZE(x) (((x) >> 17) & 0x3) #define C_00A018_MAX_COMPRESSED_BLOCK_SIZE 0xFFF9FFFF #define S_00A018_META_PIPE_ALIGNED(x) (((unsigned)(x) & 0x1) << 19) #define G_00A018_META_PIPE_ALIGNED(x) (((x) >> 19) & 0x1) #define C_00A018_META_PIPE_ALIGNED 0xFFF7FFFF #define S_00A018_WRITE_COMPRESS_ENABLE(x) (((unsigned)(x) & 0x1) << 20) #define G_00A018_WRITE_COMPRESS_ENABLE(x) (((x) >> 20) & 0x1) #define C_00A018_WRITE_COMPRESS_ENABLE 0xFFEFFFFF #define S_00A018_COMPRESSION_EN(x) (((unsigned)(x) & 0x1) << 21) #define G_00A018_COMPRESSION_EN(x) (((x) >> 21) & 0x1) #define C_00A018_COMPRESSION_EN 0xFFDFFFFF #define S_00A018_ALPHA_IS_ON_MSB(x) (((unsigned)(x) & 0x1) << 22) #define G_00A018_ALPHA_IS_ON_MSB(x) (((x) >> 22) & 0x1) #define C_00A018_ALPHA_IS_ON_MSB 0xFFBFFFFF #define S_00A018_COLOR_TRANSFORM(x) (((unsigned)(x) & 0x1) << 23) #define G_00A018_COLOR_TRANSFORM(x) (((x) >> 23) & 0x1) #define C_00A018_COLOR_TRANSFORM 0xFF7FFFFF #define S_00A018_META_DATA_ADDRESS_LO(x) (((unsigned)(x) & 0xFF) << 24) #define G_00A018_META_DATA_ADDRESS_LO(x) (((x) >> 24) & 0xFF) #define C_00A018_META_DATA_ADDRESS_LO 0x00FFFFFF #define R_00A01C_SQ_IMG_RSRC_WORD7 0x00A01C /* >= gfx10 */ #define R_00B000_SPI_SHADER_TBA_LO_PS 0x00B000 /* <= gfx81 */ #define R_00B004_SPI_SHADER_PGM_RSRC4_PS 0x00B004 /* >= gfx10 */ #define S_00B004_CU_EN(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_00B004_CU_EN(x) (((x) >> 0) & 0xFFFF) #define C_00B004_CU_EN 0xFFFF0000 #define R_00B004_SPI_SHADER_TBA_HI_PS 0x00B004 /* <= gfx81 */ #define S_00B004_MEM_BASE(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B004_MEM_BASE(x) (((x) >> 0) & 0xFF) #define C_00B004_MEM_BASE 0xFFFFFF00 #define R_00B008_SPI_SHADER_TMA_LO_PS 0x00B008 /* <= gfx81 */ #define R_00B00C_SPI_SHADER_TMA_HI_PS 0x00B00C /* <= gfx81 */ #define S_00B00C_MEM_BASE(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B00C_MEM_BASE(x) (((x) >> 0) & 0xFF) #define C_00B00C_MEM_BASE 0xFFFFFF00 #define R_00B018_SPI_SHADER_PGM_CHKSUM_PS 0x00B018 /* >= gfx10 */ #define R_00B01C_SPI_SHADER_PGM_RSRC3_PS 0x00B01C /* >= gfx7 */ #define S_00B01C_CU_EN(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_00B01C_CU_EN(x) (((x) >> 0) & 0xFFFF) #define C_00B01C_CU_EN 0xFFFF0000 #define S_00B01C_WAVE_LIMIT(x) (((unsigned)(x) & 0x3F) << 16) #define G_00B01C_WAVE_LIMIT(x) (((x) >> 16) & 0x3F) #define C_00B01C_WAVE_LIMIT 0xFFC0FFFF #define S_00B01C_LOCK_LOW_THRESHOLD(x) (((unsigned)(x) & 0xF) << 22) #define G_00B01C_LOCK_LOW_THRESHOLD(x) (((x) >> 22) & 0xF) #define C_00B01C_LOCK_LOW_THRESHOLD 0xFC3FFFFF #define S_00B01C_SIMD_DISABLE(x) (((unsigned)(x) & 0xF) << 26) /* gfx9 */ #define G_00B01C_SIMD_DISABLE(x) (((x) >> 26) & 0xF) #define C_00B01C_SIMD_DISABLE 0xC3FFFFFF #define R_00B020_SPI_SHADER_PGM_LO_PS 0x00B020 #define R_00B024_SPI_SHADER_PGM_HI_PS 0x00B024 #define S_00B024_MEM_BASE(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B024_MEM_BASE(x) (((x) >> 0) & 0xFF) #define C_00B024_MEM_BASE 0xFFFFFF00 #define R_00B028_SPI_SHADER_PGM_RSRC1_PS 0x00B028 #define S_00B028_VGPRS(x) (((unsigned)(x) & 0x3F) << 0) #define G_00B028_VGPRS(x) (((x) >> 0) & 0x3F) #define C_00B028_VGPRS 0xFFFFFFC0 #define S_00B028_SGPRS(x) (((unsigned)(x) & 0xF) << 6) #define G_00B028_SGPRS(x) (((x) >> 6) & 0xF) #define C_00B028_SGPRS 0xFFFFFC3F #define S_00B028_PRIORITY(x) (((unsigned)(x) & 0x3) << 10) #define G_00B028_PRIORITY(x) (((x) >> 10) & 0x3) #define C_00B028_PRIORITY 0xFFFFF3FF #define S_00B028_FLOAT_MODE(x) (((unsigned)(x) & 0xFF) << 12) #define G_00B028_FLOAT_MODE(x) (((x) >> 12) & 0xFF) #define C_00B028_FLOAT_MODE 0xFFF00FFF #define V_00B028_FP_32_DENORMS 48 #define V_00B028_FP_64_DENORMS 192 #define V_00B028_FP_ALL_DENORMS 240 #define S_00B028_PRIV(x) (((unsigned)(x) & 0x1) << 20) #define G_00B028_PRIV(x) (((x) >> 20) & 0x1) #define C_00B028_PRIV 0xFFEFFFFF #define S_00B028_DX10_CLAMP(x) (((unsigned)(x) & 0x1) << 21) #define G_00B028_DX10_CLAMP(x) (((x) >> 21) & 0x1) #define C_00B028_DX10_CLAMP 0xFFDFFFFF #define S_00B028_DEBUG_MODE(x) (((unsigned)(x) & 0x1) << 22) /* <= gfx9 */ #define G_00B028_DEBUG_MODE(x) (((x) >> 22) & 0x1) #define C_00B028_DEBUG_MODE 0xFFBFFFFF #define S_00B028_IEEE_MODE(x) (((unsigned)(x) & 0x1) << 23) #define G_00B028_IEEE_MODE(x) (((x) >> 23) & 0x1) #define C_00B028_IEEE_MODE 0xFF7FFFFF #define S_00B028_CU_GROUP_DISABLE(x) (((unsigned)(x) & 0x1) << 24) #define G_00B028_CU_GROUP_DISABLE(x) (((x) >> 24) & 0x1) #define C_00B028_CU_GROUP_DISABLE 0xFEFFFFFF #define S_00B028_CACHE_CTL(x) (((unsigned)(x) & 0x7) << 25) /* <= gfx81 */ #define G_00B028_CACHE_CTL(x) (((x) >> 25) & 0x7) #define C_00B028_CACHE_CTL 0xF1FFFFFF #define S_00B028_MEM_ORDERED(x) (((unsigned)(x) & 0x1) << 25) /* >= gfx10 */ #define G_00B028_MEM_ORDERED(x) (((x) >> 25) & 0x1) #define C_00B028_MEM_ORDERED 0xFDFFFFFF #define S_00B028_FWD_PROGRESS(x) (((unsigned)(x) & 0x1) << 26) /* >= gfx10 */ #define G_00B028_FWD_PROGRESS(x) (((x) >> 26) & 0x1) #define C_00B028_FWD_PROGRESS 0xFBFFFFFF #define S_00B028_LOAD_PROVOKING_VTX(x) (((unsigned)(x) & 0x1) << 27) /* >= gfx103 */ #define G_00B028_LOAD_PROVOKING_VTX(x) (((x) >> 27) & 0x1) #define C_00B028_LOAD_PROVOKING_VTX 0xF7FFFFFF #define S_00B028_CDBG_USER(x) (((unsigned)(x) & 0x1) << 28) /* <= gfx9 */ #define G_00B028_CDBG_USER(x) (((x) >> 28) & 0x1) #define C_00B028_CDBG_USER 0xEFFFFFFF #define S_00B028_FP16_OVFL(x) (((unsigned)(x) & 0x1) << 29) /* >= gfx9 */ #define G_00B028_FP16_OVFL(x) (((x) >> 29) & 0x1) #define C_00B028_FP16_OVFL 0xDFFFFFFF #define R_00B02C_SPI_SHADER_PGM_RSRC2_PS 0x00B02C #define S_00B02C_SCRATCH_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_00B02C_SCRATCH_EN(x) (((x) >> 0) & 0x1) #define C_00B02C_SCRATCH_EN 0xFFFFFFFE #define S_00B02C_USER_SGPR(x) (((unsigned)(x) & 0x1F) << 1) #define G_00B02C_USER_SGPR(x) (((x) >> 1) & 0x1F) #define C_00B02C_USER_SGPR 0xFFFFFFC1 #define S_00B02C_TRAP_PRESENT(x) (((unsigned)(x) & 0x1) << 6) #define G_00B02C_TRAP_PRESENT(x) (((x) >> 6) & 0x1) #define C_00B02C_TRAP_PRESENT 0xFFFFFFBF #define S_00B02C_WAVE_CNT_EN(x) (((unsigned)(x) & 0x1) << 7) #define G_00B02C_WAVE_CNT_EN(x) (((x) >> 7) & 0x1) #define C_00B02C_WAVE_CNT_EN 0xFFFFFF7F #define S_00B02C_EXTRA_LDS_SIZE(x) (((unsigned)(x) & 0xFF) << 8) #define G_00B02C_EXTRA_LDS_SIZE(x) (((x) >> 8) & 0xFF) #define C_00B02C_EXTRA_LDS_SIZE 0xFFFF00FF #define S_00B02C_EXCP_EN(x) (((unsigned)(x) & 0x1FF) << 16) #define G_00B02C_EXCP_EN(x) (((x) >> 16) & 0x1FF) #define C_00B02C_EXCP_EN 0xFE00FFFF #define V_00B02C_INVALID 1 #define V_00B02C_INPUT_DENORMAL 2 #define V_00B02C_DIVIDE_BY_ZERO 4 #define V_00B02C_OVERFLOW 8 #define V_00B02C_UNDERFLOW 16 #define V_00B02C_INEXACT 32 #define V_00B02C_INT_DIVIDE_BY_ZERO 64 #define V_00B02C_ADDRESS_WATCH 128 #define V_00B02C_MEMORY_VIOLATION 256 #define S_00B02C_LOAD_COLLISION_WAVEID(x) (((unsigned)(x) & 0x1) << 25) /* >= gfx9 */ #define G_00B02C_LOAD_COLLISION_WAVEID(x) (((x) >> 25) & 0x1) #define C_00B02C_LOAD_COLLISION_WAVEID 0xFDFFFFFF #define S_00B02C_LOAD_INTRAWAVE_COLLISION(x) (((unsigned)(x) & 0x1) << 26) /* >= gfx9 */ #define G_00B02C_LOAD_INTRAWAVE_COLLISION(x) (((x) >> 26) & 0x1) #define C_00B02C_LOAD_INTRAWAVE_COLLISION 0xFBFFFFFF #define S_00B02C_SKIP_USGPR0(x) (((unsigned)(x) & 0x1) << 27) /* gfx9 */ #define G_00B02C_SKIP_USGPR0(x) (((x) >> 27) & 0x1) #define C_00B02C_SKIP_USGPR0 0xF7FFFFFF #define S_00B02C_USER_SGPR_MSB_GFX10(x) (((unsigned)(x) & 0x1) << 27) /* >= gfx10 */ #define G_00B02C_USER_SGPR_MSB_GFX10(x) (((x) >> 27) & 0x1) #define C_00B02C_USER_SGPR_MSB_GFX10 0xF7FFFFFF #define S_00B02C_SHARED_VGPR_CNT(x) (((unsigned)(x) & 0xF) << 28) /* >= gfx10 */ #define G_00B02C_SHARED_VGPR_CNT(x) (((x) >> 28) & 0xF) #define C_00B02C_SHARED_VGPR_CNT 0x0FFFFFFF #define S_00B02C_USER_SGPR_MSB_GFX9(x) (((unsigned)(x) & 0x1) << 28) /* gfx9 */ #define G_00B02C_USER_SGPR_MSB_GFX9(x) (((x) >> 28) & 0x1) #define C_00B02C_USER_SGPR_MSB_GFX9 0xEFFFFFFF #define R_00B030_SPI_SHADER_USER_DATA_PS_0 0x00B030 #define R_00B034_SPI_SHADER_USER_DATA_PS_1 0x00B034 #define R_00B038_SPI_SHADER_USER_DATA_PS_2 0x00B038 #define R_00B03C_SPI_SHADER_USER_DATA_PS_3 0x00B03C #define R_00B040_SPI_SHADER_USER_DATA_PS_4 0x00B040 #define R_00B044_SPI_SHADER_USER_DATA_PS_5 0x00B044 #define R_00B048_SPI_SHADER_USER_DATA_PS_6 0x00B048 #define R_00B04C_SPI_SHADER_USER_DATA_PS_7 0x00B04C #define R_00B050_SPI_SHADER_USER_DATA_PS_8 0x00B050 #define R_00B054_SPI_SHADER_USER_DATA_PS_9 0x00B054 #define R_00B058_SPI_SHADER_USER_DATA_PS_10 0x00B058 #define R_00B05C_SPI_SHADER_USER_DATA_PS_11 0x00B05C #define R_00B060_SPI_SHADER_USER_DATA_PS_12 0x00B060 #define R_00B064_SPI_SHADER_USER_DATA_PS_13 0x00B064 #define R_00B068_SPI_SHADER_USER_DATA_PS_14 0x00B068 #define R_00B06C_SPI_SHADER_USER_DATA_PS_15 0x00B06C #define R_00B070_SPI_SHADER_USER_DATA_PS_16 0x00B070 /* >= gfx9 */ #define R_00B074_SPI_SHADER_USER_DATA_PS_17 0x00B074 /* >= gfx9 */ #define R_00B078_SPI_SHADER_USER_DATA_PS_18 0x00B078 /* >= gfx9 */ #define R_00B07C_SPI_SHADER_USER_DATA_PS_19 0x00B07C /* >= gfx9 */ #define R_00B080_SPI_SHADER_USER_DATA_PS_20 0x00B080 /* >= gfx9 */ #define R_00B084_SPI_SHADER_USER_DATA_PS_21 0x00B084 /* >= gfx9 */ #define R_00B088_SPI_SHADER_USER_DATA_PS_22 0x00B088 /* >= gfx9 */ #define R_00B08C_SPI_SHADER_USER_DATA_PS_23 0x00B08C /* >= gfx9 */ #define R_00B090_SPI_SHADER_USER_DATA_PS_24 0x00B090 /* >= gfx9 */ #define R_00B094_SPI_SHADER_USER_DATA_PS_25 0x00B094 /* >= gfx9 */ #define R_00B098_SPI_SHADER_USER_DATA_PS_26 0x00B098 /* >= gfx9 */ #define R_00B09C_SPI_SHADER_USER_DATA_PS_27 0x00B09C /* >= gfx9 */ #define R_00B0A0_SPI_SHADER_USER_DATA_PS_28 0x00B0A0 /* >= gfx9 */ #define R_00B0A4_SPI_SHADER_USER_DATA_PS_29 0x00B0A4 /* >= gfx9 */ #define R_00B0A8_SPI_SHADER_USER_DATA_PS_30 0x00B0A8 /* >= gfx9 */ #define R_00B0AC_SPI_SHADER_USER_DATA_PS_31 0x00B0AC /* >= gfx9 */ #define R_00B0C0_SPI_SHADER_REQ_CTRL_PS 0x00B0C0 /* >= gfx10 */ #define S_00B0C0_SOFT_GROUPING_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_00B0C0_SOFT_GROUPING_EN(x) (((x) >> 0) & 0x1) #define C_00B0C0_SOFT_GROUPING_EN 0xFFFFFFFE #define S_00B0C0_NUMBER_OF_REQUESTS_PER_CU(x) (((unsigned)(x) & 0xF) << 1) #define G_00B0C0_NUMBER_OF_REQUESTS_PER_CU(x) (((x) >> 1) & 0xF) #define C_00B0C0_NUMBER_OF_REQUESTS_PER_CU 0xFFFFFFE1 #define S_00B0C0_SOFT_GROUPING_ALLOCATION_TIMEOUT(x) (((unsigned)(x) & 0xF) << 5) #define G_00B0C0_SOFT_GROUPING_ALLOCATION_TIMEOUT(x) (((x) >> 5) & 0xF) #define C_00B0C0_SOFT_GROUPING_ALLOCATION_TIMEOUT 0xFFFFFE1F #define S_00B0C0_HARD_LOCK_HYSTERESIS(x) (((unsigned)(x) & 0x1) << 9) #define G_00B0C0_HARD_LOCK_HYSTERESIS(x) (((x) >> 9) & 0x1) #define C_00B0C0_HARD_LOCK_HYSTERESIS 0xFFFFFDFF #define S_00B0C0_HARD_LOCK_LOW_THRESHOLD(x) (((unsigned)(x) & 0x1F) << 10) #define G_00B0C0_HARD_LOCK_LOW_THRESHOLD(x) (((x) >> 10) & 0x1F) #define C_00B0C0_HARD_LOCK_LOW_THRESHOLD 0xFFFF83FF #define S_00B0C0_PRODUCER_REQUEST_LOCKOUT(x) (((unsigned)(x) & 0x1) << 15) #define G_00B0C0_PRODUCER_REQUEST_LOCKOUT(x) (((x) >> 15) & 0x1) #define C_00B0C0_PRODUCER_REQUEST_LOCKOUT 0xFFFF7FFF #define S_00B0C0_GLOBAL_SCANNING_EN(x) (((unsigned)(x) & 0x1) << 16) #define G_00B0C0_GLOBAL_SCANNING_EN(x) (((x) >> 16) & 0x1) #define C_00B0C0_GLOBAL_SCANNING_EN 0xFFFEFFFF #define S_00B0C0_ALLOCATION_RATE_THROTTLING_THRESHOLD(x) (((unsigned)(x) & 0x7) << 17) #define G_00B0C0_ALLOCATION_RATE_THROTTLING_THRESHOLD(x) (((x) >> 17) & 0x7) #define C_00B0C0_ALLOCATION_RATE_THROTTLING_THRESHOLD 0xFFF1FFFF #define R_00B0C4_SPI_SHADER_PREF_PRI_CNTR_CTRL_PS 0x00B0C4 /* gfx10 */ #define S_00B0C4_TOTAL_WAVE_COUNT_HIER_SELECT(x) (((unsigned)(x) & 0x7) << 0) #define G_00B0C4_TOTAL_WAVE_COUNT_HIER_SELECT(x) (((x) >> 0) & 0x7) #define C_00B0C4_TOTAL_WAVE_COUNT_HIER_SELECT 0xFFFFFFF8 #define S_00B0C4_PER_TYPE_WAVE_COUNT_HIER_SELECT(x) (((unsigned)(x) & 0x7) << 3) #define G_00B0C4_PER_TYPE_WAVE_COUNT_HIER_SELECT(x) (((x) >> 3) & 0x7) #define C_00B0C4_PER_TYPE_WAVE_COUNT_HIER_SELECT 0xFFFFFFC7 #define S_00B0C4_GROUP_UPDATE_EN(x) (((unsigned)(x) & 0x1) << 6) #define G_00B0C4_GROUP_UPDATE_EN(x) (((x) >> 6) & 0x1) #define C_00B0C4_GROUP_UPDATE_EN 0xFFFFFFBF #define S_00B0C4_TOTAL_WAVE_COUNT_COEFFICIENT(x) (((unsigned)(x) & 0xFF) << 8) #define G_00B0C4_TOTAL_WAVE_COUNT_COEFFICIENT(x) (((x) >> 8) & 0xFF) #define C_00B0C4_TOTAL_WAVE_COUNT_COEFFICIENT 0xFFFF00FF #define S_00B0C4_PER_TYPE_WAVE_COUNT_COEFFICIENT(x) (((unsigned)(x) & 0xFF) << 16) #define G_00B0C4_PER_TYPE_WAVE_COUNT_COEFFICIENT(x) (((x) >> 16) & 0xFF) #define C_00B0C4_PER_TYPE_WAVE_COUNT_COEFFICIENT 0xFF00FFFF #define R_00B0C8_SPI_SHADER_USER_ACCUM_PS_0 0x00B0C8 /* >= gfx10 */ #define S_00B0C8_CONTRIBUTION(x) (((unsigned)(x) & 0x7F) << 0) #define G_00B0C8_CONTRIBUTION(x) (((x) >> 0) & 0x7F) #define C_00B0C8_CONTRIBUTION 0xFFFFFF80 #define R_00B0CC_SPI_SHADER_USER_ACCUM_PS_1 0x00B0CC /* >= gfx10 */ #define R_00B0D0_SPI_SHADER_USER_ACCUM_PS_2 0x00B0D0 /* >= gfx10 */ #define R_00B0D4_SPI_SHADER_USER_ACCUM_PS_3 0x00B0D4 /* >= gfx10 */ #define R_00B100_SPI_SHADER_TBA_LO_VS 0x00B100 /* <= gfx81 */ #define R_00B104_SPI_SHADER_PGM_RSRC4_VS 0x00B104 /* >= gfx10 */ #define S_00B104_CU_EN(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_00B104_CU_EN(x) (((x) >> 0) & 0xFFFF) #define C_00B104_CU_EN 0xFFFF0000 #define R_00B104_SPI_SHADER_TBA_HI_VS 0x00B104 /* <= gfx81 */ #define S_00B104_MEM_BASE(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B104_MEM_BASE(x) (((x) >> 0) & 0xFF) #define C_00B104_MEM_BASE 0xFFFFFF00 #define R_00B108_SPI_SHADER_TMA_LO_VS 0x00B108 /* <= gfx81 */ #define R_00B10C_SPI_SHADER_TMA_HI_VS 0x00B10C /* <= gfx81 */ #define S_00B10C_MEM_BASE(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B10C_MEM_BASE(x) (((x) >> 0) & 0xFF) #define C_00B10C_MEM_BASE 0xFFFFFF00 #define R_00B114_SPI_SHADER_PGM_CHKSUM_VS 0x00B114 /* >= gfx10 */ #define R_00B118_SPI_SHADER_PGM_RSRC3_VS 0x00B118 /* >= gfx7 */ #define S_00B118_CU_EN(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_00B118_CU_EN(x) (((x) >> 0) & 0xFFFF) #define C_00B118_CU_EN 0xFFFF0000 #define S_00B118_WAVE_LIMIT(x) (((unsigned)(x) & 0x3F) << 16) #define G_00B118_WAVE_LIMIT(x) (((x) >> 16) & 0x3F) #define C_00B118_WAVE_LIMIT 0xFFC0FFFF #define S_00B118_LOCK_LOW_THRESHOLD(x) (((unsigned)(x) & 0xF) << 22) #define G_00B118_LOCK_LOW_THRESHOLD(x) (((x) >> 22) & 0xF) #define C_00B118_LOCK_LOW_THRESHOLD 0xFC3FFFFF #define S_00B118_SIMD_DISABLE(x) (((unsigned)(x) & 0xF) << 26) /* gfx9 */ #define G_00B118_SIMD_DISABLE(x) (((x) >> 26) & 0xF) #define C_00B118_SIMD_DISABLE 0xC3FFFFFF #define R_00B11C_SPI_SHADER_LATE_ALLOC_VS 0x00B11C /* >= gfx7 */ #define S_00B11C_LIMIT(x) (((unsigned)(x) & 0x3F) << 0) #define G_00B11C_LIMIT(x) (((x) >> 0) & 0x3F) #define C_00B11C_LIMIT 0xFFFFFFC0 #define R_00B120_SPI_SHADER_PGM_LO_VS 0x00B120 #define R_00B124_SPI_SHADER_PGM_HI_VS 0x00B124 #define S_00B124_MEM_BASE(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B124_MEM_BASE(x) (((x) >> 0) & 0xFF) #define C_00B124_MEM_BASE 0xFFFFFF00 #define R_00B128_SPI_SHADER_PGM_RSRC1_VS 0x00B128 #define S_00B128_VGPRS(x) (((unsigned)(x) & 0x3F) << 0) #define G_00B128_VGPRS(x) (((x) >> 0) & 0x3F) #define C_00B128_VGPRS 0xFFFFFFC0 #define S_00B128_SGPRS(x) (((unsigned)(x) & 0xF) << 6) #define G_00B128_SGPRS(x) (((x) >> 6) & 0xF) #define C_00B128_SGPRS 0xFFFFFC3F #define S_00B128_PRIORITY(x) (((unsigned)(x) & 0x3) << 10) #define G_00B128_PRIORITY(x) (((x) >> 10) & 0x3) #define C_00B128_PRIORITY 0xFFFFF3FF #define S_00B128_FLOAT_MODE(x) (((unsigned)(x) & 0xFF) << 12) #define G_00B128_FLOAT_MODE(x) (((x) >> 12) & 0xFF) #define C_00B128_FLOAT_MODE 0xFFF00FFF #define V_00B128_FP_32_DENORMS 48 #define V_00B128_FP_64_DENORMS 192 #define V_00B128_FP_ALL_DENORMS 240 #define S_00B128_PRIV(x) (((unsigned)(x) & 0x1) << 20) #define G_00B128_PRIV(x) (((x) >> 20) & 0x1) #define C_00B128_PRIV 0xFFEFFFFF #define S_00B128_DX10_CLAMP(x) (((unsigned)(x) & 0x1) << 21) #define G_00B128_DX10_CLAMP(x) (((x) >> 21) & 0x1) #define C_00B128_DX10_CLAMP 0xFFDFFFFF #define S_00B128_DEBUG_MODE(x) (((unsigned)(x) & 0x1) << 22) /* <= gfx9 */ #define G_00B128_DEBUG_MODE(x) (((x) >> 22) & 0x1) #define C_00B128_DEBUG_MODE 0xFFBFFFFF #define S_00B128_IEEE_MODE(x) (((unsigned)(x) & 0x1) << 23) #define G_00B128_IEEE_MODE(x) (((x) >> 23) & 0x1) #define C_00B128_IEEE_MODE 0xFF7FFFFF #define S_00B128_VGPR_COMP_CNT(x) (((unsigned)(x) & 0x3) << 24) #define G_00B128_VGPR_COMP_CNT(x) (((x) >> 24) & 0x3) #define C_00B128_VGPR_COMP_CNT 0xFCFFFFFF #define S_00B128_CU_GROUP_ENABLE(x) (((unsigned)(x) & 0x1) << 26) #define G_00B128_CU_GROUP_ENABLE(x) (((x) >> 26) & 0x1) #define C_00B128_CU_GROUP_ENABLE 0xFBFFFFFF #define S_00B128_CACHE_CTL(x) (((unsigned)(x) & 0x7) << 27) /* <= gfx81 */ #define G_00B128_CACHE_CTL(x) (((x) >> 27) & 0x7) #define C_00B128_CACHE_CTL 0xC7FFFFFF #define S_00B128_MEM_ORDERED(x) (((unsigned)(x) & 0x1) << 27) /* >= gfx10 */ #define G_00B128_MEM_ORDERED(x) (((x) >> 27) & 0x1) #define C_00B128_MEM_ORDERED 0xF7FFFFFF #define S_00B128_FWD_PROGRESS(x) (((unsigned)(x) & 0x1) << 28) /* >= gfx10 */ #define G_00B128_FWD_PROGRESS(x) (((x) >> 28) & 0x1) #define C_00B128_FWD_PROGRESS 0xEFFFFFFF #define S_00B128_CDBG_USER(x) (((unsigned)(x) & 0x1) << 30) /* <= gfx9 */ #define G_00B128_CDBG_USER(x) (((x) >> 30) & 0x1) #define C_00B128_CDBG_USER 0xBFFFFFFF #define S_00B128_FP16_OVFL(x) (((unsigned)(x) & 0x1) << 31) /* >= gfx9 */ #define G_00B128_FP16_OVFL(x) (((x) >> 31) & 0x1) #define C_00B128_FP16_OVFL 0x7FFFFFFF #define R_00B12C_SPI_SHADER_PGM_RSRC2_VS 0x00B12C #define S_00B12C_SCRATCH_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_00B12C_SCRATCH_EN(x) (((x) >> 0) & 0x1) #define C_00B12C_SCRATCH_EN 0xFFFFFFFE #define S_00B12C_USER_SGPR(x) (((unsigned)(x) & 0x1F) << 1) #define G_00B12C_USER_SGPR(x) (((x) >> 1) & 0x1F) #define C_00B12C_USER_SGPR 0xFFFFFFC1 #define S_00B12C_TRAP_PRESENT(x) (((unsigned)(x) & 0x1) << 6) #define G_00B12C_TRAP_PRESENT(x) (((x) >> 6) & 0x1) #define C_00B12C_TRAP_PRESENT 0xFFFFFFBF #define S_00B12C_OC_LDS_EN(x) (((unsigned)(x) & 0x1) << 7) #define G_00B12C_OC_LDS_EN(x) (((x) >> 7) & 0x1) #define C_00B12C_OC_LDS_EN 0xFFFFFF7F #define S_00B12C_SO_BASE0_EN(x) (((unsigned)(x) & 0x1) << 8) #define G_00B12C_SO_BASE0_EN(x) (((x) >> 8) & 0x1) #define C_00B12C_SO_BASE0_EN 0xFFFFFEFF #define S_00B12C_SO_BASE1_EN(x) (((unsigned)(x) & 0x1) << 9) #define G_00B12C_SO_BASE1_EN(x) (((x) >> 9) & 0x1) #define C_00B12C_SO_BASE1_EN 0xFFFFFDFF #define S_00B12C_SO_BASE2_EN(x) (((unsigned)(x) & 0x1) << 10) #define G_00B12C_SO_BASE2_EN(x) (((x) >> 10) & 0x1) #define C_00B12C_SO_BASE2_EN 0xFFFFFBFF #define S_00B12C_SO_BASE3_EN(x) (((unsigned)(x) & 0x1) << 11) #define G_00B12C_SO_BASE3_EN(x) (((x) >> 11) & 0x1) #define C_00B12C_SO_BASE3_EN 0xFFFFF7FF #define S_00B12C_SO_EN(x) (((unsigned)(x) & 0x1) << 12) #define G_00B12C_SO_EN(x) (((x) >> 12) & 0x1) #define C_00B12C_SO_EN 0xFFFFEFFF #define S_00B12C_EXCP_EN(x) (((unsigned)(x) & 0x1FF) << 13) #define G_00B12C_EXCP_EN(x) (((x) >> 13) & 0x1FF) #define C_00B12C_EXCP_EN 0xFFC01FFF #define V_00B12C_INVALID 1 #define V_00B12C_INPUT_DENORMAL 2 #define V_00B12C_DIVIDE_BY_ZERO 4 #define V_00B12C_OVERFLOW 8 #define V_00B12C_UNDERFLOW 16 #define V_00B12C_INEXACT 32 #define V_00B12C_INT_DIVIDE_BY_ZERO 64 #define V_00B12C_ADDRESS_WATCH 128 #define V_00B12C_MEMORY_VIOLATION 256 #define S_00B12C_PC_BASE_EN(x) (((unsigned)(x) & 0x1) << 22) /* >= gfx9 */ #define G_00B12C_PC_BASE_EN(x) (((x) >> 22) & 0x1) #define C_00B12C_PC_BASE_EN 0xFFBFFFFF #define S_00B12C_DISPATCH_DRAW_EN(x) (((unsigned)(x) & 0x1) << 24) /* >= gfx8 */ #define G_00B12C_DISPATCH_DRAW_EN(x) (((x) >> 24) & 0x1) #define C_00B12C_DISPATCH_DRAW_EN 0xFEFFFFFF #define S_00B12C_SKIP_USGPR0(x) (((unsigned)(x) & 0x1) << 27) /* gfx9 */ #define G_00B12C_SKIP_USGPR0(x) (((x) >> 27) & 0x1) #define C_00B12C_SKIP_USGPR0 0xF7FFFFFF #define S_00B12C_USER_SGPR_MSB_GFX10(x) (((unsigned)(x) & 0x1) << 27) /* >= gfx10 */ #define G_00B12C_USER_SGPR_MSB_GFX10(x) (((x) >> 27) & 0x1) #define C_00B12C_USER_SGPR_MSB_GFX10 0xF7FFFFFF #define S_00B12C_SHARED_VGPR_CNT(x) (((unsigned)(x) & 0xF) << 28) /* >= gfx10 */ #define G_00B12C_SHARED_VGPR_CNT(x) (((x) >> 28) & 0xF) #define C_00B12C_SHARED_VGPR_CNT 0x0FFFFFFF #define S_00B12C_USER_SGPR_MSB_GFX9(x) (((unsigned)(x) & 0x1) << 28) /* gfx9 */ #define G_00B12C_USER_SGPR_MSB_GFX9(x) (((x) >> 28) & 0x1) #define C_00B12C_USER_SGPR_MSB_GFX9 0xEFFFFFFF #define R_00B130_SPI_SHADER_USER_DATA_VS_0 0x00B130 #define R_00B134_SPI_SHADER_USER_DATA_VS_1 0x00B134 #define R_00B138_SPI_SHADER_USER_DATA_VS_2 0x00B138 #define R_00B13C_SPI_SHADER_USER_DATA_VS_3 0x00B13C #define R_00B140_SPI_SHADER_USER_DATA_VS_4 0x00B140 #define R_00B144_SPI_SHADER_USER_DATA_VS_5 0x00B144 #define R_00B148_SPI_SHADER_USER_DATA_VS_6 0x00B148 #define R_00B14C_SPI_SHADER_USER_DATA_VS_7 0x00B14C #define R_00B150_SPI_SHADER_USER_DATA_VS_8 0x00B150 #define R_00B154_SPI_SHADER_USER_DATA_VS_9 0x00B154 #define R_00B158_SPI_SHADER_USER_DATA_VS_10 0x00B158 #define R_00B15C_SPI_SHADER_USER_DATA_VS_11 0x00B15C #define R_00B160_SPI_SHADER_USER_DATA_VS_12 0x00B160 #define R_00B164_SPI_SHADER_USER_DATA_VS_13 0x00B164 #define R_00B168_SPI_SHADER_USER_DATA_VS_14 0x00B168 #define R_00B16C_SPI_SHADER_USER_DATA_VS_15 0x00B16C #define R_00B170_SPI_SHADER_USER_DATA_VS_16 0x00B170 /* >= gfx9 */ #define R_00B174_SPI_SHADER_USER_DATA_VS_17 0x00B174 /* >= gfx9 */ #define R_00B178_SPI_SHADER_USER_DATA_VS_18 0x00B178 /* >= gfx9 */ #define R_00B17C_SPI_SHADER_USER_DATA_VS_19 0x00B17C /* >= gfx9 */ #define R_00B180_SPI_SHADER_USER_DATA_VS_20 0x00B180 /* >= gfx9 */ #define R_00B184_SPI_SHADER_USER_DATA_VS_21 0x00B184 /* >= gfx9 */ #define R_00B188_SPI_SHADER_USER_DATA_VS_22 0x00B188 /* >= gfx9 */ #define R_00B18C_SPI_SHADER_USER_DATA_VS_23 0x00B18C /* >= gfx9 */ #define R_00B190_SPI_SHADER_USER_DATA_VS_24 0x00B190 /* >= gfx9 */ #define R_00B194_SPI_SHADER_USER_DATA_VS_25 0x00B194 /* >= gfx9 */ #define R_00B198_SPI_SHADER_USER_DATA_VS_26 0x00B198 /* >= gfx9 */ #define R_00B19C_SPI_SHADER_USER_DATA_VS_27 0x00B19C /* >= gfx9 */ #define R_00B1A0_SPI_SHADER_USER_DATA_VS_28 0x00B1A0 /* >= gfx9 */ #define R_00B1A4_SPI_SHADER_USER_DATA_VS_29 0x00B1A4 /* >= gfx9 */ #define R_00B1A8_SPI_SHADER_USER_DATA_VS_30 0x00B1A8 /* >= gfx9 */ #define R_00B1AC_SPI_SHADER_USER_DATA_VS_31 0x00B1AC /* >= gfx9 */ #define R_00B1C0_SPI_SHADER_REQ_CTRL_VS 0x00B1C0 /* >= gfx10 */ #define S_00B1C0_SOFT_GROUPING_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_00B1C0_SOFT_GROUPING_EN(x) (((x) >> 0) & 0x1) #define C_00B1C0_SOFT_GROUPING_EN 0xFFFFFFFE #define S_00B1C0_NUMBER_OF_REQUESTS_PER_CU(x) (((unsigned)(x) & 0xF) << 1) #define G_00B1C0_NUMBER_OF_REQUESTS_PER_CU(x) (((x) >> 1) & 0xF) #define C_00B1C0_NUMBER_OF_REQUESTS_PER_CU 0xFFFFFFE1 #define S_00B1C0_SOFT_GROUPING_ALLOCATION_TIMEOUT(x) (((unsigned)(x) & 0xF) << 5) #define G_00B1C0_SOFT_GROUPING_ALLOCATION_TIMEOUT(x) (((x) >> 5) & 0xF) #define C_00B1C0_SOFT_GROUPING_ALLOCATION_TIMEOUT 0xFFFFFE1F #define S_00B1C0_HARD_LOCK_HYSTERESIS(x) (((unsigned)(x) & 0x1) << 9) #define G_00B1C0_HARD_LOCK_HYSTERESIS(x) (((x) >> 9) & 0x1) #define C_00B1C0_HARD_LOCK_HYSTERESIS 0xFFFFFDFF #define S_00B1C0_HARD_LOCK_LOW_THRESHOLD(x) (((unsigned)(x) & 0x1F) << 10) #define G_00B1C0_HARD_LOCK_LOW_THRESHOLD(x) (((x) >> 10) & 0x1F) #define C_00B1C0_HARD_LOCK_LOW_THRESHOLD 0xFFFF83FF #define S_00B1C0_PRODUCER_REQUEST_LOCKOUT(x) (((unsigned)(x) & 0x1) << 15) #define G_00B1C0_PRODUCER_REQUEST_LOCKOUT(x) (((x) >> 15) & 0x1) #define C_00B1C0_PRODUCER_REQUEST_LOCKOUT 0xFFFF7FFF #define S_00B1C0_GLOBAL_SCANNING_EN(x) (((unsigned)(x) & 0x1) << 16) #define G_00B1C0_GLOBAL_SCANNING_EN(x) (((x) >> 16) & 0x1) #define C_00B1C0_GLOBAL_SCANNING_EN 0xFFFEFFFF #define S_00B1C0_ALLOCATION_RATE_THROTTLING_THRESHOLD(x) (((unsigned)(x) & 0x7) << 17) #define G_00B1C0_ALLOCATION_RATE_THROTTLING_THRESHOLD(x) (((x) >> 17) & 0x7) #define C_00B1C0_ALLOCATION_RATE_THROTTLING_THRESHOLD 0xFFF1FFFF #define R_00B1C4_SPI_SHADER_PREF_PRI_CNTR_CTRL_VS 0x00B1C4 /* gfx10 */ #define S_00B1C4_TOTAL_WAVE_COUNT_HIER_SELECT(x) (((unsigned)(x) & 0x7) << 0) #define G_00B1C4_TOTAL_WAVE_COUNT_HIER_SELECT(x) (((x) >> 0) & 0x7) #define C_00B1C4_TOTAL_WAVE_COUNT_HIER_SELECT 0xFFFFFFF8 #define S_00B1C4_PER_TYPE_WAVE_COUNT_HIER_SELECT(x) (((unsigned)(x) & 0x7) << 3) #define G_00B1C4_PER_TYPE_WAVE_COUNT_HIER_SELECT(x) (((x) >> 3) & 0x7) #define C_00B1C4_PER_TYPE_WAVE_COUNT_HIER_SELECT 0xFFFFFFC7 #define S_00B1C4_GROUP_UPDATE_EN(x) (((unsigned)(x) & 0x1) << 6) #define G_00B1C4_GROUP_UPDATE_EN(x) (((x) >> 6) & 0x1) #define C_00B1C4_GROUP_UPDATE_EN 0xFFFFFFBF #define S_00B1C4_TOTAL_WAVE_COUNT_COEFFICIENT(x) (((unsigned)(x) & 0xFF) << 8) #define G_00B1C4_TOTAL_WAVE_COUNT_COEFFICIENT(x) (((x) >> 8) & 0xFF) #define C_00B1C4_TOTAL_WAVE_COUNT_COEFFICIENT 0xFFFF00FF #define S_00B1C4_PER_TYPE_WAVE_COUNT_COEFFICIENT(x) (((unsigned)(x) & 0xFF) << 16) #define G_00B1C4_PER_TYPE_WAVE_COUNT_COEFFICIENT(x) (((x) >> 16) & 0xFF) #define C_00B1C4_PER_TYPE_WAVE_COUNT_COEFFICIENT 0xFF00FFFF #define R_00B1C8_SPI_SHADER_USER_ACCUM_VS_0 0x00B1C8 /* >= gfx10 */ #define S_00B1C8_CONTRIBUTION(x) (((unsigned)(x) & 0x7F) << 0) #define G_00B1C8_CONTRIBUTION(x) (((x) >> 0) & 0x7F) #define C_00B1C8_CONTRIBUTION 0xFFFFFF80 #define R_00B1CC_SPI_SHADER_USER_ACCUM_VS_1 0x00B1CC /* >= gfx10 */ #define R_00B1D0_SPI_SHADER_USER_ACCUM_VS_2 0x00B1D0 /* >= gfx10 */ #define R_00B1D4_SPI_SHADER_USER_ACCUM_VS_3 0x00B1D4 /* >= gfx10 */ #define R_00B1EC_SPI_SHADER_PGM_RSRC2_GS_VS 0x00B1EC /* >= gfx10 */ #define S_00B1EC_SCRATCH_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_00B1EC_SCRATCH_EN(x) (((x) >> 0) & 0x1) #define C_00B1EC_SCRATCH_EN 0xFFFFFFFE #define S_00B1EC_USER_SGPR(x) (((unsigned)(x) & 0x1F) << 1) #define G_00B1EC_USER_SGPR(x) (((x) >> 1) & 0x1F) #define C_00B1EC_USER_SGPR 0xFFFFFFC1 #define S_00B1EC_TRAP_PRESENT(x) (((unsigned)(x) & 0x1) << 6) #define G_00B1EC_TRAP_PRESENT(x) (((x) >> 6) & 0x1) #define C_00B1EC_TRAP_PRESENT 0xFFFFFFBF #define S_00B1EC_EXCP_EN(x) (((unsigned)(x) & 0x1FF) << 7) #define G_00B1EC_EXCP_EN(x) (((x) >> 7) & 0x1FF) #define C_00B1EC_EXCP_EN 0xFFFF007F #define V_00B1EC_INVALID 1 #define V_00B1EC_INPUT_DENORMAL 2 #define V_00B1EC_DIVIDE_BY_ZERO 4 #define V_00B1EC_OVERFLOW 8 #define V_00B1EC_UNDERFLOW 16 #define V_00B1EC_INEXACT 32 #define V_00B1EC_INT_DIVIDE_BY_ZERO 64 #define V_00B1EC_ADDRESS_WATCH 128 #define V_00B1EC_MEMORY_VIOLATION 256 #define S_00B1EC_VGPR_COMP_CNT(x) (((unsigned)(x) & 0x3) << 16) #define G_00B1EC_VGPR_COMP_CNT(x) (((x) >> 16) & 0x3) #define C_00B1EC_VGPR_COMP_CNT 0xFFFCFFFF #define S_00B1EC_OC_LDS_EN(x) (((unsigned)(x) & 0x1) << 18) #define G_00B1EC_OC_LDS_EN(x) (((x) >> 18) & 0x1) #define C_00B1EC_OC_LDS_EN 0xFFFBFFFF #define S_00B1EC_LDS_SIZE(x) (((unsigned)(x) & 0xFF) << 19) #define G_00B1EC_LDS_SIZE(x) (((x) >> 19) & 0xFF) #define C_00B1EC_LDS_SIZE 0xF807FFFF #define S_00B1EC_SKIP_USGPR0(x) (((unsigned)(x) & 0x1) << 27) #define G_00B1EC_SKIP_USGPR0(x) (((x) >> 27) & 0x1) #define C_00B1EC_SKIP_USGPR0 0xF7FFFFFF #define S_00B1EC_USER_SGPR_MSB(x) (((unsigned)(x) & 0x1) << 28) #define G_00B1EC_USER_SGPR_MSB(x) (((x) >> 28) & 0x1) #define C_00B1EC_USER_SGPR_MSB 0xEFFFFFFF #define R_00B1F0_SPI_SHADER_PGM_RSRC2_ES_VS 0x00B1F0 /* gfx7, gfx8, gfx81, gfx10 */ #define S_00B1F0_SCRATCH_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_00B1F0_SCRATCH_EN(x) (((x) >> 0) & 0x1) #define C_00B1F0_SCRATCH_EN 0xFFFFFFFE #define S_00B1F0_USER_SGPR(x) (((unsigned)(x) & 0x1F) << 1) #define G_00B1F0_USER_SGPR(x) (((x) >> 1) & 0x1F) #define C_00B1F0_USER_SGPR 0xFFFFFFC1 #define S_00B1F0_TRAP_PRESENT(x) (((unsigned)(x) & 0x1) << 6) #define G_00B1F0_TRAP_PRESENT(x) (((x) >> 6) & 0x1) #define C_00B1F0_TRAP_PRESENT 0xFFFFFFBF #define S_00B1F0_OC_LDS_EN_GFX7(x) (((unsigned)(x) & 0x1) << 7) #define G_00B1F0_OC_LDS_EN_GFX7(x) (((x) >> 7) & 0x1) #define C_00B1F0_OC_LDS_EN_GFX7 0xFFFFFF7F #define S_00B1F0_EXCP_EN_GFX7(x) (((unsigned)(x) & 0x1FF) << 8) #define G_00B1F0_EXCP_EN_GFX7(x) (((x) >> 8) & 0x1FF) #define C_00B1F0_EXCP_EN_GFX7 0xFFFE00FF #define V_00B1F0_INVALID 1 #define V_00B1F0_INPUT_DENORMAL 2 #define V_00B1F0_DIVIDE_BY_ZERO 4 #define V_00B1F0_OVERFLOW 8 #define V_00B1F0_UNDERFLOW 16 #define V_00B1F0_INEXACT 32 #define V_00B1F0_INT_DIVIDE_BY_ZERO 64 #define V_00B1F0_ADDRESS_WATCH 128 #define V_00B1F0_MEMORY_VIOLATION 256 #define S_00B1F0_LDS_SIZE_GFX7(x) (((unsigned)(x) & 0x1FF) << 20) #define G_00B1F0_LDS_SIZE_GFX7(x) (((x) >> 20) & 0x1FF) #define C_00B1F0_LDS_SIZE_GFX7 0xE00FFFFF #define R_00B1F0_SPI_SHADER_PGM_RSRC2_GS_VS 0x00B1F0 /* gfx9 */ #define S_00B1F0_EXCP_EN_GFX9(x) (((unsigned)(x) & 0x1FF) << 7) #define G_00B1F0_EXCP_EN_GFX9(x) (((x) >> 7) & 0x1FF) #define C_00B1F0_EXCP_EN_GFX9 0xFFFF007F #define S_00B1F0_VGPR_COMP_CNT(x) (((unsigned)(x) & 0x3) << 16) #define G_00B1F0_VGPR_COMP_CNT(x) (((x) >> 16) & 0x3) #define C_00B1F0_VGPR_COMP_CNT 0xFFFCFFFF #define S_00B1F0_OC_LDS_EN_GFX9(x) (((unsigned)(x) & 0x1) << 18) #define G_00B1F0_OC_LDS_EN_GFX9(x) (((x) >> 18) & 0x1) #define C_00B1F0_OC_LDS_EN_GFX9 0xFFFBFFFF #define S_00B1F0_LDS_SIZE_GFX9(x) (((unsigned)(x) & 0xFF) << 19) #define G_00B1F0_LDS_SIZE_GFX9(x) (((x) >> 19) & 0xFF) #define C_00B1F0_LDS_SIZE_GFX9 0xF807FFFF #define S_00B1F0_SKIP_USGPR0(x) (((unsigned)(x) & 0x1) << 27) #define G_00B1F0_SKIP_USGPR0(x) (((x) >> 27) & 0x1) #define C_00B1F0_SKIP_USGPR0 0xF7FFFFFF #define S_00B1F0_USER_SGPR_MSB(x) (((unsigned)(x) & 0x1) << 28) #define G_00B1F0_USER_SGPR_MSB(x) (((x) >> 28) & 0x1) #define C_00B1F0_USER_SGPR_MSB 0xEFFFFFFF #define R_00B1F4_SPI_SHADER_PGM_RSRC2_LS_VS 0x00B1F4 /* gfx7, gfx8, gfx81, gfx10 */ #define S_00B1F4_SCRATCH_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_00B1F4_SCRATCH_EN(x) (((x) >> 0) & 0x1) #define C_00B1F4_SCRATCH_EN 0xFFFFFFFE #define S_00B1F4_USER_SGPR(x) (((unsigned)(x) & 0x1F) << 1) #define G_00B1F4_USER_SGPR(x) (((x) >> 1) & 0x1F) #define C_00B1F4_USER_SGPR 0xFFFFFFC1 #define S_00B1F4_TRAP_PRESENT(x) (((unsigned)(x) & 0x1) << 6) #define G_00B1F4_TRAP_PRESENT(x) (((x) >> 6) & 0x1) #define C_00B1F4_TRAP_PRESENT 0xFFFFFFBF #define S_00B1F4_LDS_SIZE(x) (((unsigned)(x) & 0x1FF) << 7) #define G_00B1F4_LDS_SIZE(x) (((x) >> 7) & 0x1FF) #define C_00B1F4_LDS_SIZE 0xFFFF007F #define S_00B1F4_EXCP_EN(x) (((unsigned)(x) & 0x1FF) << 16) #define G_00B1F4_EXCP_EN(x) (((x) >> 16) & 0x1FF) #define C_00B1F4_EXCP_EN 0xFE00FFFF #define V_00B1F4_INVALID 1 #define V_00B1F4_INPUT_DENORMAL 2 #define V_00B1F4_DIVIDE_BY_ZERO 4 #define V_00B1F4_OVERFLOW 8 #define V_00B1F4_UNDERFLOW 16 #define V_00B1F4_INEXACT 32 #define V_00B1F4_INT_DIVIDE_BY_ZERO 64 #define V_00B1F4_ADDRESS_WATCH 128 #define V_00B1F4_MEMORY_VIOLATION 256 #define R_00B200_SPI_SHADER_PGM_CHKSUM_GS 0x00B200 /* >= gfx10 */ #define R_00B200_SPI_SHADER_TBA_LO_GS 0x00B200 /* <= gfx81 */ #define R_00B204_SPI_SHADER_PGM_RSRC4_GS 0x00B204 /* >= gfx9 */ #define S_00B204_CU_EN(x) (((unsigned)(x) & 0xFFFF) << 0) /* >= gfx10 */ #define G_00B204_CU_EN(x) (((x) >> 0) & 0xFFFF) #define C_00B204_CU_EN 0xFFFF0000 #define S_00B204_GROUP_FIFO_DEPTH(x) (((unsigned)(x) & 0x7F) << 0) /* gfx9 */ #define G_00B204_GROUP_FIFO_DEPTH(x) (((x) >> 0) & 0x7F) #define C_00B204_GROUP_FIFO_DEPTH 0xFFFFFF80 #define S_00B204_SPI_SHADER_LATE_ALLOC_GS_GFX9(x) (((unsigned)(x) & 0x7F) << 7) /* gfx9 */ #define G_00B204_SPI_SHADER_LATE_ALLOC_GS_GFX9(x) (((x) >> 7) & 0x7F) #define C_00B204_SPI_SHADER_LATE_ALLOC_GS_GFX9 0xFFFFC07F #define S_00B204_SPI_SHADER_LATE_ALLOC_GS_GFX10(x) (((unsigned)(x) & 0x7F) << 16) /* >= gfx10 */ #define G_00B204_SPI_SHADER_LATE_ALLOC_GS_GFX10(x) (((x) >> 16) & 0x7F) #define C_00B204_SPI_SHADER_LATE_ALLOC_GS_GFX10 0xFF80FFFF #define R_00B204_SPI_SHADER_TBA_HI_GS 0x00B204 /* <= gfx81 */ #define S_00B204_MEM_BASE(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B204_MEM_BASE(x) (((x) >> 0) & 0xFF) #define C_00B204_MEM_BASE 0xFFFFFF00 #define R_00B208_SPI_SHADER_TMA_LO_GS 0x00B208 /* <= gfx81 */ #define R_00B208_SPI_SHADER_USER_DATA_ADDR_LO_GS 0x00B208 /* >= gfx9 */ #define R_00B20C_SPI_SHADER_TMA_HI_GS 0x00B20C /* <= gfx81 */ #define S_00B20C_MEM_BASE(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B20C_MEM_BASE(x) (((x) >> 0) & 0xFF) #define C_00B20C_MEM_BASE 0xFFFFFF00 #define R_00B20C_SPI_SHADER_USER_DATA_ADDR_HI_GS 0x00B20C /* >= gfx9 */ #define R_00B210_SPI_SHADER_PGM_LO_ES 0x00B210 /* gfx9 */ #define R_00B210_SPI_SHADER_PGM_LO_ES_GS 0x00B210 /* >= gfx10 */ #define R_00B214_SPI_SHADER_PGM_HI_ES 0x00B214 /* gfx9 */ #define S_00B214_MEM_BASE(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B214_MEM_BASE(x) (((x) >> 0) & 0xFF) #define C_00B214_MEM_BASE 0xFFFFFF00 #define R_00B214_SPI_SHADER_PGM_HI_ES_GS 0x00B214 /* >= gfx10 */ #define R_00B21C_SPI_SHADER_PGM_RSRC3_GS 0x00B21C /* >= gfx7 */ #define S_00B21C_CU_EN(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_00B21C_CU_EN(x) (((x) >> 0) & 0xFFFF) #define C_00B21C_CU_EN 0xFFFF0000 #define S_00B21C_WAVE_LIMIT(x) (((unsigned)(x) & 0x3F) << 16) #define G_00B21C_WAVE_LIMIT(x) (((x) >> 16) & 0x3F) #define C_00B21C_WAVE_LIMIT 0xFFC0FFFF #define S_00B21C_LOCK_LOW_THRESHOLD(x) (((unsigned)(x) & 0xF) << 22) #define G_00B21C_LOCK_LOW_THRESHOLD(x) (((x) >> 22) & 0xF) #define C_00B21C_LOCK_LOW_THRESHOLD 0xFC3FFFFF #define S_00B21C_GROUP_FIFO_DEPTH(x) (((unsigned)(x) & 0x3F) << 26) /* gfx8, gfx81, >= gfx10 */ #define G_00B21C_GROUP_FIFO_DEPTH(x) (((x) >> 26) & 0x3F) #define C_00B21C_GROUP_FIFO_DEPTH 0x03FFFFFF #define S_00B21C_SIMD_DISABLE(x) (((unsigned)(x) & 0xF) << 26) /* gfx9 */ #define G_00B21C_SIMD_DISABLE(x) (((x) >> 26) & 0xF) #define C_00B21C_SIMD_DISABLE 0xC3FFFFFF #define R_00B220_SPI_SHADER_PGM_LO_GS 0x00B220 #define R_00B224_SPI_SHADER_PGM_HI_GS 0x00B224 #define S_00B224_MEM_BASE(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B224_MEM_BASE(x) (((x) >> 0) & 0xFF) #define C_00B224_MEM_BASE 0xFFFFFF00 #define R_00B228_SPI_SHADER_PGM_RSRC1_GS 0x00B228 #define S_00B228_VGPRS(x) (((unsigned)(x) & 0x3F) << 0) #define G_00B228_VGPRS(x) (((x) >> 0) & 0x3F) #define C_00B228_VGPRS 0xFFFFFFC0 #define S_00B228_SGPRS(x) (((unsigned)(x) & 0xF) << 6) #define G_00B228_SGPRS(x) (((x) >> 6) & 0xF) #define C_00B228_SGPRS 0xFFFFFC3F #define S_00B228_PRIORITY(x) (((unsigned)(x) & 0x3) << 10) #define G_00B228_PRIORITY(x) (((x) >> 10) & 0x3) #define C_00B228_PRIORITY 0xFFFFF3FF #define S_00B228_FLOAT_MODE(x) (((unsigned)(x) & 0xFF) << 12) #define G_00B228_FLOAT_MODE(x) (((x) >> 12) & 0xFF) #define C_00B228_FLOAT_MODE 0xFFF00FFF #define V_00B228_FP_32_DENORMS 48 #define V_00B228_FP_64_DENORMS 192 #define V_00B228_FP_ALL_DENORMS 240 #define S_00B228_PRIV(x) (((unsigned)(x) & 0x1) << 20) #define G_00B228_PRIV(x) (((x) >> 20) & 0x1) #define C_00B228_PRIV 0xFFEFFFFF #define S_00B228_DX10_CLAMP(x) (((unsigned)(x) & 0x1) << 21) #define G_00B228_DX10_CLAMP(x) (((x) >> 21) & 0x1) #define C_00B228_DX10_CLAMP 0xFFDFFFFF #define S_00B228_DEBUG_MODE(x) (((unsigned)(x) & 0x1) << 22) /* <= gfx9 */ #define G_00B228_DEBUG_MODE(x) (((x) >> 22) & 0x1) #define C_00B228_DEBUG_MODE 0xFFBFFFFF #define S_00B228_IEEE_MODE(x) (((unsigned)(x) & 0x1) << 23) #define G_00B228_IEEE_MODE(x) (((x) >> 23) & 0x1) #define C_00B228_IEEE_MODE 0xFF7FFFFF #define S_00B228_CU_GROUP_ENABLE(x) (((unsigned)(x) & 0x1) << 24) #define G_00B228_CU_GROUP_ENABLE(x) (((x) >> 24) & 0x1) #define C_00B228_CU_GROUP_ENABLE 0xFEFFFFFF #define S_00B228_CACHE_CTL(x) (((unsigned)(x) & 0x7) << 25) /* <= gfx81 */ #define G_00B228_CACHE_CTL(x) (((x) >> 25) & 0x7) #define C_00B228_CACHE_CTL 0xF1FFFFFF #define S_00B228_MEM_ORDERED(x) (((unsigned)(x) & 0x1) << 25) /* >= gfx10 */ #define G_00B228_MEM_ORDERED(x) (((x) >> 25) & 0x1) #define C_00B228_MEM_ORDERED 0xFDFFFFFF #define S_00B228_FWD_PROGRESS(x) (((unsigned)(x) & 0x1) << 26) /* >= gfx10 */ #define G_00B228_FWD_PROGRESS(x) (((x) >> 26) & 0x1) #define C_00B228_FWD_PROGRESS 0xFBFFFFFF #define S_00B228_WGP_MODE(x) (((unsigned)(x) & 0x1) << 27) /* >= gfx10 */ #define G_00B228_WGP_MODE(x) (((x) >> 27) & 0x1) #define C_00B228_WGP_MODE 0xF7FFFFFF #define S_00B228_CDBG_USER(x) (((unsigned)(x) & 0x1) << 28) /* <= gfx9 */ #define G_00B228_CDBG_USER(x) (((x) >> 28) & 0x1) #define C_00B228_CDBG_USER 0xEFFFFFFF #define S_00B228_GS_VGPR_COMP_CNT(x) (((unsigned)(x) & 0x3) << 29) /* >= gfx9 */ #define G_00B228_GS_VGPR_COMP_CNT(x) (((x) >> 29) & 0x3) #define C_00B228_GS_VGPR_COMP_CNT 0x9FFFFFFF #define S_00B228_FP16_OVFL(x) (((unsigned)(x) & 0x1) << 31) /* >= gfx9 */ #define G_00B228_FP16_OVFL(x) (((x) >> 31) & 0x1) #define C_00B228_FP16_OVFL 0x7FFFFFFF #define R_00B22C_SPI_SHADER_PGM_RSRC2_GS 0x00B22C #define S_00B22C_SCRATCH_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_00B22C_SCRATCH_EN(x) (((x) >> 0) & 0x1) #define C_00B22C_SCRATCH_EN 0xFFFFFFFE #define S_00B22C_USER_SGPR(x) (((unsigned)(x) & 0x1F) << 1) #define G_00B22C_USER_SGPR(x) (((x) >> 1) & 0x1F) #define C_00B22C_USER_SGPR 0xFFFFFFC1 #define S_00B22C_TRAP_PRESENT(x) (((unsigned)(x) & 0x1) << 6) #define G_00B22C_TRAP_PRESENT(x) (((x) >> 6) & 0x1) #define C_00B22C_TRAP_PRESENT 0xFFFFFFBF #define S_00B22C_EXCP_EN(x) (((unsigned)(x) & 0x1FF) << 7) #define G_00B22C_EXCP_EN(x) (((x) >> 7) & 0x1FF) #define C_00B22C_EXCP_EN 0xFFFF007F #define V_00B22C_INVALID 1 #define V_00B22C_INPUT_DENORMAL 2 #define V_00B22C_DIVIDE_BY_ZERO 4 #define V_00B22C_OVERFLOW 8 #define V_00B22C_UNDERFLOW 16 #define V_00B22C_INEXACT 32 #define V_00B22C_INT_DIVIDE_BY_ZERO 64 #define V_00B22C_ADDRESS_WATCH 128 #define V_00B22C_MEMORY_VIOLATION 256 #define S_00B22C_ES_VGPR_COMP_CNT(x) (((unsigned)(x) & 0x3) << 16) /* >= gfx9 */ #define G_00B22C_ES_VGPR_COMP_CNT(x) (((x) >> 16) & 0x3) #define C_00B22C_ES_VGPR_COMP_CNT 0xFFFCFFFF #define S_00B22C_OC_LDS_EN(x) (((unsigned)(x) & 0x1) << 18) /* >= gfx9 */ #define G_00B22C_OC_LDS_EN(x) (((x) >> 18) & 0x1) #define C_00B22C_OC_LDS_EN 0xFFFBFFFF #define S_00B22C_LDS_SIZE(x) (((unsigned)(x) & 0xFF) << 19) /* >= gfx9 */ #define G_00B22C_LDS_SIZE(x) (((x) >> 19) & 0xFF) #define C_00B22C_LDS_SIZE 0xF807FFFF #define S_00B22C_SKIP_USGPR0(x) (((unsigned)(x) & 0x1) << 27) /* gfx9 */ #define G_00B22C_SKIP_USGPR0(x) (((x) >> 27) & 0x1) #define C_00B22C_SKIP_USGPR0 0xF7FFFFFF #define S_00B22C_USER_SGPR_MSB_GFX10(x) (((unsigned)(x) & 0x1) << 27) /* >= gfx10 */ #define G_00B22C_USER_SGPR_MSB_GFX10(x) (((x) >> 27) & 0x1) #define C_00B22C_USER_SGPR_MSB_GFX10 0xF7FFFFFF #define S_00B22C_SHARED_VGPR_CNT(x) (((unsigned)(x) & 0xF) << 28) /* >= gfx10 */ #define G_00B22C_SHARED_VGPR_CNT(x) (((x) >> 28) & 0xF) #define C_00B22C_SHARED_VGPR_CNT 0x0FFFFFFF #define S_00B22C_USER_SGPR_MSB_GFX9(x) (((unsigned)(x) & 0x1) << 28) /* gfx9 */ #define G_00B22C_USER_SGPR_MSB_GFX9(x) (((x) >> 28) & 0x1) #define C_00B22C_USER_SGPR_MSB_GFX9 0xEFFFFFFF #define R_00B230_SPI_SHADER_USER_DATA_GS_0 0x00B230 /* <= gfx81, >= gfx10 */ #define R_00B234_SPI_SHADER_USER_DATA_GS_1 0x00B234 /* <= gfx81, >= gfx10 */ #define R_00B238_SPI_SHADER_USER_DATA_GS_2 0x00B238 /* <= gfx81, >= gfx10 */ #define R_00B23C_SPI_SHADER_USER_DATA_GS_3 0x00B23C /* <= gfx81, >= gfx10 */ #define R_00B240_SPI_SHADER_USER_DATA_GS_4 0x00B240 /* <= gfx81, >= gfx10 */ #define R_00B244_SPI_SHADER_USER_DATA_GS_5 0x00B244 /* <= gfx81, >= gfx10 */ #define R_00B248_SPI_SHADER_USER_DATA_GS_6 0x00B248 /* <= gfx81, >= gfx10 */ #define R_00B24C_SPI_SHADER_USER_DATA_GS_7 0x00B24C /* <= gfx81, >= gfx10 */ #define R_00B250_SPI_SHADER_USER_DATA_GS_8 0x00B250 /* <= gfx81, >= gfx10 */ #define R_00B254_SPI_SHADER_USER_DATA_GS_9 0x00B254 /* <= gfx81, >= gfx10 */ #define R_00B258_SPI_SHADER_USER_DATA_GS_10 0x00B258 /* <= gfx81, >= gfx10 */ #define R_00B25C_SPI_SHADER_USER_DATA_GS_11 0x00B25C /* <= gfx81, >= gfx10 */ #define R_00B260_SPI_SHADER_USER_DATA_GS_12 0x00B260 /* <= gfx81, >= gfx10 */ #define R_00B264_SPI_SHADER_USER_DATA_GS_13 0x00B264 /* <= gfx81, >= gfx10 */ #define R_00B268_SPI_SHADER_USER_DATA_GS_14 0x00B268 /* <= gfx81, >= gfx10 */ #define R_00B26C_SPI_SHADER_USER_DATA_GS_15 0x00B26C /* <= gfx81, >= gfx10 */ #define R_00B270_SPI_SHADER_USER_DATA_GS_16 0x00B270 /* >= gfx10 */ #define R_00B274_SPI_SHADER_USER_DATA_GS_17 0x00B274 /* >= gfx10 */ #define R_00B278_SPI_SHADER_USER_DATA_GS_18 0x00B278 /* >= gfx10 */ #define R_00B27C_SPI_SHADER_USER_DATA_GS_19 0x00B27C /* >= gfx10 */ #define R_00B280_SPI_SHADER_USER_DATA_GS_20 0x00B280 /* >= gfx10 */ #define R_00B284_SPI_SHADER_USER_DATA_GS_21 0x00B284 /* >= gfx10 */ #define R_00B288_SPI_SHADER_USER_DATA_GS_22 0x00B288 /* >= gfx10 */ #define R_00B28C_SPI_SHADER_USER_DATA_GS_23 0x00B28C /* >= gfx10 */ #define R_00B290_SPI_SHADER_USER_DATA_GS_24 0x00B290 /* >= gfx10 */ #define R_00B294_SPI_SHADER_USER_DATA_GS_25 0x00B294 /* >= gfx10 */ #define R_00B298_SPI_SHADER_USER_DATA_GS_26 0x00B298 /* >= gfx10 */ #define R_00B29C_SPI_SHADER_USER_DATA_GS_27 0x00B29C /* >= gfx10 */ #define R_00B2A0_SPI_SHADER_USER_DATA_GS_28 0x00B2A0 /* >= gfx10 */ #define R_00B2A4_SPI_SHADER_USER_DATA_GS_29 0x00B2A4 /* >= gfx10 */ #define R_00B2A8_SPI_SHADER_USER_DATA_GS_30 0x00B2A8 /* >= gfx10 */ #define R_00B2AC_SPI_SHADER_USER_DATA_GS_31 0x00B2AC /* >= gfx10 */ #define R_00B2C0_SPI_SHADER_REQ_CTRL_ESGS 0x00B2C0 /* >= gfx10 */ #define S_00B2C0_SOFT_GROUPING_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_00B2C0_SOFT_GROUPING_EN(x) (((x) >> 0) & 0x1) #define C_00B2C0_SOFT_GROUPING_EN 0xFFFFFFFE #define S_00B2C0_NUMBER_OF_REQUESTS_PER_CU(x) (((unsigned)(x) & 0xF) << 1) #define G_00B2C0_NUMBER_OF_REQUESTS_PER_CU(x) (((x) >> 1) & 0xF) #define C_00B2C0_NUMBER_OF_REQUESTS_PER_CU 0xFFFFFFE1 #define S_00B2C0_SOFT_GROUPING_ALLOCATION_TIMEOUT(x) (((unsigned)(x) & 0xF) << 5) #define G_00B2C0_SOFT_GROUPING_ALLOCATION_TIMEOUT(x) (((x) >> 5) & 0xF) #define C_00B2C0_SOFT_GROUPING_ALLOCATION_TIMEOUT 0xFFFFFE1F #define S_00B2C0_HARD_LOCK_HYSTERESIS(x) (((unsigned)(x) & 0x1) << 9) #define G_00B2C0_HARD_LOCK_HYSTERESIS(x) (((x) >> 9) & 0x1) #define C_00B2C0_HARD_LOCK_HYSTERESIS 0xFFFFFDFF #define S_00B2C0_HARD_LOCK_LOW_THRESHOLD(x) (((unsigned)(x) & 0x1F) << 10) #define G_00B2C0_HARD_LOCK_LOW_THRESHOLD(x) (((x) >> 10) & 0x1F) #define C_00B2C0_HARD_LOCK_LOW_THRESHOLD 0xFFFF83FF #define S_00B2C0_PRODUCER_REQUEST_LOCKOUT(x) (((unsigned)(x) & 0x1) << 15) #define G_00B2C0_PRODUCER_REQUEST_LOCKOUT(x) (((x) >> 15) & 0x1) #define C_00B2C0_PRODUCER_REQUEST_LOCKOUT 0xFFFF7FFF #define S_00B2C0_GLOBAL_SCANNING_EN(x) (((unsigned)(x) & 0x1) << 16) #define G_00B2C0_GLOBAL_SCANNING_EN(x) (((x) >> 16) & 0x1) #define C_00B2C0_GLOBAL_SCANNING_EN 0xFFFEFFFF #define S_00B2C0_ALLOCATION_RATE_THROTTLING_THRESHOLD(x) (((unsigned)(x) & 0x7) << 17) #define G_00B2C0_ALLOCATION_RATE_THROTTLING_THRESHOLD(x) (((x) >> 17) & 0x7) #define C_00B2C0_ALLOCATION_RATE_THROTTLING_THRESHOLD 0xFFF1FFFF #define R_00B2C4_SPI_SHADER_PREF_PRI_CNTR_CTRL_ESGS 0x00B2C4 /* gfx10 */ #define S_00B2C4_TOTAL_WAVE_COUNT_HIER_SELECT(x) (((unsigned)(x) & 0x7) << 0) #define G_00B2C4_TOTAL_WAVE_COUNT_HIER_SELECT(x) (((x) >> 0) & 0x7) #define C_00B2C4_TOTAL_WAVE_COUNT_HIER_SELECT 0xFFFFFFF8 #define S_00B2C4_PER_TYPE_WAVE_COUNT_HIER_SELECT(x) (((unsigned)(x) & 0x7) << 3) #define G_00B2C4_PER_TYPE_WAVE_COUNT_HIER_SELECT(x) (((x) >> 3) & 0x7) #define C_00B2C4_PER_TYPE_WAVE_COUNT_HIER_SELECT 0xFFFFFFC7 #define S_00B2C4_GROUP_UPDATE_EN(x) (((unsigned)(x) & 0x1) << 6) #define G_00B2C4_GROUP_UPDATE_EN(x) (((x) >> 6) & 0x1) #define C_00B2C4_GROUP_UPDATE_EN 0xFFFFFFBF #define S_00B2C4_TOTAL_WAVE_COUNT_COEFFICIENT(x) (((unsigned)(x) & 0xFF) << 8) #define G_00B2C4_TOTAL_WAVE_COUNT_COEFFICIENT(x) (((x) >> 8) & 0xFF) #define C_00B2C4_TOTAL_WAVE_COUNT_COEFFICIENT 0xFFFF00FF #define S_00B2C4_PER_TYPE_WAVE_COUNT_COEFFICIENT(x) (((unsigned)(x) & 0xFF) << 16) #define G_00B2C4_PER_TYPE_WAVE_COUNT_COEFFICIENT(x) (((x) >> 16) & 0xFF) #define C_00B2C4_PER_TYPE_WAVE_COUNT_COEFFICIENT 0xFF00FFFF #define R_00B2C8_SPI_SHADER_USER_ACCUM_ESGS_0 0x00B2C8 /* >= gfx10 */ #define S_00B2C8_CONTRIBUTION(x) (((unsigned)(x) & 0x7F) << 0) #define G_00B2C8_CONTRIBUTION(x) (((x) >> 0) & 0x7F) #define C_00B2C8_CONTRIBUTION 0xFFFFFF80 #define R_00B2CC_SPI_SHADER_USER_ACCUM_ESGS_1 0x00B2CC /* >= gfx10 */ #define R_00B2D0_SPI_SHADER_USER_ACCUM_ESGS_2 0x00B2D0 /* >= gfx10 */ #define R_00B2D4_SPI_SHADER_USER_ACCUM_ESGS_3 0x00B2D4 /* >= gfx10 */ #define R_00B2F0_SPI_SHADER_PGM_RSRC2_ES_GS 0x00B2F0 /* gfx7, gfx8, gfx81, gfx10 */ #define S_00B2F0_SCRATCH_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_00B2F0_SCRATCH_EN(x) (((x) >> 0) & 0x1) #define C_00B2F0_SCRATCH_EN 0xFFFFFFFE #define S_00B2F0_USER_SGPR(x) (((unsigned)(x) & 0x1F) << 1) #define G_00B2F0_USER_SGPR(x) (((x) >> 1) & 0x1F) #define C_00B2F0_USER_SGPR 0xFFFFFFC1 #define S_00B2F0_TRAP_PRESENT(x) (((unsigned)(x) & 0x1) << 6) #define G_00B2F0_TRAP_PRESENT(x) (((x) >> 6) & 0x1) #define C_00B2F0_TRAP_PRESENT 0xFFFFFFBF #define S_00B2F0_OC_LDS_EN(x) (((unsigned)(x) & 0x1) << 7) #define G_00B2F0_OC_LDS_EN(x) (((x) >> 7) & 0x1) #define C_00B2F0_OC_LDS_EN 0xFFFFFF7F #define S_00B2F0_EXCP_EN(x) (((unsigned)(x) & 0x1FF) << 8) #define G_00B2F0_EXCP_EN(x) (((x) >> 8) & 0x1FF) #define C_00B2F0_EXCP_EN 0xFFFE00FF #define V_00B2F0_INVALID 1 #define V_00B2F0_INPUT_DENORMAL 2 #define V_00B2F0_DIVIDE_BY_ZERO 4 #define V_00B2F0_OVERFLOW 8 #define V_00B2F0_UNDERFLOW 16 #define V_00B2F0_INEXACT 32 #define V_00B2F0_INT_DIVIDE_BY_ZERO 64 #define V_00B2F0_ADDRESS_WATCH 128 #define V_00B2F0_MEMORY_VIOLATION 256 #define S_00B2F0_LDS_SIZE(x) (((unsigned)(x) & 0x1FF) << 20) #define G_00B2F0_LDS_SIZE(x) (((x) >> 20) & 0x1FF) #define C_00B2F0_LDS_SIZE 0xE00FFFFF #define R_00B300_SPI_SHADER_TBA_LO_ES 0x00B300 /* <= gfx81 */ #define R_00B304_SPI_SHADER_TBA_HI_ES 0x00B304 /* <= gfx81 */ #define S_00B304_MEM_BASE(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B304_MEM_BASE(x) (((x) >> 0) & 0xFF) #define C_00B304_MEM_BASE 0xFFFFFF00 #define R_00B308_SPI_SHADER_TMA_LO_ES 0x00B308 /* <= gfx81 */ #define R_00B30C_SPI_SHADER_TMA_HI_ES 0x00B30C /* <= gfx81 */ #define S_00B30C_MEM_BASE(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B30C_MEM_BASE(x) (((x) >> 0) & 0xFF) #define C_00B30C_MEM_BASE 0xFFFFFF00 #define R_00B31C_SPI_SHADER_PGM_RSRC3_ES 0x00B31C /* gfx7, gfx8, gfx81, gfx10 */ #define S_00B31C_CU_EN(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_00B31C_CU_EN(x) (((x) >> 0) & 0xFFFF) #define C_00B31C_CU_EN 0xFFFF0000 #define S_00B31C_WAVE_LIMIT(x) (((unsigned)(x) & 0x3F) << 16) #define G_00B31C_WAVE_LIMIT(x) (((x) >> 16) & 0x3F) #define C_00B31C_WAVE_LIMIT 0xFFC0FFFF #define S_00B31C_LOCK_LOW_THRESHOLD(x) (((unsigned)(x) & 0xF) << 22) #define G_00B31C_LOCK_LOW_THRESHOLD(x) (((x) >> 22) & 0xF) #define C_00B31C_LOCK_LOW_THRESHOLD 0xFC3FFFFF #define S_00B31C_GROUP_FIFO_DEPTH(x) (((unsigned)(x) & 0x3F) << 26) /* gfx8, gfx81, gfx10 */ #define G_00B31C_GROUP_FIFO_DEPTH(x) (((x) >> 26) & 0x3F) #define C_00B31C_GROUP_FIFO_DEPTH 0x03FFFFFF #define R_00B320_SPI_SHADER_PGM_LO_ES 0x00B320 /* <= gfx81, >= gfx10 */ #define R_00B324_SPI_SHADER_PGM_HI_ES 0x00B324 /* <= gfx81, >= gfx10 */ #define S_00B324_MEM_BASE(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B324_MEM_BASE(x) (((x) >> 0) & 0xFF) #define C_00B324_MEM_BASE 0xFFFFFF00 #define R_00B328_SPI_SHADER_PGM_RSRC1_ES 0x00B328 /* <= gfx81, gfx10 */ #define S_00B328_VGPRS(x) (((unsigned)(x) & 0x3F) << 0) #define G_00B328_VGPRS(x) (((x) >> 0) & 0x3F) #define C_00B328_VGPRS 0xFFFFFFC0 #define S_00B328_SGPRS(x) (((unsigned)(x) & 0xF) << 6) #define G_00B328_SGPRS(x) (((x) >> 6) & 0xF) #define C_00B328_SGPRS 0xFFFFFC3F #define S_00B328_PRIORITY(x) (((unsigned)(x) & 0x3) << 10) #define G_00B328_PRIORITY(x) (((x) >> 10) & 0x3) #define C_00B328_PRIORITY 0xFFFFF3FF #define S_00B328_FLOAT_MODE(x) (((unsigned)(x) & 0xFF) << 12) #define G_00B328_FLOAT_MODE(x) (((x) >> 12) & 0xFF) #define C_00B328_FLOAT_MODE 0xFFF00FFF #define V_00B328_FP_32_DENORMS 48 #define V_00B328_FP_64_DENORMS 192 #define V_00B328_FP_ALL_DENORMS 240 #define S_00B328_PRIV(x) (((unsigned)(x) & 0x1) << 20) #define G_00B328_PRIV(x) (((x) >> 20) & 0x1) #define C_00B328_PRIV 0xFFEFFFFF #define S_00B328_DX10_CLAMP(x) (((unsigned)(x) & 0x1) << 21) #define G_00B328_DX10_CLAMP(x) (((x) >> 21) & 0x1) #define C_00B328_DX10_CLAMP 0xFFDFFFFF #define S_00B328_DEBUG_MODE(x) (((unsigned)(x) & 0x1) << 22) /* <= gfx81 */ #define G_00B328_DEBUG_MODE(x) (((x) >> 22) & 0x1) #define C_00B328_DEBUG_MODE 0xFFBFFFFF #define S_00B328_IEEE_MODE(x) (((unsigned)(x) & 0x1) << 23) #define G_00B328_IEEE_MODE(x) (((x) >> 23) & 0x1) #define C_00B328_IEEE_MODE 0xFF7FFFFF #define S_00B328_VGPR_COMP_CNT(x) (((unsigned)(x) & 0x3) << 24) #define G_00B328_VGPR_COMP_CNT(x) (((x) >> 24) & 0x3) #define C_00B328_VGPR_COMP_CNT 0xFCFFFFFF #define S_00B328_CU_GROUP_ENABLE(x) (((unsigned)(x) & 0x1) << 26) #define G_00B328_CU_GROUP_ENABLE(x) (((x) >> 26) & 0x1) #define C_00B328_CU_GROUP_ENABLE 0xFBFFFFFF #define S_00B328_CACHE_CTL(x) (((unsigned)(x) & 0x7) << 27) /* <= gfx81 */ #define G_00B328_CACHE_CTL(x) (((x) >> 27) & 0x7) #define C_00B328_CACHE_CTL 0xC7FFFFFF #define S_00B328_CDBG_USER(x) (((unsigned)(x) & 0x1) << 30) /* <= gfx81 */ #define G_00B328_CDBG_USER(x) (((x) >> 30) & 0x1) #define C_00B328_CDBG_USER 0xBFFFFFFF #define S_00B328_FP16_OVFL(x) (((unsigned)(x) & 0x1) << 31) /* gfx10 */ #define G_00B328_FP16_OVFL(x) (((x) >> 31) & 0x1) #define C_00B328_FP16_OVFL 0x7FFFFFFF #define R_00B32C_SPI_SHADER_PGM_RSRC2_ES 0x00B32C /* <= gfx81, gfx10 */ #define S_00B32C_SCRATCH_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_00B32C_SCRATCH_EN(x) (((x) >> 0) & 0x1) #define C_00B32C_SCRATCH_EN 0xFFFFFFFE #define S_00B32C_USER_SGPR(x) (((unsigned)(x) & 0x1F) << 1) #define G_00B32C_USER_SGPR(x) (((x) >> 1) & 0x1F) #define C_00B32C_USER_SGPR 0xFFFFFFC1 #define S_00B32C_TRAP_PRESENT(x) (((unsigned)(x) & 0x1) << 6) #define G_00B32C_TRAP_PRESENT(x) (((x) >> 6) & 0x1) #define C_00B32C_TRAP_PRESENT 0xFFFFFFBF #define S_00B32C_OC_LDS_EN(x) (((unsigned)(x) & 0x1) << 7) #define G_00B32C_OC_LDS_EN(x) (((x) >> 7) & 0x1) #define C_00B32C_OC_LDS_EN 0xFFFFFF7F #define S_00B32C_EXCP_EN(x) (((unsigned)(x) & 0x1FF) << 8) #define G_00B32C_EXCP_EN(x) (((x) >> 8) & 0x1FF) #define C_00B32C_EXCP_EN 0xFFFE00FF #define V_00B32C_INVALID 1 #define V_00B32C_INPUT_DENORMAL 2 #define V_00B32C_DIVIDE_BY_ZERO 4 #define V_00B32C_OVERFLOW 8 #define V_00B32C_UNDERFLOW 16 #define V_00B32C_INEXACT 32 #define V_00B32C_INT_DIVIDE_BY_ZERO 64 #define V_00B32C_ADDRESS_WATCH 128 #define V_00B32C_MEMORY_VIOLATION 256 #define S_00B32C_LDS_SIZE(x) (((unsigned)(x) & 0x1FF) << 20) #define G_00B32C_LDS_SIZE(x) (((x) >> 20) & 0x1FF) #define C_00B32C_LDS_SIZE 0xE00FFFFF #define R_00B330_SPI_SHADER_USER_DATA_ES_0 0x00B330 /* <= gfx10 */ #define R_00B334_SPI_SHADER_USER_DATA_ES_1 0x00B334 /* <= gfx10 */ #define R_00B338_SPI_SHADER_USER_DATA_ES_2 0x00B338 /* <= gfx10 */ #define R_00B33C_SPI_SHADER_USER_DATA_ES_3 0x00B33C /* <= gfx10 */ #define R_00B340_SPI_SHADER_USER_DATA_ES_4 0x00B340 /* <= gfx10 */ #define R_00B344_SPI_SHADER_USER_DATA_ES_5 0x00B344 /* <= gfx10 */ #define R_00B348_SPI_SHADER_USER_DATA_ES_6 0x00B348 /* <= gfx10 */ #define R_00B34C_SPI_SHADER_USER_DATA_ES_7 0x00B34C /* <= gfx10 */ #define R_00B350_SPI_SHADER_USER_DATA_ES_8 0x00B350 /* <= gfx10 */ #define R_00B354_SPI_SHADER_USER_DATA_ES_9 0x00B354 /* <= gfx10 */ #define R_00B358_SPI_SHADER_USER_DATA_ES_10 0x00B358 /* <= gfx10 */ #define R_00B35C_SPI_SHADER_USER_DATA_ES_11 0x00B35C /* <= gfx10 */ #define R_00B360_SPI_SHADER_USER_DATA_ES_12 0x00B360 /* <= gfx10 */ #define R_00B364_SPI_SHADER_USER_DATA_ES_13 0x00B364 /* <= gfx10 */ #define R_00B368_SPI_SHADER_USER_DATA_ES_14 0x00B368 /* <= gfx10 */ #define R_00B36C_SPI_SHADER_USER_DATA_ES_15 0x00B36C /* <= gfx10 */ #define R_00B370_SPI_SHADER_USER_DATA_ES_16 0x00B370 /* gfx9 */ #define R_00B374_SPI_SHADER_USER_DATA_ES_17 0x00B374 /* gfx9 */ #define R_00B378_SPI_SHADER_USER_DATA_ES_18 0x00B378 /* gfx9 */ #define R_00B37C_SPI_SHADER_USER_DATA_ES_19 0x00B37C /* gfx9 */ #define R_00B380_SPI_SHADER_USER_DATA_ES_20 0x00B380 /* gfx9 */ #define R_00B384_SPI_SHADER_USER_DATA_ES_21 0x00B384 /* gfx9 */ #define R_00B388_SPI_SHADER_USER_DATA_ES_22 0x00B388 /* gfx9 */ #define R_00B38C_SPI_SHADER_USER_DATA_ES_23 0x00B38C /* gfx9 */ #define R_00B390_SPI_SHADER_USER_DATA_ES_24 0x00B390 /* gfx9 */ #define R_00B394_SPI_SHADER_USER_DATA_ES_25 0x00B394 /* gfx9 */ #define R_00B398_SPI_SHADER_USER_DATA_ES_26 0x00B398 /* gfx9 */ #define R_00B39C_SPI_SHADER_USER_DATA_ES_27 0x00B39C /* gfx9 */ #define R_00B3A0_SPI_SHADER_USER_DATA_ES_28 0x00B3A0 /* gfx9 */ #define R_00B3A4_SPI_SHADER_USER_DATA_ES_29 0x00B3A4 /* gfx9 */ #define R_00B3A8_SPI_SHADER_USER_DATA_ES_30 0x00B3A8 /* gfx9 */ #define R_00B3AC_SPI_SHADER_USER_DATA_ES_31 0x00B3AC /* gfx9 */ #define R_00B3F4_SPI_SHADER_PGM_RSRC2_LS_ES 0x00B3F4 /* gfx7, gfx8, gfx81, gfx10 */ #define S_00B3F4_SCRATCH_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_00B3F4_SCRATCH_EN(x) (((x) >> 0) & 0x1) #define C_00B3F4_SCRATCH_EN 0xFFFFFFFE #define S_00B3F4_USER_SGPR(x) (((unsigned)(x) & 0x1F) << 1) #define G_00B3F4_USER_SGPR(x) (((x) >> 1) & 0x1F) #define C_00B3F4_USER_SGPR 0xFFFFFFC1 #define S_00B3F4_TRAP_PRESENT(x) (((unsigned)(x) & 0x1) << 6) #define G_00B3F4_TRAP_PRESENT(x) (((x) >> 6) & 0x1) #define C_00B3F4_TRAP_PRESENT 0xFFFFFFBF #define S_00B3F4_LDS_SIZE(x) (((unsigned)(x) & 0x1FF) << 7) #define G_00B3F4_LDS_SIZE(x) (((x) >> 7) & 0x1FF) #define C_00B3F4_LDS_SIZE 0xFFFF007F #define S_00B3F4_EXCP_EN(x) (((unsigned)(x) & 0x1FF) << 16) #define G_00B3F4_EXCP_EN(x) (((x) >> 16) & 0x1FF) #define C_00B3F4_EXCP_EN 0xFE00FFFF #define V_00B3F4_INVALID 1 #define V_00B3F4_INPUT_DENORMAL 2 #define V_00B3F4_DIVIDE_BY_ZERO 4 #define V_00B3F4_OVERFLOW 8 #define V_00B3F4_UNDERFLOW 16 #define V_00B3F4_INEXACT 32 #define V_00B3F4_INT_DIVIDE_BY_ZERO 64 #define V_00B3F4_ADDRESS_WATCH 128 #define V_00B3F4_MEMORY_VIOLATION 256 #define R_00B400_SPI_SHADER_PGM_CHKSUM_HS 0x00B400 /* >= gfx10 */ #define R_00B400_SPI_SHADER_TBA_LO_HS 0x00B400 /* <= gfx81 */ #define R_00B404_SPI_SHADER_PGM_RSRC4_HS 0x00B404 /* >= gfx9 */ #define S_00B404_CU_EN(x) (((unsigned)(x) & 0xFFFF) << 0) /* >= gfx10 */ #define G_00B404_CU_EN(x) (((x) >> 0) & 0xFFFF) #define C_00B404_CU_EN 0xFFFF0000 #define S_00B404_GROUP_FIFO_DEPTH(x) (((unsigned)(x) & 0x7F) << 0) /* gfx9 */ #define G_00B404_GROUP_FIFO_DEPTH(x) (((x) >> 0) & 0x7F) #define C_00B404_GROUP_FIFO_DEPTH 0xFFFFFF80 #define R_00B404_SPI_SHADER_TBA_HI_HS 0x00B404 /* <= gfx81 */ #define S_00B404_MEM_BASE(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B404_MEM_BASE(x) (((x) >> 0) & 0xFF) #define C_00B404_MEM_BASE 0xFFFFFF00 #define R_00B408_SPI_SHADER_TMA_LO_HS 0x00B408 /* <= gfx81 */ #define R_00B408_SPI_SHADER_USER_DATA_ADDR_LO_HS 0x00B408 /* >= gfx9 */ #define R_00B40C_SPI_SHADER_TMA_HI_HS 0x00B40C /* <= gfx81 */ #define S_00B40C_MEM_BASE(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B40C_MEM_BASE(x) (((x) >> 0) & 0xFF) #define C_00B40C_MEM_BASE 0xFFFFFF00 #define R_00B40C_SPI_SHADER_USER_DATA_ADDR_HI_HS 0x00B40C /* >= gfx9 */ #define R_00B410_SPI_SHADER_PGM_LO_LS 0x00B410 /* gfx9 */ #define R_00B410_SPI_SHADER_PGM_LO_LS_HS 0x00B410 /* >= gfx10 */ #define R_00B414_SPI_SHADER_PGM_HI_LS 0x00B414 /* gfx9 */ #define S_00B414_MEM_BASE(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B414_MEM_BASE(x) (((x) >> 0) & 0xFF) #define C_00B414_MEM_BASE 0xFFFFFF00 #define R_00B414_SPI_SHADER_PGM_HI_LS_HS 0x00B414 /* >= gfx10 */ #define R_00B41C_SPI_SHADER_PGM_RSRC3_HS 0x00B41C /* >= gfx7 */ #define S_00B41C_WAVE_LIMIT(x) (((unsigned)(x) & 0x3F) << 0) #define G_00B41C_WAVE_LIMIT(x) (((x) >> 0) & 0x3F) #define C_00B41C_WAVE_LIMIT 0xFFFFFFC0 #define S_00B41C_LOCK_LOW_THRESHOLD(x) (((unsigned)(x) & 0xF) << 6) #define G_00B41C_LOCK_LOW_THRESHOLD(x) (((x) >> 6) & 0xF) #define C_00B41C_LOCK_LOW_THRESHOLD 0xFFFFFC3F #define S_00B41C_GROUP_FIFO_DEPTH(x) (((unsigned)(x) & 0x3F) << 10) /* gfx8, gfx81, >= gfx10 */ #define G_00B41C_GROUP_FIFO_DEPTH(x) (((x) >> 10) & 0x3F) #define C_00B41C_GROUP_FIFO_DEPTH 0xFFFF03FF #define S_00B41C_SIMD_DISABLE(x) (((unsigned)(x) & 0xF) << 10) /* gfx9 */ #define G_00B41C_SIMD_DISABLE(x) (((x) >> 10) & 0xF) #define C_00B41C_SIMD_DISABLE 0xFFFFC3FF #define S_00B41C_CU_EN(x) (((unsigned)(x) & 0xFFFF) << 16) /* >= gfx9 */ #define G_00B41C_CU_EN(x) (((x) >> 16) & 0xFFFF) #define C_00B41C_CU_EN 0x0000FFFF #define R_00B420_SPI_SHADER_PGM_LO_HS 0x00B420 #define R_00B424_SPI_SHADER_PGM_HI_HS 0x00B424 #define S_00B424_MEM_BASE(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B424_MEM_BASE(x) (((x) >> 0) & 0xFF) #define C_00B424_MEM_BASE 0xFFFFFF00 #define R_00B428_SPI_SHADER_PGM_RSRC1_HS 0x00B428 #define S_00B428_VGPRS(x) (((unsigned)(x) & 0x3F) << 0) #define G_00B428_VGPRS(x) (((x) >> 0) & 0x3F) #define C_00B428_VGPRS 0xFFFFFFC0 #define S_00B428_SGPRS(x) (((unsigned)(x) & 0xF) << 6) #define G_00B428_SGPRS(x) (((x) >> 6) & 0xF) #define C_00B428_SGPRS 0xFFFFFC3F #define S_00B428_PRIORITY(x) (((unsigned)(x) & 0x3) << 10) #define G_00B428_PRIORITY(x) (((x) >> 10) & 0x3) #define C_00B428_PRIORITY 0xFFFFF3FF #define S_00B428_FLOAT_MODE(x) (((unsigned)(x) & 0xFF) << 12) #define G_00B428_FLOAT_MODE(x) (((x) >> 12) & 0xFF) #define C_00B428_FLOAT_MODE 0xFFF00FFF #define V_00B428_FP_32_DENORMS 48 #define V_00B428_FP_64_DENORMS 192 #define V_00B428_FP_ALL_DENORMS 240 #define S_00B428_PRIV(x) (((unsigned)(x) & 0x1) << 20) #define G_00B428_PRIV(x) (((x) >> 20) & 0x1) #define C_00B428_PRIV 0xFFEFFFFF #define S_00B428_DX10_CLAMP(x) (((unsigned)(x) & 0x1) << 21) #define G_00B428_DX10_CLAMP(x) (((x) >> 21) & 0x1) #define C_00B428_DX10_CLAMP 0xFFDFFFFF #define S_00B428_DEBUG_MODE(x) (((unsigned)(x) & 0x1) << 22) /* <= gfx9 */ #define G_00B428_DEBUG_MODE(x) (((x) >> 22) & 0x1) #define C_00B428_DEBUG_MODE 0xFFBFFFFF #define S_00B428_IEEE_MODE(x) (((unsigned)(x) & 0x1) << 23) #define G_00B428_IEEE_MODE(x) (((x) >> 23) & 0x1) #define C_00B428_IEEE_MODE 0xFF7FFFFF #define S_00B428_CACHE_CTL(x) (((unsigned)(x) & 0x7) << 24) /* <= gfx81 */ #define G_00B428_CACHE_CTL(x) (((x) >> 24) & 0x7) #define C_00B428_CACHE_CTL 0xF8FFFFFF #define S_00B428_MEM_ORDERED(x) (((unsigned)(x) & 0x1) << 24) /* >= gfx10 */ #define G_00B428_MEM_ORDERED(x) (((x) >> 24) & 0x1) #define C_00B428_MEM_ORDERED 0xFEFFFFFF #define S_00B428_FWD_PROGRESS(x) (((unsigned)(x) & 0x1) << 25) /* >= gfx10 */ #define G_00B428_FWD_PROGRESS(x) (((x) >> 25) & 0x1) #define C_00B428_FWD_PROGRESS 0xFDFFFFFF #define S_00B428_WGP_MODE(x) (((unsigned)(x) & 0x1) << 26) /* >= gfx10 */ #define G_00B428_WGP_MODE(x) (((x) >> 26) & 0x1) #define C_00B428_WGP_MODE 0xFBFFFFFF #define S_00B428_CDBG_USER(x) (((unsigned)(x) & 0x1) << 27) /* <= gfx9 */ #define G_00B428_CDBG_USER(x) (((x) >> 27) & 0x1) #define C_00B428_CDBG_USER 0xF7FFFFFF #define S_00B428_LS_VGPR_COMP_CNT(x) (((unsigned)(x) & 0x3) << 28) /* >= gfx9 */ #define G_00B428_LS_VGPR_COMP_CNT(x) (((x) >> 28) & 0x3) #define C_00B428_LS_VGPR_COMP_CNT 0xCFFFFFFF #define S_00B428_FP16_OVFL(x) (((unsigned)(x) & 0x1) << 30) /* >= gfx9 */ #define G_00B428_FP16_OVFL(x) (((x) >> 30) & 0x1) #define C_00B428_FP16_OVFL 0xBFFFFFFF #define R_00B42C_SPI_SHADER_PGM_RSRC2_HS 0x00B42C #define S_00B42C_SCRATCH_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_00B42C_SCRATCH_EN(x) (((x) >> 0) & 0x1) #define C_00B42C_SCRATCH_EN 0xFFFFFFFE #define S_00B42C_USER_SGPR(x) (((unsigned)(x) & 0x1F) << 1) #define G_00B42C_USER_SGPR(x) (((x) >> 1) & 0x1F) #define C_00B42C_USER_SGPR 0xFFFFFFC1 #define S_00B42C_TRAP_PRESENT(x) (((unsigned)(x) & 0x1) << 6) #define G_00B42C_TRAP_PRESENT(x) (((x) >> 6) & 0x1) #define C_00B42C_TRAP_PRESENT 0xFFFFFFBF #define S_00B42C_EXCP_EN_GFX9(x) (((unsigned)(x) & 0x1FF) << 7) /* gfx9 */ #define G_00B42C_EXCP_EN_GFX9(x) (((x) >> 7) & 0x1FF) #define C_00B42C_EXCP_EN_GFX9 0xFFFF007F #define V_00B42C_INVALID 1 #define V_00B42C_INPUT_DENORMAL 2 #define V_00B42C_DIVIDE_BY_ZERO 4 #define V_00B42C_OVERFLOW 8 #define V_00B42C_UNDERFLOW 16 #define V_00B42C_INEXACT 32 #define V_00B42C_INT_DIVIDE_BY_ZERO 64 #define V_00B42C_ADDRESS_WATCH 128 #define V_00B42C_MEMORY_VIOLATION 256 #define S_00B42C_OC_LDS_EN(x) (((unsigned)(x) & 0x1) << 7) /* <= gfx81, >= gfx10 */ #define G_00B42C_OC_LDS_EN(x) (((x) >> 7) & 0x1) #define C_00B42C_OC_LDS_EN 0xFFFFFF7F #define S_00B42C_TG_SIZE_EN(x) (((unsigned)(x) & 0x1) << 8) /* <= gfx81, >= gfx10 */ #define G_00B42C_TG_SIZE_EN(x) (((x) >> 8) & 0x1) #define C_00B42C_TG_SIZE_EN 0xFFFFFEFF #define S_00B42C_EXCP_EN_GFX6(x) (((unsigned)(x) & 0x1FF) << 9) /* <= gfx81, >= gfx10 */ #define G_00B42C_EXCP_EN_GFX6(x) (((x) >> 9) & 0x1FF) #define C_00B42C_EXCP_EN_GFX6 0xFFFC01FF #define S_00B42C_LDS_SIZE_GFX9(x) (((unsigned)(x) & 0x1FF) << 16) /* gfx9 */ #define G_00B42C_LDS_SIZE_GFX9(x) (((x) >> 16) & 0x1FF) #define C_00B42C_LDS_SIZE_GFX9 0xFE00FFFF #define S_00B42C_LDS_SIZE_GFX10(x) (((unsigned)(x) & 0x1FF) << 18) /* >= gfx10 */ #define G_00B42C_LDS_SIZE_GFX10(x) (((x) >> 18) & 0x1FF) #define C_00B42C_LDS_SIZE_GFX10 0xF803FFFF #define S_00B42C_SKIP_USGPR0(x) (((unsigned)(x) & 0x1) << 27) /* gfx9 */ #define G_00B42C_SKIP_USGPR0(x) (((x) >> 27) & 0x1) #define C_00B42C_SKIP_USGPR0 0xF7FFFFFF #define S_00B42C_USER_SGPR_MSB_GFX10(x) (((unsigned)(x) & 0x1) << 27) /* >= gfx10 */ #define G_00B42C_USER_SGPR_MSB_GFX10(x) (((x) >> 27) & 0x1) #define C_00B42C_USER_SGPR_MSB_GFX10 0xF7FFFFFF #define S_00B42C_SHARED_VGPR_CNT(x) (((unsigned)(x) & 0xF) << 28) /* >= gfx10 */ #define G_00B42C_SHARED_VGPR_CNT(x) (((x) >> 28) & 0xF) #define C_00B42C_SHARED_VGPR_CNT 0x0FFFFFFF #define S_00B42C_USER_SGPR_MSB_GFX9(x) (((unsigned)(x) & 0x1) << 28) /* gfx9 */ #define G_00B42C_USER_SGPR_MSB_GFX9(x) (((x) >> 28) & 0x1) #define C_00B42C_USER_SGPR_MSB_GFX9 0xEFFFFFFF #define R_00B430_SPI_SHADER_USER_DATA_HS_0 0x00B430 /* <= gfx81, >= gfx10 */ #define R_00B430_SPI_SHADER_USER_DATA_LS_0 0x00B430 /* gfx9 */ #define R_00B434_SPI_SHADER_USER_DATA_HS_1 0x00B434 /* <= gfx81, >= gfx10 */ #define R_00B434_SPI_SHADER_USER_DATA_LS_1 0x00B434 /* gfx9 */ #define R_00B438_SPI_SHADER_USER_DATA_HS_2 0x00B438 /* <= gfx81, >= gfx10 */ #define R_00B438_SPI_SHADER_USER_DATA_LS_2 0x00B438 /* gfx9 */ #define R_00B43C_SPI_SHADER_USER_DATA_HS_3 0x00B43C /* <= gfx81, >= gfx10 */ #define R_00B43C_SPI_SHADER_USER_DATA_LS_3 0x00B43C /* gfx9 */ #define R_00B440_SPI_SHADER_USER_DATA_HS_4 0x00B440 /* <= gfx81, >= gfx10 */ #define R_00B440_SPI_SHADER_USER_DATA_LS_4 0x00B440 /* gfx9 */ #define R_00B444_SPI_SHADER_USER_DATA_HS_5 0x00B444 /* <= gfx81, >= gfx10 */ #define R_00B444_SPI_SHADER_USER_DATA_LS_5 0x00B444 /* gfx9 */ #define R_00B448_SPI_SHADER_USER_DATA_HS_6 0x00B448 /* <= gfx81, >= gfx10 */ #define R_00B448_SPI_SHADER_USER_DATA_LS_6 0x00B448 /* gfx9 */ #define R_00B44C_SPI_SHADER_USER_DATA_HS_7 0x00B44C /* <= gfx81, >= gfx10 */ #define R_00B44C_SPI_SHADER_USER_DATA_LS_7 0x00B44C /* gfx9 */ #define R_00B450_SPI_SHADER_USER_DATA_HS_8 0x00B450 /* <= gfx81, >= gfx10 */ #define R_00B450_SPI_SHADER_USER_DATA_LS_8 0x00B450 /* gfx9 */ #define R_00B454_SPI_SHADER_USER_DATA_HS_9 0x00B454 /* <= gfx81, >= gfx10 */ #define R_00B454_SPI_SHADER_USER_DATA_LS_9 0x00B454 /* gfx9 */ #define R_00B458_SPI_SHADER_USER_DATA_HS_10 0x00B458 /* <= gfx81, >= gfx10 */ #define R_00B458_SPI_SHADER_USER_DATA_LS_10 0x00B458 /* gfx9 */ #define R_00B45C_SPI_SHADER_USER_DATA_HS_11 0x00B45C /* <= gfx81, >= gfx10 */ #define R_00B45C_SPI_SHADER_USER_DATA_LS_11 0x00B45C /* gfx9 */ #define R_00B460_SPI_SHADER_USER_DATA_HS_12 0x00B460 /* <= gfx81, >= gfx10 */ #define R_00B460_SPI_SHADER_USER_DATA_LS_12 0x00B460 /* gfx9 */ #define R_00B464_SPI_SHADER_USER_DATA_HS_13 0x00B464 /* <= gfx81, >= gfx10 */ #define R_00B464_SPI_SHADER_USER_DATA_LS_13 0x00B464 /* gfx9 */ #define R_00B468_SPI_SHADER_USER_DATA_HS_14 0x00B468 /* <= gfx81, >= gfx10 */ #define R_00B468_SPI_SHADER_USER_DATA_LS_14 0x00B468 /* gfx9 */ #define R_00B46C_SPI_SHADER_USER_DATA_HS_15 0x00B46C /* <= gfx81, >= gfx10 */ #define R_00B46C_SPI_SHADER_USER_DATA_LS_15 0x00B46C /* gfx9 */ #define R_00B470_SPI_SHADER_USER_DATA_HS_16 0x00B470 /* >= gfx10 */ #define R_00B470_SPI_SHADER_USER_DATA_LS_16 0x00B470 /* gfx9 */ #define R_00B474_SPI_SHADER_USER_DATA_HS_17 0x00B474 /* >= gfx10 */ #define R_00B474_SPI_SHADER_USER_DATA_LS_17 0x00B474 /* gfx9 */ #define R_00B478_SPI_SHADER_USER_DATA_HS_18 0x00B478 /* >= gfx10 */ #define R_00B478_SPI_SHADER_USER_DATA_LS_18 0x00B478 /* gfx9 */ #define R_00B47C_SPI_SHADER_USER_DATA_HS_19 0x00B47C /* >= gfx10 */ #define R_00B47C_SPI_SHADER_USER_DATA_LS_19 0x00B47C /* gfx9 */ #define R_00B480_SPI_SHADER_USER_DATA_HS_20 0x00B480 /* >= gfx10 */ #define R_00B480_SPI_SHADER_USER_DATA_LS_20 0x00B480 /* gfx9 */ #define R_00B484_SPI_SHADER_USER_DATA_HS_21 0x00B484 /* >= gfx10 */ #define R_00B484_SPI_SHADER_USER_DATA_LS_21 0x00B484 /* gfx9 */ #define R_00B488_SPI_SHADER_USER_DATA_HS_22 0x00B488 /* >= gfx10 */ #define R_00B488_SPI_SHADER_USER_DATA_LS_22 0x00B488 /* gfx9 */ #define R_00B48C_SPI_SHADER_USER_DATA_HS_23 0x00B48C /* >= gfx10 */ #define R_00B48C_SPI_SHADER_USER_DATA_LS_23 0x00B48C /* gfx9 */ #define R_00B490_SPI_SHADER_USER_DATA_HS_24 0x00B490 /* >= gfx10 */ #define R_00B490_SPI_SHADER_USER_DATA_LS_24 0x00B490 /* gfx9 */ #define R_00B494_SPI_SHADER_USER_DATA_HS_25 0x00B494 /* >= gfx10 */ #define R_00B494_SPI_SHADER_USER_DATA_LS_25 0x00B494 /* gfx9 */ #define R_00B498_SPI_SHADER_USER_DATA_HS_26 0x00B498 /* >= gfx10 */ #define R_00B498_SPI_SHADER_USER_DATA_LS_26 0x00B498 /* gfx9 */ #define R_00B49C_SPI_SHADER_USER_DATA_HS_27 0x00B49C /* >= gfx10 */ #define R_00B49C_SPI_SHADER_USER_DATA_LS_27 0x00B49C /* gfx9 */ #define R_00B4A0_SPI_SHADER_USER_DATA_HS_28 0x00B4A0 /* >= gfx10 */ #define R_00B4A0_SPI_SHADER_USER_DATA_LS_28 0x00B4A0 /* gfx9 */ #define R_00B4A4_SPI_SHADER_USER_DATA_HS_29 0x00B4A4 /* >= gfx10 */ #define R_00B4A4_SPI_SHADER_USER_DATA_LS_29 0x00B4A4 /* gfx9 */ #define R_00B4A8_SPI_SHADER_USER_DATA_HS_30 0x00B4A8 /* >= gfx10 */ #define R_00B4A8_SPI_SHADER_USER_DATA_LS_30 0x00B4A8 /* gfx9 */ #define R_00B4AC_SPI_SHADER_USER_DATA_HS_31 0x00B4AC /* >= gfx10 */ #define R_00B4AC_SPI_SHADER_USER_DATA_LS_31 0x00B4AC /* gfx9 */ #define R_00B4C0_SPI_SHADER_REQ_CTRL_LSHS 0x00B4C0 /* >= gfx10 */ #define S_00B4C0_SOFT_GROUPING_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_00B4C0_SOFT_GROUPING_EN(x) (((x) >> 0) & 0x1) #define C_00B4C0_SOFT_GROUPING_EN 0xFFFFFFFE #define S_00B4C0_NUMBER_OF_REQUESTS_PER_CU(x) (((unsigned)(x) & 0xF) << 1) #define G_00B4C0_NUMBER_OF_REQUESTS_PER_CU(x) (((x) >> 1) & 0xF) #define C_00B4C0_NUMBER_OF_REQUESTS_PER_CU 0xFFFFFFE1 #define S_00B4C0_SOFT_GROUPING_ALLOCATION_TIMEOUT(x) (((unsigned)(x) & 0xF) << 5) #define G_00B4C0_SOFT_GROUPING_ALLOCATION_TIMEOUT(x) (((x) >> 5) & 0xF) #define C_00B4C0_SOFT_GROUPING_ALLOCATION_TIMEOUT 0xFFFFFE1F #define S_00B4C0_HARD_LOCK_HYSTERESIS(x) (((unsigned)(x) & 0x1) << 9) #define G_00B4C0_HARD_LOCK_HYSTERESIS(x) (((x) >> 9) & 0x1) #define C_00B4C0_HARD_LOCK_HYSTERESIS 0xFFFFFDFF #define S_00B4C0_HARD_LOCK_LOW_THRESHOLD(x) (((unsigned)(x) & 0x1F) << 10) #define G_00B4C0_HARD_LOCK_LOW_THRESHOLD(x) (((x) >> 10) & 0x1F) #define C_00B4C0_HARD_LOCK_LOW_THRESHOLD 0xFFFF83FF #define S_00B4C0_PRODUCER_REQUEST_LOCKOUT(x) (((unsigned)(x) & 0x1) << 15) #define G_00B4C0_PRODUCER_REQUEST_LOCKOUT(x) (((x) >> 15) & 0x1) #define C_00B4C0_PRODUCER_REQUEST_LOCKOUT 0xFFFF7FFF #define S_00B4C0_GLOBAL_SCANNING_EN(x) (((unsigned)(x) & 0x1) << 16) #define G_00B4C0_GLOBAL_SCANNING_EN(x) (((x) >> 16) & 0x1) #define C_00B4C0_GLOBAL_SCANNING_EN 0xFFFEFFFF #define S_00B4C0_ALLOCATION_RATE_THROTTLING_THRESHOLD(x) (((unsigned)(x) & 0x7) << 17) #define G_00B4C0_ALLOCATION_RATE_THROTTLING_THRESHOLD(x) (((x) >> 17) & 0x7) #define C_00B4C0_ALLOCATION_RATE_THROTTLING_THRESHOLD 0xFFF1FFFF #define R_00B4C4_SPI_SHADER_PREF_PRI_CNTR_CTRL_LSHS 0x00B4C4 /* gfx10 */ #define S_00B4C4_TOTAL_WAVE_COUNT_HIER_SELECT(x) (((unsigned)(x) & 0x7) << 0) #define G_00B4C4_TOTAL_WAVE_COUNT_HIER_SELECT(x) (((x) >> 0) & 0x7) #define C_00B4C4_TOTAL_WAVE_COUNT_HIER_SELECT 0xFFFFFFF8 #define S_00B4C4_PER_TYPE_WAVE_COUNT_HIER_SELECT(x) (((unsigned)(x) & 0x7) << 3) #define G_00B4C4_PER_TYPE_WAVE_COUNT_HIER_SELECT(x) (((x) >> 3) & 0x7) #define C_00B4C4_PER_TYPE_WAVE_COUNT_HIER_SELECT 0xFFFFFFC7 #define S_00B4C4_GROUP_UPDATE_EN(x) (((unsigned)(x) & 0x1) << 6) #define G_00B4C4_GROUP_UPDATE_EN(x) (((x) >> 6) & 0x1) #define C_00B4C4_GROUP_UPDATE_EN 0xFFFFFFBF #define S_00B4C4_TOTAL_WAVE_COUNT_COEFFICIENT(x) (((unsigned)(x) & 0xFF) << 8) #define G_00B4C4_TOTAL_WAVE_COUNT_COEFFICIENT(x) (((x) >> 8) & 0xFF) #define C_00B4C4_TOTAL_WAVE_COUNT_COEFFICIENT 0xFFFF00FF #define S_00B4C4_PER_TYPE_WAVE_COUNT_COEFFICIENT(x) (((unsigned)(x) & 0xFF) << 16) #define G_00B4C4_PER_TYPE_WAVE_COUNT_COEFFICIENT(x) (((x) >> 16) & 0xFF) #define C_00B4C4_PER_TYPE_WAVE_COUNT_COEFFICIENT 0xFF00FFFF #define R_00B4C8_SPI_SHADER_USER_ACCUM_LSHS_0 0x00B4C8 /* >= gfx10 */ #define S_00B4C8_CONTRIBUTION(x) (((unsigned)(x) & 0x7F) << 0) #define G_00B4C8_CONTRIBUTION(x) (((x) >> 0) & 0x7F) #define C_00B4C8_CONTRIBUTION 0xFFFFFF80 #define R_00B4CC_SPI_SHADER_USER_ACCUM_LSHS_1 0x00B4CC /* >= gfx10 */ #define R_00B4D0_SPI_SHADER_USER_ACCUM_LSHS_2 0x00B4D0 /* >= gfx10 */ #define R_00B4D4_SPI_SHADER_USER_ACCUM_LSHS_3 0x00B4D4 /* >= gfx10 */ #define R_00B4F4_SPI_SHADER_PGM_RSRC2_LS_HS 0x00B4F4 /* gfx7, gfx8, gfx81, gfx10 */ #define S_00B4F4_SCRATCH_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_00B4F4_SCRATCH_EN(x) (((x) >> 0) & 0x1) #define C_00B4F4_SCRATCH_EN 0xFFFFFFFE #define S_00B4F4_USER_SGPR(x) (((unsigned)(x) & 0x1F) << 1) #define G_00B4F4_USER_SGPR(x) (((x) >> 1) & 0x1F) #define C_00B4F4_USER_SGPR 0xFFFFFFC1 #define S_00B4F4_TRAP_PRESENT(x) (((unsigned)(x) & 0x1) << 6) #define G_00B4F4_TRAP_PRESENT(x) (((x) >> 6) & 0x1) #define C_00B4F4_TRAP_PRESENT 0xFFFFFFBF #define S_00B4F4_LDS_SIZE(x) (((unsigned)(x) & 0x1FF) << 7) #define G_00B4F4_LDS_SIZE(x) (((x) >> 7) & 0x1FF) #define C_00B4F4_LDS_SIZE 0xFFFF007F #define S_00B4F4_EXCP_EN(x) (((unsigned)(x) & 0x1FF) << 16) #define G_00B4F4_EXCP_EN(x) (((x) >> 16) & 0x1FF) #define C_00B4F4_EXCP_EN 0xFE00FFFF #define V_00B4F4_INVALID 1 #define V_00B4F4_INPUT_DENORMAL 2 #define V_00B4F4_DIVIDE_BY_ZERO 4 #define V_00B4F4_OVERFLOW 8 #define V_00B4F4_UNDERFLOW 16 #define V_00B4F4_INEXACT 32 #define V_00B4F4_INT_DIVIDE_BY_ZERO 64 #define V_00B4F4_ADDRESS_WATCH 128 #define V_00B4F4_MEMORY_VIOLATION 256 #define R_00B500_SPI_SHADER_TBA_LO_LS 0x00B500 /* <= gfx81 */ #define R_00B504_SPI_SHADER_TBA_HI_LS 0x00B504 /* <= gfx81 */ #define S_00B504_MEM_BASE(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B504_MEM_BASE(x) (((x) >> 0) & 0xFF) #define C_00B504_MEM_BASE 0xFFFFFF00 #define R_00B508_SPI_SHADER_TMA_LO_LS 0x00B508 /* <= gfx81 */ #define R_00B50C_SPI_SHADER_TMA_HI_LS 0x00B50C /* <= gfx81 */ #define S_00B50C_MEM_BASE(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B50C_MEM_BASE(x) (((x) >> 0) & 0xFF) #define C_00B50C_MEM_BASE 0xFFFFFF00 #define R_00B51C_SPI_SHADER_PGM_RSRC3_LS 0x00B51C /* gfx7, gfx8, gfx81, gfx10 */ #define S_00B51C_CU_EN(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_00B51C_CU_EN(x) (((x) >> 0) & 0xFFFF) #define C_00B51C_CU_EN 0xFFFF0000 #define S_00B51C_WAVE_LIMIT(x) (((unsigned)(x) & 0x3F) << 16) #define G_00B51C_WAVE_LIMIT(x) (((x) >> 16) & 0x3F) #define C_00B51C_WAVE_LIMIT 0xFFC0FFFF #define S_00B51C_LOCK_LOW_THRESHOLD(x) (((unsigned)(x) & 0xF) << 22) #define G_00B51C_LOCK_LOW_THRESHOLD(x) (((x) >> 22) & 0xF) #define C_00B51C_LOCK_LOW_THRESHOLD 0xFC3FFFFF #define S_00B51C_GROUP_FIFO_DEPTH(x) (((unsigned)(x) & 0x3F) << 26) /* gfx8, gfx81, gfx10 */ #define G_00B51C_GROUP_FIFO_DEPTH(x) (((x) >> 26) & 0x3F) #define C_00B51C_GROUP_FIFO_DEPTH 0x03FFFFFF #define R_00B520_SPI_SHADER_PGM_LO_LS 0x00B520 /* <= gfx81, >= gfx10 */ #define R_00B524_SPI_SHADER_PGM_HI_LS 0x00B524 /* <= gfx81, >= gfx10 */ #define S_00B524_MEM_BASE(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B524_MEM_BASE(x) (((x) >> 0) & 0xFF) #define C_00B524_MEM_BASE 0xFFFFFF00 #define R_00B528_SPI_SHADER_PGM_RSRC1_LS 0x00B528 /* <= gfx81, gfx10 */ #define S_00B528_VGPRS(x) (((unsigned)(x) & 0x3F) << 0) #define G_00B528_VGPRS(x) (((x) >> 0) & 0x3F) #define C_00B528_VGPRS 0xFFFFFFC0 #define S_00B528_SGPRS(x) (((unsigned)(x) & 0xF) << 6) #define G_00B528_SGPRS(x) (((x) >> 6) & 0xF) #define C_00B528_SGPRS 0xFFFFFC3F #define S_00B528_PRIORITY(x) (((unsigned)(x) & 0x3) << 10) #define G_00B528_PRIORITY(x) (((x) >> 10) & 0x3) #define C_00B528_PRIORITY 0xFFFFF3FF #define S_00B528_FLOAT_MODE(x) (((unsigned)(x) & 0xFF) << 12) #define G_00B528_FLOAT_MODE(x) (((x) >> 12) & 0xFF) #define C_00B528_FLOAT_MODE 0xFFF00FFF #define V_00B528_FP_32_DENORMS 48 #define V_00B528_FP_64_DENORMS 192 #define V_00B528_FP_ALL_DENORMS 240 #define S_00B528_PRIV(x) (((unsigned)(x) & 0x1) << 20) #define G_00B528_PRIV(x) (((x) >> 20) & 0x1) #define C_00B528_PRIV 0xFFEFFFFF #define S_00B528_DX10_CLAMP(x) (((unsigned)(x) & 0x1) << 21) #define G_00B528_DX10_CLAMP(x) (((x) >> 21) & 0x1) #define C_00B528_DX10_CLAMP 0xFFDFFFFF #define S_00B528_DEBUG_MODE(x) (((unsigned)(x) & 0x1) << 22) /* <= gfx81 */ #define G_00B528_DEBUG_MODE(x) (((x) >> 22) & 0x1) #define C_00B528_DEBUG_MODE 0xFFBFFFFF #define S_00B528_IEEE_MODE(x) (((unsigned)(x) & 0x1) << 23) #define G_00B528_IEEE_MODE(x) (((x) >> 23) & 0x1) #define C_00B528_IEEE_MODE 0xFF7FFFFF #define S_00B528_VGPR_COMP_CNT(x) (((unsigned)(x) & 0x3) << 24) #define G_00B528_VGPR_COMP_CNT(x) (((x) >> 24) & 0x3) #define C_00B528_VGPR_COMP_CNT 0xFCFFFFFF #define S_00B528_CACHE_CTL(x) (((unsigned)(x) & 0x7) << 26) /* <= gfx81 */ #define G_00B528_CACHE_CTL(x) (((x) >> 26) & 0x7) #define C_00B528_CACHE_CTL 0xE3FFFFFF #define S_00B528_CDBG_USER(x) (((unsigned)(x) & 0x1) << 29) /* <= gfx81 */ #define G_00B528_CDBG_USER(x) (((x) >> 29) & 0x1) #define C_00B528_CDBG_USER 0xDFFFFFFF #define S_00B528_FP16_OVFL(x) (((unsigned)(x) & 0x1) << 30) /* gfx10 */ #define G_00B528_FP16_OVFL(x) (((x) >> 30) & 0x1) #define C_00B528_FP16_OVFL 0xBFFFFFFF #define R_00B52C_SPI_SHADER_PGM_RSRC2_LS 0x00B52C /* <= gfx81, gfx10 */ #define S_00B52C_SCRATCH_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_00B52C_SCRATCH_EN(x) (((x) >> 0) & 0x1) #define C_00B52C_SCRATCH_EN 0xFFFFFFFE #define S_00B52C_USER_SGPR(x) (((unsigned)(x) & 0x1F) << 1) #define G_00B52C_USER_SGPR(x) (((x) >> 1) & 0x1F) #define C_00B52C_USER_SGPR 0xFFFFFFC1 #define S_00B52C_TRAP_PRESENT(x) (((unsigned)(x) & 0x1) << 6) #define G_00B52C_TRAP_PRESENT(x) (((x) >> 6) & 0x1) #define C_00B52C_TRAP_PRESENT 0xFFFFFFBF #define S_00B52C_LDS_SIZE(x) (((unsigned)(x) & 0x1FF) << 7) #define G_00B52C_LDS_SIZE(x) (((x) >> 7) & 0x1FF) #define C_00B52C_LDS_SIZE 0xFFFF007F #define S_00B52C_EXCP_EN(x) (((unsigned)(x) & 0x1FF) << 16) #define G_00B52C_EXCP_EN(x) (((x) >> 16) & 0x1FF) #define C_00B52C_EXCP_EN 0xFE00FFFF #define V_00B52C_INVALID 1 #define V_00B52C_INPUT_DENORMAL 2 #define V_00B52C_DIVIDE_BY_ZERO 4 #define V_00B52C_OVERFLOW 8 #define V_00B52C_UNDERFLOW 16 #define V_00B52C_INEXACT 32 #define V_00B52C_INT_DIVIDE_BY_ZERO 64 #define V_00B52C_ADDRESS_WATCH 128 #define V_00B52C_MEMORY_VIOLATION 256 #define R_00B530_SPI_SHADER_USER_DATA_COMMON_0 0x00B530 /* gfx9 */ #define R_00B530_SPI_SHADER_USER_DATA_LS_0 0x00B530 /* <= gfx81, gfx10 */ #define R_00B534_SPI_SHADER_USER_DATA_COMMON_1 0x00B534 /* gfx9 */ #define R_00B534_SPI_SHADER_USER_DATA_LS_1 0x00B534 /* <= gfx81, gfx10 */ #define R_00B538_SPI_SHADER_USER_DATA_COMMON_2 0x00B538 /* gfx9 */ #define R_00B538_SPI_SHADER_USER_DATA_LS_2 0x00B538 /* <= gfx81, gfx10 */ #define R_00B53C_SPI_SHADER_USER_DATA_COMMON_3 0x00B53C /* gfx9 */ #define R_00B53C_SPI_SHADER_USER_DATA_LS_3 0x00B53C /* <= gfx81, gfx10 */ #define R_00B540_SPI_SHADER_USER_DATA_COMMON_4 0x00B540 /* gfx9 */ #define R_00B540_SPI_SHADER_USER_DATA_LS_4 0x00B540 /* <= gfx81, gfx10 */ #define R_00B544_SPI_SHADER_USER_DATA_COMMON_5 0x00B544 /* gfx9 */ #define R_00B544_SPI_SHADER_USER_DATA_LS_5 0x00B544 /* <= gfx81, gfx10 */ #define R_00B548_SPI_SHADER_USER_DATA_COMMON_6 0x00B548 /* gfx9 */ #define R_00B548_SPI_SHADER_USER_DATA_LS_6 0x00B548 /* <= gfx81, gfx10 */ #define R_00B54C_SPI_SHADER_USER_DATA_COMMON_7 0x00B54C /* gfx9 */ #define R_00B54C_SPI_SHADER_USER_DATA_LS_7 0x00B54C /* <= gfx81, gfx10 */ #define R_00B550_SPI_SHADER_USER_DATA_COMMON_8 0x00B550 /* gfx9 */ #define R_00B550_SPI_SHADER_USER_DATA_LS_8 0x00B550 /* <= gfx81, gfx10 */ #define R_00B554_SPI_SHADER_USER_DATA_COMMON_9 0x00B554 /* gfx9 */ #define R_00B554_SPI_SHADER_USER_DATA_LS_9 0x00B554 /* <= gfx81, gfx10 */ #define R_00B558_SPI_SHADER_USER_DATA_COMMON_10 0x00B558 /* gfx9 */ #define R_00B558_SPI_SHADER_USER_DATA_LS_10 0x00B558 /* <= gfx81, gfx10 */ #define R_00B55C_SPI_SHADER_USER_DATA_COMMON_11 0x00B55C /* gfx9 */ #define R_00B55C_SPI_SHADER_USER_DATA_LS_11 0x00B55C /* <= gfx81, gfx10 */ #define R_00B560_SPI_SHADER_USER_DATA_COMMON_12 0x00B560 /* gfx9 */ #define R_00B560_SPI_SHADER_USER_DATA_LS_12 0x00B560 /* <= gfx81, gfx10 */ #define R_00B564_SPI_SHADER_USER_DATA_COMMON_13 0x00B564 /* gfx9 */ #define R_00B564_SPI_SHADER_USER_DATA_LS_13 0x00B564 /* <= gfx81, gfx10 */ #define R_00B568_SPI_SHADER_USER_DATA_COMMON_14 0x00B568 /* gfx9 */ #define R_00B568_SPI_SHADER_USER_DATA_LS_14 0x00B568 /* <= gfx81, gfx10 */ #define R_00B56C_SPI_SHADER_USER_DATA_COMMON_15 0x00B56C /* gfx9 */ #define R_00B56C_SPI_SHADER_USER_DATA_LS_15 0x00B56C /* <= gfx81, gfx10 */ #define R_00B570_SPI_SHADER_USER_DATA_COMMON_16 0x00B570 /* gfx9 */ #define R_00B574_SPI_SHADER_USER_DATA_COMMON_17 0x00B574 /* gfx9 */ #define R_00B578_SPI_SHADER_USER_DATA_COMMON_18 0x00B578 /* gfx9 */ #define R_00B57C_SPI_SHADER_USER_DATA_COMMON_19 0x00B57C /* gfx9 */ #define R_00B580_SPI_SHADER_USER_DATA_COMMON_20 0x00B580 /* gfx9 */ #define R_00B584_SPI_SHADER_USER_DATA_COMMON_21 0x00B584 /* gfx9 */ #define R_00B588_SPI_SHADER_USER_DATA_COMMON_22 0x00B588 /* gfx9 */ #define R_00B58C_SPI_SHADER_USER_DATA_COMMON_23 0x00B58C /* gfx9 */ #define R_00B590_SPI_SHADER_USER_DATA_COMMON_24 0x00B590 /* gfx9 */ #define R_00B594_SPI_SHADER_USER_DATA_COMMON_25 0x00B594 /* gfx9 */ #define R_00B598_SPI_SHADER_USER_DATA_COMMON_26 0x00B598 /* gfx9 */ #define R_00B59C_SPI_SHADER_USER_DATA_COMMON_27 0x00B59C /* gfx9 */ #define R_00B5A0_SPI_SHADER_USER_DATA_COMMON_28 0x00B5A0 /* gfx9 */ #define R_00B5A4_SPI_SHADER_USER_DATA_COMMON_29 0x00B5A4 /* gfx9 */ #define R_00B5A8_SPI_SHADER_USER_DATA_COMMON_30 0x00B5A8 /* gfx9 */ #define R_00B5AC_SPI_SHADER_USER_DATA_COMMON_31 0x00B5AC /* gfx9 */ #define R_00B800_COMPUTE_DISPATCH_INITIATOR 0x00B800 #define S_00B800_COMPUTE_SHADER_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_00B800_COMPUTE_SHADER_EN(x) (((x) >> 0) & 0x1) #define C_00B800_COMPUTE_SHADER_EN 0xFFFFFFFE #define S_00B800_PARTIAL_TG_EN(x) (((unsigned)(x) & 0x1) << 1) #define G_00B800_PARTIAL_TG_EN(x) (((x) >> 1) & 0x1) #define C_00B800_PARTIAL_TG_EN 0xFFFFFFFD #define S_00B800_FORCE_START_AT_000(x) (((unsigned)(x) & 0x1) << 2) #define G_00B800_FORCE_START_AT_000(x) (((x) >> 2) & 0x1) #define C_00B800_FORCE_START_AT_000 0xFFFFFFFB #define S_00B800_ORDERED_APPEND_ENBL(x) (((unsigned)(x) & 0x1) << 3) #define G_00B800_ORDERED_APPEND_ENBL(x) (((x) >> 3) & 0x1) #define C_00B800_ORDERED_APPEND_ENBL 0xFFFFFFF7 #define S_00B800_ORDERED_APPEND_MODE(x) (((unsigned)(x) & 0x1) << 4) #define G_00B800_ORDERED_APPEND_MODE(x) (((x) >> 4) & 0x1) #define C_00B800_ORDERED_APPEND_MODE 0xFFFFFFEF #define S_00B800_USE_THREAD_DIMENSIONS(x) (((unsigned)(x) & 0x1) << 5) #define G_00B800_USE_THREAD_DIMENSIONS(x) (((x) >> 5) & 0x1) #define C_00B800_USE_THREAD_DIMENSIONS 0xFFFFFFDF #define S_00B800_ORDER_MODE(x) (((unsigned)(x) & 0x1) << 6) #define G_00B800_ORDER_MODE(x) (((x) >> 6) & 0x1) #define C_00B800_ORDER_MODE 0xFFFFFFBF #define S_00B800_DISPATCH_CACHE_CNTL(x) (((unsigned)(x) & 0x7) << 7) /* <= gfx81 */ #define G_00B800_DISPATCH_CACHE_CNTL(x) (((x) >> 7) & 0x7) #define C_00B800_DISPATCH_CACHE_CNTL 0xFFFFFC7F #define S_00B800_SCALAR_L1_INV_VOL(x) (((unsigned)(x) & 0x1) << 10) #define G_00B800_SCALAR_L1_INV_VOL(x) (((x) >> 10) & 0x1) #define C_00B800_SCALAR_L1_INV_VOL 0xFFFFFBFF #define S_00B800_VECTOR_L1_INV_VOL(x) (((unsigned)(x) & 0x1) << 11) #define G_00B800_VECTOR_L1_INV_VOL(x) (((x) >> 11) & 0x1) #define C_00B800_VECTOR_L1_INV_VOL 0xFFFFF7FF #define S_00B800_DATA_ATC(x) (((unsigned)(x) & 0x1) << 12) /* <= gfx81 */ #define G_00B800_DATA_ATC(x) (((x) >> 12) & 0x1) #define C_00B800_DATA_ATC 0xFFFFEFFF #define S_00B800_TUNNEL_ENABLE(x) (((unsigned)(x) & 0x1) << 13) /* >= gfx10 */ #define G_00B800_TUNNEL_ENABLE(x) (((x) >> 13) & 0x1) #define C_00B800_TUNNEL_ENABLE 0xFFFFDFFF #define S_00B800_RESTORE(x) (((unsigned)(x) & 0x1) << 14) #define G_00B800_RESTORE(x) (((x) >> 14) & 0x1) #define C_00B800_RESTORE 0xFFFFBFFF #define S_00B800_CS_W32_EN(x) (((unsigned)(x) & 0x1) << 15) /* >= gfx10 */ #define G_00B800_CS_W32_EN(x) (((x) >> 15) & 0x1) #define C_00B800_CS_W32_EN 0xFFFF7FFF #define R_00B804_COMPUTE_DIM_X 0x00B804 #define R_00B808_COMPUTE_DIM_Y 0x00B808 #define R_00B80C_COMPUTE_DIM_Z 0x00B80C #define R_00B810_COMPUTE_START_X 0x00B810 #define R_00B814_COMPUTE_START_Y 0x00B814 #define R_00B818_COMPUTE_START_Z 0x00B818 #define R_00B81C_COMPUTE_NUM_THREAD_X 0x00B81C #define S_00B81C_NUM_THREAD_FULL(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_00B81C_NUM_THREAD_FULL(x) (((x) >> 0) & 0xFFFF) #define C_00B81C_NUM_THREAD_FULL 0xFFFF0000 #define S_00B81C_NUM_THREAD_PARTIAL(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_00B81C_NUM_THREAD_PARTIAL(x) (((x) >> 16) & 0xFFFF) #define C_00B81C_NUM_THREAD_PARTIAL 0x0000FFFF #define R_00B820_COMPUTE_NUM_THREAD_Y 0x00B820 #define S_00B820_NUM_THREAD_FULL(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_00B820_NUM_THREAD_FULL(x) (((x) >> 0) & 0xFFFF) #define C_00B820_NUM_THREAD_FULL 0xFFFF0000 #define S_00B820_NUM_THREAD_PARTIAL(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_00B820_NUM_THREAD_PARTIAL(x) (((x) >> 16) & 0xFFFF) #define C_00B820_NUM_THREAD_PARTIAL 0x0000FFFF #define R_00B824_COMPUTE_NUM_THREAD_Z 0x00B824 #define S_00B824_NUM_THREAD_FULL(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_00B824_NUM_THREAD_FULL(x) (((x) >> 0) & 0xFFFF) #define C_00B824_NUM_THREAD_FULL 0xFFFF0000 #define S_00B824_NUM_THREAD_PARTIAL(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_00B824_NUM_THREAD_PARTIAL(x) (((x) >> 16) & 0xFFFF) #define C_00B824_NUM_THREAD_PARTIAL 0x0000FFFF #define R_00B828_COMPUTE_PIPELINESTAT_ENABLE 0x00B828 /* >= gfx7 */ #define S_00B828_PIPELINESTAT_ENABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_00B828_PIPELINESTAT_ENABLE(x) (((x) >> 0) & 0x1) #define C_00B828_PIPELINESTAT_ENABLE 0xFFFFFFFE #define R_00B82C_COMPUTE_MAX_WAVE_ID 0x00B82C /* <= gfx6 */ #define S_00B82C_MAX_WAVE_ID(x) (((unsigned)(x) & 0xFFF) << 0) #define G_00B82C_MAX_WAVE_ID(x) (((x) >> 0) & 0xFFF) #define C_00B82C_MAX_WAVE_ID 0xFFFFF000 #define R_00B82C_COMPUTE_PERFCOUNT_ENABLE 0x00B82C /* >= gfx7 */ #define S_00B82C_PERFCOUNT_ENABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_00B82C_PERFCOUNT_ENABLE(x) (((x) >> 0) & 0x1) #define C_00B82C_PERFCOUNT_ENABLE 0xFFFFFFFE #define R_00B830_COMPUTE_PGM_LO 0x00B830 #define R_00B834_COMPUTE_PGM_HI 0x00B834 #define S_00B834_DATA(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B834_DATA(x) (((x) >> 0) & 0xFF) #define C_00B834_DATA 0xFFFFFF00 #define S_00B834_INST_ATC(x) (((unsigned)(x) & 0x1) << 8) /* <= gfx81 */ #define G_00B834_INST_ATC(x) (((x) >> 8) & 0x1) #define C_00B834_INST_ATC 0xFFFFFEFF #define R_00B838_COMPUTE_DISPATCH_PKT_ADDR_LO 0x00B838 /* >= gfx9 */ #define R_00B838_COMPUTE_TBA_LO 0x00B838 /* <= gfx81 */ #define R_00B83C_COMPUTE_DISPATCH_PKT_ADDR_HI 0x00B83C /* >= gfx9 */ #define S_00B83C_DATA(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B83C_DATA(x) (((x) >> 0) & 0xFF) #define C_00B83C_DATA 0xFFFFFF00 #define R_00B83C_COMPUTE_TBA_HI 0x00B83C /* <= gfx81 */ #define R_00B840_COMPUTE_DISPATCH_SCRATCH_BASE_LO 0x00B840 /* >= gfx9 */ #define R_00B840_COMPUTE_TMA_LO 0x00B840 /* <= gfx81 */ #define R_00B844_COMPUTE_DISPATCH_SCRATCH_BASE_HI 0x00B844 /* >= gfx9 */ #define S_00B844_DATA(x) (((unsigned)(x) & 0xFF) << 0) #define G_00B844_DATA(x) (((x) >> 0) & 0xFF) #define C_00B844_DATA 0xFFFFFF00 #define R_00B844_COMPUTE_TMA_HI 0x00B844 /* <= gfx81 */ #define R_00B848_COMPUTE_PGM_RSRC1 0x00B848 #define S_00B848_VGPRS(x) (((unsigned)(x) & 0x3F) << 0) #define G_00B848_VGPRS(x) (((x) >> 0) & 0x3F) #define C_00B848_VGPRS 0xFFFFFFC0 #define S_00B848_SGPRS(x) (((unsigned)(x) & 0xF) << 6) #define G_00B848_SGPRS(x) (((x) >> 6) & 0xF) #define C_00B848_SGPRS 0xFFFFFC3F #define S_00B848_PRIORITY(x) (((unsigned)(x) & 0x3) << 10) #define G_00B848_PRIORITY(x) (((x) >> 10) & 0x3) #define C_00B848_PRIORITY 0xFFFFF3FF #define S_00B848_FLOAT_MODE(x) (((unsigned)(x) & 0xFF) << 12) #define G_00B848_FLOAT_MODE(x) (((x) >> 12) & 0xFF) #define C_00B848_FLOAT_MODE 0xFFF00FFF #define V_00B848_FP_32_DENORMS 48 #define V_00B848_FP_64_DENORMS 192 #define V_00B848_FP_ALL_DENORMS 240 #define S_00B848_PRIV(x) (((unsigned)(x) & 0x1) << 20) #define G_00B848_PRIV(x) (((x) >> 20) & 0x1) #define C_00B848_PRIV 0xFFEFFFFF #define S_00B848_DX10_CLAMP(x) (((unsigned)(x) & 0x1) << 21) #define G_00B848_DX10_CLAMP(x) (((x) >> 21) & 0x1) #define C_00B848_DX10_CLAMP 0xFFDFFFFF #define S_00B848_DEBUG_MODE(x) (((unsigned)(x) & 0x1) << 22) /* <= gfx9 */ #define G_00B848_DEBUG_MODE(x) (((x) >> 22) & 0x1) #define C_00B848_DEBUG_MODE 0xFFBFFFFF #define S_00B848_IEEE_MODE(x) (((unsigned)(x) & 0x1) << 23) #define G_00B848_IEEE_MODE(x) (((x) >> 23) & 0x1) #define C_00B848_IEEE_MODE 0xFF7FFFFF #define S_00B848_BULKY(x) (((unsigned)(x) & 0x1) << 24) #define G_00B848_BULKY(x) (((x) >> 24) & 0x1) #define C_00B848_BULKY 0xFEFFFFFF #define S_00B848_CDBG_USER(x) (((unsigned)(x) & 0x1) << 25) /* <= gfx9 */ #define G_00B848_CDBG_USER(x) (((x) >> 25) & 0x1) #define C_00B848_CDBG_USER 0xFDFFFFFF #define S_00B848_FP16_OVFL(x) (((unsigned)(x) & 0x1) << 26) /* >= gfx9 */ #define G_00B848_FP16_OVFL(x) (((x) >> 26) & 0x1) #define C_00B848_FP16_OVFL 0xFBFFFFFF #define S_00B848_WGP_MODE(x) (((unsigned)(x) & 0x1) << 29) /* >= gfx10 */ #define G_00B848_WGP_MODE(x) (((x) >> 29) & 0x1) #define C_00B848_WGP_MODE 0xDFFFFFFF #define S_00B848_MEM_ORDERED(x) (((unsigned)(x) & 0x1) << 30) /* >= gfx10 */ #define G_00B848_MEM_ORDERED(x) (((x) >> 30) & 0x1) #define C_00B848_MEM_ORDERED 0xBFFFFFFF #define S_00B848_FWD_PROGRESS(x) (((unsigned)(x) & 0x1) << 31) /* >= gfx10 */ #define G_00B848_FWD_PROGRESS(x) (((x) >> 31) & 0x1) #define C_00B848_FWD_PROGRESS 0x7FFFFFFF #define R_00B84C_COMPUTE_PGM_RSRC2 0x00B84C #define S_00B84C_SCRATCH_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_00B84C_SCRATCH_EN(x) (((x) >> 0) & 0x1) #define C_00B84C_SCRATCH_EN 0xFFFFFFFE #define S_00B84C_USER_SGPR(x) (((unsigned)(x) & 0x1F) << 1) #define G_00B84C_USER_SGPR(x) (((x) >> 1) & 0x1F) #define C_00B84C_USER_SGPR 0xFFFFFFC1 #define S_00B84C_TRAP_PRESENT(x) (((unsigned)(x) & 0x1) << 6) #define G_00B84C_TRAP_PRESENT(x) (((x) >> 6) & 0x1) #define C_00B84C_TRAP_PRESENT 0xFFFFFFBF #define S_00B84C_TGID_X_EN(x) (((unsigned)(x) & 0x1) << 7) #define G_00B84C_TGID_X_EN(x) (((x) >> 7) & 0x1) #define C_00B84C_TGID_X_EN 0xFFFFFF7F #define S_00B84C_TGID_Y_EN(x) (((unsigned)(x) & 0x1) << 8) #define G_00B84C_TGID_Y_EN(x) (((x) >> 8) & 0x1) #define C_00B84C_TGID_Y_EN 0xFFFFFEFF #define S_00B84C_TGID_Z_EN(x) (((unsigned)(x) & 0x1) << 9) #define G_00B84C_TGID_Z_EN(x) (((x) >> 9) & 0x1) #define C_00B84C_TGID_Z_EN 0xFFFFFDFF #define S_00B84C_TG_SIZE_EN(x) (((unsigned)(x) & 0x1) << 10) #define G_00B84C_TG_SIZE_EN(x) (((x) >> 10) & 0x1) #define C_00B84C_TG_SIZE_EN 0xFFFFFBFF #define S_00B84C_TIDIG_COMP_CNT(x) (((unsigned)(x) & 0x3) << 11) #define G_00B84C_TIDIG_COMP_CNT(x) (((x) >> 11) & 0x3) #define C_00B84C_TIDIG_COMP_CNT 0xFFFFE7FF #define S_00B84C_EXCP_EN_MSB(x) (((unsigned)(x) & 0x3) << 13) #define G_00B84C_EXCP_EN_MSB(x) (((x) >> 13) & 0x3) #define C_00B84C_EXCP_EN_MSB 0xFFFF9FFF #define S_00B84C_LDS_SIZE(x) (((unsigned)(x) & 0x1FF) << 15) #define G_00B84C_LDS_SIZE(x) (((x) >> 15) & 0x1FF) #define C_00B84C_LDS_SIZE 0xFF007FFF #define S_00B84C_EXCP_EN(x) (((unsigned)(x) & 0x7F) << 24) #define G_00B84C_EXCP_EN(x) (((x) >> 24) & 0x7F) #define C_00B84C_EXCP_EN 0x80FFFFFF #define V_00B84C_INVALID 1 #define V_00B84C_INPUT_DENORMAL 2 #define V_00B84C_DIVIDE_BY_ZERO 4 #define V_00B84C_OVERFLOW 8 #define V_00B84C_UNDERFLOW 16 #define V_00B84C_INEXACT 32 #define V_00B84C_INT_DIVIDE_BY_ZERO 64 #define V_00B84C_ADDRESS_WATCH 128 #define V_00B84C_MEMORY_VIOLATION 256 #define S_00B84C_SKIP_USGPR0(x) (((unsigned)(x) & 0x1) << 31) /* gfx9 */ #define G_00B84C_SKIP_USGPR0(x) (((x) >> 31) & 0x1) #define C_00B84C_SKIP_USGPR0 0x7FFFFFFF #define R_00B850_COMPUTE_VMID 0x00B850 #define S_00B850_DATA(x) (((unsigned)(x) & 0xF) << 0) #define G_00B850_DATA(x) (((x) >> 0) & 0xF) #define C_00B850_DATA 0xFFFFFFF0 #define R_00B854_COMPUTE_RESOURCE_LIMITS 0x00B854 #define S_00B854_WAVES_PER_SH(x) (((unsigned)(x) & 0x3FF) << 0) #define G_00B854_WAVES_PER_SH(x) (((x) >> 0) & 0x3FF) #define C_00B854_WAVES_PER_SH 0xFFFFFC00 #define S_00B854_WAVES_PER_SH_GFX6(x) (((unsigned)(x) & 0x3F) << 0) /* <= gfx6 */ #define G_00B854_WAVES_PER_SH_GFX6(x) (((x) >> 0) & 0x3F) #define C_00B854_WAVES_PER_SH_GFX6 0xFFFFFFC0 #define S_00B854_TG_PER_CU(x) (((unsigned)(x) & 0xF) << 12) #define G_00B854_TG_PER_CU(x) (((x) >> 12) & 0xF) #define C_00B854_TG_PER_CU 0xFFFF0FFF #define S_00B854_LOCK_THRESHOLD(x) (((unsigned)(x) & 0x3F) << 16) #define G_00B854_LOCK_THRESHOLD(x) (((x) >> 16) & 0x3F) #define C_00B854_LOCK_THRESHOLD 0xFFC0FFFF #define S_00B854_SIMD_DEST_CNTL(x) (((unsigned)(x) & 0x1) << 22) #define G_00B854_SIMD_DEST_CNTL(x) (((x) >> 22) & 0x1) #define C_00B854_SIMD_DEST_CNTL 0xFFBFFFFF #define S_00B854_FORCE_SIMD_DIST(x) (((unsigned)(x) & 0x1) << 23) #define G_00B854_FORCE_SIMD_DIST(x) (((x) >> 23) & 0x1) #define C_00B854_FORCE_SIMD_DIST 0xFF7FFFFF #define S_00B854_CU_GROUP_COUNT(x) (((unsigned)(x) & 0x7) << 24) #define G_00B854_CU_GROUP_COUNT(x) (((x) >> 24) & 0x7) #define C_00B854_CU_GROUP_COUNT 0xF8FFFFFF #define S_00B854_SIMD_DISABLE(x) (((unsigned)(x) & 0xF) << 27) /* gfx9 */ #define G_00B854_SIMD_DISABLE(x) (((x) >> 27) & 0xF) #define C_00B854_SIMD_DISABLE 0x87FFFFFF #define R_00B858_COMPUTE_DESTINATION_EN_SE0 0x00B858 /* >= gfx10 */ #define R_00B858_COMPUTE_STATIC_THREAD_MGMT_SE0 0x00B858 /* <= gfx9 */ #define S_00B858_SH0_CU_EN(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_00B858_SH0_CU_EN(x) (((x) >> 0) & 0xFFFF) #define C_00B858_SH0_CU_EN 0xFFFF0000 #define S_00B858_SH1_CU_EN(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_00B858_SH1_CU_EN(x) (((x) >> 16) & 0xFFFF) #define C_00B858_SH1_CU_EN 0x0000FFFF #define R_00B85C_COMPUTE_DESTINATION_EN_SE1 0x00B85C /* >= gfx10 */ #define R_00B85C_COMPUTE_STATIC_THREAD_MGMT_SE1 0x00B85C /* <= gfx9 */ #define R_00B860_COMPUTE_TMPRING_SIZE 0x00B860 #define S_00B860_WAVES(x) (((unsigned)(x) & 0xFFF) << 0) #define G_00B860_WAVES(x) (((x) >> 0) & 0xFFF) #define C_00B860_WAVES 0xFFFFF000 #define S_00B860_WAVESIZE(x) (((unsigned)(x) & 0x1FFF) << 12) #define G_00B860_WAVESIZE(x) (((x) >> 12) & 0x1FFF) #define C_00B860_WAVESIZE 0xFE000FFF #define R_00B864_COMPUTE_DESTINATION_EN_SE2 0x00B864 /* >= gfx10 */ #define R_00B864_COMPUTE_STATIC_THREAD_MGMT_SE2 0x00B864 /* gfx7, gfx8, gfx81, gfx9 */ #define R_00B868_COMPUTE_DESTINATION_EN_SE3 0x00B868 /* >= gfx10 */ #define R_00B868_COMPUTE_STATIC_THREAD_MGMT_SE3 0x00B868 /* gfx7, gfx8, gfx81, gfx9 */ #define R_00B86C_COMPUTE_RESTART_X 0x00B86C /* >= gfx7 */ #define R_00B870_COMPUTE_RESTART_Y 0x00B870 /* >= gfx7 */ #define R_00B874_COMPUTE_RESTART_Z 0x00B874 /* >= gfx7 */ #define R_00B878_COMPUTE_THREAD_TRACE_ENABLE 0x00B878 /* >= gfx7 */ #define S_00B878_THREAD_TRACE_ENABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_00B878_THREAD_TRACE_ENABLE(x) (((x) >> 0) & 0x1) #define C_00B878_THREAD_TRACE_ENABLE 0xFFFFFFFE #define R_00B87C_COMPUTE_MISC_RESERVED 0x00B87C /* >= gfx7 */ #define S_00B87C_SEND_SEID(x) (((unsigned)(x) & 0x3) << 0) #define G_00B87C_SEND_SEID(x) (((x) >> 0) & 0x3) #define C_00B87C_SEND_SEID 0xFFFFFFFC #define S_00B87C_RESERVED2(x) (((unsigned)(x) & 0x1) << 2) #define G_00B87C_RESERVED2(x) (((x) >> 2) & 0x1) #define C_00B87C_RESERVED2 0xFFFFFFFB #define S_00B87C_RESERVED3(x) (((unsigned)(x) & 0x1) << 3) #define G_00B87C_RESERVED3(x) (((x) >> 3) & 0x1) #define C_00B87C_RESERVED3 0xFFFFFFF7 #define S_00B87C_RESERVED4(x) (((unsigned)(x) & 0x1) << 4) #define G_00B87C_RESERVED4(x) (((x) >> 4) & 0x1) #define C_00B87C_RESERVED4 0xFFFFFFEF #define S_00B87C_WAVE_ID_BASE(x) (((unsigned)(x) & 0xFFF) << 5) /* >= gfx8 */ #define G_00B87C_WAVE_ID_BASE(x) (((x) >> 5) & 0xFFF) #define C_00B87C_WAVE_ID_BASE 0xFFFE001F #define R_00B880_COMPUTE_DISPATCH_ID 0x00B880 /* >= gfx8 */ #define R_00B884_COMPUTE_THREADGROUP_ID 0x00B884 /* >= gfx8 */ #define R_00B888_COMPUTE_RELAUNCH 0x00B888 /* gfx8, gfx81, gfx9 */ #define S_00B888_PAYLOAD(x) (((unsigned)(x) & 0x3FFFFFFF) << 0) #define G_00B888_PAYLOAD(x) (((x) >> 0) & 0x3FFFFFFF) #define C_00B888_PAYLOAD 0xC0000000 #define S_00B888_IS_EVENT(x) (((unsigned)(x) & 0x1) << 30) #define G_00B888_IS_EVENT(x) (((x) >> 30) & 0x1) #define C_00B888_IS_EVENT 0xBFFFFFFF #define S_00B888_IS_STATE(x) (((unsigned)(x) & 0x1) << 31) #define G_00B888_IS_STATE(x) (((x) >> 31) & 0x1) #define C_00B888_IS_STATE 0x7FFFFFFF #define R_00B888_COMPUTE_REQ_CTRL 0x00B888 /* >= gfx10 */ #define S_00B888_SOFT_GROUPING_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_00B888_SOFT_GROUPING_EN(x) (((x) >> 0) & 0x1) #define C_00B888_SOFT_GROUPING_EN 0xFFFFFFFE #define S_00B888_NUMBER_OF_REQUESTS_PER_CU(x) (((unsigned)(x) & 0xF) << 1) #define G_00B888_NUMBER_OF_REQUESTS_PER_CU(x) (((x) >> 1) & 0xF) #define C_00B888_NUMBER_OF_REQUESTS_PER_CU 0xFFFFFFE1 #define S_00B888_SOFT_GROUPING_ALLOCATION_TIMEOUT(x) (((unsigned)(x) & 0xF) << 5) #define G_00B888_SOFT_GROUPING_ALLOCATION_TIMEOUT(x) (((x) >> 5) & 0xF) #define C_00B888_SOFT_GROUPING_ALLOCATION_TIMEOUT 0xFFFFFE1F #define S_00B888_HARD_LOCK_HYSTERESIS(x) (((unsigned)(x) & 0x1) << 9) #define G_00B888_HARD_LOCK_HYSTERESIS(x) (((x) >> 9) & 0x1) #define C_00B888_HARD_LOCK_HYSTERESIS 0xFFFFFDFF #define S_00B888_HARD_LOCK_LOW_THRESHOLD(x) (((unsigned)(x) & 0x1F) << 10) #define G_00B888_HARD_LOCK_LOW_THRESHOLD(x) (((x) >> 10) & 0x1F) #define C_00B888_HARD_LOCK_LOW_THRESHOLD 0xFFFF83FF #define S_00B888_PRODUCER_REQUEST_LOCKOUT(x) (((unsigned)(x) & 0x1) << 15) #define G_00B888_PRODUCER_REQUEST_LOCKOUT(x) (((x) >> 15) & 0x1) #define C_00B888_PRODUCER_REQUEST_LOCKOUT 0xFFFF7FFF #define S_00B888_GLOBAL_SCANNING_EN(x) (((unsigned)(x) & 0x1) << 16) #define G_00B888_GLOBAL_SCANNING_EN(x) (((x) >> 16) & 0x1) #define C_00B888_GLOBAL_SCANNING_EN 0xFFFEFFFF #define S_00B888_ALLOCATION_RATE_THROTTLING_THRESHOLD(x) (((unsigned)(x) & 0x7) << 17) #define G_00B888_ALLOCATION_RATE_THROTTLING_THRESHOLD(x) (((x) >> 17) & 0x7) #define C_00B888_ALLOCATION_RATE_THROTTLING_THRESHOLD 0xFFF1FFFF #define S_00B888_DEDICATED_PREALLOCATION_BUFFER_LIMIT(x) (((unsigned)(x) & 0x7F) << 20) #define G_00B888_DEDICATED_PREALLOCATION_BUFFER_LIMIT(x) (((x) >> 20) & 0x7F) #define C_00B888_DEDICATED_PREALLOCATION_BUFFER_LIMIT 0xF80FFFFF #define R_00B88C_COMPUTE_WAVE_RESTORE_ADDR_LO 0x00B88C /* gfx8, gfx81, gfx9 */ #define R_00B890_COMPUTE_USER_ACCUM_0 0x00B890 /* >= gfx10 */ #define S_00B890_CONTRIBUTION(x) (((unsigned)(x) & 0x7F) << 0) #define G_00B890_CONTRIBUTION(x) (((x) >> 0) & 0x7F) #define C_00B890_CONTRIBUTION 0xFFFFFF80 #define R_00B890_COMPUTE_WAVE_RESTORE_ADDR_HI 0x00B890 /* gfx8, gfx81, gfx9 */ #define S_00B890_ADDR(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_00B890_ADDR(x) (((x) >> 0) & 0xFFFF) #define C_00B890_ADDR 0xFFFF0000 #define R_00B894_COMPUTE_SHADER_CHKSUM 0x00B894 /* gfx9 */ #define R_00B894_COMPUTE_USER_ACCUM_1 0x00B894 /* >= gfx10 */ #define R_00B894_COMPUTE_WAVE_RESTORE_CONTROL 0x00B894 /* gfx8, gfx81 */ #define S_00B894_ATC(x) (((unsigned)(x) & 0x1) << 0) #define G_00B894_ATC(x) (((x) >> 0) & 0x1) #define C_00B894_ATC 0xFFFFFFFE #define S_00B894_MTYPE(x) (((unsigned)(x) & 0x3) << 1) #define G_00B894_MTYPE(x) (((x) >> 1) & 0x3) #define C_00B894_MTYPE 0xFFFFFFF9 #define R_00B898_COMPUTE_USER_ACCUM_2 0x00B898 /* >= gfx10 */ #define R_00B89C_COMPUTE_USER_ACCUM_3 0x00B89C /* >= gfx10 */ #define R_00B8A0_COMPUTE_PGM_RSRC3 0x00B8A0 /* >= gfx10 */ #define S_00B8A0_SHARED_VGPR_CNT(x) (((unsigned)(x) & 0xF) << 0) #define G_00B8A0_SHARED_VGPR_CNT(x) (((x) >> 0) & 0xF) #define C_00B8A0_SHARED_VGPR_CNT 0xFFFFFFF0 #define R_00B8A4_COMPUTE_DDID_INDEX 0x00B8A4 /* >= gfx10 */ #define S_00B8A4_INDEX(x) (((unsigned)(x) & 0x7FF) << 0) #define G_00B8A4_INDEX(x) (((x) >> 0) & 0x7FF) #define C_00B8A4_INDEX 0xFFFFF800 #define R_00B8A8_COMPUTE_SHADER_CHKSUM 0x00B8A8 /* >= gfx10 */ #define R_00B8AC_COMPUTE_RELAUNCH 0x00B8AC /* >= gfx10 */ #define S_00B8AC_PAYLOAD(x) (((unsigned)(x) & 0x3FFFFFFF) << 0) #define G_00B8AC_PAYLOAD(x) (((x) >> 0) & 0x3FFFFFFF) #define C_00B8AC_PAYLOAD 0xC0000000 #define S_00B8AC_IS_EVENT(x) (((unsigned)(x) & 0x1) << 30) #define G_00B8AC_IS_EVENT(x) (((x) >> 30) & 0x1) #define C_00B8AC_IS_EVENT 0xBFFFFFFF #define S_00B8AC_IS_STATE(x) (((unsigned)(x) & 0x1) << 31) #define G_00B8AC_IS_STATE(x) (((x) >> 31) & 0x1) #define C_00B8AC_IS_STATE 0x7FFFFFFF #define R_00B8B0_COMPUTE_WAVE_RESTORE_ADDR_LO 0x00B8B0 /* >= gfx10 */ #define R_00B8B4_COMPUTE_WAVE_RESTORE_ADDR_HI 0x00B8B4 /* >= gfx10 */ #define S_00B8B4_ADDR(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_00B8B4_ADDR(x) (((x) >> 0) & 0xFFFF) #define C_00B8B4_ADDR 0xFFFF0000 #define R_00B8B8_COMPUTE_RELAUNCH2 0x00B8B8 /* >= gfx10 */ #define R_00B900_COMPUTE_USER_DATA_0 0x00B900 #define R_00B904_COMPUTE_USER_DATA_1 0x00B904 #define R_00B908_COMPUTE_USER_DATA_2 0x00B908 #define R_00B90C_COMPUTE_USER_DATA_3 0x00B90C #define R_00B910_COMPUTE_USER_DATA_4 0x00B910 #define R_00B914_COMPUTE_USER_DATA_5 0x00B914 #define R_00B918_COMPUTE_USER_DATA_6 0x00B918 #define R_00B91C_COMPUTE_USER_DATA_7 0x00B91C #define R_00B920_COMPUTE_USER_DATA_8 0x00B920 #define R_00B924_COMPUTE_USER_DATA_9 0x00B924 #define R_00B928_COMPUTE_USER_DATA_10 0x00B928 #define R_00B92C_COMPUTE_USER_DATA_11 0x00B92C #define R_00B930_COMPUTE_USER_DATA_12 0x00B930 #define R_00B934_COMPUTE_USER_DATA_13 0x00B934 #define R_00B938_COMPUTE_USER_DATA_14 0x00B938 #define R_00B93C_COMPUTE_USER_DATA_15 0x00B93C #define R_00B9F4_COMPUTE_DISPATCH_TUNNEL 0x00B9F4 /* >= gfx10 */ #define S_00B9F4_OFF_DELAY(x) (((unsigned)(x) & 0x3FF) << 0) #define G_00B9F4_OFF_DELAY(x) (((x) >> 0) & 0x3FF) #define C_00B9F4_OFF_DELAY 0xFFFFFC00 #define S_00B9F4_IMMEDIATE(x) (((unsigned)(x) & 0x1) << 10) #define G_00B9F4_IMMEDIATE(x) (((x) >> 10) & 0x1) #define C_00B9F4_IMMEDIATE 0xFFFFFBFF #define R_00B9F8_COMPUTE_DISPATCH_END 0x00B9F8 /* >= gfx9 */ #define R_00B9FC_COMPUTE_NOWHERE 0x00B9FC /* >= gfx8 */ #define R_00BA00_SH_RESERVED_REG0 0x00BA00 /* >= gfx103 */ #define R_00BA04_SH_RESERVED_REG1 0x00BA04 /* >= gfx103 */ #define R_00D034_SDMA0_STATUS_REG 0x00D034 /* <= gfx81 */ #define S_00D034_IDLE(x) (((unsigned)(x) & 0x1) << 0) #define G_00D034_IDLE(x) (((x) >> 0) & 0x1) #define C_00D034_IDLE 0xFFFFFFFE #define S_00D034_REG_IDLE(x) (((unsigned)(x) & 0x1) << 1) #define G_00D034_REG_IDLE(x) (((x) >> 1) & 0x1) #define C_00D034_REG_IDLE 0xFFFFFFFD #define S_00D034_RB_EMPTY(x) (((unsigned)(x) & 0x1) << 2) #define G_00D034_RB_EMPTY(x) (((x) >> 2) & 0x1) #define C_00D034_RB_EMPTY 0xFFFFFFFB #define S_00D034_RB_FULL(x) (((unsigned)(x) & 0x1) << 3) #define G_00D034_RB_FULL(x) (((x) >> 3) & 0x1) #define C_00D034_RB_FULL 0xFFFFFFF7 #define S_00D034_RB_CMD_IDLE(x) (((unsigned)(x) & 0x1) << 4) #define G_00D034_RB_CMD_IDLE(x) (((x) >> 4) & 0x1) #define C_00D034_RB_CMD_IDLE 0xFFFFFFEF #define S_00D034_RB_CMD_FULL(x) (((unsigned)(x) & 0x1) << 5) #define G_00D034_RB_CMD_FULL(x) (((x) >> 5) & 0x1) #define C_00D034_RB_CMD_FULL 0xFFFFFFDF #define S_00D034_IB_CMD_IDLE(x) (((unsigned)(x) & 0x1) << 6) #define G_00D034_IB_CMD_IDLE(x) (((x) >> 6) & 0x1) #define C_00D034_IB_CMD_IDLE 0xFFFFFFBF #define S_00D034_IB_CMD_FULL(x) (((unsigned)(x) & 0x1) << 7) #define G_00D034_IB_CMD_FULL(x) (((x) >> 7) & 0x1) #define C_00D034_IB_CMD_FULL 0xFFFFFF7F #define S_00D034_BLOCK_IDLE(x) (((unsigned)(x) & 0x1) << 8) #define G_00D034_BLOCK_IDLE(x) (((x) >> 8) & 0x1) #define C_00D034_BLOCK_IDLE 0xFFFFFEFF #define S_00D034_INSIDE_IB(x) (((unsigned)(x) & 0x1) << 9) #define G_00D034_INSIDE_IB(x) (((x) >> 9) & 0x1) #define C_00D034_INSIDE_IB 0xFFFFFDFF #define S_00D034_EX_IDLE(x) (((unsigned)(x) & 0x1) << 10) #define G_00D034_EX_IDLE(x) (((x) >> 10) & 0x1) #define C_00D034_EX_IDLE 0xFFFFFBFF #define S_00D034_EX_IDLE_POLL_TIMER_EXPIRE(x) (((unsigned)(x) & 0x1) << 11) #define G_00D034_EX_IDLE_POLL_TIMER_EXPIRE(x) (((x) >> 11) & 0x1) #define C_00D034_EX_IDLE_POLL_TIMER_EXPIRE 0xFFFFF7FF #define S_00D034_PACKET_READY(x) (((unsigned)(x) & 0x1) << 12) #define G_00D034_PACKET_READY(x) (((x) >> 12) & 0x1) #define C_00D034_PACKET_READY 0xFFFFEFFF #define S_00D034_MC_WR_IDLE(x) (((unsigned)(x) & 0x1) << 13) #define G_00D034_MC_WR_IDLE(x) (((x) >> 13) & 0x1) #define C_00D034_MC_WR_IDLE 0xFFFFDFFF #define S_00D034_SRBM_IDLE(x) (((unsigned)(x) & 0x1) << 14) #define G_00D034_SRBM_IDLE(x) (((x) >> 14) & 0x1) #define C_00D034_SRBM_IDLE 0xFFFFBFFF #define S_00D034_CONTEXT_EMPTY(x) (((unsigned)(x) & 0x1) << 15) #define G_00D034_CONTEXT_EMPTY(x) (((x) >> 15) & 0x1) #define C_00D034_CONTEXT_EMPTY 0xFFFF7FFF #define S_00D034_DELTA_RPTR_FULL(x) (((unsigned)(x) & 0x1) << 16) #define G_00D034_DELTA_RPTR_FULL(x) (((x) >> 16) & 0x1) #define C_00D034_DELTA_RPTR_FULL 0xFFFEFFFF #define S_00D034_RB_MC_RREQ_IDLE(x) (((unsigned)(x) & 0x1) << 17) #define G_00D034_RB_MC_RREQ_IDLE(x) (((x) >> 17) & 0x1) #define C_00D034_RB_MC_RREQ_IDLE 0xFFFDFFFF #define S_00D034_IB_MC_RREQ_IDLE(x) (((unsigned)(x) & 0x1) << 18) #define G_00D034_IB_MC_RREQ_IDLE(x) (((x) >> 18) & 0x1) #define C_00D034_IB_MC_RREQ_IDLE 0xFFFBFFFF #define S_00D034_MC_RD_IDLE(x) (((unsigned)(x) & 0x1) << 19) #define G_00D034_MC_RD_IDLE(x) (((x) >> 19) & 0x1) #define C_00D034_MC_RD_IDLE 0xFFF7FFFF #define S_00D034_DELTA_RPTR_EMPTY(x) (((unsigned)(x) & 0x1) << 20) #define G_00D034_DELTA_RPTR_EMPTY(x) (((x) >> 20) & 0x1) #define C_00D034_DELTA_RPTR_EMPTY 0xFFEFFFFF #define S_00D034_MC_RD_RET_STALL(x) (((unsigned)(x) & 0x1) << 21) #define G_00D034_MC_RD_RET_STALL(x) (((x) >> 21) & 0x1) #define C_00D034_MC_RD_RET_STALL 0xFFDFFFFF #define S_00D034_MC_RD_NO_POLL_IDLE(x) (((unsigned)(x) & 0x1) << 22) #define G_00D034_MC_RD_NO_POLL_IDLE(x) (((x) >> 22) & 0x1) #define C_00D034_MC_RD_NO_POLL_IDLE 0xFFBFFFFF #define S_00D034_PREV_CMD_IDLE(x) (((unsigned)(x) & 0x1) << 25) #define G_00D034_PREV_CMD_IDLE(x) (((x) >> 25) & 0x1) #define C_00D034_PREV_CMD_IDLE 0xFDFFFFFF #define S_00D034_SEM_IDLE(x) (((unsigned)(x) & 0x1) << 26) #define G_00D034_SEM_IDLE(x) (((x) >> 26) & 0x1) #define C_00D034_SEM_IDLE 0xFBFFFFFF #define S_00D034_SEM_REQ_STALL(x) (((unsigned)(x) & 0x1) << 27) #define G_00D034_SEM_REQ_STALL(x) (((x) >> 27) & 0x1) #define C_00D034_SEM_REQ_STALL 0xF7FFFFFF #define S_00D034_SEM_RESP_STATE(x) (((unsigned)(x) & 0x3) << 28) #define G_00D034_SEM_RESP_STATE(x) (((x) >> 28) & 0x3) #define C_00D034_SEM_RESP_STATE 0xCFFFFFFF #define S_00D034_INT_IDLE(x) (((unsigned)(x) & 0x1) << 30) #define G_00D034_INT_IDLE(x) (((x) >> 30) & 0x1) #define C_00D034_INT_IDLE 0xBFFFFFFF #define S_00D034_INT_REQ_STALL(x) (((unsigned)(x) & 0x1) << 31) #define G_00D034_INT_REQ_STALL(x) (((x) >> 31) & 0x1) #define C_00D034_INT_REQ_STALL 0x7FFFFFFF #define R_00D834_SDMA1_STATUS_REG 0x00D834 /* <= gfx81 */ #define R_028000_DB_RENDER_CONTROL 0x028000 #define S_028000_DEPTH_CLEAR_ENABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_028000_DEPTH_CLEAR_ENABLE(x) (((x) >> 0) & 0x1) #define C_028000_DEPTH_CLEAR_ENABLE 0xFFFFFFFE #define S_028000_STENCIL_CLEAR_ENABLE(x) (((unsigned)(x) & 0x1) << 1) #define G_028000_STENCIL_CLEAR_ENABLE(x) (((x) >> 1) & 0x1) #define C_028000_STENCIL_CLEAR_ENABLE 0xFFFFFFFD #define S_028000_DEPTH_COPY(x) (((unsigned)(x) & 0x1) << 2) #define G_028000_DEPTH_COPY(x) (((x) >> 2) & 0x1) #define C_028000_DEPTH_COPY 0xFFFFFFFB #define S_028000_STENCIL_COPY(x) (((unsigned)(x) & 0x1) << 3) #define G_028000_STENCIL_COPY(x) (((x) >> 3) & 0x1) #define C_028000_STENCIL_COPY 0xFFFFFFF7 #define S_028000_RESUMMARIZE_ENABLE(x) (((unsigned)(x) & 0x1) << 4) #define G_028000_RESUMMARIZE_ENABLE(x) (((x) >> 4) & 0x1) #define C_028000_RESUMMARIZE_ENABLE 0xFFFFFFEF #define S_028000_STENCIL_COMPRESS_DISABLE(x) (((unsigned)(x) & 0x1) << 5) #define G_028000_STENCIL_COMPRESS_DISABLE(x) (((x) >> 5) & 0x1) #define C_028000_STENCIL_COMPRESS_DISABLE 0xFFFFFFDF #define S_028000_DEPTH_COMPRESS_DISABLE(x) (((unsigned)(x) & 0x1) << 6) #define G_028000_DEPTH_COMPRESS_DISABLE(x) (((x) >> 6) & 0x1) #define C_028000_DEPTH_COMPRESS_DISABLE 0xFFFFFFBF #define S_028000_COPY_CENTROID(x) (((unsigned)(x) & 0x1) << 7) #define G_028000_COPY_CENTROID(x) (((x) >> 7) & 0x1) #define C_028000_COPY_CENTROID 0xFFFFFF7F #define S_028000_COPY_SAMPLE(x) (((unsigned)(x) & 0xF) << 8) #define G_028000_COPY_SAMPLE(x) (((x) >> 8) & 0xF) #define C_028000_COPY_SAMPLE 0xFFFFF0FF #define S_028000_DECOMPRESS_ENABLE(x) (((unsigned)(x) & 0x1) << 12) /* >= gfx8 */ #define G_028000_DECOMPRESS_ENABLE(x) (((x) >> 12) & 0x1) #define C_028000_DECOMPRESS_ENABLE 0xFFFFEFFF #define S_028000_PS_INVOKE_DISABLE(x) (((unsigned)(x) & 0x1) << 13) /* >= gfx103 */ #define G_028000_PS_INVOKE_DISABLE(x) (((x) >> 13) & 0x1) #define C_028000_PS_INVOKE_DISABLE 0xFFFFDFFF #define R_028004_DB_COUNT_CONTROL 0x028004 #define S_028004_ZPASS_INCREMENT_DISABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_028004_ZPASS_INCREMENT_DISABLE(x) (((x) >> 0) & 0x1) #define C_028004_ZPASS_INCREMENT_DISABLE 0xFFFFFFFE #define S_028004_PERFECT_ZPASS_COUNTS(x) (((unsigned)(x) & 0x1) << 1) #define G_028004_PERFECT_ZPASS_COUNTS(x) (((x) >> 1) & 0x1) #define C_028004_PERFECT_ZPASS_COUNTS 0xFFFFFFFD #define S_028004_DISABLE_CONSERVATIVE_ZPASS_COUNTS(x) (((unsigned)(x) & 0x1) << 2) /* >= gfx10 */ #define G_028004_DISABLE_CONSERVATIVE_ZPASS_COUNTS(x) (((x) >> 2) & 0x1) #define C_028004_DISABLE_CONSERVATIVE_ZPASS_COUNTS 0xFFFFFFFB #define S_028004_ENHANCED_CONSERVATIVE_ZPASS_COUNTS(x) (((unsigned)(x) & 0x1) << 3) /* >= gfx10 */ #define G_028004_ENHANCED_CONSERVATIVE_ZPASS_COUNTS(x) (((x) >> 3) & 0x1) #define C_028004_ENHANCED_CONSERVATIVE_ZPASS_COUNTS 0xFFFFFFF7 #define S_028004_SAMPLE_RATE(x) (((unsigned)(x) & 0x7) << 4) #define G_028004_SAMPLE_RATE(x) (((x) >> 4) & 0x7) #define C_028004_SAMPLE_RATE 0xFFFFFF8F #define S_028004_ZPASS_ENABLE(x) (((unsigned)(x) & 0xF) << 8) #define G_028004_ZPASS_ENABLE(x) (((x) >> 8) & 0xF) #define C_028004_ZPASS_ENABLE 0xFFFFF0FF #define S_028004_ZFAIL_ENABLE(x) (((unsigned)(x) & 0xF) << 12) #define G_028004_ZFAIL_ENABLE(x) (((x) >> 12) & 0xF) #define C_028004_ZFAIL_ENABLE 0xFFFF0FFF #define S_028004_SFAIL_ENABLE(x) (((unsigned)(x) & 0xF) << 16) #define G_028004_SFAIL_ENABLE(x) (((x) >> 16) & 0xF) #define C_028004_SFAIL_ENABLE 0xFFF0FFFF #define S_028004_DBFAIL_ENABLE(x) (((unsigned)(x) & 0xF) << 20) #define G_028004_DBFAIL_ENABLE(x) (((x) >> 20) & 0xF) #define C_028004_DBFAIL_ENABLE 0xFF0FFFFF #define S_028004_SLICE_EVEN_ENABLE(x) (((unsigned)(x) & 0xF) << 24) #define G_028004_SLICE_EVEN_ENABLE(x) (((x) >> 24) & 0xF) #define C_028004_SLICE_EVEN_ENABLE 0xF0FFFFFF #define S_028004_SLICE_ODD_ENABLE(x) (((unsigned)(x) & 0xF) << 28) #define G_028004_SLICE_ODD_ENABLE(x) (((x) >> 28) & 0xF) #define C_028004_SLICE_ODD_ENABLE 0x0FFFFFFF #define R_028008_DB_DEPTH_VIEW 0x028008 #define S_028008_SLICE_START(x) (((unsigned)(x) & 0x7FF) << 0) #define G_028008_SLICE_START(x) (((x) >> 0) & 0x7FF) #define C_028008_SLICE_START 0xFFFFF800 #define S_028008_SLICE_START_HI(x) (((unsigned)(x) & 0x3) << 11) /* >= gfx10 */ #define G_028008_SLICE_START_HI(x) (((x) >> 11) & 0x3) #define C_028008_SLICE_START_HI 0xFFFFE7FF #define S_028008_SLICE_MAX(x) (((unsigned)(x) & 0x7FF) << 13) #define G_028008_SLICE_MAX(x) (((x) >> 13) & 0x7FF) #define C_028008_SLICE_MAX 0xFF001FFF #define S_028008_Z_READ_ONLY(x) (((unsigned)(x) & 0x1) << 24) #define G_028008_Z_READ_ONLY(x) (((x) >> 24) & 0x1) #define C_028008_Z_READ_ONLY 0xFEFFFFFF #define S_028008_STENCIL_READ_ONLY(x) (((unsigned)(x) & 0x1) << 25) #define G_028008_STENCIL_READ_ONLY(x) (((x) >> 25) & 0x1) #define C_028008_STENCIL_READ_ONLY 0xFDFFFFFF #define S_028008_MIPID(x) (((unsigned)(x) & 0xF) << 26) /* >= gfx9 */ #define G_028008_MIPID(x) (((x) >> 26) & 0xF) #define C_028008_MIPID 0xC3FFFFFF #define S_028008_SLICE_MAX_HI(x) (((unsigned)(x) & 0x3) << 30) /* >= gfx10 */ #define G_028008_SLICE_MAX_HI(x) (((x) >> 30) & 0x3) #define C_028008_SLICE_MAX_HI 0x3FFFFFFF #define R_02800C_DB_RENDER_OVERRIDE 0x02800C #define S_02800C_FORCE_HIZ_ENABLE(x) (((unsigned)(x) & 0x3) << 0) #define G_02800C_FORCE_HIZ_ENABLE(x) (((x) >> 0) & 0x3) #define C_02800C_FORCE_HIZ_ENABLE 0xFFFFFFFC #define V_02800C_FORCE_OFF 0 #define V_02800C_FORCE_ENABLE 1 #define V_02800C_FORCE_DISABLE 2 #define V_02800C_FORCE_RESERVED 3 #define S_02800C_FORCE_HIS_ENABLE0(x) (((unsigned)(x) & 0x3) << 2) #define G_02800C_FORCE_HIS_ENABLE0(x) (((x) >> 2) & 0x3) #define C_02800C_FORCE_HIS_ENABLE0 0xFFFFFFF3 #define S_02800C_FORCE_HIS_ENABLE1(x) (((unsigned)(x) & 0x3) << 4) #define G_02800C_FORCE_HIS_ENABLE1(x) (((x) >> 4) & 0x3) #define C_02800C_FORCE_HIS_ENABLE1 0xFFFFFFCF #define S_02800C_FORCE_SHADER_Z_ORDER(x) (((unsigned)(x) & 0x1) << 6) #define G_02800C_FORCE_SHADER_Z_ORDER(x) (((x) >> 6) & 0x1) #define C_02800C_FORCE_SHADER_Z_ORDER 0xFFFFFFBF #define S_02800C_FAST_Z_DISABLE(x) (((unsigned)(x) & 0x1) << 7) #define G_02800C_FAST_Z_DISABLE(x) (((x) >> 7) & 0x1) #define C_02800C_FAST_Z_DISABLE 0xFFFFFF7F #define S_02800C_FAST_STENCIL_DISABLE(x) (((unsigned)(x) & 0x1) << 8) #define G_02800C_FAST_STENCIL_DISABLE(x) (((x) >> 8) & 0x1) #define C_02800C_FAST_STENCIL_DISABLE 0xFFFFFEFF #define S_02800C_NOOP_CULL_DISABLE(x) (((unsigned)(x) & 0x1) << 9) #define G_02800C_NOOP_CULL_DISABLE(x) (((x) >> 9) & 0x1) #define C_02800C_NOOP_CULL_DISABLE 0xFFFFFDFF #define S_02800C_FORCE_COLOR_KILL(x) (((unsigned)(x) & 0x1) << 10) #define G_02800C_FORCE_COLOR_KILL(x) (((x) >> 10) & 0x1) #define C_02800C_FORCE_COLOR_KILL 0xFFFFFBFF #define S_02800C_FORCE_Z_READ(x) (((unsigned)(x) & 0x1) << 11) #define G_02800C_FORCE_Z_READ(x) (((x) >> 11) & 0x1) #define C_02800C_FORCE_Z_READ 0xFFFFF7FF #define S_02800C_FORCE_STENCIL_READ(x) (((unsigned)(x) & 0x1) << 12) #define G_02800C_FORCE_STENCIL_READ(x) (((x) >> 12) & 0x1) #define C_02800C_FORCE_STENCIL_READ 0xFFFFEFFF #define S_02800C_FORCE_FULL_Z_RANGE(x) (((unsigned)(x) & 0x3) << 13) #define G_02800C_FORCE_FULL_Z_RANGE(x) (((x) >> 13) & 0x3) #define C_02800C_FORCE_FULL_Z_RANGE 0xFFFF9FFF #define S_02800C_FORCE_QC_SMASK_CONFLICT(x) (((unsigned)(x) & 0x1) << 15) #define G_02800C_FORCE_QC_SMASK_CONFLICT(x) (((x) >> 15) & 0x1) #define C_02800C_FORCE_QC_SMASK_CONFLICT 0xFFFF7FFF #define S_02800C_DISABLE_VIEWPORT_CLAMP(x) (((unsigned)(x) & 0x1) << 16) #define G_02800C_DISABLE_VIEWPORT_CLAMP(x) (((x) >> 16) & 0x1) #define C_02800C_DISABLE_VIEWPORT_CLAMP 0xFFFEFFFF #define S_02800C_IGNORE_SC_ZRANGE(x) (((unsigned)(x) & 0x1) << 17) #define G_02800C_IGNORE_SC_ZRANGE(x) (((x) >> 17) & 0x1) #define C_02800C_IGNORE_SC_ZRANGE 0xFFFDFFFF #define S_02800C_DISABLE_FULLY_COVERED(x) (((unsigned)(x) & 0x1) << 18) #define G_02800C_DISABLE_FULLY_COVERED(x) (((x) >> 18) & 0x1) #define C_02800C_DISABLE_FULLY_COVERED 0xFFFBFFFF #define S_02800C_FORCE_Z_LIMIT_SUMM(x) (((unsigned)(x) & 0x3) << 19) #define G_02800C_FORCE_Z_LIMIT_SUMM(x) (((x) >> 19) & 0x3) #define C_02800C_FORCE_Z_LIMIT_SUMM 0xFFE7FFFF #define V_02800C_FORCE_SUMM_OFF 0 #define V_02800C_FORCE_SUMM_MINZ 1 #define V_02800C_FORCE_SUMM_MAXZ 2 #define V_02800C_FORCE_SUMM_BOTH 3 #define S_02800C_MAX_TILES_IN_DTT(x) (((unsigned)(x) & 0x1F) << 21) #define G_02800C_MAX_TILES_IN_DTT(x) (((x) >> 21) & 0x1F) #define C_02800C_MAX_TILES_IN_DTT 0xFC1FFFFF #define S_02800C_DISABLE_TILE_RATE_TILES(x) (((unsigned)(x) & 0x1) << 26) #define G_02800C_DISABLE_TILE_RATE_TILES(x) (((x) >> 26) & 0x1) #define C_02800C_DISABLE_TILE_RATE_TILES 0xFBFFFFFF #define S_02800C_FORCE_Z_DIRTY(x) (((unsigned)(x) & 0x1) << 27) #define G_02800C_FORCE_Z_DIRTY(x) (((x) >> 27) & 0x1) #define C_02800C_FORCE_Z_DIRTY 0xF7FFFFFF #define S_02800C_FORCE_STENCIL_DIRTY(x) (((unsigned)(x) & 0x1) << 28) #define G_02800C_FORCE_STENCIL_DIRTY(x) (((x) >> 28) & 0x1) #define C_02800C_FORCE_STENCIL_DIRTY 0xEFFFFFFF #define S_02800C_FORCE_Z_VALID(x) (((unsigned)(x) & 0x1) << 29) #define G_02800C_FORCE_Z_VALID(x) (((x) >> 29) & 0x1) #define C_02800C_FORCE_Z_VALID 0xDFFFFFFF #define S_02800C_FORCE_STENCIL_VALID(x) (((unsigned)(x) & 0x1) << 30) #define G_02800C_FORCE_STENCIL_VALID(x) (((x) >> 30) & 0x1) #define C_02800C_FORCE_STENCIL_VALID 0xBFFFFFFF #define S_02800C_PRESERVE_COMPRESSION(x) (((unsigned)(x) & 0x1) << 31) #define G_02800C_PRESERVE_COMPRESSION(x) (((x) >> 31) & 0x1) #define C_02800C_PRESERVE_COMPRESSION 0x7FFFFFFF #define R_028010_DB_RENDER_OVERRIDE2 0x028010 #define S_028010_PARTIAL_SQUAD_LAUNCH_CONTROL(x) (((unsigned)(x) & 0x3) << 0) #define G_028010_PARTIAL_SQUAD_LAUNCH_CONTROL(x) (((x) >> 0) & 0x3) #define C_028010_PARTIAL_SQUAD_LAUNCH_CONTROL 0xFFFFFFFC #define V_028010_PSLC_AUTO 0 #define V_028010_PSLC_ON_HANG_ONLY 1 #define V_028010_PSLC_ASAP 2 #define V_028010_PSLC_COUNTDOWN 3 #define S_028010_PARTIAL_SQUAD_LAUNCH_COUNTDOWN(x) (((unsigned)(x) & 0x7) << 2) #define G_028010_PARTIAL_SQUAD_LAUNCH_COUNTDOWN(x) (((x) >> 2) & 0x7) #define C_028010_PARTIAL_SQUAD_LAUNCH_COUNTDOWN 0xFFFFFFE3 #define S_028010_DISABLE_ZMASK_EXPCLEAR_OPTIMIZATION(x) (((unsigned)(x) & 0x1) << 5) #define G_028010_DISABLE_ZMASK_EXPCLEAR_OPTIMIZATION(x) (((x) >> 5) & 0x1) #define C_028010_DISABLE_ZMASK_EXPCLEAR_OPTIMIZATION 0xFFFFFFDF #define S_028010_DISABLE_SMEM_EXPCLEAR_OPTIMIZATION(x) (((unsigned)(x) & 0x1) << 6) #define G_028010_DISABLE_SMEM_EXPCLEAR_OPTIMIZATION(x) (((x) >> 6) & 0x1) #define C_028010_DISABLE_SMEM_EXPCLEAR_OPTIMIZATION 0xFFFFFFBF #define S_028010_DISABLE_COLOR_ON_VALIDATION(x) (((unsigned)(x) & 0x1) << 7) #define G_028010_DISABLE_COLOR_ON_VALIDATION(x) (((x) >> 7) & 0x1) #define C_028010_DISABLE_COLOR_ON_VALIDATION 0xFFFFFF7F #define S_028010_DECOMPRESS_Z_ON_FLUSH(x) (((unsigned)(x) & 0x1) << 8) #define G_028010_DECOMPRESS_Z_ON_FLUSH(x) (((x) >> 8) & 0x1) #define C_028010_DECOMPRESS_Z_ON_FLUSH 0xFFFFFEFF #define S_028010_DISABLE_REG_SNOOP(x) (((unsigned)(x) & 0x1) << 9) #define G_028010_DISABLE_REG_SNOOP(x) (((x) >> 9) & 0x1) #define C_028010_DISABLE_REG_SNOOP 0xFFFFFDFF #define S_028010_DEPTH_BOUNDS_HIER_DEPTH_DISABLE(x) (((unsigned)(x) & 0x1) << 10) #define G_028010_DEPTH_BOUNDS_HIER_DEPTH_DISABLE(x) (((x) >> 10) & 0x1) #define C_028010_DEPTH_BOUNDS_HIER_DEPTH_DISABLE 0xFFFFFBFF #define S_028010_SEPARATE_HIZS_FUNC_ENABLE(x) (((unsigned)(x) & 0x1) << 11) #define G_028010_SEPARATE_HIZS_FUNC_ENABLE(x) (((x) >> 11) & 0x1) #define C_028010_SEPARATE_HIZS_FUNC_ENABLE 0xFFFFF7FF #define S_028010_HIZ_ZFUNC(x) (((unsigned)(x) & 0x7) << 12) #define G_028010_HIZ_ZFUNC(x) (((x) >> 12) & 0x7) #define C_028010_HIZ_ZFUNC 0xFFFF8FFF #define V_028010_FRAG_NEVER 0 #define V_028010_FRAG_LESS 1 #define V_028010_FRAG_EQUAL 2 #define V_028010_FRAG_LEQUAL 3 #define V_028010_FRAG_GREATER 4 #define V_028010_FRAG_NOTEQUAL 5 #define V_028010_FRAG_GEQUAL 6 #define V_028010_FRAG_ALWAYS 7 #define S_028010_HIS_SFUNC_FF(x) (((unsigned)(x) & 0x7) << 15) #define G_028010_HIS_SFUNC_FF(x) (((x) >> 15) & 0x7) #define C_028010_HIS_SFUNC_FF 0xFFFC7FFF #define S_028010_HIS_SFUNC_BF(x) (((unsigned)(x) & 0x7) << 18) #define G_028010_HIS_SFUNC_BF(x) (((x) >> 18) & 0x7) #define C_028010_HIS_SFUNC_BF 0xFFE3FFFF #define S_028010_PRESERVE_ZRANGE(x) (((unsigned)(x) & 0x1) << 21) #define G_028010_PRESERVE_ZRANGE(x) (((x) >> 21) & 0x1) #define C_028010_PRESERVE_ZRANGE 0xFFDFFFFF #define S_028010_PRESERVE_SRESULTS(x) (((unsigned)(x) & 0x1) << 22) #define G_028010_PRESERVE_SRESULTS(x) (((x) >> 22) & 0x1) #define C_028010_PRESERVE_SRESULTS 0xFFBFFFFF #define S_028010_DISABLE_FAST_PASS(x) (((unsigned)(x) & 0x1) << 23) #define G_028010_DISABLE_FAST_PASS(x) (((x) >> 23) & 0x1) #define C_028010_DISABLE_FAST_PASS 0xFF7FFFFF #define S_028010_ALLOW_PARTIAL_RES_HIER_KILL(x) (((unsigned)(x) & 0x1) << 25) /* >= gfx9 */ #define G_028010_ALLOW_PARTIAL_RES_HIER_KILL(x) (((x) >> 25) & 0x1) #define C_028010_ALLOW_PARTIAL_RES_HIER_KILL 0xFDFFFFFF #define S_028010_FORCE_VRS_RATE_FINE(x) (((unsigned)(x) & 0x1) << 26) /* >= gfx103 */ #define G_028010_FORCE_VRS_RATE_FINE(x) (((x) >> 26) & 0x1) #define C_028010_FORCE_VRS_RATE_FINE 0xFBFFFFFF #define S_028010_CENTROID_COMPUTATION_MODE(x) (((unsigned)(x) & 0x3) << 27) /* >= gfx103 */ #define G_028010_CENTROID_COMPUTATION_MODE(x) (((x) >> 27) & 0x3) #define C_028010_CENTROID_COMPUTATION_MODE 0xE7FFFFFF #define R_028014_DB_HTILE_DATA_BASE 0x028014 #define R_028018_DB_HTILE_DATA_BASE_HI 0x028018 /* gfx9 */ #define S_028018_BASE_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_028018_BASE_HI(x) (((x) >> 0) & 0xFF) #define C_028018_BASE_HI 0xFFFFFF00 #define R_02801C_DB_DEPTH_SIZE 0x02801C /* gfx9 */ #define S_02801C_X_MAX(x) (((unsigned)(x) & 0x3FFF) << 0) #define G_02801C_X_MAX(x) (((x) >> 0) & 0x3FFF) #define C_02801C_X_MAX 0xFFFFC000 #define S_02801C_Y_MAX(x) (((unsigned)(x) & 0x3FFF) << 16) #define G_02801C_Y_MAX(x) (((x) >> 16) & 0x3FFF) #define C_02801C_Y_MAX 0xC000FFFF #define R_02801C_DB_DEPTH_SIZE_XY 0x02801C /* >= gfx10 */ #define R_028020_DB_DEPTH_BOUNDS_MIN 0x028020 #define R_028024_DB_DEPTH_BOUNDS_MAX 0x028024 #define R_028028_DB_STENCIL_CLEAR 0x028028 #define S_028028_CLEAR(x) (((unsigned)(x) & 0xFF) << 0) #define G_028028_CLEAR(x) (((x) >> 0) & 0xFF) #define C_028028_CLEAR 0xFFFFFF00 #define R_02802C_DB_DEPTH_CLEAR 0x02802C #define R_028030_PA_SC_SCREEN_SCISSOR_TL 0x028030 #define S_028030_TL_X(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_028030_TL_X(x) (((x) >> 0) & 0xFFFF) #define C_028030_TL_X 0xFFFF0000 #define S_028030_TL_Y(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_028030_TL_Y(x) (((x) >> 16) & 0xFFFF) #define C_028030_TL_Y 0x0000FFFF #define R_028034_PA_SC_SCREEN_SCISSOR_BR 0x028034 #define S_028034_BR_X(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_028034_BR_X(x) (((x) >> 0) & 0xFFFF) #define C_028034_BR_X 0xFFFF0000 #define S_028034_BR_Y(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_028034_BR_Y(x) (((x) >> 16) & 0xFFFF) #define C_028034_BR_Y 0x0000FFFF #define R_028038_DB_DFSM_CONTROL 0x028038 /* >= gfx10 */ #define S_028038_PUNCHOUT_MODE(x) (((unsigned)(x) & 0x3) << 0) #define G_028038_PUNCHOUT_MODE(x) (((x) >> 0) & 0x3) #define C_028038_PUNCHOUT_MODE 0xFFFFFFFC #define V_028038_AUTO 0 #define V_028038_FORCE_ON 1 #define V_028038_FORCE_OFF 2 #define V_028038_RESERVED 3 #define S_028038_POPS_DRAIN_PS_ON_OVERLAP(x) (((unsigned)(x) & 0x1) << 2) #define G_028038_POPS_DRAIN_PS_ON_OVERLAP(x) (((x) >> 2) & 0x1) #define C_028038_POPS_DRAIN_PS_ON_OVERLAP 0xFFFFFFFB #define S_028038_DISALLOW_OVERFLOW(x) (((unsigned)(x) & 0x1) << 3) #define G_028038_DISALLOW_OVERFLOW(x) (((x) >> 3) & 0x1) #define C_028038_DISALLOW_OVERFLOW 0xFFFFFFF7 #define R_028038_DB_Z_INFO 0x028038 /* gfx9 */ #define S_028038_FORMAT(x) (((unsigned)(x) & 0x3) << 0) #define G_028038_FORMAT(x) (((x) >> 0) & 0x3) #define C_028038_FORMAT 0xFFFFFFFC #define V_028038_Z_INVALID 0 #define V_028038_Z_16 1 #define V_028038_Z_24 2 #define V_028038_Z_32_FLOAT 3 #define S_028038_NUM_SAMPLES(x) (((unsigned)(x) & 0x3) << 2) #define G_028038_NUM_SAMPLES(x) (((x) >> 2) & 0x3) #define C_028038_NUM_SAMPLES 0xFFFFFFF3 #define S_028038_SW_MODE(x) (((unsigned)(x) & 0x1F) << 4) #define G_028038_SW_MODE(x) (((x) >> 4) & 0x1F) #define C_028038_SW_MODE 0xFFFFFE0F #define S_028038_PARTIALLY_RESIDENT(x) (((unsigned)(x) & 0x1) << 12) #define G_028038_PARTIALLY_RESIDENT(x) (((x) >> 12) & 0x1) #define C_028038_PARTIALLY_RESIDENT 0xFFFFEFFF #define S_028038_FAULT_BEHAVIOR(x) (((unsigned)(x) & 0x3) << 13) #define G_028038_FAULT_BEHAVIOR(x) (((x) >> 13) & 0x3) #define C_028038_FAULT_BEHAVIOR 0xFFFF9FFF #define V_028038_FAULT_ZERO 0 #define V_028038_FAULT_ONE 1 #define V_028038_FAULT_FAIL 2 #define V_028038_FAULT_PASS 3 #define S_028038_ITERATE_FLUSH(x) (((unsigned)(x) & 0x1) << 15) #define G_028038_ITERATE_FLUSH(x) (((x) >> 15) & 0x1) #define C_028038_ITERATE_FLUSH 0xFFFF7FFF #define S_028038_MAXMIP(x) (((unsigned)(x) & 0xF) << 16) #define G_028038_MAXMIP(x) (((x) >> 16) & 0xF) #define C_028038_MAXMIP 0xFFF0FFFF #define S_028038_DECOMPRESS_ON_N_ZPLANES(x) (((unsigned)(x) & 0xF) << 23) #define G_028038_DECOMPRESS_ON_N_ZPLANES(x) (((x) >> 23) & 0xF) #define C_028038_DECOMPRESS_ON_N_ZPLANES 0xF87FFFFF #define S_028038_ALLOW_EXPCLEAR(x) (((unsigned)(x) & 0x1) << 27) #define G_028038_ALLOW_EXPCLEAR(x) (((x) >> 27) & 0x1) #define C_028038_ALLOW_EXPCLEAR 0xF7FFFFFF #define S_028038_READ_SIZE(x) (((unsigned)(x) & 0x1) << 28) #define G_028038_READ_SIZE(x) (((x) >> 28) & 0x1) #define C_028038_READ_SIZE 0xEFFFFFFF #define S_028038_TILE_SURFACE_ENABLE(x) (((unsigned)(x) & 0x1) << 29) #define G_028038_TILE_SURFACE_ENABLE(x) (((x) >> 29) & 0x1) #define C_028038_TILE_SURFACE_ENABLE 0xDFFFFFFF #define S_028038_CLEAR_DISALLOWED(x) (((unsigned)(x) & 0x1) << 30) #define G_028038_CLEAR_DISALLOWED(x) (((x) >> 30) & 0x1) #define C_028038_CLEAR_DISALLOWED 0xBFFFFFFF #define S_028038_ZRANGE_PRECISION(x) (((unsigned)(x) & 0x1) << 31) #define G_028038_ZRANGE_PRECISION(x) (((x) >> 31) & 0x1) #define C_028038_ZRANGE_PRECISION 0x7FFFFFFF #define R_02803C_DB_DEPTH_INFO 0x02803C /* <= gfx81 */ #define S_02803C_ADDR5_SWIZZLE_MASK(x) (((unsigned)(x) & 0xF) << 0) #define G_02803C_ADDR5_SWIZZLE_MASK(x) (((x) >> 0) & 0xF) #define C_02803C_ADDR5_SWIZZLE_MASK 0xFFFFFFF0 #define S_02803C_ARRAY_MODE(x) (((unsigned)(x) & 0xF) << 4) #define G_02803C_ARRAY_MODE(x) (((x) >> 4) & 0xF) #define C_02803C_ARRAY_MODE 0xFFFFFF0F #define V_02803C_ARRAY_LINEAR_GENERAL 0 #define V_02803C_ARRAY_LINEAR_ALIGNED 1 #define V_02803C_ARRAY_1D_TILED_THIN1 2 #define V_02803C_ARRAY_1D_TILED_THICK 3 #define V_02803C_ARRAY_2D_TILED_THIN1 4 #define V_02803C_ARRAY_PRT_TILED_THIN1 5 #define V_02803C_ARRAY_PRT_2D_TILED_THIN1 6 #define V_02803C_ARRAY_2D_TILED_THICK 7 #define V_02803C_ARRAY_2D_TILED_XTHICK 8 #define V_02803C_ARRAY_PRT_TILED_THICK 9 #define V_02803C_ARRAY_PRT_2D_TILED_THICK 10 #define V_02803C_ARRAY_PRT_3D_TILED_THIN1 11 #define V_02803C_ARRAY_3D_TILED_THIN1 12 #define V_02803C_ARRAY_3D_TILED_THICK 13 #define V_02803C_ARRAY_3D_TILED_XTHICK 14 #define V_02803C_ARRAY_PRT_3D_TILED_THICK 15 #define S_02803C_PIPE_CONFIG(x) (((unsigned)(x) & 0x1F) << 8) #define G_02803C_PIPE_CONFIG(x) (((x) >> 8) & 0x1F) #define C_02803C_PIPE_CONFIG 0xFFFFE0FF #define V_02803C_ADDR_SURF_P2 0 #define V_02803C_ADDR_SURF_P2_RESERVED0 1 #define V_02803C_ADDR_SURF_P2_RESERVED1 2 #define V_02803C_ADDR_SURF_P2_RESERVED2 3 #define V_02803C_ADDR_SURF_P4_8x16 4 #define V_02803C_ADDR_SURF_P4_16x16 5 #define V_02803C_ADDR_SURF_P4_16x32 6 #define V_02803C_ADDR_SURF_P4_32x32 7 #define V_02803C_ADDR_SURF_P8_16x16_8x16 8 #define V_02803C_ADDR_SURF_P8_16x32_8x16 9 #define V_02803C_ADDR_SURF_P8_32x32_8x16 10 #define V_02803C_ADDR_SURF_P8_16x32_16x16 11 #define V_02803C_ADDR_SURF_P8_32x32_16x16 12 #define V_02803C_ADDR_SURF_P8_32x32_16x32 13 #define V_02803C_ADDR_SURF_P8_32x64_32x32 14 #define V_02803C_ADDR_SURF_P8_RESERVED0 15 #define V_02803C_ADDR_SURF_P16_32x32_8x16 16 #define V_02803C_ADDR_SURF_P16_32x32_16x16 17 #define S_02803C_BANK_WIDTH(x) (((unsigned)(x) & 0x3) << 13) #define G_02803C_BANK_WIDTH(x) (((x) >> 13) & 0x3) #define C_02803C_BANK_WIDTH 0xFFFF9FFF #define V_02803C_ADDR_SURF_BANK_WIDTH_1 0 #define V_02803C_ADDR_SURF_BANK_WIDTH_2 1 #define V_02803C_ADDR_SURF_BANK_WIDTH_4 2 #define V_02803C_ADDR_SURF_BANK_WIDTH_8 3 #define S_02803C_BANK_HEIGHT(x) (((unsigned)(x) & 0x3) << 15) #define G_02803C_BANK_HEIGHT(x) (((x) >> 15) & 0x3) #define C_02803C_BANK_HEIGHT 0xFFFE7FFF #define V_02803C_ADDR_SURF_BANK_HEIGHT_1 0 #define V_02803C_ADDR_SURF_BANK_HEIGHT_2 1 #define V_02803C_ADDR_SURF_BANK_HEIGHT_4 2 #define V_02803C_ADDR_SURF_BANK_HEIGHT_8 3 #define S_02803C_MACRO_TILE_ASPECT(x) (((unsigned)(x) & 0x3) << 17) #define G_02803C_MACRO_TILE_ASPECT(x) (((x) >> 17) & 0x3) #define C_02803C_MACRO_TILE_ASPECT 0xFFF9FFFF #define V_02803C_ADDR_SURF_MACRO_ASPECT_1 0 #define V_02803C_ADDR_SURF_MACRO_ASPECT_2 1 #define V_02803C_ADDR_SURF_MACRO_ASPECT_4 2 #define V_02803C_ADDR_SURF_MACRO_ASPECT_8 3 #define S_02803C_NUM_BANKS(x) (((unsigned)(x) & 0x3) << 19) #define G_02803C_NUM_BANKS(x) (((x) >> 19) & 0x3) #define C_02803C_NUM_BANKS 0xFFE7FFFF #define V_02803C_ADDR_SURF_2_BANK 0 #define V_02803C_ADDR_SURF_4_BANK 1 #define V_02803C_ADDR_SURF_8_BANK 2 #define V_02803C_ADDR_SURF_16_BANK 3 #define R_02803C_DB_RESERVED_REG_2 0x02803C /* >= gfx10 */ #define S_02803C_FIELD_1(x) (((unsigned)(x) & 0xF) << 0) #define G_02803C_FIELD_1(x) (((x) >> 0) & 0xF) #define C_02803C_FIELD_1 0xFFFFFFF0 #define S_02803C_FIELD_2(x) (((unsigned)(x) & 0xF) << 4) #define G_02803C_FIELD_2(x) (((x) >> 4) & 0xF) #define C_02803C_FIELD_2 0xFFFFFF0F #define S_02803C_FIELD_3(x) (((unsigned)(x) & 0x1F) << 8) #define G_02803C_FIELD_3(x) (((x) >> 8) & 0x1F) #define C_02803C_FIELD_3 0xFFFFE0FF #define S_02803C_FIELD_4(x) (((unsigned)(x) & 0x3) << 13) #define G_02803C_FIELD_4(x) (((x) >> 13) & 0x3) #define C_02803C_FIELD_4 0xFFFF9FFF #define S_02803C_FIELD_5(x) (((unsigned)(x) & 0x3) << 15) #define G_02803C_FIELD_5(x) (((x) >> 15) & 0x3) #define C_02803C_FIELD_5 0xFFFE7FFF #define S_02803C_FIELD_6(x) (((unsigned)(x) & 0x3) << 17) #define G_02803C_FIELD_6(x) (((x) >> 17) & 0x3) #define C_02803C_FIELD_6 0xFFF9FFFF #define S_02803C_FIELD_7(x) (((unsigned)(x) & 0x3) << 19) #define G_02803C_FIELD_7(x) (((x) >> 19) & 0x3) #define C_02803C_FIELD_7 0xFFE7FFFF #define S_02803C_RESOURCE_LEVEL(x) (((unsigned)(x) & 0xF) << 28) #define G_02803C_RESOURCE_LEVEL(x) (((x) >> 28) & 0xF) #define C_02803C_RESOURCE_LEVEL 0x0FFFFFFF #define R_02803C_DB_STENCIL_INFO 0x02803C /* gfx9 */ #define S_02803C_FORMAT(x) (((unsigned)(x) & 0x1) << 0) #define G_02803C_FORMAT(x) (((x) >> 0) & 0x1) #define C_02803C_FORMAT 0xFFFFFFFE #define V_02803C_STENCIL_INVALID 0 #define V_02803C_STENCIL_8 1 #define S_02803C_SW_MODE(x) (((unsigned)(x) & 0x1F) << 4) #define G_02803C_SW_MODE(x) (((x) >> 4) & 0x1F) #define C_02803C_SW_MODE 0xFFFFFE0F #define S_02803C_PARTIALLY_RESIDENT(x) (((unsigned)(x) & 0x1) << 12) #define G_02803C_PARTIALLY_RESIDENT(x) (((x) >> 12) & 0x1) #define C_02803C_PARTIALLY_RESIDENT 0xFFFFEFFF #define S_02803C_FAULT_BEHAVIOR(x) (((unsigned)(x) & 0x3) << 13) #define G_02803C_FAULT_BEHAVIOR(x) (((x) >> 13) & 0x3) #define C_02803C_FAULT_BEHAVIOR 0xFFFF9FFF #define V_02803C_FAULT_ZERO 0 #define V_02803C_FAULT_ONE 1 #define V_02803C_FAULT_FAIL 2 #define V_02803C_FAULT_PASS 3 #define S_02803C_ITERATE_FLUSH(x) (((unsigned)(x) & 0x1) << 15) #define G_02803C_ITERATE_FLUSH(x) (((x) >> 15) & 0x1) #define C_02803C_ITERATE_FLUSH 0xFFFF7FFF #define S_02803C_ALLOW_EXPCLEAR(x) (((unsigned)(x) & 0x1) << 27) #define G_02803C_ALLOW_EXPCLEAR(x) (((x) >> 27) & 0x1) #define C_02803C_ALLOW_EXPCLEAR 0xF7FFFFFF #define S_02803C_TILE_STENCIL_DISABLE(x) (((unsigned)(x) & 0x1) << 29) #define G_02803C_TILE_STENCIL_DISABLE(x) (((x) >> 29) & 0x1) #define C_02803C_TILE_STENCIL_DISABLE 0xDFFFFFFF #define S_02803C_CLEAR_DISALLOWED(x) (((unsigned)(x) & 0x1) << 30) #define G_02803C_CLEAR_DISALLOWED(x) (((x) >> 30) & 0x1) #define C_02803C_CLEAR_DISALLOWED 0xBFFFFFFF #define R_028040_DB_Z_INFO 0x028040 /* <= gfx81, >= gfx10 */ #define S_028040_FORMAT(x) (((unsigned)(x) & 0x3) << 0) #define G_028040_FORMAT(x) (((x) >> 0) & 0x3) #define C_028040_FORMAT 0xFFFFFFFC #define V_028040_Z_INVALID 0 #define V_028040_Z_16 1 #define V_028040_Z_24 2 #define V_028040_Z_32_FLOAT 3 #define S_028040_NUM_SAMPLES(x) (((unsigned)(x) & 0x3) << 2) #define G_028040_NUM_SAMPLES(x) (((x) >> 2) & 0x3) #define C_028040_NUM_SAMPLES 0xFFFFFFF3 #define S_028040_SW_MODE(x) (((unsigned)(x) & 0x1F) << 4) /* >= gfx10 */ #define G_028040_SW_MODE(x) (((x) >> 4) & 0x1F) #define C_028040_SW_MODE 0xFFFFFE0F #define S_028040_FAULT_BEHAVIOR(x) (((unsigned)(x) & 0x3) << 9) /* >= gfx10 */ #define G_028040_FAULT_BEHAVIOR(x) (((x) >> 9) & 0x3) #define C_028040_FAULT_BEHAVIOR 0xFFFFF9FF #define V_028040_FAULT_ZERO 0 #define V_028040_FAULT_ONE 1 #define V_028040_FAULT_FAIL 2 #define V_028040_FAULT_PASS 3 #define S_028040_ITERATE_FLUSH(x) (((unsigned)(x) & 0x1) << 11) /* >= gfx10 */ #define G_028040_ITERATE_FLUSH(x) (((x) >> 11) & 0x1) #define C_028040_ITERATE_FLUSH 0xFFFFF7FF #define S_028040_PARTIALLY_RESIDENT(x) (((unsigned)(x) & 0x1) << 12) /* >= gfx10 */ #define G_028040_PARTIALLY_RESIDENT(x) (((x) >> 12) & 0x1) #define C_028040_PARTIALLY_RESIDENT 0xFFFFEFFF #define S_028040_RESERVED_FIELD_1(x) (((unsigned)(x) & 0x7) << 13) /* >= gfx10 */ #define G_028040_RESERVED_FIELD_1(x) (((x) >> 13) & 0x7) #define C_028040_RESERVED_FIELD_1 0xFFFF1FFF #define S_028040_TILE_SPLIT(x) (((unsigned)(x) & 0x7) << 13) /* <= gfx81 */ #define G_028040_TILE_SPLIT(x) (((x) >> 13) & 0x7) #define C_028040_TILE_SPLIT 0xFFFF1FFF #define V_028040_ADDR_SURF_TILE_SPLIT_64B 0 #define V_028040_ADDR_SURF_TILE_SPLIT_128B 1 #define V_028040_ADDR_SURF_TILE_SPLIT_256B 2 #define V_028040_ADDR_SURF_TILE_SPLIT_512B 3 #define V_028040_ADDR_SURF_TILE_SPLIT_1KB 4 #define V_028040_ADDR_SURF_TILE_SPLIT_2KB 5 #define V_028040_ADDR_SURF_TILE_SPLIT_4KB 6 #define S_028040_MAXMIP(x) (((unsigned)(x) & 0xF) << 16) /* >= gfx10 */ #define G_028040_MAXMIP(x) (((x) >> 16) & 0xF) #define C_028040_MAXMIP 0xFFF0FFFF #define S_028040_ITERATE_256(x) (((unsigned)(x) & 0x1) << 20) /* >= gfx10 */ #define G_028040_ITERATE_256(x) (((x) >> 20) & 0x1) #define C_028040_ITERATE_256 0xFFEFFFFF #define S_028040_TILE_MODE_INDEX(x) (((unsigned)(x) & 0x7) << 20) /* <= gfx81 */ #define G_028040_TILE_MODE_INDEX(x) (((x) >> 20) & 0x7) #define C_028040_TILE_MODE_INDEX 0xFF8FFFFF #define S_028040_DECOMPRESS_ON_N_ZPLANES(x) (((unsigned)(x) & 0xF) << 23) /* gfx8, gfx81, >= gfx10 */ #define G_028040_DECOMPRESS_ON_N_ZPLANES(x) (((x) >> 23) & 0xF) #define C_028040_DECOMPRESS_ON_N_ZPLANES 0xF87FFFFF #define S_028040_ALLOW_EXPCLEAR(x) (((unsigned)(x) & 0x1) << 27) #define G_028040_ALLOW_EXPCLEAR(x) (((x) >> 27) & 0x1) #define C_028040_ALLOW_EXPCLEAR 0xF7FFFFFF #define S_028040_READ_SIZE(x) (((unsigned)(x) & 0x1) << 28) #define G_028040_READ_SIZE(x) (((x) >> 28) & 0x1) #define C_028040_READ_SIZE 0xEFFFFFFF #define S_028040_TILE_SURFACE_ENABLE(x) (((unsigned)(x) & 0x1) << 29) #define G_028040_TILE_SURFACE_ENABLE(x) (((x) >> 29) & 0x1) #define C_028040_TILE_SURFACE_ENABLE 0xDFFFFFFF #define S_028040_CLEAR_DISALLOWED(x) (((unsigned)(x) & 0x1) << 30) /* gfx8, gfx81 */ #define G_028040_CLEAR_DISALLOWED(x) (((x) >> 30) & 0x1) #define C_028040_CLEAR_DISALLOWED 0xBFFFFFFF #define S_028040_ZRANGE_PRECISION(x) (((unsigned)(x) & 0x1) << 31) #define G_028040_ZRANGE_PRECISION(x) (((x) >> 31) & 0x1) #define C_028040_ZRANGE_PRECISION 0x7FFFFFFF #define R_028040_DB_Z_READ_BASE 0x028040 /* gfx9 */ #define R_028044_DB_STENCIL_INFO 0x028044 /* <= gfx81, >= gfx10 */ #define S_028044_FORMAT(x) (((unsigned)(x) & 0x1) << 0) #define G_028044_FORMAT(x) (((x) >> 0) & 0x1) #define C_028044_FORMAT 0xFFFFFFFE #define V_028044_STENCIL_INVALID 0 #define V_028044_STENCIL_8 1 #define S_028044_SW_MODE(x) (((unsigned)(x) & 0x1F) << 4) /* >= gfx10 */ #define G_028044_SW_MODE(x) (((x) >> 4) & 0x1F) #define C_028044_SW_MODE 0xFFFFFE0F #define S_028044_FAULT_BEHAVIOR(x) (((unsigned)(x) & 0x3) << 9) /* >= gfx10 */ #define G_028044_FAULT_BEHAVIOR(x) (((x) >> 9) & 0x3) #define C_028044_FAULT_BEHAVIOR 0xFFFFF9FF #define V_028044_FAULT_ZERO 0 #define V_028044_FAULT_ONE 1 #define V_028044_FAULT_FAIL 2 #define V_028044_FAULT_PASS 3 #define S_028044_ITERATE_FLUSH(x) (((unsigned)(x) & 0x1) << 11) /* >= gfx10 */ #define G_028044_ITERATE_FLUSH(x) (((x) >> 11) & 0x1) #define C_028044_ITERATE_FLUSH 0xFFFFF7FF #define S_028044_PARTIALLY_RESIDENT(x) (((unsigned)(x) & 0x1) << 12) /* >= gfx10 */ #define G_028044_PARTIALLY_RESIDENT(x) (((x) >> 12) & 0x1) #define C_028044_PARTIALLY_RESIDENT 0xFFFFEFFF #define S_028044_RESERVED_FIELD_1(x) (((unsigned)(x) & 0x7) << 13) /* >= gfx10 */ #define G_028044_RESERVED_FIELD_1(x) (((x) >> 13) & 0x7) #define C_028044_RESERVED_FIELD_1 0xFFFF1FFF #define S_028044_TILE_SPLIT(x) (((unsigned)(x) & 0x7) << 13) /* <= gfx81 */ #define G_028044_TILE_SPLIT(x) (((x) >> 13) & 0x7) #define C_028044_TILE_SPLIT 0xFFFF1FFF #define V_028044_ADDR_SURF_TILE_SPLIT_64B 0 #define V_028044_ADDR_SURF_TILE_SPLIT_128B 1 #define V_028044_ADDR_SURF_TILE_SPLIT_256B 2 #define V_028044_ADDR_SURF_TILE_SPLIT_512B 3 #define V_028044_ADDR_SURF_TILE_SPLIT_1KB 4 #define V_028044_ADDR_SURF_TILE_SPLIT_2KB 5 #define V_028044_ADDR_SURF_TILE_SPLIT_4KB 6 #define S_028044_ITERATE_256(x) (((unsigned)(x) & 0x1) << 20) /* >= gfx10 */ #define G_028044_ITERATE_256(x) (((x) >> 20) & 0x1) #define C_028044_ITERATE_256 0xFFEFFFFF #define S_028044_TILE_MODE_INDEX(x) (((unsigned)(x) & 0x7) << 20) /* <= gfx81 */ #define G_028044_TILE_MODE_INDEX(x) (((x) >> 20) & 0x7) #define C_028044_TILE_MODE_INDEX 0xFF8FFFFF #define S_028044_ALLOW_EXPCLEAR(x) (((unsigned)(x) & 0x1) << 27) #define G_028044_ALLOW_EXPCLEAR(x) (((x) >> 27) & 0x1) #define C_028044_ALLOW_EXPCLEAR 0xF7FFFFFF #define S_028044_TILE_STENCIL_DISABLE(x) (((unsigned)(x) & 0x1) << 29) #define G_028044_TILE_STENCIL_DISABLE(x) (((x) >> 29) & 0x1) #define C_028044_TILE_STENCIL_DISABLE 0xDFFFFFFF #define S_028044_CLEAR_DISALLOWED(x) (((unsigned)(x) & 0x1) << 30) /* gfx8, gfx81 */ #define G_028044_CLEAR_DISALLOWED(x) (((x) >> 30) & 0x1) #define C_028044_CLEAR_DISALLOWED 0xBFFFFFFF #define R_028044_DB_Z_READ_BASE_HI 0x028044 /* gfx9 */ #define S_028044_BASE_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_028044_BASE_HI(x) (((x) >> 0) & 0xFF) #define C_028044_BASE_HI 0xFFFFFF00 #define R_028048_DB_STENCIL_READ_BASE 0x028048 /* gfx9 */ #define R_028048_DB_Z_READ_BASE 0x028048 /* <= gfx81, >= gfx10 */ #define R_02804C_DB_STENCIL_READ_BASE 0x02804C /* <= gfx81, >= gfx10 */ #define R_02804C_DB_STENCIL_READ_BASE_HI 0x02804C /* gfx9 */ #define S_02804C_BASE_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_02804C_BASE_HI(x) (((x) >> 0) & 0xFF) #define C_02804C_BASE_HI 0xFFFFFF00 #define R_028050_DB_Z_WRITE_BASE 0x028050 #define R_028054_DB_STENCIL_WRITE_BASE 0x028054 /* <= gfx81, >= gfx10 */ #define R_028054_DB_Z_WRITE_BASE_HI 0x028054 /* gfx9 */ #define S_028054_BASE_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_028054_BASE_HI(x) (((x) >> 0) & 0xFF) #define C_028054_BASE_HI 0xFFFFFF00 #define R_028058_DB_DEPTH_SIZE 0x028058 /* <= gfx81 */ #define S_028058_PITCH_TILE_MAX(x) (((unsigned)(x) & 0x7FF) << 0) #define G_028058_PITCH_TILE_MAX(x) (((x) >> 0) & 0x7FF) #define C_028058_PITCH_TILE_MAX 0xFFFFF800 #define S_028058_HEIGHT_TILE_MAX(x) (((unsigned)(x) & 0x7FF) << 11) #define G_028058_HEIGHT_TILE_MAX(x) (((x) >> 11) & 0x7FF) #define C_028058_HEIGHT_TILE_MAX 0xFFC007FF #define R_028058_DB_RESERVED_REG_1 0x028058 /* >= gfx10 */ #define S_028058_FIELD_1(x) (((unsigned)(x) & 0x7FF) << 0) #define G_028058_FIELD_1(x) (((x) >> 0) & 0x7FF) #define C_028058_FIELD_1 0xFFFFF800 #define S_028058_FIELD_2(x) (((unsigned)(x) & 0x7FF) << 11) #define G_028058_FIELD_2(x) (((x) >> 11) & 0x7FF) #define C_028058_FIELD_2 0xFFC007FF #define R_028058_DB_STENCIL_WRITE_BASE 0x028058 /* gfx9 */ #define R_02805C_DB_DEPTH_SLICE 0x02805C /* <= gfx81 */ #define S_02805C_SLICE_TILE_MAX(x) (((unsigned)(x) & 0x3FFFFF) << 0) #define G_02805C_SLICE_TILE_MAX(x) (((x) >> 0) & 0x3FFFFF) #define C_02805C_SLICE_TILE_MAX 0xFFC00000 #define R_02805C_DB_RESERVED_REG_3 0x02805C /* >= gfx10 */ #define S_02805C_FIELD_1(x) (((unsigned)(x) & 0x3FFFFF) << 0) #define G_02805C_FIELD_1(x) (((x) >> 0) & 0x3FFFFF) #define C_02805C_FIELD_1 0xFFC00000 #define R_02805C_DB_STENCIL_WRITE_BASE_HI 0x02805C /* gfx9 */ #define S_02805C_BASE_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_02805C_BASE_HI(x) (((x) >> 0) & 0xFF) #define C_02805C_BASE_HI 0xFFFFFF00 #define R_028060_DB_DFSM_CONTROL 0x028060 /* gfx9 */ #define S_028060_PUNCHOUT_MODE(x) (((unsigned)(x) & 0x3) << 0) #define G_028060_PUNCHOUT_MODE(x) (((x) >> 0) & 0x3) #define C_028060_PUNCHOUT_MODE 0xFFFFFFFC #define V_028060_AUTO 0 #define V_028060_FORCE_ON 1 #define V_028060_FORCE_OFF 2 #define V_028060_RESERVED 3 #define S_028060_POPS_DRAIN_PS_ON_OVERLAP(x) (((unsigned)(x) & 0x1) << 2) #define G_028060_POPS_DRAIN_PS_ON_OVERLAP(x) (((x) >> 2) & 0x1) #define C_028060_POPS_DRAIN_PS_ON_OVERLAP 0xFFFFFFFB #define S_028060_DISALLOW_OVERFLOW(x) (((unsigned)(x) & 0x1) << 3) #define G_028060_DISALLOW_OVERFLOW(x) (((x) >> 3) & 0x1) #define C_028060_DISALLOW_OVERFLOW 0xFFFFFFF7 #define R_028064_DB_VRS_OVERRIDE_CNTL 0x028064 /* >= gfx103 */ #define S_028064_VRS_OVERRIDE_RATE_COMBINER_MODE(x) (((unsigned)(x) & 0x7) << 0) #define G_028064_VRS_OVERRIDE_RATE_COMBINER_MODE(x) (((x) >> 0) & 0x7) #define C_028064_VRS_OVERRIDE_RATE_COMBINER_MODE 0xFFFFFFF8 #define V_028064_VRS_COMB_MODE_PASSTHRU 0 #define V_028064_VRS_COMB_MODE_OVERRIDE 1 #define V_028064_VRS_COMB_MODE_MIN 2 #define V_028064_VRS_COMB_MODE_MAX 3 #define V_028064_VRS_COMB_MODE_SATURATE 4 #define S_028064_VRS_OVERRIDE_RATE_X(x) (((unsigned)(x) & 0x3) << 4) #define G_028064_VRS_OVERRIDE_RATE_X(x) (((x) >> 4) & 0x3) #define C_028064_VRS_OVERRIDE_RATE_X 0xFFFFFFCF #define S_028064_VRS_OVERRIDE_RATE_Y(x) (((unsigned)(x) & 0x3) << 6) #define G_028064_VRS_OVERRIDE_RATE_Y(x) (((x) >> 6) & 0x3) #define C_028064_VRS_OVERRIDE_RATE_Y 0xFFFFFF3F #define R_028068_DB_Z_INFO2 0x028068 /* gfx9 */ #define S_028068_EPITCH(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_028068_EPITCH(x) (((x) >> 0) & 0xFFFF) #define C_028068_EPITCH 0xFFFF0000 #define R_028068_DB_Z_READ_BASE_HI 0x028068 /* >= gfx10 */ #define S_028068_BASE_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_028068_BASE_HI(x) (((x) >> 0) & 0xFF) #define C_028068_BASE_HI 0xFFFFFF00 #define R_02806C_DB_STENCIL_INFO2 0x02806C /* gfx9 */ #define S_02806C_EPITCH(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_02806C_EPITCH(x) (((x) >> 0) & 0xFFFF) #define C_02806C_EPITCH 0xFFFF0000 #define R_02806C_DB_STENCIL_READ_BASE_HI 0x02806C /* >= gfx10 */ #define S_02806C_BASE_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_02806C_BASE_HI(x) (((x) >> 0) & 0xFF) #define C_02806C_BASE_HI 0xFFFFFF00 #define R_028070_DB_Z_WRITE_BASE_HI 0x028070 /* >= gfx10 */ #define S_028070_BASE_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_028070_BASE_HI(x) (((x) >> 0) & 0xFF) #define C_028070_BASE_HI 0xFFFFFF00 #define R_028074_DB_STENCIL_WRITE_BASE_HI 0x028074 /* >= gfx10 */ #define S_028074_BASE_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_028074_BASE_HI(x) (((x) >> 0) & 0xFF) #define C_028074_BASE_HI 0xFFFFFF00 #define R_028078_DB_HTILE_DATA_BASE_HI 0x028078 /* >= gfx10 */ #define S_028078_BASE_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_028078_BASE_HI(x) (((x) >> 0) & 0xFF) #define C_028078_BASE_HI 0xFFFFFF00 #define R_02807C_DB_RMI_L2_CACHE_CONTROL 0x02807C /* >= gfx10 */ #define S_02807C_Z_WR_POLICY(x) (((unsigned)(x) & 0x3) << 0) #define G_02807C_Z_WR_POLICY(x) (((x) >> 0) & 0x3) #define C_02807C_Z_WR_POLICY 0xFFFFFFFC #define V_02807C_CACHE_LRU_WR 0 #define V_02807C_CACHE_STREAM 1 #define V_02807C_CACHE_BYPASS 2 #define V_02807C_UNCACHED_WR 3 #define S_02807C_S_WR_POLICY(x) (((unsigned)(x) & 0x3) << 2) #define G_02807C_S_WR_POLICY(x) (((x) >> 2) & 0x3) #define C_02807C_S_WR_POLICY 0xFFFFFFF3 #define S_02807C_HTILE_WR_POLICY(x) (((unsigned)(x) & 0x3) << 4) #define G_02807C_HTILE_WR_POLICY(x) (((x) >> 4) & 0x3) #define C_02807C_HTILE_WR_POLICY 0xFFFFFFCF #define S_02807C_ZPCPSD_WR_POLICY(x) (((unsigned)(x) & 0x3) << 6) #define G_02807C_ZPCPSD_WR_POLICY(x) (((x) >> 6) & 0x3) #define C_02807C_ZPCPSD_WR_POLICY 0xFFFFFF3F #define S_02807C_Z_RD_POLICY(x) (((unsigned)(x) & 0x3) << 16) #define G_02807C_Z_RD_POLICY(x) (((x) >> 16) & 0x3) #define C_02807C_Z_RD_POLICY 0xFFFCFFFF #define V_02807C_CACHE_LRU_RD 0 #define V_02807C_CACHE_NOA 1 #define V_02807C_UNCACHED_RD 2 #define V_02807C_RESERVED_RDPOLICY 3 #define S_02807C_S_RD_POLICY(x) (((unsigned)(x) & 0x3) << 18) #define G_02807C_S_RD_POLICY(x) (((x) >> 18) & 0x3) #define C_02807C_S_RD_POLICY 0xFFF3FFFF #define S_02807C_HTILE_RD_POLICY(x) (((unsigned)(x) & 0x3) << 20) #define G_02807C_HTILE_RD_POLICY(x) (((x) >> 20) & 0x3) #define C_02807C_HTILE_RD_POLICY 0xFFCFFFFF #define S_02807C_Z_BIG_PAGE(x) (((unsigned)(x) & 0x1) << 24) #define G_02807C_Z_BIG_PAGE(x) (((x) >> 24) & 0x1) #define C_02807C_Z_BIG_PAGE 0xFEFFFFFF #define S_02807C_S_BIG_PAGE(x) (((unsigned)(x) & 0x1) << 25) #define G_02807C_S_BIG_PAGE(x) (((x) >> 25) & 0x1) #define C_02807C_S_BIG_PAGE 0xFDFFFFFF #define S_02807C_Z_NOALLOC(x) (((unsigned)(x) & 0x1) << 26) /* >= gfx103 */ #define G_02807C_Z_NOALLOC(x) (((x) >> 26) & 0x1) #define C_02807C_Z_NOALLOC 0xFBFFFFFF #define S_02807C_S_NOALLOC(x) (((unsigned)(x) & 0x1) << 27) /* >= gfx103 */ #define G_02807C_S_NOALLOC(x) (((x) >> 27) & 0x1) #define C_02807C_S_NOALLOC 0xF7FFFFFF #define S_02807C_HTILE_NOALLOC(x) (((unsigned)(x) & 0x1) << 28) /* >= gfx103 */ #define G_02807C_HTILE_NOALLOC(x) (((x) >> 28) & 0x1) #define C_02807C_HTILE_NOALLOC 0xEFFFFFFF #define S_02807C_ZPCPSD_NOALLOC(x) (((unsigned)(x) & 0x1) << 29) /* >= gfx103 */ #define G_02807C_ZPCPSD_NOALLOC(x) (((x) >> 29) & 0x1) #define C_02807C_ZPCPSD_NOALLOC 0xDFFFFFFF #define R_028080_TA_BC_BASE_ADDR 0x028080 #define R_028084_TA_BC_BASE_ADDR_HI 0x028084 /* >= gfx7 */ #define S_028084_ADDRESS(x) (((unsigned)(x) & 0xFF) << 0) #define G_028084_ADDRESS(x) (((x) >> 0) & 0xFF) #define C_028084_ADDRESS 0xFFFFFF00 #define R_0281E8_COHER_DEST_BASE_HI_0 0x0281E8 /* >= gfx7 */ #define S_0281E8_DEST_BASE_HI_256B(x) (((unsigned)(x) & 0xFF) << 0) #define G_0281E8_DEST_BASE_HI_256B(x) (((x) >> 0) & 0xFF) #define C_0281E8_DEST_BASE_HI_256B 0xFFFFFF00 #define R_0281EC_COHER_DEST_BASE_HI_1 0x0281EC /* >= gfx7 */ #define R_0281F0_COHER_DEST_BASE_HI_2 0x0281F0 /* >= gfx7 */ #define R_0281F4_COHER_DEST_BASE_HI_3 0x0281F4 /* >= gfx7 */ #define R_0281F8_COHER_DEST_BASE_2 0x0281F8 #define R_0281FC_COHER_DEST_BASE_3 0x0281FC #define R_028200_PA_SC_WINDOW_OFFSET 0x028200 #define S_028200_WINDOW_X_OFFSET(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_028200_WINDOW_X_OFFSET(x) (((x) >> 0) & 0xFFFF) #define C_028200_WINDOW_X_OFFSET 0xFFFF0000 #define S_028200_WINDOW_Y_OFFSET(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_028200_WINDOW_Y_OFFSET(x) (((x) >> 16) & 0xFFFF) #define C_028200_WINDOW_Y_OFFSET 0x0000FFFF #define R_028204_PA_SC_WINDOW_SCISSOR_TL 0x028204 #define S_028204_TL_X(x) (((unsigned)(x) & 0x7FFF) << 0) #define G_028204_TL_X(x) (((x) >> 0) & 0x7FFF) #define C_028204_TL_X 0xFFFF8000 #define S_028204_TL_Y(x) (((unsigned)(x) & 0x7FFF) << 16) #define G_028204_TL_Y(x) (((x) >> 16) & 0x7FFF) #define C_028204_TL_Y 0x8000FFFF #define S_028204_WINDOW_OFFSET_DISABLE(x) (((unsigned)(x) & 0x1) << 31) #define G_028204_WINDOW_OFFSET_DISABLE(x) (((x) >> 31) & 0x1) #define C_028204_WINDOW_OFFSET_DISABLE 0x7FFFFFFF #define R_028208_PA_SC_WINDOW_SCISSOR_BR 0x028208 #define S_028208_BR_X(x) (((unsigned)(x) & 0x7FFF) << 0) #define G_028208_BR_X(x) (((x) >> 0) & 0x7FFF) #define C_028208_BR_X 0xFFFF8000 #define S_028208_BR_Y(x) (((unsigned)(x) & 0x7FFF) << 16) #define G_028208_BR_Y(x) (((x) >> 16) & 0x7FFF) #define C_028208_BR_Y 0x8000FFFF #define R_02820C_PA_SC_CLIPRECT_RULE 0x02820C #define S_02820C_CLIP_RULE(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_02820C_CLIP_RULE(x) (((x) >> 0) & 0xFFFF) #define C_02820C_CLIP_RULE 0xFFFF0000 #define V_02820C_OUT 1 #define V_02820C_IN_0 2 #define V_02820C_IN_1 4 #define V_02820C_IN_10 8 #define V_02820C_IN_2 16 #define V_02820C_IN_20 32 #define V_02820C_IN_21 64 #define V_02820C_IN_210 128 #define V_02820C_IN_3 256 #define V_02820C_IN_30 512 #define V_02820C_IN_31 1024 #define V_02820C_IN_310 2048 #define V_02820C_IN_32 4096 #define V_02820C_IN_320 8192 #define V_02820C_IN_321 16384 #define V_02820C_IN_3210 32768 #define R_028210_PA_SC_CLIPRECT_0_TL 0x028210 #define S_028210_TL_X(x) (((unsigned)(x) & 0x7FFF) << 0) #define G_028210_TL_X(x) (((x) >> 0) & 0x7FFF) #define C_028210_TL_X 0xFFFF8000 #define S_028210_TL_Y(x) (((unsigned)(x) & 0x7FFF) << 16) #define G_028210_TL_Y(x) (((x) >> 16) & 0x7FFF) #define C_028210_TL_Y 0x8000FFFF #define R_028214_PA_SC_CLIPRECT_0_BR 0x028214 #define S_028214_BR_X(x) (((unsigned)(x) & 0x7FFF) << 0) #define G_028214_BR_X(x) (((x) >> 0) & 0x7FFF) #define C_028214_BR_X 0xFFFF8000 #define S_028214_BR_Y(x) (((unsigned)(x) & 0x7FFF) << 16) #define G_028214_BR_Y(x) (((x) >> 16) & 0x7FFF) #define C_028214_BR_Y 0x8000FFFF #define R_028218_PA_SC_CLIPRECT_1_TL 0x028218 #define R_02821C_PA_SC_CLIPRECT_1_BR 0x02821C #define R_028220_PA_SC_CLIPRECT_2_TL 0x028220 #define R_028224_PA_SC_CLIPRECT_2_BR 0x028224 #define R_028228_PA_SC_CLIPRECT_3_TL 0x028228 #define R_02822C_PA_SC_CLIPRECT_3_BR 0x02822C #define R_028230_PA_SC_EDGERULE 0x028230 #define S_028230_ER_TRI(x) (((unsigned)(x) & 0xF) << 0) #define G_028230_ER_TRI(x) (((x) >> 0) & 0xF) #define C_028230_ER_TRI 0xFFFFFFF0 #define S_028230_ER_POINT(x) (((unsigned)(x) & 0xF) << 4) #define G_028230_ER_POINT(x) (((x) >> 4) & 0xF) #define C_028230_ER_POINT 0xFFFFFF0F #define S_028230_ER_RECT(x) (((unsigned)(x) & 0xF) << 8) #define G_028230_ER_RECT(x) (((x) >> 8) & 0xF) #define C_028230_ER_RECT 0xFFFFF0FF #define S_028230_ER_LINE_LR(x) (((unsigned)(x) & 0x3F) << 12) #define G_028230_ER_LINE_LR(x) (((x) >> 12) & 0x3F) #define C_028230_ER_LINE_LR 0xFFFC0FFF #define S_028230_ER_LINE_RL(x) (((unsigned)(x) & 0x3F) << 18) #define G_028230_ER_LINE_RL(x) (((x) >> 18) & 0x3F) #define C_028230_ER_LINE_RL 0xFF03FFFF #define S_028230_ER_LINE_TB(x) (((unsigned)(x) & 0xF) << 24) #define G_028230_ER_LINE_TB(x) (((x) >> 24) & 0xF) #define C_028230_ER_LINE_TB 0xF0FFFFFF #define S_028230_ER_LINE_BT(x) (((unsigned)(x) & 0xF) << 28) #define G_028230_ER_LINE_BT(x) (((x) >> 28) & 0xF) #define C_028230_ER_LINE_BT 0x0FFFFFFF #define R_028234_PA_SU_HARDWARE_SCREEN_OFFSET 0x028234 #define S_028234_HW_SCREEN_OFFSET_X(x) (((unsigned)(x) & 0x1FF) << 0) #define G_028234_HW_SCREEN_OFFSET_X(x) (((x) >> 0) & 0x1FF) #define C_028234_HW_SCREEN_OFFSET_X 0xFFFFFE00 #define S_028234_HW_SCREEN_OFFSET_Y(x) (((unsigned)(x) & 0x1FF) << 16) #define G_028234_HW_SCREEN_OFFSET_Y(x) (((x) >> 16) & 0x1FF) #define C_028234_HW_SCREEN_OFFSET_Y 0xFE00FFFF #define R_028238_CB_TARGET_MASK 0x028238 #define S_028238_TARGET0_ENABLE(x) (((unsigned)(x) & 0xF) << 0) #define G_028238_TARGET0_ENABLE(x) (((x) >> 0) & 0xF) #define C_028238_TARGET0_ENABLE 0xFFFFFFF0 #define S_028238_TARGET1_ENABLE(x) (((unsigned)(x) & 0xF) << 4) #define G_028238_TARGET1_ENABLE(x) (((x) >> 4) & 0xF) #define C_028238_TARGET1_ENABLE 0xFFFFFF0F #define S_028238_TARGET2_ENABLE(x) (((unsigned)(x) & 0xF) << 8) #define G_028238_TARGET2_ENABLE(x) (((x) >> 8) & 0xF) #define C_028238_TARGET2_ENABLE 0xFFFFF0FF #define S_028238_TARGET3_ENABLE(x) (((unsigned)(x) & 0xF) << 12) #define G_028238_TARGET3_ENABLE(x) (((x) >> 12) & 0xF) #define C_028238_TARGET3_ENABLE 0xFFFF0FFF #define S_028238_TARGET4_ENABLE(x) (((unsigned)(x) & 0xF) << 16) #define G_028238_TARGET4_ENABLE(x) (((x) >> 16) & 0xF) #define C_028238_TARGET4_ENABLE 0xFFF0FFFF #define S_028238_TARGET5_ENABLE(x) (((unsigned)(x) & 0xF) << 20) #define G_028238_TARGET5_ENABLE(x) (((x) >> 20) & 0xF) #define C_028238_TARGET5_ENABLE 0xFF0FFFFF #define S_028238_TARGET6_ENABLE(x) (((unsigned)(x) & 0xF) << 24) #define G_028238_TARGET6_ENABLE(x) (((x) >> 24) & 0xF) #define C_028238_TARGET6_ENABLE 0xF0FFFFFF #define S_028238_TARGET7_ENABLE(x) (((unsigned)(x) & 0xF) << 28) #define G_028238_TARGET7_ENABLE(x) (((x) >> 28) & 0xF) #define C_028238_TARGET7_ENABLE 0x0FFFFFFF #define R_02823C_CB_SHADER_MASK 0x02823C #define S_02823C_OUTPUT0_ENABLE(x) (((unsigned)(x) & 0xF) << 0) #define G_02823C_OUTPUT0_ENABLE(x) (((x) >> 0) & 0xF) #define C_02823C_OUTPUT0_ENABLE 0xFFFFFFF0 #define S_02823C_OUTPUT1_ENABLE(x) (((unsigned)(x) & 0xF) << 4) #define G_02823C_OUTPUT1_ENABLE(x) (((x) >> 4) & 0xF) #define C_02823C_OUTPUT1_ENABLE 0xFFFFFF0F #define S_02823C_OUTPUT2_ENABLE(x) (((unsigned)(x) & 0xF) << 8) #define G_02823C_OUTPUT2_ENABLE(x) (((x) >> 8) & 0xF) #define C_02823C_OUTPUT2_ENABLE 0xFFFFF0FF #define S_02823C_OUTPUT3_ENABLE(x) (((unsigned)(x) & 0xF) << 12) #define G_02823C_OUTPUT3_ENABLE(x) (((x) >> 12) & 0xF) #define C_02823C_OUTPUT3_ENABLE 0xFFFF0FFF #define S_02823C_OUTPUT4_ENABLE(x) (((unsigned)(x) & 0xF) << 16) #define G_02823C_OUTPUT4_ENABLE(x) (((x) >> 16) & 0xF) #define C_02823C_OUTPUT4_ENABLE 0xFFF0FFFF #define S_02823C_OUTPUT5_ENABLE(x) (((unsigned)(x) & 0xF) << 20) #define G_02823C_OUTPUT5_ENABLE(x) (((x) >> 20) & 0xF) #define C_02823C_OUTPUT5_ENABLE 0xFF0FFFFF #define S_02823C_OUTPUT6_ENABLE(x) (((unsigned)(x) & 0xF) << 24) #define G_02823C_OUTPUT6_ENABLE(x) (((x) >> 24) & 0xF) #define C_02823C_OUTPUT6_ENABLE 0xF0FFFFFF #define S_02823C_OUTPUT7_ENABLE(x) (((unsigned)(x) & 0xF) << 28) #define G_02823C_OUTPUT7_ENABLE(x) (((x) >> 28) & 0xF) #define C_02823C_OUTPUT7_ENABLE 0x0FFFFFFF #define R_028240_PA_SC_GENERIC_SCISSOR_TL 0x028240 #define S_028240_TL_X(x) (((unsigned)(x) & 0x7FFF) << 0) #define G_028240_TL_X(x) (((x) >> 0) & 0x7FFF) #define C_028240_TL_X 0xFFFF8000 #define S_028240_TL_Y(x) (((unsigned)(x) & 0x7FFF) << 16) #define G_028240_TL_Y(x) (((x) >> 16) & 0x7FFF) #define C_028240_TL_Y 0x8000FFFF #define S_028240_WINDOW_OFFSET_DISABLE(x) (((unsigned)(x) & 0x1) << 31) #define G_028240_WINDOW_OFFSET_DISABLE(x) (((x) >> 31) & 0x1) #define C_028240_WINDOW_OFFSET_DISABLE 0x7FFFFFFF #define R_028244_PA_SC_GENERIC_SCISSOR_BR 0x028244 #define S_028244_BR_X(x) (((unsigned)(x) & 0x7FFF) << 0) #define G_028244_BR_X(x) (((x) >> 0) & 0x7FFF) #define C_028244_BR_X 0xFFFF8000 #define S_028244_BR_Y(x) (((unsigned)(x) & 0x7FFF) << 16) #define G_028244_BR_Y(x) (((x) >> 16) & 0x7FFF) #define C_028244_BR_Y 0x8000FFFF #define R_028248_COHER_DEST_BASE_0 0x028248 #define R_02824C_COHER_DEST_BASE_1 0x02824C #define R_028250_PA_SC_VPORT_SCISSOR_0_TL 0x028250 #define S_028250_TL_X(x) (((unsigned)(x) & 0x7FFF) << 0) #define G_028250_TL_X(x) (((x) >> 0) & 0x7FFF) #define C_028250_TL_X 0xFFFF8000 #define S_028250_TL_Y(x) (((unsigned)(x) & 0x7FFF) << 16) #define G_028250_TL_Y(x) (((x) >> 16) & 0x7FFF) #define C_028250_TL_Y 0x8000FFFF #define S_028250_WINDOW_OFFSET_DISABLE(x) (((unsigned)(x) & 0x1) << 31) #define G_028250_WINDOW_OFFSET_DISABLE(x) (((x) >> 31) & 0x1) #define C_028250_WINDOW_OFFSET_DISABLE 0x7FFFFFFF #define R_028254_PA_SC_VPORT_SCISSOR_0_BR 0x028254 #define S_028254_BR_X(x) (((unsigned)(x) & 0x7FFF) << 0) #define G_028254_BR_X(x) (((x) >> 0) & 0x7FFF) #define C_028254_BR_X 0xFFFF8000 #define S_028254_BR_Y(x) (((unsigned)(x) & 0x7FFF) << 16) #define G_028254_BR_Y(x) (((x) >> 16) & 0x7FFF) #define C_028254_BR_Y 0x8000FFFF #define R_028258_PA_SC_VPORT_SCISSOR_1_TL 0x028258 #define R_02825C_PA_SC_VPORT_SCISSOR_1_BR 0x02825C #define R_028260_PA_SC_VPORT_SCISSOR_2_TL 0x028260 #define R_028264_PA_SC_VPORT_SCISSOR_2_BR 0x028264 #define R_028268_PA_SC_VPORT_SCISSOR_3_TL 0x028268 #define R_02826C_PA_SC_VPORT_SCISSOR_3_BR 0x02826C #define R_028270_PA_SC_VPORT_SCISSOR_4_TL 0x028270 #define R_028274_PA_SC_VPORT_SCISSOR_4_BR 0x028274 #define R_028278_PA_SC_VPORT_SCISSOR_5_TL 0x028278 #define R_02827C_PA_SC_VPORT_SCISSOR_5_BR 0x02827C #define R_028280_PA_SC_VPORT_SCISSOR_6_TL 0x028280 #define R_028284_PA_SC_VPORT_SCISSOR_6_BR 0x028284 #define R_028288_PA_SC_VPORT_SCISSOR_7_TL 0x028288 #define R_02828C_PA_SC_VPORT_SCISSOR_7_BR 0x02828C #define R_028290_PA_SC_VPORT_SCISSOR_8_TL 0x028290 #define R_028294_PA_SC_VPORT_SCISSOR_8_BR 0x028294 #define R_028298_PA_SC_VPORT_SCISSOR_9_TL 0x028298 #define R_02829C_PA_SC_VPORT_SCISSOR_9_BR 0x02829C #define R_0282A0_PA_SC_VPORT_SCISSOR_10_TL 0x0282A0 #define R_0282A4_PA_SC_VPORT_SCISSOR_10_BR 0x0282A4 #define R_0282A8_PA_SC_VPORT_SCISSOR_11_TL 0x0282A8 #define R_0282AC_PA_SC_VPORT_SCISSOR_11_BR 0x0282AC #define R_0282B0_PA_SC_VPORT_SCISSOR_12_TL 0x0282B0 #define R_0282B4_PA_SC_VPORT_SCISSOR_12_BR 0x0282B4 #define R_0282B8_PA_SC_VPORT_SCISSOR_13_TL 0x0282B8 #define R_0282BC_PA_SC_VPORT_SCISSOR_13_BR 0x0282BC #define R_0282C0_PA_SC_VPORT_SCISSOR_14_TL 0x0282C0 #define R_0282C4_PA_SC_VPORT_SCISSOR_14_BR 0x0282C4 #define R_0282C8_PA_SC_VPORT_SCISSOR_15_TL 0x0282C8 #define R_0282CC_PA_SC_VPORT_SCISSOR_15_BR 0x0282CC #define R_0282D0_PA_SC_VPORT_ZMIN_0 0x0282D0 #define R_0282D4_PA_SC_VPORT_ZMAX_0 0x0282D4 #define R_0282D8_PA_SC_VPORT_ZMIN_1 0x0282D8 #define R_0282DC_PA_SC_VPORT_ZMAX_1 0x0282DC #define R_0282E0_PA_SC_VPORT_ZMIN_2 0x0282E0 #define R_0282E4_PA_SC_VPORT_ZMAX_2 0x0282E4 #define R_0282E8_PA_SC_VPORT_ZMIN_3 0x0282E8 #define R_0282EC_PA_SC_VPORT_ZMAX_3 0x0282EC #define R_0282F0_PA_SC_VPORT_ZMIN_4 0x0282F0 #define R_0282F4_PA_SC_VPORT_ZMAX_4 0x0282F4 #define R_0282F8_PA_SC_VPORT_ZMIN_5 0x0282F8 #define R_0282FC_PA_SC_VPORT_ZMAX_5 0x0282FC #define R_028300_PA_SC_VPORT_ZMIN_6 0x028300 #define R_028304_PA_SC_VPORT_ZMAX_6 0x028304 #define R_028308_PA_SC_VPORT_ZMIN_7 0x028308 #define R_02830C_PA_SC_VPORT_ZMAX_7 0x02830C #define R_028310_PA_SC_VPORT_ZMIN_8 0x028310 #define R_028314_PA_SC_VPORT_ZMAX_8 0x028314 #define R_028318_PA_SC_VPORT_ZMIN_9 0x028318 #define R_02831C_PA_SC_VPORT_ZMAX_9 0x02831C #define R_028320_PA_SC_VPORT_ZMIN_10 0x028320 #define R_028324_PA_SC_VPORT_ZMAX_10 0x028324 #define R_028328_PA_SC_VPORT_ZMIN_11 0x028328 #define R_02832C_PA_SC_VPORT_ZMAX_11 0x02832C #define R_028330_PA_SC_VPORT_ZMIN_12 0x028330 #define R_028334_PA_SC_VPORT_ZMAX_12 0x028334 #define R_028338_PA_SC_VPORT_ZMIN_13 0x028338 #define R_02833C_PA_SC_VPORT_ZMAX_13 0x02833C #define R_028340_PA_SC_VPORT_ZMIN_14 0x028340 #define R_028344_PA_SC_VPORT_ZMAX_14 0x028344 #define R_028348_PA_SC_VPORT_ZMIN_15 0x028348 #define R_02834C_PA_SC_VPORT_ZMAX_15 0x02834C #define R_028350_PA_SC_RASTER_CONFIG 0x028350 #define S_028350_RB_MAP_PKR0(x) (((unsigned)(x) & 0x3) << 0) #define G_028350_RB_MAP_PKR0(x) (((x) >> 0) & 0x3) #define C_028350_RB_MAP_PKR0 0xFFFFFFFC #define V_028350_RASTER_CONFIG_RB_MAP_0 0 #define V_028350_RASTER_CONFIG_RB_MAP_1 1 #define V_028350_RASTER_CONFIG_RB_MAP_2 2 #define V_028350_RASTER_CONFIG_RB_MAP_3 3 #define S_028350_RB_MAP_PKR1(x) (((unsigned)(x) & 0x3) << 2) #define G_028350_RB_MAP_PKR1(x) (((x) >> 2) & 0x3) #define C_028350_RB_MAP_PKR1 0xFFFFFFF3 #define S_028350_RB_XSEL2(x) (((unsigned)(x) & 0x3) << 4) #define G_028350_RB_XSEL2(x) (((x) >> 4) & 0x3) #define C_028350_RB_XSEL2 0xFFFFFFCF #define V_028350_RASTER_CONFIG_RB_XSEL2_0 0 #define V_028350_RASTER_CONFIG_RB_XSEL2_1 1 #define V_028350_RASTER_CONFIG_RB_XSEL2_2 2 #define V_028350_RASTER_CONFIG_RB_XSEL2_3 3 #define S_028350_RB_XSEL(x) (((unsigned)(x) & 0x1) << 6) #define G_028350_RB_XSEL(x) (((x) >> 6) & 0x1) #define C_028350_RB_XSEL 0xFFFFFFBF #define V_028350_RASTER_CONFIG_RB_XSEL_0 0 #define V_028350_RASTER_CONFIG_RB_XSEL_1 1 #define S_028350_RB_YSEL(x) (((unsigned)(x) & 0x1) << 7) #define G_028350_RB_YSEL(x) (((x) >> 7) & 0x1) #define C_028350_RB_YSEL 0xFFFFFF7F #define V_028350_RASTER_CONFIG_RB_YSEL_0 0 #define V_028350_RASTER_CONFIG_RB_YSEL_1 1 #define S_028350_PKR_MAP(x) (((unsigned)(x) & 0x3) << 8) #define G_028350_PKR_MAP(x) (((x) >> 8) & 0x3) #define C_028350_PKR_MAP 0xFFFFFCFF #define V_028350_RASTER_CONFIG_PKR_MAP_0 0 #define V_028350_RASTER_CONFIG_PKR_MAP_1 1 #define V_028350_RASTER_CONFIG_PKR_MAP_2 2 #define V_028350_RASTER_CONFIG_PKR_MAP_3 3 #define S_028350_PKR_XSEL(x) (((unsigned)(x) & 0x3) << 10) #define G_028350_PKR_XSEL(x) (((x) >> 10) & 0x3) #define C_028350_PKR_XSEL 0xFFFFF3FF #define V_028350_RASTER_CONFIG_PKR_XSEL_0 0 #define V_028350_RASTER_CONFIG_PKR_XSEL_1 1 #define V_028350_RASTER_CONFIG_PKR_XSEL_2 2 #define V_028350_RASTER_CONFIG_PKR_XSEL_3 3 #define S_028350_PKR_YSEL(x) (((unsigned)(x) & 0x3) << 12) #define G_028350_PKR_YSEL(x) (((x) >> 12) & 0x3) #define C_028350_PKR_YSEL 0xFFFFCFFF #define V_028350_RASTER_CONFIG_PKR_YSEL_0 0 #define V_028350_RASTER_CONFIG_PKR_YSEL_1 1 #define V_028350_RASTER_CONFIG_PKR_YSEL_2 2 #define V_028350_RASTER_CONFIG_PKR_YSEL_3 3 #define S_028350_PKR_XSEL2(x) (((unsigned)(x) & 0x3) << 14) #define G_028350_PKR_XSEL2(x) (((x) >> 14) & 0x3) #define C_028350_PKR_XSEL2 0xFFFF3FFF #define V_028350_RASTER_CONFIG_PKR_XSEL2_0 0 #define V_028350_RASTER_CONFIG_PKR_XSEL2_1 1 #define V_028350_RASTER_CONFIG_PKR_XSEL2_2 2 #define V_028350_RASTER_CONFIG_PKR_XSEL2_3 3 #define S_028350_SC_MAP(x) (((unsigned)(x) & 0x3) << 16) #define G_028350_SC_MAP(x) (((x) >> 16) & 0x3) #define C_028350_SC_MAP 0xFFFCFFFF #define V_028350_RASTER_CONFIG_SC_MAP_0 0 #define V_028350_RASTER_CONFIG_SC_MAP_1 1 #define V_028350_RASTER_CONFIG_SC_MAP_2 2 #define V_028350_RASTER_CONFIG_SC_MAP_3 3 #define S_028350_SC_XSEL(x) (((unsigned)(x) & 0x3) << 18) #define G_028350_SC_XSEL(x) (((x) >> 18) & 0x3) #define C_028350_SC_XSEL 0xFFF3FFFF #define V_028350_RASTER_CONFIG_SC_XSEL_8_WIDE_TILE 0 #define V_028350_RASTER_CONFIG_SC_XSEL_16_WIDE_TILE 1 #define V_028350_RASTER_CONFIG_SC_XSEL_32_WIDE_TILE 2 #define V_028350_RASTER_CONFIG_SC_XSEL_64_WIDE_TILE 3 #define S_028350_SC_YSEL(x) (((unsigned)(x) & 0x3) << 20) #define G_028350_SC_YSEL(x) (((x) >> 20) & 0x3) #define C_028350_SC_YSEL 0xFFCFFFFF #define V_028350_RASTER_CONFIG_SC_YSEL_8_WIDE_TILE 0 #define V_028350_RASTER_CONFIG_SC_YSEL_16_WIDE_TILE 1 #define V_028350_RASTER_CONFIG_SC_YSEL_32_WIDE_TILE 2 #define V_028350_RASTER_CONFIG_SC_YSEL_64_WIDE_TILE 3 #define S_028350_SE_MAP(x) (((unsigned)(x) & 0x3) << 24) #define G_028350_SE_MAP(x) (((x) >> 24) & 0x3) #define C_028350_SE_MAP 0xFCFFFFFF #define V_028350_RASTER_CONFIG_SE_MAP_0 0 #define V_028350_RASTER_CONFIG_SE_MAP_1 1 #define V_028350_RASTER_CONFIG_SE_MAP_2 2 #define V_028350_RASTER_CONFIG_SE_MAP_3 3 #define S_028350_SE_XSEL_GFX6(x) (((unsigned)(x) & 0x3) << 26) /* <= gfx81, >= gfx10 */ #define G_028350_SE_XSEL_GFX6(x) (((x) >> 26) & 0x3) #define C_028350_SE_XSEL_GFX6 0xF3FFFFFF #define V_028350_RASTER_CONFIG_SE_XSEL_8_WIDE_TILE 0 #define V_028350_RASTER_CONFIG_SE_XSEL_16_WIDE_TILE 1 #define V_028350_RASTER_CONFIG_SE_XSEL_32_WIDE_TILE 2 #define V_028350_RASTER_CONFIG_SE_XSEL_64_WIDE_TILE 3 #define S_028350_SE_XSEL_GFX9(x) (((unsigned)(x) & 0x7) << 26) /* gfx9 */ #define G_028350_SE_XSEL_GFX9(x) (((x) >> 26) & 0x7) #define C_028350_SE_XSEL_GFX9 0xE3FFFFFF #define V_028350_RASTER_CONFIG_SE_XSEL_128_WIDE_TILE 4 #define S_028350_SE_YSEL_GFX6(x) (((unsigned)(x) & 0x3) << 28) /* <= gfx81, >= gfx10 */ #define G_028350_SE_YSEL_GFX6(x) (((x) >> 28) & 0x3) #define C_028350_SE_YSEL_GFX6 0xCFFFFFFF #define V_028350_RASTER_CONFIG_SE_YSEL_8_WIDE_TILE 0 #define V_028350_RASTER_CONFIG_SE_YSEL_16_WIDE_TILE 1 #define V_028350_RASTER_CONFIG_SE_YSEL_32_WIDE_TILE 2 #define V_028350_RASTER_CONFIG_SE_YSEL_64_WIDE_TILE 3 #define S_028350_SE_YSEL_GFX9(x) (((unsigned)(x) & 0x7) << 29) /* gfx9 */ #define G_028350_SE_YSEL_GFX9(x) (((x) >> 29) & 0x7) #define C_028350_SE_YSEL_GFX9 0x1FFFFFFF #define V_028350_RASTER_CONFIG_SE_YSEL_128_WIDE_TILE 4 #define R_028354_PA_SC_RASTER_CONFIG_1 0x028354 /* >= gfx7 */ #define S_028354_SE_PAIR_MAP(x) (((unsigned)(x) & 0x3) << 0) #define G_028354_SE_PAIR_MAP(x) (((x) >> 0) & 0x3) #define C_028354_SE_PAIR_MAP 0xFFFFFFFC #define V_028354_RASTER_CONFIG_SE_PAIR_MAP_0 0 #define V_028354_RASTER_CONFIG_SE_PAIR_MAP_1 1 #define V_028354_RASTER_CONFIG_SE_PAIR_MAP_2 2 #define V_028354_RASTER_CONFIG_SE_PAIR_MAP_3 3 #define S_028354_SE_PAIR_XSEL_GFX7(x) (((unsigned)(x) & 0x3) << 2) /* gfx7, gfx8, gfx81, >= gfx10 */ #define G_028354_SE_PAIR_XSEL_GFX7(x) (((x) >> 2) & 0x3) #define C_028354_SE_PAIR_XSEL_GFX7 0xFFFFFFF3 #define V_028354_RASTER_CONFIG_SE_PAIR_XSEL_8_WIDE_TILE 0 #define V_028354_RASTER_CONFIG_SE_PAIR_XSEL_16_WIDE_TILE 1 #define V_028354_RASTER_CONFIG_SE_PAIR_XSEL_32_WIDE_TILE 2 #define V_028354_RASTER_CONFIG_SE_PAIR_XSEL_64_WIDE_TILE 3 #define S_028354_SE_PAIR_XSEL_GFX9(x) (((unsigned)(x) & 0x7) << 2) /* gfx9 */ #define G_028354_SE_PAIR_XSEL_GFX9(x) (((x) >> 2) & 0x7) #define C_028354_SE_PAIR_XSEL_GFX9 0xFFFFFFE3 #define V_028354_RASTER_CONFIG_SE_PAIR_XSEL_128_WIDE_TILE 4 #define S_028354_SE_PAIR_YSEL_GFX7(x) (((unsigned)(x) & 0x3) << 4) /* gfx7, gfx8, gfx81, >= gfx10 */ #define G_028354_SE_PAIR_YSEL_GFX7(x) (((x) >> 4) & 0x3) #define C_028354_SE_PAIR_YSEL_GFX7 0xFFFFFFCF #define V_028354_RASTER_CONFIG_SE_PAIR_YSEL_8_WIDE_TILE 0 #define V_028354_RASTER_CONFIG_SE_PAIR_YSEL_16_WIDE_TILE 1 #define V_028354_RASTER_CONFIG_SE_PAIR_YSEL_32_WIDE_TILE 2 #define V_028354_RASTER_CONFIG_SE_PAIR_YSEL_64_WIDE_TILE 3 #define S_028354_SE_PAIR_YSEL_GFX9(x) (((unsigned)(x) & 0x7) << 5) /* gfx9 */ #define G_028354_SE_PAIR_YSEL_GFX9(x) (((x) >> 5) & 0x7) #define C_028354_SE_PAIR_YSEL_GFX9 0xFFFFFF1F #define V_028354_RASTER_CONFIG_SE_PAIR_YSEL_128_WIDE_TILE 4 #define R_028358_PA_SC_SCREEN_EXTENT_CONTROL 0x028358 /* >= gfx7 */ #define S_028358_SLICE_EVEN_ENABLE(x) (((unsigned)(x) & 0x3) << 0) #define G_028358_SLICE_EVEN_ENABLE(x) (((x) >> 0) & 0x3) #define C_028358_SLICE_EVEN_ENABLE 0xFFFFFFFC #define S_028358_SLICE_ODD_ENABLE(x) (((unsigned)(x) & 0x3) << 2) #define G_028358_SLICE_ODD_ENABLE(x) (((x) >> 2) & 0x3) #define C_028358_SLICE_ODD_ENABLE 0xFFFFFFF3 #define R_02835C_PA_SC_TILE_STEERING_OVERRIDE 0x02835C /* >= gfx9 */ #define S_02835C_ENABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_02835C_ENABLE(x) (((x) >> 0) & 0x1) #define C_02835C_ENABLE 0xFFFFFFFE #define S_02835C_NUM_SE(x) (((unsigned)(x) & 0x3) << 1) #define G_02835C_NUM_SE(x) (((x) >> 1) & 0x3) #define C_02835C_NUM_SE 0xFFFFFFF9 #define S_02835C_NUM_RB_PER_SE(x) (((unsigned)(x) & 0x3) << 5) #define G_02835C_NUM_RB_PER_SE(x) (((x) >> 5) & 0x3) #define C_02835C_NUM_RB_PER_SE 0xFFFFFF9F #define S_02835C_DISABLE_SRBSL_DB_OPTIMIZED_PACKING(x) (((unsigned)(x) & 0x1) << 8) /* gfx10 */ #define G_02835C_DISABLE_SRBSL_DB_OPTIMIZED_PACKING(x) (((x) >> 8) & 0x1) #define C_02835C_DISABLE_SRBSL_DB_OPTIMIZED_PACKING 0xFFFFFEFF #define S_02835C_NUM_SC(x) (((unsigned)(x) & 0x3) << 12) /* >= gfx10 */ #define G_02835C_NUM_SC(x) (((x) >> 12) & 0x3) #define C_02835C_NUM_SC 0xFFFFCFFF #define S_02835C_NUM_RB_PER_SC(x) (((unsigned)(x) & 0x3) << 16) /* >= gfx10 */ #define G_02835C_NUM_RB_PER_SC(x) (((x) >> 16) & 0x3) #define C_02835C_NUM_RB_PER_SC 0xFFFCFFFF #define S_02835C_NUM_PACKER_PER_SC(x) (((unsigned)(x) & 0x3) << 20) /* >= gfx10 */ #define G_02835C_NUM_PACKER_PER_SC(x) (((x) >> 20) & 0x3) #define C_02835C_NUM_PACKER_PER_SC 0xFFCFFFFF #define R_028360_CP_PERFMON_CNTX_CNTL 0x028360 #define S_028360_PERFMON_ENABLE(x) (((unsigned)(x) & 0x1) << 31) #define G_028360_PERFMON_ENABLE(x) (((x) >> 31) & 0x1) #define C_028360_PERFMON_ENABLE 0x7FFFFFFF #define R_028364_CP_PIPEID 0x028364 /* >= gfx9 */ #define S_028364_PIPE_ID(x) (((unsigned)(x) & 0x3) << 0) #define G_028364_PIPE_ID(x) (((x) >> 0) & 0x3) #define C_028364_PIPE_ID 0xFFFFFFFC #define R_028364_CP_RINGID 0x028364 /* <= gfx81 */ #define S_028364_RINGID(x) (((unsigned)(x) & 0x3) << 0) #define G_028364_RINGID(x) (((x) >> 0) & 0x3) #define C_028364_RINGID 0xFFFFFFFC #define R_028368_CP_VMID 0x028368 #define S_028368_VMID(x) (((unsigned)(x) & 0xF) << 0) #define G_028368_VMID(x) (((x) >> 0) & 0xF) #define C_028368_VMID 0xFFFFFFF0 #define R_02836C_CONTEXT_RESERVED_REG0 0x02836C /* >= gfx103 */ #define R_028370_CONTEXT_RESERVED_REG1 0x028370 /* >= gfx103 */ #define R_0283A0_PA_SC_RIGHT_VERT_GRID 0x0283A0 /* gfx9, gfx10 */ #define S_0283A0_LEFT_QTR(x) (((unsigned)(x) & 0xFF) << 0) #define G_0283A0_LEFT_QTR(x) (((x) >> 0) & 0xFF) #define C_0283A0_LEFT_QTR 0xFFFFFF00 #define S_0283A0_LEFT_HALF(x) (((unsigned)(x) & 0xFF) << 8) #define G_0283A0_LEFT_HALF(x) (((x) >> 8) & 0xFF) #define C_0283A0_LEFT_HALF 0xFFFF00FF #define S_0283A0_RIGHT_HALF(x) (((unsigned)(x) & 0xFF) << 16) #define G_0283A0_RIGHT_HALF(x) (((x) >> 16) & 0xFF) #define C_0283A0_RIGHT_HALF 0xFF00FFFF #define S_0283A0_RIGHT_QTR(x) (((unsigned)(x) & 0xFF) << 24) #define G_0283A0_RIGHT_QTR(x) (((x) >> 24) & 0xFF) #define C_0283A0_RIGHT_QTR 0x00FFFFFF #define R_0283A4_PA_SC_LEFT_VERT_GRID 0x0283A4 /* gfx9, gfx10 */ #define S_0283A4_LEFT_QTR(x) (((unsigned)(x) & 0xFF) << 0) #define G_0283A4_LEFT_QTR(x) (((x) >> 0) & 0xFF) #define C_0283A4_LEFT_QTR 0xFFFFFF00 #define S_0283A4_LEFT_HALF(x) (((unsigned)(x) & 0xFF) << 8) #define G_0283A4_LEFT_HALF(x) (((x) >> 8) & 0xFF) #define C_0283A4_LEFT_HALF 0xFFFF00FF #define S_0283A4_RIGHT_HALF(x) (((unsigned)(x) & 0xFF) << 16) #define G_0283A4_RIGHT_HALF(x) (((x) >> 16) & 0xFF) #define C_0283A4_RIGHT_HALF 0xFF00FFFF #define S_0283A4_RIGHT_QTR(x) (((unsigned)(x) & 0xFF) << 24) #define G_0283A4_RIGHT_QTR(x) (((x) >> 24) & 0xFF) #define C_0283A4_RIGHT_QTR 0x00FFFFFF #define R_0283A8_PA_SC_HORIZ_GRID 0x0283A8 /* gfx9, gfx10 */ #define S_0283A8_TOP_QTR(x) (((unsigned)(x) & 0xFF) << 0) #define G_0283A8_TOP_QTR(x) (((x) >> 0) & 0xFF) #define C_0283A8_TOP_QTR 0xFFFFFF00 #define S_0283A8_TOP_HALF(x) (((unsigned)(x) & 0xFF) << 8) #define G_0283A8_TOP_HALF(x) (((x) >> 8) & 0xFF) #define C_0283A8_TOP_HALF 0xFFFF00FF #define S_0283A8_BOT_HALF(x) (((unsigned)(x) & 0xFF) << 16) #define G_0283A8_BOT_HALF(x) (((x) >> 16) & 0xFF) #define C_0283A8_BOT_HALF 0xFF00FFFF #define S_0283A8_BOT_QTR(x) (((unsigned)(x) & 0xFF) << 24) #define G_0283A8_BOT_QTR(x) (((x) >> 24) & 0xFF) #define C_0283A8_BOT_QTR 0x00FFFFFF #define R_028400_VGT_MAX_VTX_INDX 0x028400 /* <= gfx81, >= gfx10 */ #define R_028404_VGT_MIN_VTX_INDX 0x028404 /* <= gfx81, >= gfx10 */ #define R_028408_VGT_INDX_OFFSET 0x028408 /* <= gfx81, >= gfx10 */ #define R_02840C_VGT_MULTI_PRIM_IB_RESET_INDX 0x02840C #define R_028410_CB_RMI_GL2_CACHE_CONTROL 0x028410 /* >= gfx10 */ #define S_028410_CMASK_WR_POLICY(x) (((unsigned)(x) & 0x3) << 0) #define G_028410_CMASK_WR_POLICY(x) (((x) >> 0) & 0x3) #define C_028410_CMASK_WR_POLICY 0xFFFFFFFC #define V_028410_CACHE_LRU_WR 0 #define V_028410_CACHE_STREAM 1 #define V_028410_CACHE_BYPASS 2 #define V_028410_UNCACHED_WR 3 #define S_028410_FMASK_WR_POLICY(x) (((unsigned)(x) & 0x3) << 2) #define G_028410_FMASK_WR_POLICY(x) (((x) >> 2) & 0x3) #define C_028410_FMASK_WR_POLICY 0xFFFFFFF3 #define S_028410_DCC_WR_POLICY(x) (((unsigned)(x) & 0x3) << 4) #define G_028410_DCC_WR_POLICY(x) (((x) >> 4) & 0x3) #define C_028410_DCC_WR_POLICY 0xFFFFFFCF #define S_028410_COLOR_WR_POLICY(x) (((unsigned)(x) & 0x3) << 6) #define G_028410_COLOR_WR_POLICY(x) (((x) >> 6) & 0x3) #define C_028410_COLOR_WR_POLICY 0xFFFFFF3F #define S_028410_CMASK_RD_POLICY(x) (((unsigned)(x) & 0x3) << 16) #define G_028410_CMASK_RD_POLICY(x) (((x) >> 16) & 0x3) #define C_028410_CMASK_RD_POLICY 0xFFFCFFFF #define V_028410_CACHE_LRU_RD 0 #define V_028410_CACHE_NOA 1 #define V_028410_UNCACHED_RD 2 #define V_028410_RESERVED_RDPOLICY 3 #define S_028410_FMASK_RD_POLICY(x) (((unsigned)(x) & 0x3) << 18) #define G_028410_FMASK_RD_POLICY(x) (((x) >> 18) & 0x3) #define C_028410_FMASK_RD_POLICY 0xFFF3FFFF #define S_028410_DCC_RD_POLICY(x) (((unsigned)(x) & 0x3) << 20) #define G_028410_DCC_RD_POLICY(x) (((x) >> 20) & 0x3) #define C_028410_DCC_RD_POLICY 0xFFCFFFFF #define S_028410_COLOR_RD_POLICY(x) (((unsigned)(x) & 0x3) << 22) #define G_028410_COLOR_RD_POLICY(x) (((x) >> 22) & 0x3) #define C_028410_COLOR_RD_POLICY 0xFF3FFFFF #define S_028410_CMASK_L3_BYPASS(x) (((unsigned)(x) & 0x1) << 24) /* >= gfx103 */ #define G_028410_CMASK_L3_BYPASS(x) (((x) >> 24) & 0x1) #define C_028410_CMASK_L3_BYPASS 0xFEFFFFFF #define S_028410_FMASK_L3_BYPASS(x) (((unsigned)(x) & 0x1) << 25) /* >= gfx103 */ #define G_028410_FMASK_L3_BYPASS(x) (((x) >> 25) & 0x1) #define C_028410_FMASK_L3_BYPASS 0xFDFFFFFF #define S_028410_DCC_L3_BYPASS(x) (((unsigned)(x) & 0x1) << 26) /* >= gfx103 */ #define G_028410_DCC_L3_BYPASS(x) (((x) >> 26) & 0x1) #define C_028410_DCC_L3_BYPASS 0xFBFFFFFF #define S_028410_COLOR_L3_BYPASS(x) (((unsigned)(x) & 0x1) << 27) /* >= gfx103 */ #define G_028410_COLOR_L3_BYPASS(x) (((x) >> 27) & 0x1) #define C_028410_COLOR_L3_BYPASS 0xF7FFFFFF #define S_028410_FMASK_BIG_PAGE(x) (((unsigned)(x) & 0x1) << 30) #define G_028410_FMASK_BIG_PAGE(x) (((x) >> 30) & 0x1) #define C_028410_FMASK_BIG_PAGE 0xBFFFFFFF #define S_028410_COLOR_BIG_PAGE(x) (((unsigned)(x) & 0x1) << 31) #define G_028410_COLOR_BIG_PAGE(x) (((x) >> 31) & 0x1) #define C_028410_COLOR_BIG_PAGE 0x7FFFFFFF #define R_028414_CB_BLEND_RED 0x028414 #define R_028418_CB_BLEND_GREEN 0x028418 #define R_02841C_CB_BLEND_BLUE 0x02841C #define R_028420_CB_BLEND_ALPHA 0x028420 #define R_028424_CB_DCC_CONTROL 0x028424 /* >= gfx8 */ #define S_028424_OVERWRITE_COMBINER_DISABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_028424_OVERWRITE_COMBINER_DISABLE(x) (((x) >> 0) & 0x1) #define C_028424_OVERWRITE_COMBINER_DISABLE 0xFFFFFFFE #define S_028424_OVERWRITE_COMBINER_MRT_SHARING_DISABLE(x) (((unsigned)(x) & 0x1) << 1) /* gfx8, gfx81, gfx9 */ #define G_028424_OVERWRITE_COMBINER_MRT_SHARING_DISABLE(x) (((x) >> 1) & 0x1) #define C_028424_OVERWRITE_COMBINER_MRT_SHARING_DISABLE 0xFFFFFFFD #define S_028424_OVERWRITE_COMBINER_WATERMARK(x) (((unsigned)(x) & 0x1F) << 2) #define G_028424_OVERWRITE_COMBINER_WATERMARK(x) (((x) >> 2) & 0x1F) #define C_028424_OVERWRITE_COMBINER_WATERMARK 0xFFFFFF83 #define S_028424_DISABLE_CONSTANT_ENCODE_AC01(x) (((unsigned)(x) & 0x1) << 8) /* >= gfx9 */ #define G_028424_DISABLE_CONSTANT_ENCODE_AC01(x) (((x) >> 8) & 0x1) #define C_028424_DISABLE_CONSTANT_ENCODE_AC01 0xFFFFFEFF #define S_028424_DISABLE_CONSTANT_ENCODE_SINGLE(x) (((unsigned)(x) & 0x1) << 9) /* >= gfx9 */ #define G_028424_DISABLE_CONSTANT_ENCODE_SINGLE(x) (((x) >> 9) & 0x1) #define C_028424_DISABLE_CONSTANT_ENCODE_SINGLE 0xFFFFFDFF #define S_028424_DISABLE_CONSTANT_ENCODE_REG(x) (((unsigned)(x) & 0x1) << 10) /* >= gfx9 */ #define G_028424_DISABLE_CONSTANT_ENCODE_REG(x) (((x) >> 10) & 0x1) #define C_028424_DISABLE_CONSTANT_ENCODE_REG 0xFFFFFBFF #define S_028424_DISABLE_ELIMFC_SKIP_OF_AC01(x) (((unsigned)(x) & 0x1) << 12) /* >= gfx9 */ #define G_028424_DISABLE_ELIMFC_SKIP_OF_AC01(x) (((x) >> 12) & 0x1) #define C_028424_DISABLE_ELIMFC_SKIP_OF_AC01 0xFFFFEFFF #define S_028424_DISABLE_ELIMFC_SKIP_OF_SINGLE(x) (((unsigned)(x) & 0x1) << 13) /* >= gfx9 */ #define G_028424_DISABLE_ELIMFC_SKIP_OF_SINGLE(x) (((x) >> 13) & 0x1) #define C_028424_DISABLE_ELIMFC_SKIP_OF_SINGLE 0xFFFFDFFF #define S_028424_ENABLE_ELIMFC_SKIP_OF_REG(x) (((unsigned)(x) & 0x1) << 14) /* >= gfx9 */ #define G_028424_ENABLE_ELIMFC_SKIP_OF_REG(x) (((x) >> 14) & 0x1) #define C_028424_ENABLE_ELIMFC_SKIP_OF_REG 0xFFFFBFFF #define R_028428_CB_COVERAGE_OUT_CONTROL 0x028428 /* >= gfx10 */ #define S_028428_COVERAGE_OUT_ENABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_028428_COVERAGE_OUT_ENABLE(x) (((x) >> 0) & 0x1) #define C_028428_COVERAGE_OUT_ENABLE 0xFFFFFFFE #define S_028428_COVERAGE_OUT_MRT(x) (((unsigned)(x) & 0x7) << 1) #define G_028428_COVERAGE_OUT_MRT(x) (((x) >> 1) & 0x7) #define C_028428_COVERAGE_OUT_MRT 0xFFFFFFF1 #define S_028428_COVERAGE_OUT_CHANNEL(x) (((unsigned)(x) & 0x3) << 4) #define G_028428_COVERAGE_OUT_CHANNEL(x) (((x) >> 4) & 0x3) #define C_028428_COVERAGE_OUT_CHANNEL 0xFFFFFFCF #define S_028428_COVERAGE_OUT_SAMPLES(x) (((unsigned)(x) & 0xF) << 8) #define G_028428_COVERAGE_OUT_SAMPLES(x) (((x) >> 8) & 0xF) #define C_028428_COVERAGE_OUT_SAMPLES 0xFFFFF0FF #define R_02842C_DB_STENCIL_CONTROL 0x02842C #define S_02842C_STENCILFAIL(x) (((unsigned)(x) & 0xF) << 0) #define G_02842C_STENCILFAIL(x) (((x) >> 0) & 0xF) #define C_02842C_STENCILFAIL 0xFFFFFFF0 #define V_02842C_STENCIL_KEEP 0 #define V_02842C_STENCIL_ZERO 1 #define V_02842C_STENCIL_ONES 2 #define V_02842C_STENCIL_REPLACE_TEST 3 #define V_02842C_STENCIL_REPLACE_OP 4 #define V_02842C_STENCIL_ADD_CLAMP 5 #define V_02842C_STENCIL_SUB_CLAMP 6 #define V_02842C_STENCIL_INVERT 7 #define V_02842C_STENCIL_ADD_WRAP 8 #define V_02842C_STENCIL_SUB_WRAP 9 #define V_02842C_STENCIL_AND 10 #define V_02842C_STENCIL_OR 11 #define V_02842C_STENCIL_XOR 12 #define V_02842C_STENCIL_NAND 13 #define V_02842C_STENCIL_NOR 14 #define V_02842C_STENCIL_XNOR 15 #define S_02842C_STENCILZPASS(x) (((unsigned)(x) & 0xF) << 4) #define G_02842C_STENCILZPASS(x) (((x) >> 4) & 0xF) #define C_02842C_STENCILZPASS 0xFFFFFF0F #define S_02842C_STENCILZFAIL(x) (((unsigned)(x) & 0xF) << 8) #define G_02842C_STENCILZFAIL(x) (((x) >> 8) & 0xF) #define C_02842C_STENCILZFAIL 0xFFFFF0FF #define S_02842C_STENCILFAIL_BF(x) (((unsigned)(x) & 0xF) << 12) #define G_02842C_STENCILFAIL_BF(x) (((x) >> 12) & 0xF) #define C_02842C_STENCILFAIL_BF 0xFFFF0FFF #define S_02842C_STENCILZPASS_BF(x) (((unsigned)(x) & 0xF) << 16) #define G_02842C_STENCILZPASS_BF(x) (((x) >> 16) & 0xF) #define C_02842C_STENCILZPASS_BF 0xFFF0FFFF #define S_02842C_STENCILZFAIL_BF(x) (((unsigned)(x) & 0xF) << 20) #define G_02842C_STENCILZFAIL_BF(x) (((x) >> 20) & 0xF) #define C_02842C_STENCILZFAIL_BF 0xFF0FFFFF #define R_028430_DB_STENCILREFMASK 0x028430 #define S_028430_STENCILTESTVAL(x) (((unsigned)(x) & 0xFF) << 0) #define G_028430_STENCILTESTVAL(x) (((x) >> 0) & 0xFF) #define C_028430_STENCILTESTVAL 0xFFFFFF00 #define S_028430_STENCILMASK(x) (((unsigned)(x) & 0xFF) << 8) #define G_028430_STENCILMASK(x) (((x) >> 8) & 0xFF) #define C_028430_STENCILMASK 0xFFFF00FF #define S_028430_STENCILWRITEMASK(x) (((unsigned)(x) & 0xFF) << 16) #define G_028430_STENCILWRITEMASK(x) (((x) >> 16) & 0xFF) #define C_028430_STENCILWRITEMASK 0xFF00FFFF #define S_028430_STENCILOPVAL(x) (((unsigned)(x) & 0xFF) << 24) #define G_028430_STENCILOPVAL(x) (((x) >> 24) & 0xFF) #define C_028430_STENCILOPVAL 0x00FFFFFF #define R_028434_DB_STENCILREFMASK_BF 0x028434 #define S_028434_STENCILTESTVAL_BF(x) (((unsigned)(x) & 0xFF) << 0) #define G_028434_STENCILTESTVAL_BF(x) (((x) >> 0) & 0xFF) #define C_028434_STENCILTESTVAL_BF 0xFFFFFF00 #define S_028434_STENCILMASK_BF(x) (((unsigned)(x) & 0xFF) << 8) #define G_028434_STENCILMASK_BF(x) (((x) >> 8) & 0xFF) #define C_028434_STENCILMASK_BF 0xFFFF00FF #define S_028434_STENCILWRITEMASK_BF(x) (((unsigned)(x) & 0xFF) << 16) #define G_028434_STENCILWRITEMASK_BF(x) (((x) >> 16) & 0xFF) #define C_028434_STENCILWRITEMASK_BF 0xFF00FFFF #define S_028434_STENCILOPVAL_BF(x) (((unsigned)(x) & 0xFF) << 24) #define G_028434_STENCILOPVAL_BF(x) (((x) >> 24) & 0xFF) #define C_028434_STENCILOPVAL_BF 0x00FFFFFF #define R_02843C_PA_CL_VPORT_XSCALE 0x02843C #define R_028440_PA_CL_VPORT_XOFFSET 0x028440 #define R_028444_PA_CL_VPORT_YSCALE 0x028444 #define R_028448_PA_CL_VPORT_YOFFSET 0x028448 #define R_02844C_PA_CL_VPORT_ZSCALE 0x02844C #define R_028450_PA_CL_VPORT_ZOFFSET 0x028450 #define R_028454_PA_CL_VPORT_XSCALE_1 0x028454 #define R_028458_PA_CL_VPORT_XOFFSET_1 0x028458 #define R_02845C_PA_CL_VPORT_YSCALE_1 0x02845C #define R_028460_PA_CL_VPORT_YOFFSET_1 0x028460 #define R_028464_PA_CL_VPORT_ZSCALE_1 0x028464 #define R_028468_PA_CL_VPORT_ZOFFSET_1 0x028468 #define R_02846C_PA_CL_VPORT_XSCALE_2 0x02846C #define R_028470_PA_CL_VPORT_XOFFSET_2 0x028470 #define R_028474_PA_CL_VPORT_YSCALE_2 0x028474 #define R_028478_PA_CL_VPORT_YOFFSET_2 0x028478 #define R_02847C_PA_CL_VPORT_ZSCALE_2 0x02847C #define R_028480_PA_CL_VPORT_ZOFFSET_2 0x028480 #define R_028484_PA_CL_VPORT_XSCALE_3 0x028484 #define R_028488_PA_CL_VPORT_XOFFSET_3 0x028488 #define R_02848C_PA_CL_VPORT_YSCALE_3 0x02848C #define R_028490_PA_CL_VPORT_YOFFSET_3 0x028490 #define R_028494_PA_CL_VPORT_ZSCALE_3 0x028494 #define R_028498_PA_CL_VPORT_ZOFFSET_3 0x028498 #define R_02849C_PA_CL_VPORT_XSCALE_4 0x02849C #define R_0284A0_PA_CL_VPORT_XOFFSET_4 0x0284A0 #define R_0284A4_PA_CL_VPORT_YSCALE_4 0x0284A4 #define R_0284A8_PA_CL_VPORT_YOFFSET_4 0x0284A8 #define R_0284AC_PA_CL_VPORT_ZSCALE_4 0x0284AC #define R_0284B0_PA_CL_VPORT_ZOFFSET_4 0x0284B0 #define R_0284B4_PA_CL_VPORT_XSCALE_5 0x0284B4 #define R_0284B8_PA_CL_VPORT_XOFFSET_5 0x0284B8 #define R_0284BC_PA_CL_VPORT_YSCALE_5 0x0284BC #define R_0284C0_PA_CL_VPORT_YOFFSET_5 0x0284C0 #define R_0284C4_PA_CL_VPORT_ZSCALE_5 0x0284C4 #define R_0284C8_PA_CL_VPORT_ZOFFSET_5 0x0284C8 #define R_0284CC_PA_CL_VPORT_XSCALE_6 0x0284CC #define R_0284D0_PA_CL_VPORT_XOFFSET_6 0x0284D0 #define R_0284D4_PA_CL_VPORT_YSCALE_6 0x0284D4 #define R_0284D8_PA_CL_VPORT_YOFFSET_6 0x0284D8 #define R_0284DC_PA_CL_VPORT_ZSCALE_6 0x0284DC #define R_0284E0_PA_CL_VPORT_ZOFFSET_6 0x0284E0 #define R_0284E4_PA_CL_VPORT_XSCALE_7 0x0284E4 #define R_0284E8_PA_CL_VPORT_XOFFSET_7 0x0284E8 #define R_0284EC_PA_CL_VPORT_YSCALE_7 0x0284EC #define R_0284F0_PA_CL_VPORT_YOFFSET_7 0x0284F0 #define R_0284F4_PA_CL_VPORT_ZSCALE_7 0x0284F4 #define R_0284F8_PA_CL_VPORT_ZOFFSET_7 0x0284F8 #define R_0284FC_PA_CL_VPORT_XSCALE_8 0x0284FC #define R_028500_PA_CL_VPORT_XOFFSET_8 0x028500 #define R_028504_PA_CL_VPORT_YSCALE_8 0x028504 #define R_028508_PA_CL_VPORT_YOFFSET_8 0x028508 #define R_02850C_PA_CL_VPORT_ZSCALE_8 0x02850C #define R_028510_PA_CL_VPORT_ZOFFSET_8 0x028510 #define R_028514_PA_CL_VPORT_XSCALE_9 0x028514 #define R_028518_PA_CL_VPORT_XOFFSET_9 0x028518 #define R_02851C_PA_CL_VPORT_YSCALE_9 0x02851C #define R_028520_PA_CL_VPORT_YOFFSET_9 0x028520 #define R_028524_PA_CL_VPORT_ZSCALE_9 0x028524 #define R_028528_PA_CL_VPORT_ZOFFSET_9 0x028528 #define R_02852C_PA_CL_VPORT_XSCALE_10 0x02852C #define R_028530_PA_CL_VPORT_XOFFSET_10 0x028530 #define R_028534_PA_CL_VPORT_YSCALE_10 0x028534 #define R_028538_PA_CL_VPORT_YOFFSET_10 0x028538 #define R_02853C_PA_CL_VPORT_ZSCALE_10 0x02853C #define R_028540_PA_CL_VPORT_ZOFFSET_10 0x028540 #define R_028544_PA_CL_VPORT_XSCALE_11 0x028544 #define R_028548_PA_CL_VPORT_XOFFSET_11 0x028548 #define R_02854C_PA_CL_VPORT_YSCALE_11 0x02854C #define R_028550_PA_CL_VPORT_YOFFSET_11 0x028550 #define R_028554_PA_CL_VPORT_ZSCALE_11 0x028554 #define R_028558_PA_CL_VPORT_ZOFFSET_11 0x028558 #define R_02855C_PA_CL_VPORT_XSCALE_12 0x02855C #define R_028560_PA_CL_VPORT_XOFFSET_12 0x028560 #define R_028564_PA_CL_VPORT_YSCALE_12 0x028564 #define R_028568_PA_CL_VPORT_YOFFSET_12 0x028568 #define R_02856C_PA_CL_VPORT_ZSCALE_12 0x02856C #define R_028570_PA_CL_VPORT_ZOFFSET_12 0x028570 #define R_028574_PA_CL_VPORT_XSCALE_13 0x028574 #define R_028578_PA_CL_VPORT_XOFFSET_13 0x028578 #define R_02857C_PA_CL_VPORT_YSCALE_13 0x02857C #define R_028580_PA_CL_VPORT_YOFFSET_13 0x028580 #define R_028584_PA_CL_VPORT_ZSCALE_13 0x028584 #define R_028588_PA_CL_VPORT_ZOFFSET_13 0x028588 #define R_02858C_PA_CL_VPORT_XSCALE_14 0x02858C #define R_028590_PA_CL_VPORT_XOFFSET_14 0x028590 #define R_028594_PA_CL_VPORT_YSCALE_14 0x028594 #define R_028598_PA_CL_VPORT_YOFFSET_14 0x028598 #define R_02859C_PA_CL_VPORT_ZSCALE_14 0x02859C #define R_0285A0_PA_CL_VPORT_ZOFFSET_14 0x0285A0 #define R_0285A4_PA_CL_VPORT_XSCALE_15 0x0285A4 #define R_0285A8_PA_CL_VPORT_XOFFSET_15 0x0285A8 #define R_0285AC_PA_CL_VPORT_YSCALE_15 0x0285AC #define R_0285B0_PA_CL_VPORT_YOFFSET_15 0x0285B0 #define R_0285B4_PA_CL_VPORT_ZSCALE_15 0x0285B4 #define R_0285B8_PA_CL_VPORT_ZOFFSET_15 0x0285B8 #define R_0285BC_PA_CL_UCP_0_X 0x0285BC #define R_0285C0_PA_CL_UCP_0_Y 0x0285C0 #define R_0285C4_PA_CL_UCP_0_Z 0x0285C4 #define R_0285C8_PA_CL_UCP_0_W 0x0285C8 #define R_0285CC_PA_CL_UCP_1_X 0x0285CC #define R_0285D0_PA_CL_UCP_1_Y 0x0285D0 #define R_0285D4_PA_CL_UCP_1_Z 0x0285D4 #define R_0285D8_PA_CL_UCP_1_W 0x0285D8 #define R_0285DC_PA_CL_UCP_2_X 0x0285DC #define R_0285E0_PA_CL_UCP_2_Y 0x0285E0 #define R_0285E4_PA_CL_UCP_2_Z 0x0285E4 #define R_0285E8_PA_CL_UCP_2_W 0x0285E8 #define R_0285EC_PA_CL_UCP_3_X 0x0285EC #define R_0285F0_PA_CL_UCP_3_Y 0x0285F0 #define R_0285F4_PA_CL_UCP_3_Z 0x0285F4 #define R_0285F8_PA_CL_UCP_3_W 0x0285F8 #define R_0285FC_PA_CL_UCP_4_X 0x0285FC #define R_028600_PA_CL_UCP_4_Y 0x028600 #define R_028604_PA_CL_UCP_4_Z 0x028604 #define R_028608_PA_CL_UCP_4_W 0x028608 #define R_02860C_PA_CL_UCP_5_X 0x02860C #define R_028610_PA_CL_UCP_5_Y 0x028610 #define R_028614_PA_CL_UCP_5_Z 0x028614 #define R_028618_PA_CL_UCP_5_W 0x028618 #define R_02861C_PA_CL_PROG_NEAR_CLIP_Z 0x02861C /* >= gfx9 */ #define R_028644_SPI_PS_INPUT_CNTL_0 0x028644 #define S_028644_OFFSET(x) (((unsigned)(x) & 0x3F) << 0) #define G_028644_OFFSET(x) (((x) >> 0) & 0x3F) #define C_028644_OFFSET 0xFFFFFFC0 #define S_028644_DEFAULT_VAL(x) (((unsigned)(x) & 0x3) << 8) #define G_028644_DEFAULT_VAL(x) (((x) >> 8) & 0x3) #define C_028644_DEFAULT_VAL 0xFFFFFCFF #define S_028644_FLAT_SHADE(x) (((unsigned)(x) & 0x1) << 10) #define G_028644_FLAT_SHADE(x) (((x) >> 10) & 0x1) #define C_028644_FLAT_SHADE 0xFFFFFBFF #define S_028644_ROTATE_PC_PTR(x) (((unsigned)(x) & 0x1) << 11) /* >= gfx103 */ #define G_028644_ROTATE_PC_PTR(x) (((x) >> 11) & 0x1) #define C_028644_ROTATE_PC_PTR 0xFFFFF7FF #define S_028644_CYL_WRAP(x) (((unsigned)(x) & 0xF) << 13) #define G_028644_CYL_WRAP(x) (((x) >> 13) & 0xF) #define C_028644_CYL_WRAP 0xFFFE1FFF #define S_028644_PT_SPRITE_TEX(x) (((unsigned)(x) & 0x1) << 17) #define G_028644_PT_SPRITE_TEX(x) (((x) >> 17) & 0x1) #define C_028644_PT_SPRITE_TEX 0xFFFDFFFF #define S_028644_DUP(x) (((unsigned)(x) & 0x1) << 18) #define G_028644_DUP(x) (((x) >> 18) & 0x1) #define C_028644_DUP 0xFFFBFFFF #define S_028644_FP16_INTERP_MODE(x) (((unsigned)(x) & 0x1) << 19) /* >= gfx8 */ #define G_028644_FP16_INTERP_MODE(x) (((x) >> 19) & 0x1) #define C_028644_FP16_INTERP_MODE 0xFFF7FFFF #define S_028644_USE_DEFAULT_ATTR1(x) (((unsigned)(x) & 0x1) << 20) /* >= gfx8 */ #define G_028644_USE_DEFAULT_ATTR1(x) (((x) >> 20) & 0x1) #define C_028644_USE_DEFAULT_ATTR1 0xFFEFFFFF #define S_028644_DEFAULT_VAL_ATTR1(x) (((unsigned)(x) & 0x3) << 21) /* >= gfx8 */ #define G_028644_DEFAULT_VAL_ATTR1(x) (((x) >> 21) & 0x3) #define C_028644_DEFAULT_VAL_ATTR1 0xFF9FFFFF #define S_028644_PT_SPRITE_TEX_ATTR1(x) (((unsigned)(x) & 0x1) << 23) /* >= gfx8 */ #define G_028644_PT_SPRITE_TEX_ATTR1(x) (((x) >> 23) & 0x1) #define C_028644_PT_SPRITE_TEX_ATTR1 0xFF7FFFFF #define S_028644_ATTR0_VALID(x) (((unsigned)(x) & 0x1) << 24) /* >= gfx8 */ #define G_028644_ATTR0_VALID(x) (((x) >> 24) & 0x1) #define C_028644_ATTR0_VALID 0xFEFFFFFF #define S_028644_ATTR1_VALID(x) (((unsigned)(x) & 0x1) << 25) /* >= gfx8 */ #define G_028644_ATTR1_VALID(x) (((x) >> 25) & 0x1) #define C_028644_ATTR1_VALID 0xFDFFFFFF #define R_028648_SPI_PS_INPUT_CNTL_1 0x028648 #define R_02864C_SPI_PS_INPUT_CNTL_2 0x02864C #define R_028650_SPI_PS_INPUT_CNTL_3 0x028650 #define R_028654_SPI_PS_INPUT_CNTL_4 0x028654 #define R_028658_SPI_PS_INPUT_CNTL_5 0x028658 #define R_02865C_SPI_PS_INPUT_CNTL_6 0x02865C #define R_028660_SPI_PS_INPUT_CNTL_7 0x028660 #define R_028664_SPI_PS_INPUT_CNTL_8 0x028664 #define R_028668_SPI_PS_INPUT_CNTL_9 0x028668 #define R_02866C_SPI_PS_INPUT_CNTL_10 0x02866C #define R_028670_SPI_PS_INPUT_CNTL_11 0x028670 #define R_028674_SPI_PS_INPUT_CNTL_12 0x028674 #define R_028678_SPI_PS_INPUT_CNTL_13 0x028678 #define R_02867C_SPI_PS_INPUT_CNTL_14 0x02867C #define R_028680_SPI_PS_INPUT_CNTL_15 0x028680 #define R_028684_SPI_PS_INPUT_CNTL_16 0x028684 #define R_028688_SPI_PS_INPUT_CNTL_17 0x028688 #define R_02868C_SPI_PS_INPUT_CNTL_18 0x02868C #define R_028690_SPI_PS_INPUT_CNTL_19 0x028690 #define R_028694_SPI_PS_INPUT_CNTL_20 0x028694 #define S_028694_OFFSET(x) (((unsigned)(x) & 0x3F) << 0) #define G_028694_OFFSET(x) (((x) >> 0) & 0x3F) #define C_028694_OFFSET 0xFFFFFFC0 #define S_028694_DEFAULT_VAL(x) (((unsigned)(x) & 0x3) << 8) #define G_028694_DEFAULT_VAL(x) (((x) >> 8) & 0x3) #define C_028694_DEFAULT_VAL 0xFFFFFCFF #define S_028694_FLAT_SHADE(x) (((unsigned)(x) & 0x1) << 10) #define G_028694_FLAT_SHADE(x) (((x) >> 10) & 0x1) #define C_028694_FLAT_SHADE 0xFFFFFBFF #define S_028694_ROTATE_PC_PTR(x) (((unsigned)(x) & 0x1) << 11) /* >= gfx103 */ #define G_028694_ROTATE_PC_PTR(x) (((x) >> 11) & 0x1) #define C_028694_ROTATE_PC_PTR 0xFFFFF7FF #define S_028694_DUP(x) (((unsigned)(x) & 0x1) << 18) #define G_028694_DUP(x) (((x) >> 18) & 0x1) #define C_028694_DUP 0xFFFBFFFF #define S_028694_FP16_INTERP_MODE(x) (((unsigned)(x) & 0x1) << 19) /* >= gfx8 */ #define G_028694_FP16_INTERP_MODE(x) (((x) >> 19) & 0x1) #define C_028694_FP16_INTERP_MODE 0xFFF7FFFF #define S_028694_USE_DEFAULT_ATTR1(x) (((unsigned)(x) & 0x1) << 20) /* >= gfx8 */ #define G_028694_USE_DEFAULT_ATTR1(x) (((x) >> 20) & 0x1) #define C_028694_USE_DEFAULT_ATTR1 0xFFEFFFFF #define S_028694_DEFAULT_VAL_ATTR1(x) (((unsigned)(x) & 0x3) << 21) /* >= gfx8 */ #define G_028694_DEFAULT_VAL_ATTR1(x) (((x) >> 21) & 0x3) #define C_028694_DEFAULT_VAL_ATTR1 0xFF9FFFFF #define S_028694_ATTR0_VALID(x) (((unsigned)(x) & 0x1) << 24) /* >= gfx8 */ #define G_028694_ATTR0_VALID(x) (((x) >> 24) & 0x1) #define C_028694_ATTR0_VALID 0xFEFFFFFF #define S_028694_ATTR1_VALID(x) (((unsigned)(x) & 0x1) << 25) /* >= gfx8 */ #define G_028694_ATTR1_VALID(x) (((x) >> 25) & 0x1) #define C_028694_ATTR1_VALID 0xFDFFFFFF #define R_028698_SPI_PS_INPUT_CNTL_21 0x028698 #define R_02869C_SPI_PS_INPUT_CNTL_22 0x02869C #define R_0286A0_SPI_PS_INPUT_CNTL_23 0x0286A0 #define R_0286A4_SPI_PS_INPUT_CNTL_24 0x0286A4 #define R_0286A8_SPI_PS_INPUT_CNTL_25 0x0286A8 #define R_0286AC_SPI_PS_INPUT_CNTL_26 0x0286AC #define R_0286B0_SPI_PS_INPUT_CNTL_27 0x0286B0 #define R_0286B4_SPI_PS_INPUT_CNTL_28 0x0286B4 #define R_0286B8_SPI_PS_INPUT_CNTL_29 0x0286B8 #define R_0286BC_SPI_PS_INPUT_CNTL_30 0x0286BC #define R_0286C0_SPI_PS_INPUT_CNTL_31 0x0286C0 #define R_0286C4_SPI_VS_OUT_CONFIG 0x0286C4 #define S_0286C4_VS_EXPORT_COUNT(x) (((unsigned)(x) & 0x1F) << 1) #define G_0286C4_VS_EXPORT_COUNT(x) (((x) >> 1) & 0x1F) #define C_0286C4_VS_EXPORT_COUNT 0xFFFFFFC1 #define S_0286C4_VS_HALF_PACK(x) (((unsigned)(x) & 0x1) << 6) #define G_0286C4_VS_HALF_PACK(x) (((x) >> 6) & 0x1) #define C_0286C4_VS_HALF_PACK 0xFFFFFFBF #define S_0286C4_NO_PC_EXPORT(x) (((unsigned)(x) & 0x1) << 7) /* >= gfx10 */ #define G_0286C4_NO_PC_EXPORT(x) (((x) >> 7) & 0x1) #define C_0286C4_NO_PC_EXPORT 0xFFFFFF7F #define S_0286C4_PRIM_EXPORT_COUNT(x) (((unsigned)(x) & 0x1F) << 8) /* >= gfx103 */ #define G_0286C4_PRIM_EXPORT_COUNT(x) (((x) >> 8) & 0x1F) #define C_0286C4_PRIM_EXPORT_COUNT 0xFFFFE0FF #define R_0286CC_SPI_PS_INPUT_ENA 0x0286CC #define S_0286CC_PERSP_SAMPLE_ENA(x) (((unsigned)(x) & 0x1) << 0) #define G_0286CC_PERSP_SAMPLE_ENA(x) (((x) >> 0) & 0x1) #define C_0286CC_PERSP_SAMPLE_ENA 0xFFFFFFFE #define S_0286CC_PERSP_CENTER_ENA(x) (((unsigned)(x) & 0x1) << 1) #define G_0286CC_PERSP_CENTER_ENA(x) (((x) >> 1) & 0x1) #define C_0286CC_PERSP_CENTER_ENA 0xFFFFFFFD #define S_0286CC_PERSP_CENTROID_ENA(x) (((unsigned)(x) & 0x1) << 2) #define G_0286CC_PERSP_CENTROID_ENA(x) (((x) >> 2) & 0x1) #define C_0286CC_PERSP_CENTROID_ENA 0xFFFFFFFB #define S_0286CC_PERSP_PULL_MODEL_ENA(x) (((unsigned)(x) & 0x1) << 3) #define G_0286CC_PERSP_PULL_MODEL_ENA(x) (((x) >> 3) & 0x1) #define C_0286CC_PERSP_PULL_MODEL_ENA 0xFFFFFFF7 #define S_0286CC_LINEAR_SAMPLE_ENA(x) (((unsigned)(x) & 0x1) << 4) #define G_0286CC_LINEAR_SAMPLE_ENA(x) (((x) >> 4) & 0x1) #define C_0286CC_LINEAR_SAMPLE_ENA 0xFFFFFFEF #define S_0286CC_LINEAR_CENTER_ENA(x) (((unsigned)(x) & 0x1) << 5) #define G_0286CC_LINEAR_CENTER_ENA(x) (((x) >> 5) & 0x1) #define C_0286CC_LINEAR_CENTER_ENA 0xFFFFFFDF #define S_0286CC_LINEAR_CENTROID_ENA(x) (((unsigned)(x) & 0x1) << 6) #define G_0286CC_LINEAR_CENTROID_ENA(x) (((x) >> 6) & 0x1) #define C_0286CC_LINEAR_CENTROID_ENA 0xFFFFFFBF #define S_0286CC_LINE_STIPPLE_TEX_ENA(x) (((unsigned)(x) & 0x1) << 7) #define G_0286CC_LINE_STIPPLE_TEX_ENA(x) (((x) >> 7) & 0x1) #define C_0286CC_LINE_STIPPLE_TEX_ENA 0xFFFFFF7F #define S_0286CC_POS_X_FLOAT_ENA(x) (((unsigned)(x) & 0x1) << 8) #define G_0286CC_POS_X_FLOAT_ENA(x) (((x) >> 8) & 0x1) #define C_0286CC_POS_X_FLOAT_ENA 0xFFFFFEFF #define S_0286CC_POS_Y_FLOAT_ENA(x) (((unsigned)(x) & 0x1) << 9) #define G_0286CC_POS_Y_FLOAT_ENA(x) (((x) >> 9) & 0x1) #define C_0286CC_POS_Y_FLOAT_ENA 0xFFFFFDFF #define S_0286CC_POS_Z_FLOAT_ENA(x) (((unsigned)(x) & 0x1) << 10) #define G_0286CC_POS_Z_FLOAT_ENA(x) (((x) >> 10) & 0x1) #define C_0286CC_POS_Z_FLOAT_ENA 0xFFFFFBFF #define S_0286CC_POS_W_FLOAT_ENA(x) (((unsigned)(x) & 0x1) << 11) #define G_0286CC_POS_W_FLOAT_ENA(x) (((x) >> 11) & 0x1) #define C_0286CC_POS_W_FLOAT_ENA 0xFFFFF7FF #define S_0286CC_FRONT_FACE_ENA(x) (((unsigned)(x) & 0x1) << 12) #define G_0286CC_FRONT_FACE_ENA(x) (((x) >> 12) & 0x1) #define C_0286CC_FRONT_FACE_ENA 0xFFFFEFFF #define S_0286CC_ANCILLARY_ENA(x) (((unsigned)(x) & 0x1) << 13) #define G_0286CC_ANCILLARY_ENA(x) (((x) >> 13) & 0x1) #define C_0286CC_ANCILLARY_ENA 0xFFFFDFFF #define S_0286CC_SAMPLE_COVERAGE_ENA(x) (((unsigned)(x) & 0x1) << 14) #define G_0286CC_SAMPLE_COVERAGE_ENA(x) (((x) >> 14) & 0x1) #define C_0286CC_SAMPLE_COVERAGE_ENA 0xFFFFBFFF #define S_0286CC_POS_FIXED_PT_ENA(x) (((unsigned)(x) & 0x1) << 15) #define G_0286CC_POS_FIXED_PT_ENA(x) (((x) >> 15) & 0x1) #define C_0286CC_POS_FIXED_PT_ENA 0xFFFF7FFF #define R_0286D0_SPI_PS_INPUT_ADDR 0x0286D0 #define S_0286D0_PERSP_SAMPLE_ENA(x) (((unsigned)(x) & 0x1) << 0) #define G_0286D0_PERSP_SAMPLE_ENA(x) (((x) >> 0) & 0x1) #define C_0286D0_PERSP_SAMPLE_ENA 0xFFFFFFFE #define S_0286D0_PERSP_CENTER_ENA(x) (((unsigned)(x) & 0x1) << 1) #define G_0286D0_PERSP_CENTER_ENA(x) (((x) >> 1) & 0x1) #define C_0286D0_PERSP_CENTER_ENA 0xFFFFFFFD #define S_0286D0_PERSP_CENTROID_ENA(x) (((unsigned)(x) & 0x1) << 2) #define G_0286D0_PERSP_CENTROID_ENA(x) (((x) >> 2) & 0x1) #define C_0286D0_PERSP_CENTROID_ENA 0xFFFFFFFB #define S_0286D0_PERSP_PULL_MODEL_ENA(x) (((unsigned)(x) & 0x1) << 3) #define G_0286D0_PERSP_PULL_MODEL_ENA(x) (((x) >> 3) & 0x1) #define C_0286D0_PERSP_PULL_MODEL_ENA 0xFFFFFFF7 #define S_0286D0_LINEAR_SAMPLE_ENA(x) (((unsigned)(x) & 0x1) << 4) #define G_0286D0_LINEAR_SAMPLE_ENA(x) (((x) >> 4) & 0x1) #define C_0286D0_LINEAR_SAMPLE_ENA 0xFFFFFFEF #define S_0286D0_LINEAR_CENTER_ENA(x) (((unsigned)(x) & 0x1) << 5) #define G_0286D0_LINEAR_CENTER_ENA(x) (((x) >> 5) & 0x1) #define C_0286D0_LINEAR_CENTER_ENA 0xFFFFFFDF #define S_0286D0_LINEAR_CENTROID_ENA(x) (((unsigned)(x) & 0x1) << 6) #define G_0286D0_LINEAR_CENTROID_ENA(x) (((x) >> 6) & 0x1) #define C_0286D0_LINEAR_CENTROID_ENA 0xFFFFFFBF #define S_0286D0_LINE_STIPPLE_TEX_ENA(x) (((unsigned)(x) & 0x1) << 7) #define G_0286D0_LINE_STIPPLE_TEX_ENA(x) (((x) >> 7) & 0x1) #define C_0286D0_LINE_STIPPLE_TEX_ENA 0xFFFFFF7F #define S_0286D0_POS_X_FLOAT_ENA(x) (((unsigned)(x) & 0x1) << 8) #define G_0286D0_POS_X_FLOAT_ENA(x) (((x) >> 8) & 0x1) #define C_0286D0_POS_X_FLOAT_ENA 0xFFFFFEFF #define S_0286D0_POS_Y_FLOAT_ENA(x) (((unsigned)(x) & 0x1) << 9) #define G_0286D0_POS_Y_FLOAT_ENA(x) (((x) >> 9) & 0x1) #define C_0286D0_POS_Y_FLOAT_ENA 0xFFFFFDFF #define S_0286D0_POS_Z_FLOAT_ENA(x) (((unsigned)(x) & 0x1) << 10) #define G_0286D0_POS_Z_FLOAT_ENA(x) (((x) >> 10) & 0x1) #define C_0286D0_POS_Z_FLOAT_ENA 0xFFFFFBFF #define S_0286D0_POS_W_FLOAT_ENA(x) (((unsigned)(x) & 0x1) << 11) #define G_0286D0_POS_W_FLOAT_ENA(x) (((x) >> 11) & 0x1) #define C_0286D0_POS_W_FLOAT_ENA 0xFFFFF7FF #define S_0286D0_FRONT_FACE_ENA(x) (((unsigned)(x) & 0x1) << 12) #define G_0286D0_FRONT_FACE_ENA(x) (((x) >> 12) & 0x1) #define C_0286D0_FRONT_FACE_ENA 0xFFFFEFFF #define S_0286D0_ANCILLARY_ENA(x) (((unsigned)(x) & 0x1) << 13) #define G_0286D0_ANCILLARY_ENA(x) (((x) >> 13) & 0x1) #define C_0286D0_ANCILLARY_ENA 0xFFFFDFFF #define S_0286D0_SAMPLE_COVERAGE_ENA(x) (((unsigned)(x) & 0x1) << 14) #define G_0286D0_SAMPLE_COVERAGE_ENA(x) (((x) >> 14) & 0x1) #define C_0286D0_SAMPLE_COVERAGE_ENA 0xFFFFBFFF #define S_0286D0_POS_FIXED_PT_ENA(x) (((unsigned)(x) & 0x1) << 15) #define G_0286D0_POS_FIXED_PT_ENA(x) (((x) >> 15) & 0x1) #define C_0286D0_POS_FIXED_PT_ENA 0xFFFF7FFF #define R_0286D4_SPI_INTERP_CONTROL_0 0x0286D4 #define S_0286D4_FLAT_SHADE_ENA(x) (((unsigned)(x) & 0x1) << 0) #define G_0286D4_FLAT_SHADE_ENA(x) (((x) >> 0) & 0x1) #define C_0286D4_FLAT_SHADE_ENA 0xFFFFFFFE #define S_0286D4_PNT_SPRITE_ENA(x) (((unsigned)(x) & 0x1) << 1) #define G_0286D4_PNT_SPRITE_ENA(x) (((x) >> 1) & 0x1) #define C_0286D4_PNT_SPRITE_ENA 0xFFFFFFFD #define S_0286D4_PNT_SPRITE_OVRD_X(x) (((unsigned)(x) & 0x7) << 2) #define G_0286D4_PNT_SPRITE_OVRD_X(x) (((x) >> 2) & 0x7) #define C_0286D4_PNT_SPRITE_OVRD_X 0xFFFFFFE3 #define V_0286D4_SPI_PNT_SPRITE_SEL_0 0 #define V_0286D4_SPI_PNT_SPRITE_SEL_1 1 #define V_0286D4_SPI_PNT_SPRITE_SEL_S 2 #define V_0286D4_SPI_PNT_SPRITE_SEL_T 3 #define V_0286D4_SPI_PNT_SPRITE_SEL_NONE 4 #define S_0286D4_PNT_SPRITE_OVRD_Y(x) (((unsigned)(x) & 0x7) << 5) #define G_0286D4_PNT_SPRITE_OVRD_Y(x) (((x) >> 5) & 0x7) #define C_0286D4_PNT_SPRITE_OVRD_Y 0xFFFFFF1F #define S_0286D4_PNT_SPRITE_OVRD_Z(x) (((unsigned)(x) & 0x7) << 8) #define G_0286D4_PNT_SPRITE_OVRD_Z(x) (((x) >> 8) & 0x7) #define C_0286D4_PNT_SPRITE_OVRD_Z 0xFFFFF8FF #define S_0286D4_PNT_SPRITE_OVRD_W(x) (((unsigned)(x) & 0x7) << 11) #define G_0286D4_PNT_SPRITE_OVRD_W(x) (((x) >> 11) & 0x7) #define C_0286D4_PNT_SPRITE_OVRD_W 0xFFFFC7FF #define S_0286D4_PNT_SPRITE_TOP_1(x) (((unsigned)(x) & 0x1) << 14) #define G_0286D4_PNT_SPRITE_TOP_1(x) (((x) >> 14) & 0x1) #define C_0286D4_PNT_SPRITE_TOP_1 0xFFFFBFFF #define R_0286D8_SPI_PS_IN_CONTROL 0x0286D8 #define S_0286D8_NUM_INTERP(x) (((unsigned)(x) & 0x3F) << 0) #define G_0286D8_NUM_INTERP(x) (((x) >> 0) & 0x3F) #define C_0286D8_NUM_INTERP 0xFFFFFFC0 #define S_0286D8_PARAM_GEN(x) (((unsigned)(x) & 0x1) << 6) /* <= gfx10 */ #define G_0286D8_PARAM_GEN(x) (((x) >> 6) & 0x1) #define C_0286D8_PARAM_GEN 0xFFFFFFBF #define S_0286D8_OFFCHIP_PARAM_EN(x) (((unsigned)(x) & 0x1) << 7) /* >= gfx9 */ #define G_0286D8_OFFCHIP_PARAM_EN(x) (((x) >> 7) & 0x1) #define C_0286D8_OFFCHIP_PARAM_EN 0xFFFFFF7F #define S_0286D8_LATE_PC_DEALLOC(x) (((unsigned)(x) & 0x1) << 8) /* >= gfx9 */ #define G_0286D8_LATE_PC_DEALLOC(x) (((x) >> 8) & 0x1) #define C_0286D8_LATE_PC_DEALLOC 0xFFFFFEFF #define S_0286D8_NUM_PRIM_INTERP(x) (((unsigned)(x) & 0x1F) << 9) /* >= gfx103 */ #define G_0286D8_NUM_PRIM_INTERP(x) (((x) >> 9) & 0x1F) #define C_0286D8_NUM_PRIM_INTERP 0xFFFFC1FF #define S_0286D8_BC_OPTIMIZE_DISABLE(x) (((unsigned)(x) & 0x1) << 14) #define G_0286D8_BC_OPTIMIZE_DISABLE(x) (((x) >> 14) & 0x1) #define C_0286D8_BC_OPTIMIZE_DISABLE 0xFFFFBFFF #define S_0286D8_PS_W32_EN(x) (((unsigned)(x) & 0x1) << 15) /* >= gfx10 */ #define G_0286D8_PS_W32_EN(x) (((x) >> 15) & 0x1) #define C_0286D8_PS_W32_EN 0xFFFF7FFF #define R_0286E0_SPI_BARYC_CNTL 0x0286E0 #define S_0286E0_PERSP_CENTER_CNTL(x) (((unsigned)(x) & 0x1) << 0) #define G_0286E0_PERSP_CENTER_CNTL(x) (((x) >> 0) & 0x1) #define C_0286E0_PERSP_CENTER_CNTL 0xFFFFFFFE #define S_0286E0_PERSP_CENTROID_CNTL(x) (((unsigned)(x) & 0x1) << 4) #define G_0286E0_PERSP_CENTROID_CNTL(x) (((x) >> 4) & 0x1) #define C_0286E0_PERSP_CENTROID_CNTL 0xFFFFFFEF #define S_0286E0_LINEAR_CENTER_CNTL(x) (((unsigned)(x) & 0x1) << 8) #define G_0286E0_LINEAR_CENTER_CNTL(x) (((x) >> 8) & 0x1) #define C_0286E0_LINEAR_CENTER_CNTL 0xFFFFFEFF #define S_0286E0_LINEAR_CENTROID_CNTL(x) (((unsigned)(x) & 0x1) << 12) #define G_0286E0_LINEAR_CENTROID_CNTL(x) (((x) >> 12) & 0x1) #define C_0286E0_LINEAR_CENTROID_CNTL 0xFFFFEFFF #define S_0286E0_POS_FLOAT_LOCATION(x) (((unsigned)(x) & 0x3) << 16) #define G_0286E0_POS_FLOAT_LOCATION(x) (((x) >> 16) & 0x3) #define C_0286E0_POS_FLOAT_LOCATION 0xFFFCFFFF #define S_0286E0_POS_FLOAT_ULC(x) (((unsigned)(x) & 0x1) << 20) #define G_0286E0_POS_FLOAT_ULC(x) (((x) >> 20) & 0x1) #define C_0286E0_POS_FLOAT_ULC 0xFFEFFFFF #define S_0286E0_FRONT_FACE_ALL_BITS(x) (((unsigned)(x) & 0x1) << 24) #define G_0286E0_FRONT_FACE_ALL_BITS(x) (((x) >> 24) & 0x1) #define C_0286E0_FRONT_FACE_ALL_BITS 0xFEFFFFFF #define R_0286E8_SPI_TMPRING_SIZE 0x0286E8 #define S_0286E8_WAVES(x) (((unsigned)(x) & 0xFFF) << 0) #define G_0286E8_WAVES(x) (((x) >> 0) & 0xFFF) #define C_0286E8_WAVES 0xFFFFF000 #define S_0286E8_WAVESIZE(x) (((unsigned)(x) & 0x1FFF) << 12) #define G_0286E8_WAVESIZE(x) (((x) >> 12) & 0x1FFF) #define C_0286E8_WAVESIZE 0xFE000FFF #define R_028708_SPI_SHADER_IDX_FORMAT 0x028708 /* >= gfx10 */ #define S_028708_IDX0_EXPORT_FORMAT(x) (((unsigned)(x) & 0xF) << 0) #define G_028708_IDX0_EXPORT_FORMAT(x) (((x) >> 0) & 0xF) #define C_028708_IDX0_EXPORT_FORMAT 0xFFFFFFF0 #define V_028708_SPI_SHADER_NONE 0 #define V_028708_SPI_SHADER_1COMP 1 #define V_028708_SPI_SHADER_2COMP 2 #define V_028708_SPI_SHADER_4COMPRESS 3 #define V_028708_SPI_SHADER_4COMP 4 #define R_02870C_SPI_SHADER_POS_FORMAT 0x02870C #define S_02870C_POS0_EXPORT_FORMAT(x) (((unsigned)(x) & 0xF) << 0) #define G_02870C_POS0_EXPORT_FORMAT(x) (((x) >> 0) & 0xF) #define C_02870C_POS0_EXPORT_FORMAT 0xFFFFFFF0 #define V_02870C_SPI_SHADER_NONE 0 #define V_02870C_SPI_SHADER_1COMP 1 #define V_02870C_SPI_SHADER_2COMP 2 #define V_02870C_SPI_SHADER_4COMPRESS 3 #define V_02870C_SPI_SHADER_4COMP 4 #define S_02870C_POS1_EXPORT_FORMAT(x) (((unsigned)(x) & 0xF) << 4) #define G_02870C_POS1_EXPORT_FORMAT(x) (((x) >> 4) & 0xF) #define C_02870C_POS1_EXPORT_FORMAT 0xFFFFFF0F #define S_02870C_POS2_EXPORT_FORMAT(x) (((unsigned)(x) & 0xF) << 8) #define G_02870C_POS2_EXPORT_FORMAT(x) (((x) >> 8) & 0xF) #define C_02870C_POS2_EXPORT_FORMAT 0xFFFFF0FF #define S_02870C_POS3_EXPORT_FORMAT(x) (((unsigned)(x) & 0xF) << 12) #define G_02870C_POS3_EXPORT_FORMAT(x) (((x) >> 12) & 0xF) #define C_02870C_POS3_EXPORT_FORMAT 0xFFFF0FFF #define S_02870C_POS4_EXPORT_FORMAT(x) (((unsigned)(x) & 0xF) << 16) /* >= gfx10 */ #define G_02870C_POS4_EXPORT_FORMAT(x) (((x) >> 16) & 0xF) #define C_02870C_POS4_EXPORT_FORMAT 0xFFF0FFFF #define R_028710_SPI_SHADER_Z_FORMAT 0x028710 #define S_028710_Z_EXPORT_FORMAT(x) (((unsigned)(x) & 0xF) << 0) #define G_028710_Z_EXPORT_FORMAT(x) (((x) >> 0) & 0xF) #define C_028710_Z_EXPORT_FORMAT 0xFFFFFFF0 #define V_028710_SPI_SHADER_ZERO 0 #define V_028710_SPI_SHADER_32_R 1 #define V_028710_SPI_SHADER_32_GR 2 #define V_028710_SPI_SHADER_32_AR 3 #define V_028710_SPI_SHADER_FP16_ABGR 4 #define V_028710_SPI_SHADER_UNORM16_ABGR 5 #define V_028710_SPI_SHADER_SNORM16_ABGR 6 #define V_028710_SPI_SHADER_UINT16_ABGR 7 #define V_028710_SPI_SHADER_SINT16_ABGR 8 #define V_028710_SPI_SHADER_32_ABGR 9 #define R_028714_SPI_SHADER_COL_FORMAT 0x028714 #define S_028714_COL0_EXPORT_FORMAT(x) (((unsigned)(x) & 0xF) << 0) #define G_028714_COL0_EXPORT_FORMAT(x) (((x) >> 0) & 0xF) #define C_028714_COL0_EXPORT_FORMAT 0xFFFFFFF0 #define V_028714_SPI_SHADER_ZERO 0 #define V_028714_SPI_SHADER_32_R 1 #define V_028714_SPI_SHADER_32_GR 2 #define V_028714_SPI_SHADER_32_AR 3 #define V_028714_SPI_SHADER_FP16_ABGR 4 #define V_028714_SPI_SHADER_UNORM16_ABGR 5 #define V_028714_SPI_SHADER_SNORM16_ABGR 6 #define V_028714_SPI_SHADER_UINT16_ABGR 7 #define V_028714_SPI_SHADER_SINT16_ABGR 8 #define V_028714_SPI_SHADER_32_ABGR 9 #define S_028714_COL1_EXPORT_FORMAT(x) (((unsigned)(x) & 0xF) << 4) #define G_028714_COL1_EXPORT_FORMAT(x) (((x) >> 4) & 0xF) #define C_028714_COL1_EXPORT_FORMAT 0xFFFFFF0F #define S_028714_COL2_EXPORT_FORMAT(x) (((unsigned)(x) & 0xF) << 8) #define G_028714_COL2_EXPORT_FORMAT(x) (((x) >> 8) & 0xF) #define C_028714_COL2_EXPORT_FORMAT 0xFFFFF0FF #define S_028714_COL3_EXPORT_FORMAT(x) (((unsigned)(x) & 0xF) << 12) #define G_028714_COL3_EXPORT_FORMAT(x) (((x) >> 12) & 0xF) #define C_028714_COL3_EXPORT_FORMAT 0xFFFF0FFF #define S_028714_COL4_EXPORT_FORMAT(x) (((unsigned)(x) & 0xF) << 16) #define G_028714_COL4_EXPORT_FORMAT(x) (((x) >> 16) & 0xF) #define C_028714_COL4_EXPORT_FORMAT 0xFFF0FFFF #define S_028714_COL5_EXPORT_FORMAT(x) (((unsigned)(x) & 0xF) << 20) #define G_028714_COL5_EXPORT_FORMAT(x) (((x) >> 20) & 0xF) #define C_028714_COL5_EXPORT_FORMAT 0xFF0FFFFF #define S_028714_COL6_EXPORT_FORMAT(x) (((unsigned)(x) & 0xF) << 24) #define G_028714_COL6_EXPORT_FORMAT(x) (((x) >> 24) & 0xF) #define C_028714_COL6_EXPORT_FORMAT 0xF0FFFFFF #define S_028714_COL7_EXPORT_FORMAT(x) (((unsigned)(x) & 0xF) << 28) #define G_028714_COL7_EXPORT_FORMAT(x) (((x) >> 28) & 0xF) #define C_028714_COL7_EXPORT_FORMAT 0x0FFFFFFF #define R_028750_SX_PS_DOWNCONVERT_CONTROL 0x028750 /* >= gfx103 */ #define S_028750_MRT0_FMT_MAPPING_DISABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_028750_MRT0_FMT_MAPPING_DISABLE(x) (((x) >> 0) & 0x1) #define C_028750_MRT0_FMT_MAPPING_DISABLE 0xFFFFFFFE #define S_028750_MRT1_FMT_MAPPING_DISABLE(x) (((unsigned)(x) & 0x1) << 1) #define G_028750_MRT1_FMT_MAPPING_DISABLE(x) (((x) >> 1) & 0x1) #define C_028750_MRT1_FMT_MAPPING_DISABLE 0xFFFFFFFD #define S_028750_MRT2_FMT_MAPPING_DISABLE(x) (((unsigned)(x) & 0x1) << 2) #define G_028750_MRT2_FMT_MAPPING_DISABLE(x) (((x) >> 2) & 0x1) #define C_028750_MRT2_FMT_MAPPING_DISABLE 0xFFFFFFFB #define S_028750_MRT3_FMT_MAPPING_DISABLE(x) (((unsigned)(x) & 0x1) << 3) #define G_028750_MRT3_FMT_MAPPING_DISABLE(x) (((x) >> 3) & 0x1) #define C_028750_MRT3_FMT_MAPPING_DISABLE 0xFFFFFFF7 #define S_028750_MRT4_FMT_MAPPING_DISABLE(x) (((unsigned)(x) & 0x1) << 4) #define G_028750_MRT4_FMT_MAPPING_DISABLE(x) (((x) >> 4) & 0x1) #define C_028750_MRT4_FMT_MAPPING_DISABLE 0xFFFFFFEF #define S_028750_MRT5_FMT_MAPPING_DISABLE(x) (((unsigned)(x) & 0x1) << 5) #define G_028750_MRT5_FMT_MAPPING_DISABLE(x) (((x) >> 5) & 0x1) #define C_028750_MRT5_FMT_MAPPING_DISABLE 0xFFFFFFDF #define S_028750_MRT6_FMT_MAPPING_DISABLE(x) (((unsigned)(x) & 0x1) << 6) #define G_028750_MRT6_FMT_MAPPING_DISABLE(x) (((x) >> 6) & 0x1) #define C_028750_MRT6_FMT_MAPPING_DISABLE 0xFFFFFFBF #define S_028750_MRT7_FMT_MAPPING_DISABLE(x) (((unsigned)(x) & 0x1) << 7) #define G_028750_MRT7_FMT_MAPPING_DISABLE(x) (((x) >> 7) & 0x1) #define C_028750_MRT7_FMT_MAPPING_DISABLE 0xFFFFFF7F #define R_028754_SX_PS_DOWNCONVERT 0x028754 /* >= gfx81 */ #define S_028754_MRT0(x) (((unsigned)(x) & 0xF) << 0) #define G_028754_MRT0(x) (((x) >> 0) & 0xF) #define C_028754_MRT0 0xFFFFFFF0 #define V_028754_SX_RT_EXPORT_NO_CONVERSION 0 #define V_028754_SX_RT_EXPORT_32_R 1 #define V_028754_SX_RT_EXPORT_32_A 2 #define V_028754_SX_RT_EXPORT_10_11_11 3 #define V_028754_SX_RT_EXPORT_2_10_10_10 4 #define V_028754_SX_RT_EXPORT_8_8_8_8 5 #define V_028754_SX_RT_EXPORT_5_6_5 6 #define V_028754_SX_RT_EXPORT_1_5_5_5 7 #define V_028754_SX_RT_EXPORT_4_4_4_4 8 #define V_028754_SX_RT_EXPORT_16_16_GR 9 #define V_028754_SX_RT_EXPORT_16_16_AR 10 #define V_028754_SX_RT_EXPORT_9_9_9_E5 11 /* >= gfx103 */ #define S_028754_MRT1(x) (((unsigned)(x) & 0xF) << 4) #define G_028754_MRT1(x) (((x) >> 4) & 0xF) #define C_028754_MRT1 0xFFFFFF0F #define S_028754_MRT2(x) (((unsigned)(x) & 0xF) << 8) #define G_028754_MRT2(x) (((x) >> 8) & 0xF) #define C_028754_MRT2 0xFFFFF0FF #define S_028754_MRT3(x) (((unsigned)(x) & 0xF) << 12) #define G_028754_MRT3(x) (((x) >> 12) & 0xF) #define C_028754_MRT3 0xFFFF0FFF #define S_028754_MRT4(x) (((unsigned)(x) & 0xF) << 16) #define G_028754_MRT4(x) (((x) >> 16) & 0xF) #define C_028754_MRT4 0xFFF0FFFF #define S_028754_MRT5(x) (((unsigned)(x) & 0xF) << 20) #define G_028754_MRT5(x) (((x) >> 20) & 0xF) #define C_028754_MRT5 0xFF0FFFFF #define S_028754_MRT6(x) (((unsigned)(x) & 0xF) << 24) #define G_028754_MRT6(x) (((x) >> 24) & 0xF) #define C_028754_MRT6 0xF0FFFFFF #define S_028754_MRT7(x) (((unsigned)(x) & 0xF) << 28) #define G_028754_MRT7(x) (((x) >> 28) & 0xF) #define C_028754_MRT7 0x0FFFFFFF #define R_028758_SX_BLEND_OPT_EPSILON 0x028758 /* >= gfx81 */ #define S_028758_MRT0_EPSILON(x) (((unsigned)(x) & 0xF) << 0) #define G_028758_MRT0_EPSILON(x) (((x) >> 0) & 0xF) #define C_028758_MRT0_EPSILON 0xFFFFFFF0 #define V_028758_EXACT 0 #define V_028758_11BIT_FORMAT 1 #define V_028758_10BIT_FORMAT 3 #define V_028758_8BIT_FORMAT 6 #define V_028758_6BIT_FORMAT 11 #define V_028758_5BIT_FORMAT 13 #define V_028758_4BIT_FORMAT 15 #define S_028758_MRT1_EPSILON(x) (((unsigned)(x) & 0xF) << 4) #define G_028758_MRT1_EPSILON(x) (((x) >> 4) & 0xF) #define C_028758_MRT1_EPSILON 0xFFFFFF0F #define S_028758_MRT2_EPSILON(x) (((unsigned)(x) & 0xF) << 8) #define G_028758_MRT2_EPSILON(x) (((x) >> 8) & 0xF) #define C_028758_MRT2_EPSILON 0xFFFFF0FF #define S_028758_MRT3_EPSILON(x) (((unsigned)(x) & 0xF) << 12) #define G_028758_MRT3_EPSILON(x) (((x) >> 12) & 0xF) #define C_028758_MRT3_EPSILON 0xFFFF0FFF #define S_028758_MRT4_EPSILON(x) (((unsigned)(x) & 0xF) << 16) #define G_028758_MRT4_EPSILON(x) (((x) >> 16) & 0xF) #define C_028758_MRT4_EPSILON 0xFFF0FFFF #define S_028758_MRT5_EPSILON(x) (((unsigned)(x) & 0xF) << 20) #define G_028758_MRT5_EPSILON(x) (((x) >> 20) & 0xF) #define C_028758_MRT5_EPSILON 0xFF0FFFFF #define S_028758_MRT6_EPSILON(x) (((unsigned)(x) & 0xF) << 24) #define G_028758_MRT6_EPSILON(x) (((x) >> 24) & 0xF) #define C_028758_MRT6_EPSILON 0xF0FFFFFF #define S_028758_MRT7_EPSILON(x) (((unsigned)(x) & 0xF) << 28) #define G_028758_MRT7_EPSILON(x) (((x) >> 28) & 0xF) #define C_028758_MRT7_EPSILON 0x0FFFFFFF #define R_02875C_SX_BLEND_OPT_CONTROL 0x02875C /* >= gfx81 */ #define S_02875C_MRT0_COLOR_OPT_DISABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_02875C_MRT0_COLOR_OPT_DISABLE(x) (((x) >> 0) & 0x1) #define C_02875C_MRT0_COLOR_OPT_DISABLE 0xFFFFFFFE #define S_02875C_MRT0_ALPHA_OPT_DISABLE(x) (((unsigned)(x) & 0x1) << 1) #define G_02875C_MRT0_ALPHA_OPT_DISABLE(x) (((x) >> 1) & 0x1) #define C_02875C_MRT0_ALPHA_OPT_DISABLE 0xFFFFFFFD #define S_02875C_MRT1_COLOR_OPT_DISABLE(x) (((unsigned)(x) & 0x1) << 4) #define G_02875C_MRT1_COLOR_OPT_DISABLE(x) (((x) >> 4) & 0x1) #define C_02875C_MRT1_COLOR_OPT_DISABLE 0xFFFFFFEF #define S_02875C_MRT1_ALPHA_OPT_DISABLE(x) (((unsigned)(x) & 0x1) << 5) #define G_02875C_MRT1_ALPHA_OPT_DISABLE(x) (((x) >> 5) & 0x1) #define C_02875C_MRT1_ALPHA_OPT_DISABLE 0xFFFFFFDF #define S_02875C_MRT2_COLOR_OPT_DISABLE(x) (((unsigned)(x) & 0x1) << 8) #define G_02875C_MRT2_COLOR_OPT_DISABLE(x) (((x) >> 8) & 0x1) #define C_02875C_MRT2_COLOR_OPT_DISABLE 0xFFFFFEFF #define S_02875C_MRT2_ALPHA_OPT_DISABLE(x) (((unsigned)(x) & 0x1) << 9) #define G_02875C_MRT2_ALPHA_OPT_DISABLE(x) (((x) >> 9) & 0x1) #define C_02875C_MRT2_ALPHA_OPT_DISABLE 0xFFFFFDFF #define S_02875C_MRT3_COLOR_OPT_DISABLE(x) (((unsigned)(x) & 0x1) << 12) #define G_02875C_MRT3_COLOR_OPT_DISABLE(x) (((x) >> 12) & 0x1) #define C_02875C_MRT3_COLOR_OPT_DISABLE 0xFFFFEFFF #define S_02875C_MRT3_ALPHA_OPT_DISABLE(x) (((unsigned)(x) & 0x1) << 13) #define G_02875C_MRT3_ALPHA_OPT_DISABLE(x) (((x) >> 13) & 0x1) #define C_02875C_MRT3_ALPHA_OPT_DISABLE 0xFFFFDFFF #define S_02875C_MRT4_COLOR_OPT_DISABLE(x) (((unsigned)(x) & 0x1) << 16) #define G_02875C_MRT4_COLOR_OPT_DISABLE(x) (((x) >> 16) & 0x1) #define C_02875C_MRT4_COLOR_OPT_DISABLE 0xFFFEFFFF #define S_02875C_MRT4_ALPHA_OPT_DISABLE(x) (((unsigned)(x) & 0x1) << 17) #define G_02875C_MRT4_ALPHA_OPT_DISABLE(x) (((x) >> 17) & 0x1) #define C_02875C_MRT4_ALPHA_OPT_DISABLE 0xFFFDFFFF #define S_02875C_MRT5_COLOR_OPT_DISABLE(x) (((unsigned)(x) & 0x1) << 20) #define G_02875C_MRT5_COLOR_OPT_DISABLE(x) (((x) >> 20) & 0x1) #define C_02875C_MRT5_COLOR_OPT_DISABLE 0xFFEFFFFF #define S_02875C_MRT5_ALPHA_OPT_DISABLE(x) (((unsigned)(x) & 0x1) << 21) #define G_02875C_MRT5_ALPHA_OPT_DISABLE(x) (((x) >> 21) & 0x1) #define C_02875C_MRT5_ALPHA_OPT_DISABLE 0xFFDFFFFF #define S_02875C_MRT6_COLOR_OPT_DISABLE(x) (((unsigned)(x) & 0x1) << 24) #define G_02875C_MRT6_COLOR_OPT_DISABLE(x) (((x) >> 24) & 0x1) #define C_02875C_MRT6_COLOR_OPT_DISABLE 0xFEFFFFFF #define S_02875C_MRT6_ALPHA_OPT_DISABLE(x) (((unsigned)(x) & 0x1) << 25) #define G_02875C_MRT6_ALPHA_OPT_DISABLE(x) (((x) >> 25) & 0x1) #define C_02875C_MRT6_ALPHA_OPT_DISABLE 0xFDFFFFFF #define S_02875C_MRT7_COLOR_OPT_DISABLE(x) (((unsigned)(x) & 0x1) << 28) #define G_02875C_MRT7_COLOR_OPT_DISABLE(x) (((x) >> 28) & 0x1) #define C_02875C_MRT7_COLOR_OPT_DISABLE 0xEFFFFFFF #define S_02875C_MRT7_ALPHA_OPT_DISABLE(x) (((unsigned)(x) & 0x1) << 29) #define G_02875C_MRT7_ALPHA_OPT_DISABLE(x) (((x) >> 29) & 0x1) #define C_02875C_MRT7_ALPHA_OPT_DISABLE 0xDFFFFFFF #define S_02875C_PIXEN_ZERO_OPT_DISABLE(x) (((unsigned)(x) & 0x1) << 31) #define G_02875C_PIXEN_ZERO_OPT_DISABLE(x) (((x) >> 31) & 0x1) #define C_02875C_PIXEN_ZERO_OPT_DISABLE 0x7FFFFFFF #define R_028760_SX_MRT0_BLEND_OPT 0x028760 /* >= gfx81 */ #define S_028760_COLOR_SRC_OPT(x) (((unsigned)(x) & 0x7) << 0) #define G_028760_COLOR_SRC_OPT(x) (((x) >> 0) & 0x7) #define C_028760_COLOR_SRC_OPT 0xFFFFFFF8 #define V_028760_BLEND_OPT_PRESERVE_NONE_IGNORE_ALL 0 #define V_028760_BLEND_OPT_PRESERVE_ALL_IGNORE_NONE 1 #define V_028760_BLEND_OPT_PRESERVE_C1_IGNORE_C0 2 #define V_028760_BLEND_OPT_PRESERVE_C0_IGNORE_C1 3 #define V_028760_BLEND_OPT_PRESERVE_A1_IGNORE_A0 4 #define V_028760_BLEND_OPT_PRESERVE_A0_IGNORE_A1 5 #define V_028760_BLEND_OPT_PRESERVE_NONE_IGNORE_A0 6 #define V_028760_BLEND_OPT_PRESERVE_NONE_IGNORE_NONE 7 #define S_028760_COLOR_DST_OPT(x) (((unsigned)(x) & 0x7) << 4) #define G_028760_COLOR_DST_OPT(x) (((x) >> 4) & 0x7) #define C_028760_COLOR_DST_OPT 0xFFFFFF8F #define S_028760_COLOR_COMB_FCN(x) (((unsigned)(x) & 0x7) << 8) #define G_028760_COLOR_COMB_FCN(x) (((x) >> 8) & 0x7) #define C_028760_COLOR_COMB_FCN 0xFFFFF8FF #define V_028760_OPT_COMB_NONE 0 #define V_028760_OPT_COMB_ADD 1 #define V_028760_OPT_COMB_SUBTRACT 2 #define V_028760_OPT_COMB_MIN 3 #define V_028760_OPT_COMB_MAX 4 #define V_028760_OPT_COMB_REVSUBTRACT 5 #define V_028760_OPT_COMB_BLEND_DISABLED 6 #define V_028760_OPT_COMB_SAFE_ADD 7 #define S_028760_ALPHA_SRC_OPT(x) (((unsigned)(x) & 0x7) << 16) #define G_028760_ALPHA_SRC_OPT(x) (((x) >> 16) & 0x7) #define C_028760_ALPHA_SRC_OPT 0xFFF8FFFF #define S_028760_ALPHA_DST_OPT(x) (((unsigned)(x) & 0x7) << 20) #define G_028760_ALPHA_DST_OPT(x) (((x) >> 20) & 0x7) #define C_028760_ALPHA_DST_OPT 0xFF8FFFFF #define S_028760_ALPHA_COMB_FCN(x) (((unsigned)(x) & 0x7) << 24) #define G_028760_ALPHA_COMB_FCN(x) (((x) >> 24) & 0x7) #define C_028760_ALPHA_COMB_FCN 0xF8FFFFFF #define R_028764_SX_MRT1_BLEND_OPT 0x028764 /* >= gfx81 */ #define R_028768_SX_MRT2_BLEND_OPT 0x028768 /* >= gfx81 */ #define R_02876C_SX_MRT3_BLEND_OPT 0x02876C /* >= gfx81 */ #define R_028770_SX_MRT4_BLEND_OPT 0x028770 /* >= gfx81 */ #define R_028774_SX_MRT5_BLEND_OPT 0x028774 /* >= gfx81 */ #define R_028778_SX_MRT6_BLEND_OPT 0x028778 /* >= gfx81 */ #define R_02877C_SX_MRT7_BLEND_OPT 0x02877C /* >= gfx81 */ #define R_028780_CB_BLEND0_CONTROL 0x028780 #define S_028780_COLOR_SRCBLEND(x) (((unsigned)(x) & 0x1F) << 0) #define G_028780_COLOR_SRCBLEND(x) (((x) >> 0) & 0x1F) #define C_028780_COLOR_SRCBLEND 0xFFFFFFE0 #define V_028780_BLEND_ZERO 0 #define V_028780_BLEND_ONE 1 #define V_028780_BLEND_SRC_COLOR 2 #define V_028780_BLEND_ONE_MINUS_SRC_COLOR 3 #define V_028780_BLEND_SRC_ALPHA 4 #define V_028780_BLEND_ONE_MINUS_SRC_ALPHA 5 #define V_028780_BLEND_DST_ALPHA 6 #define V_028780_BLEND_ONE_MINUS_DST_ALPHA 7 #define V_028780_BLEND_DST_COLOR 8 #define V_028780_BLEND_ONE_MINUS_DST_COLOR 9 #define V_028780_BLEND_SRC_ALPHA_SATURATE 10 #define V_028780_BLEND_BOTH_SRC_ALPHA 11 #define V_028780_BLEND_BOTH_INV_SRC_ALPHA 12 #define V_028780_BLEND_CONSTANT_COLOR 13 #define V_028780_BLEND_ONE_MINUS_CONSTANT_COLOR 14 #define V_028780_BLEND_SRC1_COLOR 15 #define V_028780_BLEND_INV_SRC1_COLOR 16 #define V_028780_BLEND_SRC1_ALPHA 17 #define V_028780_BLEND_INV_SRC1_ALPHA 18 #define V_028780_BLEND_CONSTANT_ALPHA 19 #define V_028780_BLEND_ONE_MINUS_CONSTANT_ALPHA 20 #define S_028780_COLOR_COMB_FCN(x) (((unsigned)(x) & 0x7) << 5) #define G_028780_COLOR_COMB_FCN(x) (((x) >> 5) & 0x7) #define C_028780_COLOR_COMB_FCN 0xFFFFFF1F #define V_028780_COMB_DST_PLUS_SRC 0 #define V_028780_COMB_SRC_MINUS_DST 1 #define V_028780_COMB_MIN_DST_SRC 2 #define V_028780_COMB_MAX_DST_SRC 3 #define V_028780_COMB_DST_MINUS_SRC 4 #define S_028780_COLOR_DESTBLEND(x) (((unsigned)(x) & 0x1F) << 8) #define G_028780_COLOR_DESTBLEND(x) (((x) >> 8) & 0x1F) #define C_028780_COLOR_DESTBLEND 0xFFFFE0FF #define S_028780_ALPHA_SRCBLEND(x) (((unsigned)(x) & 0x1F) << 16) #define G_028780_ALPHA_SRCBLEND(x) (((x) >> 16) & 0x1F) #define C_028780_ALPHA_SRCBLEND 0xFFE0FFFF #define S_028780_ALPHA_COMB_FCN(x) (((unsigned)(x) & 0x7) << 21) #define G_028780_ALPHA_COMB_FCN(x) (((x) >> 21) & 0x7) #define C_028780_ALPHA_COMB_FCN 0xFF1FFFFF #define S_028780_ALPHA_DESTBLEND(x) (((unsigned)(x) & 0x1F) << 24) #define G_028780_ALPHA_DESTBLEND(x) (((x) >> 24) & 0x1F) #define C_028780_ALPHA_DESTBLEND 0xE0FFFFFF #define S_028780_SEPARATE_ALPHA_BLEND(x) (((unsigned)(x) & 0x1) << 29) #define G_028780_SEPARATE_ALPHA_BLEND(x) (((x) >> 29) & 0x1) #define C_028780_SEPARATE_ALPHA_BLEND 0xDFFFFFFF #define S_028780_ENABLE(x) (((unsigned)(x) & 0x1) << 30) #define G_028780_ENABLE(x) (((x) >> 30) & 0x1) #define C_028780_ENABLE 0xBFFFFFFF #define S_028780_DISABLE_ROP3(x) (((unsigned)(x) & 0x1) << 31) #define G_028780_DISABLE_ROP3(x) (((x) >> 31) & 0x1) #define C_028780_DISABLE_ROP3 0x7FFFFFFF #define R_028784_CB_BLEND1_CONTROL 0x028784 #define R_028788_CB_BLEND2_CONTROL 0x028788 #define R_02878C_CB_BLEND3_CONTROL 0x02878C #define R_028790_CB_BLEND4_CONTROL 0x028790 #define R_028794_CB_BLEND5_CONTROL 0x028794 #define R_028798_CB_BLEND6_CONTROL 0x028798 #define R_02879C_CB_BLEND7_CONTROL 0x02879C #define R_0287A0_CB_MRT0_EPITCH 0x0287A0 /* gfx9 */ #define S_0287A0_EPITCH(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_0287A0_EPITCH(x) (((x) >> 0) & 0xFFFF) #define C_0287A0_EPITCH 0xFFFF0000 #define R_0287A4_CB_MRT1_EPITCH 0x0287A4 /* gfx9 */ #define R_0287A8_CB_MRT2_EPITCH 0x0287A8 /* gfx9 */ #define R_0287AC_CB_MRT3_EPITCH 0x0287AC /* gfx9 */ #define R_0287B0_CB_MRT4_EPITCH 0x0287B0 /* gfx9 */ #define R_0287B4_CB_MRT5_EPITCH 0x0287B4 /* gfx9 */ #define R_0287B8_CB_MRT6_EPITCH 0x0287B8 /* gfx9 */ #define R_0287BC_CB_MRT7_EPITCH 0x0287BC /* gfx9 */ #define R_0287CC_CS_COPY_STATE 0x0287CC #define S_0287CC_SRC_STATE_ID(x) (((unsigned)(x) & 0x7) << 0) #define G_0287CC_SRC_STATE_ID(x) (((x) >> 0) & 0x7) #define C_0287CC_SRC_STATE_ID 0xFFFFFFF8 #define R_0287D0_GFX_COPY_STATE 0x0287D0 #define S_0287D0_SRC_STATE_ID(x) (((unsigned)(x) & 0x7) << 0) #define G_0287D0_SRC_STATE_ID(x) (((x) >> 0) & 0x7) #define C_0287D0_SRC_STATE_ID 0xFFFFFFF8 #define R_0287D4_PA_CL_POINT_X_RAD 0x0287D4 #define R_0287D8_PA_CL_POINT_Y_RAD 0x0287D8 #define R_0287DC_PA_CL_POINT_SIZE 0x0287DC #define R_0287E0_PA_CL_POINT_CULL_RAD 0x0287E0 #define R_0287E4_VGT_DMA_BASE_HI 0x0287E4 #define S_0287E4_BASE_ADDR(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_0287E4_BASE_ADDR(x) (((x) >> 0) & 0xFFFF) #define C_0287E4_BASE_ADDR 0xFFFF0000 #define R_0287E8_VGT_DMA_BASE 0x0287E8 #define R_0287F0_VGT_DRAW_INITIATOR 0x0287F0 #define S_0287F0_SOURCE_SELECT(x) (((unsigned)(x) & 0x3) << 0) #define G_0287F0_SOURCE_SELECT(x) (((x) >> 0) & 0x3) #define C_0287F0_SOURCE_SELECT 0xFFFFFFFC #define V_0287F0_DI_SRC_SEL_DMA 0 #define V_0287F0_DI_SRC_SEL_IMMEDIATE 1 #define V_0287F0_DI_SRC_SEL_AUTO_INDEX 2 #define V_0287F0_DI_SRC_SEL_RESERVED 3 #define S_0287F0_MAJOR_MODE(x) (((unsigned)(x) & 0x3) << 2) #define G_0287F0_MAJOR_MODE(x) (((x) >> 2) & 0x3) #define C_0287F0_MAJOR_MODE 0xFFFFFFF3 #define V_0287F0_DI_MAJOR_MODE_0 0 #define V_0287F0_DI_MAJOR_MODE_1 1 #define S_0287F0_SPRITE_EN_R6XX(x) (((unsigned)(x) & 0x1) << 4) #define G_0287F0_SPRITE_EN_R6XX(x) (((x) >> 4) & 0x1) #define C_0287F0_SPRITE_EN_R6XX 0xFFFFFFEF #define S_0287F0_NOT_EOP(x) (((unsigned)(x) & 0x1) << 5) #define G_0287F0_NOT_EOP(x) (((x) >> 5) & 0x1) #define C_0287F0_NOT_EOP 0xFFFFFFDF #define S_0287F0_USE_OPAQUE(x) (((unsigned)(x) & 0x1) << 6) #define G_0287F0_USE_OPAQUE(x) (((x) >> 6) & 0x1) #define C_0287F0_USE_OPAQUE 0xFFFFFFBF #define S_0287F0_UNROLLED_INST(x) (((unsigned)(x) & 0x1) << 7) /* gfx9, gfx10 */ #define G_0287F0_UNROLLED_INST(x) (((x) >> 7) & 0x1) #define C_0287F0_UNROLLED_INST 0xFFFFFF7F #define S_0287F0_GRBM_SKEW_NO_DEC(x) (((unsigned)(x) & 0x1) << 8) /* gfx9, gfx10 */ #define G_0287F0_GRBM_SKEW_NO_DEC(x) (((x) >> 8) & 0x1) #define C_0287F0_GRBM_SKEW_NO_DEC 0xFFFFFEFF #define S_0287F0_REG_RT_INDEX(x) (((unsigned)(x) & 0x7) << 29) /* >= gfx9 */ #define G_0287F0_REG_RT_INDEX(x) (((x) >> 29) & 0x7) #define C_0287F0_REG_RT_INDEX 0x1FFFFFFF #define R_0287F4_VGT_IMMED_DATA 0x0287F4 #define R_0287F8_VGT_EVENT_ADDRESS_REG 0x0287F8 #define S_0287F8_ADDRESS_LOW(x) (((unsigned)(x) & 0xFFFFFFF) << 0) #define G_0287F8_ADDRESS_LOW(x) (((x) >> 0) & 0xFFFFFFF) #define C_0287F8_ADDRESS_LOW 0xF0000000 #define R_0287FC_GE_MAX_OUTPUT_PER_SUBGROUP 0x0287FC /* >= gfx10 */ #define S_0287FC_MAX_VERTS_PER_SUBGROUP(x) (((unsigned)(x) & 0x3FF) << 0) #define G_0287FC_MAX_VERTS_PER_SUBGROUP(x) (((x) >> 0) & 0x3FF) #define C_0287FC_MAX_VERTS_PER_SUBGROUP 0xFFFFFC00 #define R_028800_DB_DEPTH_CONTROL 0x028800 #define S_028800_STENCIL_ENABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_028800_STENCIL_ENABLE(x) (((x) >> 0) & 0x1) #define C_028800_STENCIL_ENABLE 0xFFFFFFFE #define S_028800_Z_ENABLE(x) (((unsigned)(x) & 0x1) << 1) #define G_028800_Z_ENABLE(x) (((x) >> 1) & 0x1) #define C_028800_Z_ENABLE 0xFFFFFFFD #define S_028800_Z_WRITE_ENABLE(x) (((unsigned)(x) & 0x1) << 2) #define G_028800_Z_WRITE_ENABLE(x) (((x) >> 2) & 0x1) #define C_028800_Z_WRITE_ENABLE 0xFFFFFFFB #define S_028800_DEPTH_BOUNDS_ENABLE(x) (((unsigned)(x) & 0x1) << 3) #define G_028800_DEPTH_BOUNDS_ENABLE(x) (((x) >> 3) & 0x1) #define C_028800_DEPTH_BOUNDS_ENABLE 0xFFFFFFF7 #define S_028800_ZFUNC(x) (((unsigned)(x) & 0x7) << 4) #define G_028800_ZFUNC(x) (((x) >> 4) & 0x7) #define C_028800_ZFUNC 0xFFFFFF8F #define V_028800_FRAG_NEVER 0 #define V_028800_FRAG_LESS 1 #define V_028800_FRAG_EQUAL 2 #define V_028800_FRAG_LEQUAL 3 #define V_028800_FRAG_GREATER 4 #define V_028800_FRAG_NOTEQUAL 5 #define V_028800_FRAG_GEQUAL 6 #define V_028800_FRAG_ALWAYS 7 #define S_028800_BACKFACE_ENABLE(x) (((unsigned)(x) & 0x1) << 7) #define G_028800_BACKFACE_ENABLE(x) (((x) >> 7) & 0x1) #define C_028800_BACKFACE_ENABLE 0xFFFFFF7F #define S_028800_STENCILFUNC(x) (((unsigned)(x) & 0x7) << 8) #define G_028800_STENCILFUNC(x) (((x) >> 8) & 0x7) #define C_028800_STENCILFUNC 0xFFFFF8FF #define S_028800_STENCILFUNC_BF(x) (((unsigned)(x) & 0x7) << 20) #define G_028800_STENCILFUNC_BF(x) (((x) >> 20) & 0x7) #define C_028800_STENCILFUNC_BF 0xFF8FFFFF #define S_028800_ENABLE_COLOR_WRITES_ON_DEPTH_FAIL(x) (((unsigned)(x) & 0x1) << 30) #define G_028800_ENABLE_COLOR_WRITES_ON_DEPTH_FAIL(x) (((x) >> 30) & 0x1) #define C_028800_ENABLE_COLOR_WRITES_ON_DEPTH_FAIL 0xBFFFFFFF #define S_028800_DISABLE_COLOR_WRITES_ON_DEPTH_PASS(x) (((unsigned)(x) & 0x1) << 31) #define G_028800_DISABLE_COLOR_WRITES_ON_DEPTH_PASS(x) (((x) >> 31) & 0x1) #define C_028800_DISABLE_COLOR_WRITES_ON_DEPTH_PASS 0x7FFFFFFF #define R_028804_DB_EQAA 0x028804 #define S_028804_MAX_ANCHOR_SAMPLES(x) (((unsigned)(x) & 0x7) << 0) #define G_028804_MAX_ANCHOR_SAMPLES(x) (((x) >> 0) & 0x7) #define C_028804_MAX_ANCHOR_SAMPLES 0xFFFFFFF8 #define S_028804_PS_ITER_SAMPLES(x) (((unsigned)(x) & 0x7) << 4) #define G_028804_PS_ITER_SAMPLES(x) (((x) >> 4) & 0x7) #define C_028804_PS_ITER_SAMPLES 0xFFFFFF8F #define S_028804_MASK_EXPORT_NUM_SAMPLES(x) (((unsigned)(x) & 0x7) << 8) #define G_028804_MASK_EXPORT_NUM_SAMPLES(x) (((x) >> 8) & 0x7) #define C_028804_MASK_EXPORT_NUM_SAMPLES 0xFFFFF8FF #define S_028804_ALPHA_TO_MASK_NUM_SAMPLES(x) (((unsigned)(x) & 0x7) << 12) #define G_028804_ALPHA_TO_MASK_NUM_SAMPLES(x) (((x) >> 12) & 0x7) #define C_028804_ALPHA_TO_MASK_NUM_SAMPLES 0xFFFF8FFF #define S_028804_HIGH_QUALITY_INTERSECTIONS(x) (((unsigned)(x) & 0x1) << 16) #define G_028804_HIGH_QUALITY_INTERSECTIONS(x) (((x) >> 16) & 0x1) #define C_028804_HIGH_QUALITY_INTERSECTIONS 0xFFFEFFFF #define S_028804_INCOHERENT_EQAA_READS(x) (((unsigned)(x) & 0x1) << 17) #define G_028804_INCOHERENT_EQAA_READS(x) (((x) >> 17) & 0x1) #define C_028804_INCOHERENT_EQAA_READS 0xFFFDFFFF #define S_028804_INTERPOLATE_COMP_Z(x) (((unsigned)(x) & 0x1) << 18) #define G_028804_INTERPOLATE_COMP_Z(x) (((x) >> 18) & 0x1) #define C_028804_INTERPOLATE_COMP_Z 0xFFFBFFFF #define S_028804_INTERPOLATE_SRC_Z(x) (((unsigned)(x) & 0x1) << 19) #define G_028804_INTERPOLATE_SRC_Z(x) (((x) >> 19) & 0x1) #define C_028804_INTERPOLATE_SRC_Z 0xFFF7FFFF #define S_028804_STATIC_ANCHOR_ASSOCIATIONS(x) (((unsigned)(x) & 0x1) << 20) #define G_028804_STATIC_ANCHOR_ASSOCIATIONS(x) (((x) >> 20) & 0x1) #define C_028804_STATIC_ANCHOR_ASSOCIATIONS 0xFFEFFFFF #define S_028804_ALPHA_TO_MASK_EQAA_DISABLE(x) (((unsigned)(x) & 0x1) << 21) #define G_028804_ALPHA_TO_MASK_EQAA_DISABLE(x) (((x) >> 21) & 0x1) #define C_028804_ALPHA_TO_MASK_EQAA_DISABLE 0xFFDFFFFF #define S_028804_OVERRASTERIZATION_AMOUNT(x) (((unsigned)(x) & 0x7) << 24) #define G_028804_OVERRASTERIZATION_AMOUNT(x) (((x) >> 24) & 0x7) #define C_028804_OVERRASTERIZATION_AMOUNT 0xF8FFFFFF #define S_028804_ENABLE_POSTZ_OVERRASTERIZATION(x) (((unsigned)(x) & 0x1) << 27) #define G_028804_ENABLE_POSTZ_OVERRASTERIZATION(x) (((x) >> 27) & 0x1) #define C_028804_ENABLE_POSTZ_OVERRASTERIZATION 0xF7FFFFFF #define R_028808_CB_COLOR_CONTROL 0x028808 #define S_028808_DISABLE_DUAL_QUAD(x) (((unsigned)(x) & 0x1) << 0) /* >= gfx81 */ #define G_028808_DISABLE_DUAL_QUAD(x) (((x) >> 0) & 0x1) #define C_028808_DISABLE_DUAL_QUAD 0xFFFFFFFE #define S_028808_ENABLE_1FRAG_PS_INVOKE(x) (((unsigned)(x) & 0x1) << 1) /* >= gfx103 */ #define G_028808_ENABLE_1FRAG_PS_INVOKE(x) (((x) >> 1) & 0x1) #define C_028808_ENABLE_1FRAG_PS_INVOKE 0xFFFFFFFD #define S_028808_DEGAMMA_ENABLE(x) (((unsigned)(x) & 0x1) << 3) #define G_028808_DEGAMMA_ENABLE(x) (((x) >> 3) & 0x1) #define C_028808_DEGAMMA_ENABLE 0xFFFFFFF7 #define S_028808_MODE(x) (((unsigned)(x) & 0x7) << 4) #define G_028808_MODE(x) (((x) >> 4) & 0x7) #define C_028808_MODE 0xFFFFFF8F #define V_028808_CB_DISABLE 0 #define V_028808_CB_NORMAL 1 #define V_028808_CB_ELIMINATE_FAST_CLEAR 2 #define V_028808_CB_RESOLVE 3 #define V_028808_CB_DECOMPRESS 4 #define V_028808_CB_FMASK_DECOMPRESS 5 #define V_028808_CB_DCC_DECOMPRESS 6 /* >= gfx8 */ #define V_028808_CB_RESERVED 7 /* >= gfx10 */ #define S_028808_ROP3(x) (((unsigned)(x) & 0xFF) << 16) #define G_028808_ROP3(x) (((x) >> 16) & 0xFF) #define C_028808_ROP3 0xFF00FFFF #define V_028808_ROP3_CLEAR 0 #define V_028808_X_0X05 5 #define V_028808_X_0X0A 10 #define V_028808_X_0X0F 15 #define V_028808_ROP3_NOR 17 #define V_028808_ROP3_AND_INVERTED 34 #define V_028808_ROP3_COPY_INVERTED 51 #define V_028808_ROP3_AND_REVERSE 68 #define V_028808_X_0X50 80 #define V_028808_ROP3_INVERT 85 #define V_028808_X_0X5A 90 #define V_028808_X_0X5F 95 #define V_028808_ROP3_XOR 102 #define V_028808_ROP3_NAND 119 #define V_028808_ROP3_AND 136 #define V_028808_ROP3_EQUIVALENT 153 #define V_028808_X_0XA0 160 #define V_028808_X_0XA5 165 #define V_028808_ROP3_NO_OP 170 #define V_028808_X_0XAF 175 #define V_028808_ROP3_OR_INVERTED 187 #define V_028808_ROP3_COPY 204 #define V_028808_ROP3_OR_REVERSE 221 #define V_028808_ROP3_OR 238 #define V_028808_X_0XF0 240 #define V_028808_X_0XF5 245 #define V_028808_X_0XFA 250 #define V_028808_ROP3_SET 255 #define R_02880C_DB_SHADER_CONTROL 0x02880C #define S_02880C_Z_EXPORT_ENABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_02880C_Z_EXPORT_ENABLE(x) (((x) >> 0) & 0x1) #define C_02880C_Z_EXPORT_ENABLE 0xFFFFFFFE #define S_02880C_STENCIL_TEST_VAL_EXPORT_ENABLE(x) (((unsigned)(x) & 0x1) << 1) #define G_02880C_STENCIL_TEST_VAL_EXPORT_ENABLE(x) (((x) >> 1) & 0x1) #define C_02880C_STENCIL_TEST_VAL_EXPORT_ENABLE 0xFFFFFFFD #define S_02880C_STENCIL_OP_VAL_EXPORT_ENABLE(x) (((unsigned)(x) & 0x1) << 2) #define G_02880C_STENCIL_OP_VAL_EXPORT_ENABLE(x) (((x) >> 2) & 0x1) #define C_02880C_STENCIL_OP_VAL_EXPORT_ENABLE 0xFFFFFFFB #define S_02880C_Z_ORDER(x) (((unsigned)(x) & 0x3) << 4) #define G_02880C_Z_ORDER(x) (((x) >> 4) & 0x3) #define C_02880C_Z_ORDER 0xFFFFFFCF #define V_02880C_LATE_Z 0 #define V_02880C_EARLY_Z_THEN_LATE_Z 1 #define V_02880C_RE_Z 2 #define V_02880C_EARLY_Z_THEN_RE_Z 3 #define S_02880C_KILL_ENABLE(x) (((unsigned)(x) & 0x1) << 6) #define G_02880C_KILL_ENABLE(x) (((x) >> 6) & 0x1) #define C_02880C_KILL_ENABLE 0xFFFFFFBF #define S_02880C_COVERAGE_TO_MASK_ENABLE(x) (((unsigned)(x) & 0x1) << 7) #define G_02880C_COVERAGE_TO_MASK_ENABLE(x) (((x) >> 7) & 0x1) #define C_02880C_COVERAGE_TO_MASK_ENABLE 0xFFFFFF7F #define S_02880C_MASK_EXPORT_ENABLE(x) (((unsigned)(x) & 0x1) << 8) #define G_02880C_MASK_EXPORT_ENABLE(x) (((x) >> 8) & 0x1) #define C_02880C_MASK_EXPORT_ENABLE 0xFFFFFEFF #define S_02880C_EXEC_ON_HIER_FAIL(x) (((unsigned)(x) & 0x1) << 9) #define G_02880C_EXEC_ON_HIER_FAIL(x) (((x) >> 9) & 0x1) #define C_02880C_EXEC_ON_HIER_FAIL 0xFFFFFDFF #define S_02880C_EXEC_ON_NOOP(x) (((unsigned)(x) & 0x1) << 10) #define G_02880C_EXEC_ON_NOOP(x) (((x) >> 10) & 0x1) #define C_02880C_EXEC_ON_NOOP 0xFFFFFBFF #define S_02880C_ALPHA_TO_MASK_DISABLE(x) (((unsigned)(x) & 0x1) << 11) #define G_02880C_ALPHA_TO_MASK_DISABLE(x) (((x) >> 11) & 0x1) #define C_02880C_ALPHA_TO_MASK_DISABLE 0xFFFFF7FF #define S_02880C_DEPTH_BEFORE_SHADER(x) (((unsigned)(x) & 0x1) << 12) #define G_02880C_DEPTH_BEFORE_SHADER(x) (((x) >> 12) & 0x1) #define C_02880C_DEPTH_BEFORE_SHADER 0xFFFFEFFF #define S_02880C_CONSERVATIVE_Z_EXPORT(x) (((unsigned)(x) & 0x3) << 13) #define G_02880C_CONSERVATIVE_Z_EXPORT(x) (((x) >> 13) & 0x3) #define C_02880C_CONSERVATIVE_Z_EXPORT 0xFFFF9FFF #define V_02880C_EXPORT_ANY_Z 0 #define V_02880C_EXPORT_LESS_THAN_Z 1 #define V_02880C_EXPORT_GREATER_THAN_Z 2 #define V_02880C_EXPORT_RESERVED 3 #define S_02880C_DUAL_QUAD_DISABLE(x) (((unsigned)(x) & 0x1) << 15) /* >= gfx81 */ #define G_02880C_DUAL_QUAD_DISABLE(x) (((x) >> 15) & 0x1) #define C_02880C_DUAL_QUAD_DISABLE 0xFFFF7FFF #define S_02880C_PRIMITIVE_ORDERED_PIXEL_SHADER(x) (((unsigned)(x) & 0x1) << 16) /* >= gfx9 */ #define G_02880C_PRIMITIVE_ORDERED_PIXEL_SHADER(x) (((x) >> 16) & 0x1) #define C_02880C_PRIMITIVE_ORDERED_PIXEL_SHADER 0xFFFEFFFF #define S_02880C_EXEC_IF_OVERLAPPED(x) (((unsigned)(x) & 0x1) << 17) /* >= gfx9 */ #define G_02880C_EXEC_IF_OVERLAPPED(x) (((x) >> 17) & 0x1) #define C_02880C_EXEC_IF_OVERLAPPED 0xFFFDFFFF #define S_02880C_POPS_OVERLAP_NUM_SAMPLES(x) (((unsigned)(x) & 0x7) << 20) /* >= gfx9 */ #define G_02880C_POPS_OVERLAP_NUM_SAMPLES(x) (((x) >> 20) & 0x7) #define C_02880C_POPS_OVERLAP_NUM_SAMPLES 0xFF8FFFFF #define S_02880C_PRE_SHADER_DEPTH_COVERAGE_ENABLE(x) (((unsigned)(x) & 0x1) << 23) /* >= gfx10 */ #define G_02880C_PRE_SHADER_DEPTH_COVERAGE_ENABLE(x) (((x) >> 23) & 0x1) #define C_02880C_PRE_SHADER_DEPTH_COVERAGE_ENABLE 0xFF7FFFFF #define R_028810_PA_CL_CLIP_CNTL 0x028810 #define S_028810_UCP_ENA_0(x) (((unsigned)(x) & 0x1) << 0) #define G_028810_UCP_ENA_0(x) (((x) >> 0) & 0x1) #define C_028810_UCP_ENA_0 0xFFFFFFFE #define S_028810_UCP_ENA_1(x) (((unsigned)(x) & 0x1) << 1) #define G_028810_UCP_ENA_1(x) (((x) >> 1) & 0x1) #define C_028810_UCP_ENA_1 0xFFFFFFFD #define S_028810_UCP_ENA_2(x) (((unsigned)(x) & 0x1) << 2) #define G_028810_UCP_ENA_2(x) (((x) >> 2) & 0x1) #define C_028810_UCP_ENA_2 0xFFFFFFFB #define S_028810_UCP_ENA_3(x) (((unsigned)(x) & 0x1) << 3) #define G_028810_UCP_ENA_3(x) (((x) >> 3) & 0x1) #define C_028810_UCP_ENA_3 0xFFFFFFF7 #define S_028810_UCP_ENA_4(x) (((unsigned)(x) & 0x1) << 4) #define G_028810_UCP_ENA_4(x) (((x) >> 4) & 0x1) #define C_028810_UCP_ENA_4 0xFFFFFFEF #define S_028810_UCP_ENA_5(x) (((unsigned)(x) & 0x1) << 5) #define G_028810_UCP_ENA_5(x) (((x) >> 5) & 0x1) #define C_028810_UCP_ENA_5 0xFFFFFFDF #define S_028810_PS_UCP_Y_SCALE_NEG(x) (((unsigned)(x) & 0x1) << 13) #define G_028810_PS_UCP_Y_SCALE_NEG(x) (((x) >> 13) & 0x1) #define C_028810_PS_UCP_Y_SCALE_NEG 0xFFFFDFFF #define S_028810_PS_UCP_MODE(x) (((unsigned)(x) & 0x3) << 14) #define G_028810_PS_UCP_MODE(x) (((x) >> 14) & 0x3) #define C_028810_PS_UCP_MODE 0xFFFF3FFF #define S_028810_CLIP_DISABLE(x) (((unsigned)(x) & 0x1) << 16) #define G_028810_CLIP_DISABLE(x) (((x) >> 16) & 0x1) #define C_028810_CLIP_DISABLE 0xFFFEFFFF #define S_028810_UCP_CULL_ONLY_ENA(x) (((unsigned)(x) & 0x1) << 17) #define G_028810_UCP_CULL_ONLY_ENA(x) (((x) >> 17) & 0x1) #define C_028810_UCP_CULL_ONLY_ENA 0xFFFDFFFF #define S_028810_BOUNDARY_EDGE_FLAG_ENA(x) (((unsigned)(x) & 0x1) << 18) #define G_028810_BOUNDARY_EDGE_FLAG_ENA(x) (((x) >> 18) & 0x1) #define C_028810_BOUNDARY_EDGE_FLAG_ENA 0xFFFBFFFF #define S_028810_DX_CLIP_SPACE_DEF(x) (((unsigned)(x) & 0x1) << 19) #define G_028810_DX_CLIP_SPACE_DEF(x) (((x) >> 19) & 0x1) #define C_028810_DX_CLIP_SPACE_DEF 0xFFF7FFFF #define S_028810_DIS_CLIP_ERR_DETECT(x) (((unsigned)(x) & 0x1) << 20) #define G_028810_DIS_CLIP_ERR_DETECT(x) (((x) >> 20) & 0x1) #define C_028810_DIS_CLIP_ERR_DETECT 0xFFEFFFFF #define S_028810_VTX_KILL_OR(x) (((unsigned)(x) & 0x1) << 21) #define G_028810_VTX_KILL_OR(x) (((x) >> 21) & 0x1) #define C_028810_VTX_KILL_OR 0xFFDFFFFF #define S_028810_DX_RASTERIZATION_KILL(x) (((unsigned)(x) & 0x1) << 22) #define G_028810_DX_RASTERIZATION_KILL(x) (((x) >> 22) & 0x1) #define C_028810_DX_RASTERIZATION_KILL 0xFFBFFFFF #define S_028810_DX_LINEAR_ATTR_CLIP_ENA(x) (((unsigned)(x) & 0x1) << 24) #define G_028810_DX_LINEAR_ATTR_CLIP_ENA(x) (((x) >> 24) & 0x1) #define C_028810_DX_LINEAR_ATTR_CLIP_ENA 0xFEFFFFFF #define S_028810_VTE_VPORT_PROVOKE_DISABLE(x) (((unsigned)(x) & 0x1) << 25) #define G_028810_VTE_VPORT_PROVOKE_DISABLE(x) (((x) >> 25) & 0x1) #define C_028810_VTE_VPORT_PROVOKE_DISABLE 0xFDFFFFFF #define S_028810_ZCLIP_NEAR_DISABLE(x) (((unsigned)(x) & 0x1) << 26) #define G_028810_ZCLIP_NEAR_DISABLE(x) (((x) >> 26) & 0x1) #define C_028810_ZCLIP_NEAR_DISABLE 0xFBFFFFFF #define S_028810_ZCLIP_FAR_DISABLE(x) (((unsigned)(x) & 0x1) << 27) #define G_028810_ZCLIP_FAR_DISABLE(x) (((x) >> 27) & 0x1) #define C_028810_ZCLIP_FAR_DISABLE 0xF7FFFFFF #define S_028810_ZCLIP_PROG_NEAR_ENA(x) (((unsigned)(x) & 0x1) << 28) /* >= gfx9 */ #define G_028810_ZCLIP_PROG_NEAR_ENA(x) (((x) >> 28) & 0x1) #define C_028810_ZCLIP_PROG_NEAR_ENA 0xEFFFFFFF #define R_028814_PA_SU_SC_MODE_CNTL 0x028814 #define S_028814_CULL_FRONT(x) (((unsigned)(x) & 0x1) << 0) #define G_028814_CULL_FRONT(x) (((x) >> 0) & 0x1) #define C_028814_CULL_FRONT 0xFFFFFFFE #define S_028814_CULL_BACK(x) (((unsigned)(x) & 0x1) << 1) #define G_028814_CULL_BACK(x) (((x) >> 1) & 0x1) #define C_028814_CULL_BACK 0xFFFFFFFD #define S_028814_FACE(x) (((unsigned)(x) & 0x1) << 2) #define G_028814_FACE(x) (((x) >> 2) & 0x1) #define C_028814_FACE 0xFFFFFFFB #define S_028814_POLY_MODE(x) (((unsigned)(x) & 0x3) << 3) #define G_028814_POLY_MODE(x) (((x) >> 3) & 0x3) #define C_028814_POLY_MODE 0xFFFFFFE7 #define V_028814_X_DISABLE_POLY_MODE 0 #define V_028814_X_DUAL_MODE 1 #define S_028814_POLYMODE_FRONT_PTYPE(x) (((unsigned)(x) & 0x7) << 5) #define G_028814_POLYMODE_FRONT_PTYPE(x) (((x) >> 5) & 0x7) #define C_028814_POLYMODE_FRONT_PTYPE 0xFFFFFF1F #define V_028814_X_DRAW_POINTS 0 #define V_028814_X_DRAW_LINES 1 #define V_028814_X_DRAW_TRIANGLES 2 #define S_028814_POLYMODE_BACK_PTYPE(x) (((unsigned)(x) & 0x7) << 8) #define G_028814_POLYMODE_BACK_PTYPE(x) (((x) >> 8) & 0x7) #define C_028814_POLYMODE_BACK_PTYPE 0xFFFFF8FF #define S_028814_POLY_OFFSET_FRONT_ENABLE(x) (((unsigned)(x) & 0x1) << 11) #define G_028814_POLY_OFFSET_FRONT_ENABLE(x) (((x) >> 11) & 0x1) #define C_028814_POLY_OFFSET_FRONT_ENABLE 0xFFFFF7FF #define S_028814_POLY_OFFSET_BACK_ENABLE(x) (((unsigned)(x) & 0x1) << 12) #define G_028814_POLY_OFFSET_BACK_ENABLE(x) (((x) >> 12) & 0x1) #define C_028814_POLY_OFFSET_BACK_ENABLE 0xFFFFEFFF #define S_028814_POLY_OFFSET_PARA_ENABLE(x) (((unsigned)(x) & 0x1) << 13) #define G_028814_POLY_OFFSET_PARA_ENABLE(x) (((x) >> 13) & 0x1) #define C_028814_POLY_OFFSET_PARA_ENABLE 0xFFFFDFFF #define S_028814_VTX_WINDOW_OFFSET_ENABLE(x) (((unsigned)(x) & 0x1) << 16) #define G_028814_VTX_WINDOW_OFFSET_ENABLE(x) (((x) >> 16) & 0x1) #define C_028814_VTX_WINDOW_OFFSET_ENABLE 0xFFFEFFFF #define S_028814_PROVOKING_VTX_LAST(x) (((unsigned)(x) & 0x1) << 19) #define G_028814_PROVOKING_VTX_LAST(x) (((x) >> 19) & 0x1) #define C_028814_PROVOKING_VTX_LAST 0xFFF7FFFF #define S_028814_PERSP_CORR_DIS(x) (((unsigned)(x) & 0x1) << 20) #define G_028814_PERSP_CORR_DIS(x) (((x) >> 20) & 0x1) #define C_028814_PERSP_CORR_DIS 0xFFEFFFFF #define S_028814_MULTI_PRIM_IB_ENA(x) (((unsigned)(x) & 0x1) << 21) #define G_028814_MULTI_PRIM_IB_ENA(x) (((x) >> 21) & 0x1) #define C_028814_MULTI_PRIM_IB_ENA 0xFFDFFFFF #define S_028814_RIGHT_TRIANGLE_ALTERNATE_GRADIENT_REF(x) (((unsigned)(x) & 0x1) << 22) /* >= gfx9 */ #define G_028814_RIGHT_TRIANGLE_ALTERNATE_GRADIENT_REF(x) (((x) >> 22) & 0x1) #define C_028814_RIGHT_TRIANGLE_ALTERNATE_GRADIENT_REF 0xFFBFFFFF #define S_028814_NEW_QUAD_DECOMPOSITION(x) (((unsigned)(x) & 0x1) << 23) /* >= gfx9 */ #define G_028814_NEW_QUAD_DECOMPOSITION(x) (((x) >> 23) & 0x1) #define C_028814_NEW_QUAD_DECOMPOSITION 0xFF7FFFFF #define S_028814_KEEP_TOGETHER_ENABLE(x) (((unsigned)(x) & 0x1) << 24) /* >= gfx10 */ #define G_028814_KEEP_TOGETHER_ENABLE(x) (((x) >> 24) & 0x1) #define C_028814_KEEP_TOGETHER_ENABLE 0xFEFFFFFF #define R_028818_PA_CL_VTE_CNTL 0x028818 #define S_028818_VPORT_X_SCALE_ENA(x) (((unsigned)(x) & 0x1) << 0) #define G_028818_VPORT_X_SCALE_ENA(x) (((x) >> 0) & 0x1) #define C_028818_VPORT_X_SCALE_ENA 0xFFFFFFFE #define S_028818_VPORT_X_OFFSET_ENA(x) (((unsigned)(x) & 0x1) << 1) #define G_028818_VPORT_X_OFFSET_ENA(x) (((x) >> 1) & 0x1) #define C_028818_VPORT_X_OFFSET_ENA 0xFFFFFFFD #define S_028818_VPORT_Y_SCALE_ENA(x) (((unsigned)(x) & 0x1) << 2) #define G_028818_VPORT_Y_SCALE_ENA(x) (((x) >> 2) & 0x1) #define C_028818_VPORT_Y_SCALE_ENA 0xFFFFFFFB #define S_028818_VPORT_Y_OFFSET_ENA(x) (((unsigned)(x) & 0x1) << 3) #define G_028818_VPORT_Y_OFFSET_ENA(x) (((x) >> 3) & 0x1) #define C_028818_VPORT_Y_OFFSET_ENA 0xFFFFFFF7 #define S_028818_VPORT_Z_SCALE_ENA(x) (((unsigned)(x) & 0x1) << 4) #define G_028818_VPORT_Z_SCALE_ENA(x) (((x) >> 4) & 0x1) #define C_028818_VPORT_Z_SCALE_ENA 0xFFFFFFEF #define S_028818_VPORT_Z_OFFSET_ENA(x) (((unsigned)(x) & 0x1) << 5) #define G_028818_VPORT_Z_OFFSET_ENA(x) (((x) >> 5) & 0x1) #define C_028818_VPORT_Z_OFFSET_ENA 0xFFFFFFDF #define S_028818_VTX_XY_FMT(x) (((unsigned)(x) & 0x1) << 8) #define G_028818_VTX_XY_FMT(x) (((x) >> 8) & 0x1) #define C_028818_VTX_XY_FMT 0xFFFFFEFF #define S_028818_VTX_Z_FMT(x) (((unsigned)(x) & 0x1) << 9) #define G_028818_VTX_Z_FMT(x) (((x) >> 9) & 0x1) #define C_028818_VTX_Z_FMT 0xFFFFFDFF #define S_028818_VTX_W0_FMT(x) (((unsigned)(x) & 0x1) << 10) #define G_028818_VTX_W0_FMT(x) (((x) >> 10) & 0x1) #define C_028818_VTX_W0_FMT 0xFFFFFBFF #define S_028818_PERFCOUNTER_REF(x) (((unsigned)(x) & 0x1) << 11) #define G_028818_PERFCOUNTER_REF(x) (((x) >> 11) & 0x1) #define C_028818_PERFCOUNTER_REF 0xFFFFF7FF #define R_02881C_PA_CL_VS_OUT_CNTL 0x02881C #define S_02881C_CLIP_DIST_ENA_0(x) (((unsigned)(x) & 0x1) << 0) #define G_02881C_CLIP_DIST_ENA_0(x) (((x) >> 0) & 0x1) #define C_02881C_CLIP_DIST_ENA_0 0xFFFFFFFE #define S_02881C_CLIP_DIST_ENA_1(x) (((unsigned)(x) & 0x1) << 1) #define G_02881C_CLIP_DIST_ENA_1(x) (((x) >> 1) & 0x1) #define C_02881C_CLIP_DIST_ENA_1 0xFFFFFFFD #define S_02881C_CLIP_DIST_ENA_2(x) (((unsigned)(x) & 0x1) << 2) #define G_02881C_CLIP_DIST_ENA_2(x) (((x) >> 2) & 0x1) #define C_02881C_CLIP_DIST_ENA_2 0xFFFFFFFB #define S_02881C_CLIP_DIST_ENA_3(x) (((unsigned)(x) & 0x1) << 3) #define G_02881C_CLIP_DIST_ENA_3(x) (((x) >> 3) & 0x1) #define C_02881C_CLIP_DIST_ENA_3 0xFFFFFFF7 #define S_02881C_CLIP_DIST_ENA_4(x) (((unsigned)(x) & 0x1) << 4) #define G_02881C_CLIP_DIST_ENA_4(x) (((x) >> 4) & 0x1) #define C_02881C_CLIP_DIST_ENA_4 0xFFFFFFEF #define S_02881C_CLIP_DIST_ENA_5(x) (((unsigned)(x) & 0x1) << 5) #define G_02881C_CLIP_DIST_ENA_5(x) (((x) >> 5) & 0x1) #define C_02881C_CLIP_DIST_ENA_5 0xFFFFFFDF #define S_02881C_CLIP_DIST_ENA_6(x) (((unsigned)(x) & 0x1) << 6) #define G_02881C_CLIP_DIST_ENA_6(x) (((x) >> 6) & 0x1) #define C_02881C_CLIP_DIST_ENA_6 0xFFFFFFBF #define S_02881C_CLIP_DIST_ENA_7(x) (((unsigned)(x) & 0x1) << 7) #define G_02881C_CLIP_DIST_ENA_7(x) (((x) >> 7) & 0x1) #define C_02881C_CLIP_DIST_ENA_7 0xFFFFFF7F #define S_02881C_CULL_DIST_ENA_0(x) (((unsigned)(x) & 0x1) << 8) #define G_02881C_CULL_DIST_ENA_0(x) (((x) >> 8) & 0x1) #define C_02881C_CULL_DIST_ENA_0 0xFFFFFEFF #define S_02881C_CULL_DIST_ENA_1(x) (((unsigned)(x) & 0x1) << 9) #define G_02881C_CULL_DIST_ENA_1(x) (((x) >> 9) & 0x1) #define C_02881C_CULL_DIST_ENA_1 0xFFFFFDFF #define S_02881C_CULL_DIST_ENA_2(x) (((unsigned)(x) & 0x1) << 10) #define G_02881C_CULL_DIST_ENA_2(x) (((x) >> 10) & 0x1) #define C_02881C_CULL_DIST_ENA_2 0xFFFFFBFF #define S_02881C_CULL_DIST_ENA_3(x) (((unsigned)(x) & 0x1) << 11) #define G_02881C_CULL_DIST_ENA_3(x) (((x) >> 11) & 0x1) #define C_02881C_CULL_DIST_ENA_3 0xFFFFF7FF #define S_02881C_CULL_DIST_ENA_4(x) (((unsigned)(x) & 0x1) << 12) #define G_02881C_CULL_DIST_ENA_4(x) (((x) >> 12) & 0x1) #define C_02881C_CULL_DIST_ENA_4 0xFFFFEFFF #define S_02881C_CULL_DIST_ENA_5(x) (((unsigned)(x) & 0x1) << 13) #define G_02881C_CULL_DIST_ENA_5(x) (((x) >> 13) & 0x1) #define C_02881C_CULL_DIST_ENA_5 0xFFFFDFFF #define S_02881C_CULL_DIST_ENA_6(x) (((unsigned)(x) & 0x1) << 14) #define G_02881C_CULL_DIST_ENA_6(x) (((x) >> 14) & 0x1) #define C_02881C_CULL_DIST_ENA_6 0xFFFFBFFF #define S_02881C_CULL_DIST_ENA_7(x) (((unsigned)(x) & 0x1) << 15) #define G_02881C_CULL_DIST_ENA_7(x) (((x) >> 15) & 0x1) #define C_02881C_CULL_DIST_ENA_7 0xFFFF7FFF #define S_02881C_USE_VTX_POINT_SIZE(x) (((unsigned)(x) & 0x1) << 16) #define G_02881C_USE_VTX_POINT_SIZE(x) (((x) >> 16) & 0x1) #define C_02881C_USE_VTX_POINT_SIZE 0xFFFEFFFF #define S_02881C_USE_VTX_EDGE_FLAG(x) (((unsigned)(x) & 0x1) << 17) #define G_02881C_USE_VTX_EDGE_FLAG(x) (((x) >> 17) & 0x1) #define C_02881C_USE_VTX_EDGE_FLAG 0xFFFDFFFF #define S_02881C_USE_VTX_RENDER_TARGET_INDX(x) (((unsigned)(x) & 0x1) << 18) #define G_02881C_USE_VTX_RENDER_TARGET_INDX(x) (((x) >> 18) & 0x1) #define C_02881C_USE_VTX_RENDER_TARGET_INDX 0xFFFBFFFF #define S_02881C_USE_VTX_VIEWPORT_INDX(x) (((unsigned)(x) & 0x1) << 19) #define G_02881C_USE_VTX_VIEWPORT_INDX(x) (((x) >> 19) & 0x1) #define C_02881C_USE_VTX_VIEWPORT_INDX 0xFFF7FFFF #define S_02881C_USE_VTX_KILL_FLAG(x) (((unsigned)(x) & 0x1) << 20) #define G_02881C_USE_VTX_KILL_FLAG(x) (((x) >> 20) & 0x1) #define C_02881C_USE_VTX_KILL_FLAG 0xFFEFFFFF #define S_02881C_VS_OUT_MISC_VEC_ENA(x) (((unsigned)(x) & 0x1) << 21) #define G_02881C_VS_OUT_MISC_VEC_ENA(x) (((x) >> 21) & 0x1) #define C_02881C_VS_OUT_MISC_VEC_ENA 0xFFDFFFFF #define S_02881C_VS_OUT_CCDIST0_VEC_ENA(x) (((unsigned)(x) & 0x1) << 22) #define G_02881C_VS_OUT_CCDIST0_VEC_ENA(x) (((x) >> 22) & 0x1) #define C_02881C_VS_OUT_CCDIST0_VEC_ENA 0xFFBFFFFF #define S_02881C_VS_OUT_CCDIST1_VEC_ENA(x) (((unsigned)(x) & 0x1) << 23) #define G_02881C_VS_OUT_CCDIST1_VEC_ENA(x) (((x) >> 23) & 0x1) #define C_02881C_VS_OUT_CCDIST1_VEC_ENA 0xFF7FFFFF #define S_02881C_VS_OUT_MISC_SIDE_BUS_ENA(x) (((unsigned)(x) & 0x1) << 24) #define G_02881C_VS_OUT_MISC_SIDE_BUS_ENA(x) (((x) >> 24) & 0x1) #define C_02881C_VS_OUT_MISC_SIDE_BUS_ENA 0xFEFFFFFF #define S_02881C_USE_VTX_GS_CUT_FLAG(x) (((unsigned)(x) & 0x1) << 25) #define G_02881C_USE_VTX_GS_CUT_FLAG(x) (((x) >> 25) & 0x1) #define C_02881C_USE_VTX_GS_CUT_FLAG 0xFDFFFFFF #define S_02881C_USE_VTX_LINE_WIDTH_GFX8(x) (((unsigned)(x) & 0x1) << 26) /* gfx8, gfx81, gfx9 */ #define G_02881C_USE_VTX_LINE_WIDTH_GFX8(x) (((x) >> 26) & 0x1) #define C_02881C_USE_VTX_LINE_WIDTH_GFX8 0xFBFFFFFF #define S_02881C_USE_VTX_SHD_OBJPRIM_ID_GFX10(x) (((unsigned)(x) & 0x1) << 26) /* gfx10 */ #define G_02881C_USE_VTX_SHD_OBJPRIM_ID_GFX10(x) (((x) >> 26) & 0x1) #define C_02881C_USE_VTX_SHD_OBJPRIM_ID_GFX10 0xFBFFFFFF #define S_02881C_USE_VTX_LINE_WIDTH_GFX10(x) (((unsigned)(x) & 0x1) << 27) /* >= gfx10 */ #define G_02881C_USE_VTX_LINE_WIDTH_GFX10(x) (((x) >> 27) & 0x1) #define C_02881C_USE_VTX_LINE_WIDTH_GFX10 0xF7FFFFFF #define S_02881C_USE_VTX_SHD_OBJPRIM_ID_GFX9(x) (((unsigned)(x) & 0x1) << 27) /* gfx9 */ #define G_02881C_USE_VTX_SHD_OBJPRIM_ID_GFX9(x) (((x) >> 27) & 0x1) #define C_02881C_USE_VTX_SHD_OBJPRIM_ID_GFX9 0xF7FFFFFF #define S_02881C_USE_VTX_VRS_RATE(x) (((unsigned)(x) & 0x1) << 28) /* >= gfx103 */ #define G_02881C_USE_VTX_VRS_RATE(x) (((x) >> 28) & 0x1) #define C_02881C_USE_VTX_VRS_RATE 0xEFFFFFFF #define S_02881C_BYPASS_VTX_RATE_COMBINER(x) (((unsigned)(x) & 0x1) << 29) /* >= gfx103 */ #define G_02881C_BYPASS_VTX_RATE_COMBINER(x) (((x) >> 29) & 0x1) #define C_02881C_BYPASS_VTX_RATE_COMBINER 0xDFFFFFFF #define S_02881C_BYPASS_PRIM_RATE_COMBINER(x) (((unsigned)(x) & 0x1) << 30) /* >= gfx103 */ #define G_02881C_BYPASS_PRIM_RATE_COMBINER(x) (((x) >> 30) & 0x1) #define C_02881C_BYPASS_PRIM_RATE_COMBINER 0xBFFFFFFF #define R_028820_PA_CL_NANINF_CNTL 0x028820 #define S_028820_VTE_XY_INF_DISCARD(x) (((unsigned)(x) & 0x1) << 0) #define G_028820_VTE_XY_INF_DISCARD(x) (((x) >> 0) & 0x1) #define C_028820_VTE_XY_INF_DISCARD 0xFFFFFFFE #define S_028820_VTE_Z_INF_DISCARD(x) (((unsigned)(x) & 0x1) << 1) #define G_028820_VTE_Z_INF_DISCARD(x) (((x) >> 1) & 0x1) #define C_028820_VTE_Z_INF_DISCARD 0xFFFFFFFD #define S_028820_VTE_W_INF_DISCARD(x) (((unsigned)(x) & 0x1) << 2) #define G_028820_VTE_W_INF_DISCARD(x) (((x) >> 2) & 0x1) #define C_028820_VTE_W_INF_DISCARD 0xFFFFFFFB #define S_028820_VTE_0XNANINF_IS_0(x) (((unsigned)(x) & 0x1) << 3) #define G_028820_VTE_0XNANINF_IS_0(x) (((x) >> 3) & 0x1) #define C_028820_VTE_0XNANINF_IS_0 0xFFFFFFF7 #define S_028820_VTE_XY_NAN_RETAIN(x) (((unsigned)(x) & 0x1) << 4) #define G_028820_VTE_XY_NAN_RETAIN(x) (((x) >> 4) & 0x1) #define C_028820_VTE_XY_NAN_RETAIN 0xFFFFFFEF #define S_028820_VTE_Z_NAN_RETAIN(x) (((unsigned)(x) & 0x1) << 5) #define G_028820_VTE_Z_NAN_RETAIN(x) (((x) >> 5) & 0x1) #define C_028820_VTE_Z_NAN_RETAIN 0xFFFFFFDF #define S_028820_VTE_W_NAN_RETAIN(x) (((unsigned)(x) & 0x1) << 6) #define G_028820_VTE_W_NAN_RETAIN(x) (((x) >> 6) & 0x1) #define C_028820_VTE_W_NAN_RETAIN 0xFFFFFFBF #define S_028820_VTE_W_RECIP_NAN_IS_0(x) (((unsigned)(x) & 0x1) << 7) #define G_028820_VTE_W_RECIP_NAN_IS_0(x) (((x) >> 7) & 0x1) #define C_028820_VTE_W_RECIP_NAN_IS_0 0xFFFFFF7F #define S_028820_VS_XY_NAN_TO_INF(x) (((unsigned)(x) & 0x1) << 8) #define G_028820_VS_XY_NAN_TO_INF(x) (((x) >> 8) & 0x1) #define C_028820_VS_XY_NAN_TO_INF 0xFFFFFEFF #define S_028820_VS_XY_INF_RETAIN(x) (((unsigned)(x) & 0x1) << 9) #define G_028820_VS_XY_INF_RETAIN(x) (((x) >> 9) & 0x1) #define C_028820_VS_XY_INF_RETAIN 0xFFFFFDFF #define S_028820_VS_Z_NAN_TO_INF(x) (((unsigned)(x) & 0x1) << 10) #define G_028820_VS_Z_NAN_TO_INF(x) (((x) >> 10) & 0x1) #define C_028820_VS_Z_NAN_TO_INF 0xFFFFFBFF #define S_028820_VS_Z_INF_RETAIN(x) (((unsigned)(x) & 0x1) << 11) #define G_028820_VS_Z_INF_RETAIN(x) (((x) >> 11) & 0x1) #define C_028820_VS_Z_INF_RETAIN 0xFFFFF7FF #define S_028820_VS_W_NAN_TO_INF(x) (((unsigned)(x) & 0x1) << 12) #define G_028820_VS_W_NAN_TO_INF(x) (((x) >> 12) & 0x1) #define C_028820_VS_W_NAN_TO_INF 0xFFFFEFFF #define S_028820_VS_W_INF_RETAIN(x) (((unsigned)(x) & 0x1) << 13) #define G_028820_VS_W_INF_RETAIN(x) (((x) >> 13) & 0x1) #define C_028820_VS_W_INF_RETAIN 0xFFFFDFFF #define S_028820_VS_CLIP_DIST_INF_DISCARD(x) (((unsigned)(x) & 0x1) << 14) #define G_028820_VS_CLIP_DIST_INF_DISCARD(x) (((x) >> 14) & 0x1) #define C_028820_VS_CLIP_DIST_INF_DISCARD 0xFFFFBFFF #define S_028820_VTE_NO_OUTPUT_NEG_0(x) (((unsigned)(x) & 0x1) << 20) #define G_028820_VTE_NO_OUTPUT_NEG_0(x) (((x) >> 20) & 0x1) #define C_028820_VTE_NO_OUTPUT_NEG_0 0xFFEFFFFF #define R_028824_PA_SU_LINE_STIPPLE_CNTL 0x028824 #define S_028824_LINE_STIPPLE_RESET(x) (((unsigned)(x) & 0x3) << 0) #define G_028824_LINE_STIPPLE_RESET(x) (((x) >> 0) & 0x3) #define C_028824_LINE_STIPPLE_RESET 0xFFFFFFFC #define S_028824_EXPAND_FULL_LENGTH(x) (((unsigned)(x) & 0x1) << 2) #define G_028824_EXPAND_FULL_LENGTH(x) (((x) >> 2) & 0x1) #define C_028824_EXPAND_FULL_LENGTH 0xFFFFFFFB #define S_028824_FRACTIONAL_ACCUM(x) (((unsigned)(x) & 0x1) << 3) #define G_028824_FRACTIONAL_ACCUM(x) (((x) >> 3) & 0x1) #define C_028824_FRACTIONAL_ACCUM 0xFFFFFFF7 #define S_028824_DIAMOND_ADJUST(x) (((unsigned)(x) & 0x1) << 4) #define G_028824_DIAMOND_ADJUST(x) (((x) >> 4) & 0x1) #define C_028824_DIAMOND_ADJUST 0xFFFFFFEF #define R_028828_PA_SU_LINE_STIPPLE_SCALE 0x028828 #define R_02882C_PA_SU_PRIM_FILTER_CNTL 0x02882C #define S_02882C_TRIANGLE_FILTER_DISABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_02882C_TRIANGLE_FILTER_DISABLE(x) (((x) >> 0) & 0x1) #define C_02882C_TRIANGLE_FILTER_DISABLE 0xFFFFFFFE #define S_02882C_LINE_FILTER_DISABLE(x) (((unsigned)(x) & 0x1) << 1) #define G_02882C_LINE_FILTER_DISABLE(x) (((x) >> 1) & 0x1) #define C_02882C_LINE_FILTER_DISABLE 0xFFFFFFFD #define S_02882C_POINT_FILTER_DISABLE(x) (((unsigned)(x) & 0x1) << 2) #define G_02882C_POINT_FILTER_DISABLE(x) (((x) >> 2) & 0x1) #define C_02882C_POINT_FILTER_DISABLE 0xFFFFFFFB #define S_02882C_RECTANGLE_FILTER_DISABLE(x) (((unsigned)(x) & 0x1) << 3) #define G_02882C_RECTANGLE_FILTER_DISABLE(x) (((x) >> 3) & 0x1) #define C_02882C_RECTANGLE_FILTER_DISABLE 0xFFFFFFF7 #define S_02882C_TRIANGLE_EXPAND_ENA(x) (((unsigned)(x) & 0x1) << 4) #define G_02882C_TRIANGLE_EXPAND_ENA(x) (((x) >> 4) & 0x1) #define C_02882C_TRIANGLE_EXPAND_ENA 0xFFFFFFEF #define S_02882C_LINE_EXPAND_ENA(x) (((unsigned)(x) & 0x1) << 5) #define G_02882C_LINE_EXPAND_ENA(x) (((x) >> 5) & 0x1) #define C_02882C_LINE_EXPAND_ENA 0xFFFFFFDF #define S_02882C_POINT_EXPAND_ENA(x) (((unsigned)(x) & 0x1) << 6) #define G_02882C_POINT_EXPAND_ENA(x) (((x) >> 6) & 0x1) #define C_02882C_POINT_EXPAND_ENA 0xFFFFFFBF #define S_02882C_RECTANGLE_EXPAND_ENA(x) (((unsigned)(x) & 0x1) << 7) #define G_02882C_RECTANGLE_EXPAND_ENA(x) (((x) >> 7) & 0x1) #define C_02882C_RECTANGLE_EXPAND_ENA 0xFFFFFF7F #define S_02882C_PRIM_EXPAND_CONSTANT(x) (((unsigned)(x) & 0xFF) << 8) #define G_02882C_PRIM_EXPAND_CONSTANT(x) (((x) >> 8) & 0xFF) #define C_02882C_PRIM_EXPAND_CONSTANT 0xFFFF00FF #define S_02882C_XMAX_RIGHT_EXCLUSION(x) (((unsigned)(x) & 0x1) << 30) #define G_02882C_XMAX_RIGHT_EXCLUSION(x) (((x) >> 30) & 0x1) #define C_02882C_XMAX_RIGHT_EXCLUSION 0xBFFFFFFF #define S_02882C_YMAX_BOTTOM_EXCLUSION(x) (((unsigned)(x) & 0x1) << 31) #define G_02882C_YMAX_BOTTOM_EXCLUSION(x) (((x) >> 31) & 0x1) #define C_02882C_YMAX_BOTTOM_EXCLUSION 0x7FFFFFFF #define R_028830_PA_SU_SMALL_PRIM_FILTER_CNTL 0x028830 /* >= gfx9 */ #define S_028830_SMALL_PRIM_FILTER_ENABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_028830_SMALL_PRIM_FILTER_ENABLE(x) (((x) >> 0) & 0x1) #define C_028830_SMALL_PRIM_FILTER_ENABLE 0xFFFFFFFE #define S_028830_TRIANGLE_FILTER_DISABLE(x) (((unsigned)(x) & 0x1) << 1) #define G_028830_TRIANGLE_FILTER_DISABLE(x) (((x) >> 1) & 0x1) #define C_028830_TRIANGLE_FILTER_DISABLE 0xFFFFFFFD #define S_028830_LINE_FILTER_DISABLE(x) (((unsigned)(x) & 0x1) << 2) #define G_028830_LINE_FILTER_DISABLE(x) (((x) >> 2) & 0x1) #define C_028830_LINE_FILTER_DISABLE 0xFFFFFFFB #define S_028830_POINT_FILTER_DISABLE(x) (((unsigned)(x) & 0x1) << 3) #define G_028830_POINT_FILTER_DISABLE(x) (((x) >> 3) & 0x1) #define C_028830_POINT_FILTER_DISABLE 0xFFFFFFF7 #define S_028830_RECTANGLE_FILTER_DISABLE(x) (((unsigned)(x) & 0x1) << 4) #define G_028830_RECTANGLE_FILTER_DISABLE(x) (((x) >> 4) & 0x1) #define C_028830_RECTANGLE_FILTER_DISABLE 0xFFFFFFEF #define S_028830_SRBSL_ENABLE(x) (((unsigned)(x) & 0x1) << 5) /* gfx10 */ #define G_028830_SRBSL_ENABLE(x) (((x) >> 5) & 0x1) #define C_028830_SRBSL_ENABLE 0xFFFFFFDF #define S_028830_SC_1XMSAA_COMPATIBLE_DISABLE(x) (((unsigned)(x) & 0x1) << 6) /* gfx9, gfx10 */ #define G_028830_SC_1XMSAA_COMPATIBLE_DISABLE(x) (((x) >> 6) & 0x1) #define C_028830_SC_1XMSAA_COMPATIBLE_DISABLE 0xFFFFFFBF #define R_028834_PA_CL_OBJPRIM_ID_CNTL 0x028834 /* gfx9, gfx10 */ #define S_028834_OBJ_ID_SEL(x) (((unsigned)(x) & 0x1) << 0) #define G_028834_OBJ_ID_SEL(x) (((x) >> 0) & 0x1) #define C_028834_OBJ_ID_SEL 0xFFFFFFFE #define S_028834_ADD_PIPED_PRIM_ID(x) (((unsigned)(x) & 0x1) << 1) #define G_028834_ADD_PIPED_PRIM_ID(x) (((x) >> 1) & 0x1) #define C_028834_ADD_PIPED_PRIM_ID 0xFFFFFFFD #define S_028834_EN_32BIT_OBJPRIMID(x) (((unsigned)(x) & 0x1) << 2) /* gfx9 */ #define G_028834_EN_32BIT_OBJPRIMID(x) (((x) >> 2) & 0x1) #define C_028834_EN_32BIT_OBJPRIMID 0xFFFFFFFB #define R_028838_PA_CL_NGG_CNTL 0x028838 /* >= gfx9 */ #define S_028838_VERTEX_REUSE_OFF(x) (((unsigned)(x) & 0x1) << 0) #define G_028838_VERTEX_REUSE_OFF(x) (((x) >> 0) & 0x1) #define C_028838_VERTEX_REUSE_OFF 0xFFFFFFFE #define S_028838_INDEX_BUF_EDGE_FLAG_ENA(x) (((unsigned)(x) & 0x1) << 1) #define G_028838_INDEX_BUF_EDGE_FLAG_ENA(x) (((x) >> 1) & 0x1) #define C_028838_INDEX_BUF_EDGE_FLAG_ENA 0xFFFFFFFD #define S_028838_VERTEX_REUSE_DEPTH(x) (((unsigned)(x) & 0xFF) << 2) /* >= gfx103 */ #define G_028838_VERTEX_REUSE_DEPTH(x) (((x) >> 2) & 0xFF) #define C_028838_VERTEX_REUSE_DEPTH 0xFFFFFC03 #define R_02883C_PA_SU_OVER_RASTERIZATION_CNTL 0x02883C /* >= gfx9 */ #define S_02883C_DISCARD_0_AREA_TRIANGLES(x) (((unsigned)(x) & 0x1) << 0) #define G_02883C_DISCARD_0_AREA_TRIANGLES(x) (((x) >> 0) & 0x1) #define C_02883C_DISCARD_0_AREA_TRIANGLES 0xFFFFFFFE #define S_02883C_DISCARD_0_AREA_LINES(x) (((unsigned)(x) & 0x1) << 1) #define G_02883C_DISCARD_0_AREA_LINES(x) (((x) >> 1) & 0x1) #define C_02883C_DISCARD_0_AREA_LINES 0xFFFFFFFD #define S_02883C_DISCARD_0_AREA_POINTS(x) (((unsigned)(x) & 0x1) << 2) #define G_02883C_DISCARD_0_AREA_POINTS(x) (((x) >> 2) & 0x1) #define C_02883C_DISCARD_0_AREA_POINTS 0xFFFFFFFB #define S_02883C_DISCARD_0_AREA_RECTANGLES(x) (((unsigned)(x) & 0x1) << 3) #define G_02883C_DISCARD_0_AREA_RECTANGLES(x) (((x) >> 3) & 0x1) #define C_02883C_DISCARD_0_AREA_RECTANGLES 0xFFFFFFF7 #define S_02883C_USE_PROVOKING_ZW(x) (((unsigned)(x) & 0x1) << 4) #define G_02883C_USE_PROVOKING_ZW(x) (((x) >> 4) & 0x1) #define C_02883C_USE_PROVOKING_ZW 0xFFFFFFEF #define R_028840_PA_STEREO_CNTL 0x028840 /* >= gfx9 */ #define S_028840_EN_STEREO(x) (((unsigned)(x) & 0x1) << 0) /* gfx9 */ #define G_028840_EN_STEREO(x) (((x) >> 0) & 0x1) #define C_028840_EN_STEREO 0xFFFFFFFE #define S_028840_STEREO_MODE(x) (((unsigned)(x) & 0xF) << 1) #define G_028840_STEREO_MODE(x) (((x) >> 1) & 0xF) #define C_028840_STEREO_MODE 0xFFFFFFE1 #define S_028840_RT_SLICE_MODE(x) (((unsigned)(x) & 0x7) << 5) #define G_028840_RT_SLICE_MODE(x) (((x) >> 5) & 0x7) #define C_028840_RT_SLICE_MODE 0xFFFFFF1F #define S_028840_RT_SLICE_OFFSET_GFX10(x) (((unsigned)(x) & 0xF) << 8) /* >= gfx10 */ #define G_028840_RT_SLICE_OFFSET_GFX10(x) (((x) >> 8) & 0xF) #define C_028840_RT_SLICE_OFFSET_GFX10 0xFFFFF0FF #define S_028840_RT_SLICE_OFFSET_GFX9(x) (((unsigned)(x) & 0x3) << 8) /* gfx9 */ #define G_028840_RT_SLICE_OFFSET_GFX9(x) (((x) >> 8) & 0x3) #define C_028840_RT_SLICE_OFFSET_GFX9 0xFFFFFCFF #define S_028840_VP_ID_MODE_GFX9(x) (((unsigned)(x) & 0x7) << 10) /* gfx9 */ #define G_028840_VP_ID_MODE_GFX9(x) (((x) >> 10) & 0x7) #define C_028840_VP_ID_MODE_GFX9 0xFFFFE3FF #define S_028840_VP_ID_OFFSET_GFX9(x) (((unsigned)(x) & 0xF) << 13) /* gfx9 */ #define G_028840_VP_ID_OFFSET_GFX9(x) (((x) >> 13) & 0xF) #define C_028840_VP_ID_OFFSET_GFX9 0xFFFE1FFF #define S_028840_VP_ID_MODE_GFX10(x) (((unsigned)(x) & 0x7) << 16) /* >= gfx10 */ #define G_028840_VP_ID_MODE_GFX10(x) (((x) >> 16) & 0x7) #define C_028840_VP_ID_MODE_GFX10 0xFFF8FFFF #define S_028840_VP_ID_OFFSET_GFX10(x) (((unsigned)(x) & 0xF) << 19) /* >= gfx10 */ #define G_028840_VP_ID_OFFSET_GFX10(x) (((x) >> 19) & 0xF) #define C_028840_VP_ID_OFFSET_GFX10 0xFF87FFFF #define R_028844_PA_STATE_STEREO_X 0x028844 /* >= gfx10 */ #define R_028848_PA_CL_VRS_CNTL 0x028848 /* >= gfx103 */ #define S_028848_VERTEX_RATE_COMBINER_MODE(x) (((unsigned)(x) & 0x7) << 0) #define G_028848_VERTEX_RATE_COMBINER_MODE(x) (((x) >> 0) & 0x7) #define C_028848_VERTEX_RATE_COMBINER_MODE 0xFFFFFFF8 #define V_028848_VRS_COMB_MODE_PASSTHRU 0 #define V_028848_VRS_COMB_MODE_OVERRIDE 1 #define V_028848_VRS_COMB_MODE_MIN 2 #define V_028848_VRS_COMB_MODE_MAX 3 #define V_028848_VRS_COMB_MODE_SATURATE 4 #define S_028848_PRIMITIVE_RATE_COMBINER_MODE(x) (((unsigned)(x) & 0x7) << 3) #define G_028848_PRIMITIVE_RATE_COMBINER_MODE(x) (((x) >> 3) & 0x7) #define C_028848_PRIMITIVE_RATE_COMBINER_MODE 0xFFFFFFC7 #define S_028848_HTILE_RATE_COMBINER_MODE(x) (((unsigned)(x) & 0x7) << 6) #define G_028848_HTILE_RATE_COMBINER_MODE(x) (((x) >> 6) & 0x7) #define C_028848_HTILE_RATE_COMBINER_MODE 0xFFFFFE3F #define S_028848_SAMPLE_ITER_COMBINER_MODE(x) (((unsigned)(x) & 0x7) << 9) #define G_028848_SAMPLE_ITER_COMBINER_MODE(x) (((x) >> 9) & 0x7) #define C_028848_SAMPLE_ITER_COMBINER_MODE 0xFFFFF1FF #define S_028848_EXPOSE_VRS_PIXELS_MASK(x) (((unsigned)(x) & 0x1) << 13) #define G_028848_EXPOSE_VRS_PIXELS_MASK(x) (((x) >> 13) & 0x1) #define C_028848_EXPOSE_VRS_PIXELS_MASK 0xFFFFDFFF #define S_028848_CMASK_RATE_HINT_FORCE_ZERO(x) (((unsigned)(x) & 0x1) << 14) #define G_028848_CMASK_RATE_HINT_FORCE_ZERO(x) (((x) >> 14) & 0x1) #define C_028848_CMASK_RATE_HINT_FORCE_ZERO 0xFFFFBFFF #define R_028A00_PA_SU_POINT_SIZE 0x028A00 #define S_028A00_HEIGHT(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_028A00_HEIGHT(x) (((x) >> 0) & 0xFFFF) #define C_028A00_HEIGHT 0xFFFF0000 #define S_028A00_WIDTH(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_028A00_WIDTH(x) (((x) >> 16) & 0xFFFF) #define C_028A00_WIDTH 0x0000FFFF #define R_028A04_PA_SU_POINT_MINMAX 0x028A04 #define S_028A04_MIN_SIZE(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_028A04_MIN_SIZE(x) (((x) >> 0) & 0xFFFF) #define C_028A04_MIN_SIZE 0xFFFF0000 #define S_028A04_MAX_SIZE(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_028A04_MAX_SIZE(x) (((x) >> 16) & 0xFFFF) #define C_028A04_MAX_SIZE 0x0000FFFF #define R_028A08_PA_SU_LINE_CNTL 0x028A08 #define S_028A08_WIDTH(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_028A08_WIDTH(x) (((x) >> 0) & 0xFFFF) #define C_028A08_WIDTH 0xFFFF0000 #define R_028A0C_PA_SC_LINE_STIPPLE 0x028A0C #define S_028A0C_LINE_PATTERN(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_028A0C_LINE_PATTERN(x) (((x) >> 0) & 0xFFFF) #define C_028A0C_LINE_PATTERN 0xFFFF0000 #define S_028A0C_REPEAT_COUNT(x) (((unsigned)(x) & 0xFF) << 16) #define G_028A0C_REPEAT_COUNT(x) (((x) >> 16) & 0xFF) #define C_028A0C_REPEAT_COUNT 0xFF00FFFF #define S_028A0C_PATTERN_BIT_ORDER(x) (((unsigned)(x) & 0x1) << 28) #define G_028A0C_PATTERN_BIT_ORDER(x) (((x) >> 28) & 0x1) #define C_028A0C_PATTERN_BIT_ORDER 0xEFFFFFFF #define S_028A0C_AUTO_RESET_CNTL(x) (((unsigned)(x) & 0x3) << 29) #define G_028A0C_AUTO_RESET_CNTL(x) (((x) >> 29) & 0x3) #define C_028A0C_AUTO_RESET_CNTL 0x9FFFFFFF #define R_028A10_VGT_OUTPUT_PATH_CNTL 0x028A10 #define S_028A10_PATH_SELECT(x) (((unsigned)(x) & 0x7) << 0) #define G_028A10_PATH_SELECT(x) (((x) >> 0) & 0x7) #define C_028A10_PATH_SELECT 0xFFFFFFF8 #define R_028A14_VGT_HOS_CNTL 0x028A14 #define S_028A14_TESS_MODE(x) (((unsigned)(x) & 0x3) << 0) #define G_028A14_TESS_MODE(x) (((x) >> 0) & 0x3) #define C_028A14_TESS_MODE 0xFFFFFFFC #define R_028A18_VGT_HOS_MAX_TESS_LEVEL 0x028A18 #define R_028A1C_VGT_HOS_MIN_TESS_LEVEL 0x028A1C #define R_028A20_VGT_HOS_REUSE_DEPTH 0x028A20 #define S_028A20_REUSE_DEPTH(x) (((unsigned)(x) & 0xFF) << 0) #define G_028A20_REUSE_DEPTH(x) (((x) >> 0) & 0xFF) #define C_028A20_REUSE_DEPTH 0xFFFFFF00 #define R_028A24_VGT_GROUP_PRIM_TYPE 0x028A24 #define S_028A24_PRIM_TYPE(x) (((unsigned)(x) & 0x1F) << 0) #define G_028A24_PRIM_TYPE(x) (((x) >> 0) & 0x1F) #define C_028A24_PRIM_TYPE 0xFFFFFFE0 #define V_028A24_DI_PT_NONE 0 #define V_028A24_DI_PT_POINTLIST 1 #define V_028A24_DI_PT_LINELIST 2 #define V_028A24_DI_PT_LINESTRIP 3 #define V_028A24_DI_PT_TRILIST 4 #define V_028A24_DI_PT_TRIFAN 5 #define V_028A24_DI_PT_TRISTRIP 6 #define V_028A24_DI_PT_2D_RECTANGLE 7 /* >= gfx9 */ #define V_028A24_DI_PT_UNUSED_0 7 /* <= gfx81 */ #define V_028A24_DI_PT_UNUSED_1 8 #define V_028A24_DI_PT_PATCH 9 #define V_028A24_DI_PT_LINELIST_ADJ 10 #define V_028A24_DI_PT_LINESTRIP_ADJ 11 #define V_028A24_DI_PT_TRILIST_ADJ 12 #define V_028A24_DI_PT_TRISTRIP_ADJ 13 #define V_028A24_DI_PT_UNUSED_3 14 #define V_028A24_DI_PT_UNUSED_4 15 #define V_028A24_DI_PT_TRI_WITH_WFLAGS 16 #define V_028A24_DI_PT_RECTLIST 17 #define V_028A24_DI_PT_LINELOOP 18 #define V_028A24_DI_PT_QUADLIST 19 #define V_028A24_DI_PT_QUADSTRIP 20 #define V_028A24_DI_PT_POLYGON 21 #define V_028A24_DI_PT_2D_COPY_RECT_LIST_V0 22 /* <= gfx81 */ #define V_028A24_DI_PT_2D_COPY_RECT_LIST_V1 23 /* <= gfx81 */ #define V_028A24_DI_PT_2D_COPY_RECT_LIST_V2 24 /* <= gfx81 */ #define V_028A24_DI_PT_2D_COPY_RECT_LIST_V3 25 /* <= gfx81 */ #define V_028A24_DI_PT_2D_FILL_RECT_LIST 26 /* <= gfx81 */ #define V_028A24_DI_PT_2D_LINE_STRIP 27 /* <= gfx81 */ #define V_028A24_DI_PT_2D_TRI_STRIP 28 /* <= gfx81 */ #define S_028A24_RETAIN_ORDER(x) (((unsigned)(x) & 0x1) << 14) #define G_028A24_RETAIN_ORDER(x) (((x) >> 14) & 0x1) #define C_028A24_RETAIN_ORDER 0xFFFFBFFF #define S_028A24_RETAIN_QUADS(x) (((unsigned)(x) & 0x1) << 15) #define G_028A24_RETAIN_QUADS(x) (((x) >> 15) & 0x1) #define C_028A24_RETAIN_QUADS 0xFFFF7FFF #define S_028A24_PRIM_ORDER(x) (((unsigned)(x) & 0x7) << 16) #define G_028A24_PRIM_ORDER(x) (((x) >> 16) & 0x7) #define C_028A24_PRIM_ORDER 0xFFF8FFFF #define R_028A28_VGT_GROUP_FIRST_DECR 0x028A28 #define S_028A28_FIRST_DECR(x) (((unsigned)(x) & 0xF) << 0) #define G_028A28_FIRST_DECR(x) (((x) >> 0) & 0xF) #define C_028A28_FIRST_DECR 0xFFFFFFF0 #define R_028A2C_VGT_GROUP_DECR 0x028A2C #define S_028A2C_DECR(x) (((unsigned)(x) & 0xF) << 0) #define G_028A2C_DECR(x) (((x) >> 0) & 0xF) #define C_028A2C_DECR 0xFFFFFFF0 #define R_028A30_VGT_GROUP_VECT_0_CNTL 0x028A30 #define S_028A30_COMP_X_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_028A30_COMP_X_EN(x) (((x) >> 0) & 0x1) #define C_028A30_COMP_X_EN 0xFFFFFFFE #define S_028A30_COMP_Y_EN(x) (((unsigned)(x) & 0x1) << 1) #define G_028A30_COMP_Y_EN(x) (((x) >> 1) & 0x1) #define C_028A30_COMP_Y_EN 0xFFFFFFFD #define S_028A30_COMP_Z_EN(x) (((unsigned)(x) & 0x1) << 2) #define G_028A30_COMP_Z_EN(x) (((x) >> 2) & 0x1) #define C_028A30_COMP_Z_EN 0xFFFFFFFB #define S_028A30_COMP_W_EN(x) (((unsigned)(x) & 0x1) << 3) #define G_028A30_COMP_W_EN(x) (((x) >> 3) & 0x1) #define C_028A30_COMP_W_EN 0xFFFFFFF7 #define S_028A30_STRIDE(x) (((unsigned)(x) & 0xFF) << 8) #define G_028A30_STRIDE(x) (((x) >> 8) & 0xFF) #define C_028A30_STRIDE 0xFFFF00FF #define S_028A30_SHIFT(x) (((unsigned)(x) & 0xFF) << 16) #define G_028A30_SHIFT(x) (((x) >> 16) & 0xFF) #define C_028A30_SHIFT 0xFF00FFFF #define R_028A34_VGT_GROUP_VECT_1_CNTL 0x028A34 #define R_028A38_VGT_GROUP_VECT_0_FMT_CNTL 0x028A38 #define S_028A38_X_CONV(x) (((unsigned)(x) & 0xF) << 0) #define G_028A38_X_CONV(x) (((x) >> 0) & 0xF) #define C_028A38_X_CONV 0xFFFFFFF0 #define S_028A38_X_OFFSET(x) (((unsigned)(x) & 0xF) << 4) #define G_028A38_X_OFFSET(x) (((x) >> 4) & 0xF) #define C_028A38_X_OFFSET 0xFFFFFF0F #define S_028A38_Y_CONV(x) (((unsigned)(x) & 0xF) << 8) #define G_028A38_Y_CONV(x) (((x) >> 8) & 0xF) #define C_028A38_Y_CONV 0xFFFFF0FF #define S_028A38_Y_OFFSET(x) (((unsigned)(x) & 0xF) << 12) #define G_028A38_Y_OFFSET(x) (((x) >> 12) & 0xF) #define C_028A38_Y_OFFSET 0xFFFF0FFF #define S_028A38_Z_CONV(x) (((unsigned)(x) & 0xF) << 16) #define G_028A38_Z_CONV(x) (((x) >> 16) & 0xF) #define C_028A38_Z_CONV 0xFFF0FFFF #define S_028A38_Z_OFFSET(x) (((unsigned)(x) & 0xF) << 20) #define G_028A38_Z_OFFSET(x) (((x) >> 20) & 0xF) #define C_028A38_Z_OFFSET 0xFF0FFFFF #define S_028A38_W_CONV(x) (((unsigned)(x) & 0xF) << 24) #define G_028A38_W_CONV(x) (((x) >> 24) & 0xF) #define C_028A38_W_CONV 0xF0FFFFFF #define S_028A38_W_OFFSET(x) (((unsigned)(x) & 0xF) << 28) #define G_028A38_W_OFFSET(x) (((x) >> 28) & 0xF) #define C_028A38_W_OFFSET 0x0FFFFFFF #define R_028A3C_VGT_GROUP_VECT_1_FMT_CNTL 0x028A3C #define R_028A40_VGT_GS_MODE 0x028A40 #define S_028A40_MODE(x) (((unsigned)(x) & 0x7) << 0) #define G_028A40_MODE(x) (((x) >> 0) & 0x7) #define C_028A40_MODE 0xFFFFFFF8 #define V_028A40_GS_OFF 0 #define V_028A40_GS_SCENARIO_A 1 #define V_028A40_GS_SCENARIO_B 2 #define V_028A40_GS_SCENARIO_G 3 #define V_028A40_GS_SCENARIO_C 4 #define V_028A40_SPRITE_EN 5 #define S_028A40_RESERVED_0(x) (((unsigned)(x) & 0x1) << 3) #define G_028A40_RESERVED_0(x) (((x) >> 3) & 0x1) #define C_028A40_RESERVED_0 0xFFFFFFF7 #define S_028A40_CUT_MODE(x) (((unsigned)(x) & 0x3) << 4) #define G_028A40_CUT_MODE(x) (((x) >> 4) & 0x3) #define C_028A40_CUT_MODE 0xFFFFFFCF #define V_028A40_GS_CUT_1024 0 #define V_028A40_GS_CUT_512 1 #define V_028A40_GS_CUT_256 2 #define V_028A40_GS_CUT_128 3 #define S_028A40_RESERVED_1(x) (((unsigned)(x) & 0x1F) << 6) #define G_028A40_RESERVED_1(x) (((x) >> 6) & 0x1F) #define C_028A40_RESERVED_1 0xFFFFF83F #define S_028A40_GS_C_PACK_EN(x) (((unsigned)(x) & 0x1) << 11) #define G_028A40_GS_C_PACK_EN(x) (((x) >> 11) & 0x1) #define C_028A40_GS_C_PACK_EN 0xFFFFF7FF #define S_028A40_RESERVED_2(x) (((unsigned)(x) & 0x1) << 12) #define G_028A40_RESERVED_2(x) (((x) >> 12) & 0x1) #define C_028A40_RESERVED_2 0xFFFFEFFF #define S_028A40_ES_PASSTHRU(x) (((unsigned)(x) & 0x1) << 13) #define G_028A40_ES_PASSTHRU(x) (((x) >> 13) & 0x1) #define C_028A40_ES_PASSTHRU 0xFFFFDFFF #define S_028A40_COMPUTE_MODE(x) (((unsigned)(x) & 0x1) << 14) /* <= gfx7, >= gfx10 */ #define G_028A40_COMPUTE_MODE(x) (((x) >> 14) & 0x1) #define C_028A40_COMPUTE_MODE 0xFFFFBFFF #define S_028A40_RESERVED_3(x) (((unsigned)(x) & 0x1) << 14) /* gfx8, gfx81, gfx9 */ #define G_028A40_RESERVED_3(x) (((x) >> 14) & 0x1) #define C_028A40_RESERVED_3 0xFFFFBFFF #define S_028A40_FAST_COMPUTE_MODE(x) (((unsigned)(x) & 0x1) << 15) /* <= gfx7, >= gfx10 */ #define G_028A40_FAST_COMPUTE_MODE(x) (((x) >> 15) & 0x1) #define C_028A40_FAST_COMPUTE_MODE 0xFFFF7FFF #define S_028A40_RESERVED_4(x) (((unsigned)(x) & 0x1) << 15) /* gfx8, gfx81, gfx9 */ #define G_028A40_RESERVED_4(x) (((x) >> 15) & 0x1) #define C_028A40_RESERVED_4 0xFFFF7FFF #define S_028A40_ELEMENT_INFO_EN(x) (((unsigned)(x) & 0x1) << 16) /* <= gfx7, >= gfx10 */ #define G_028A40_ELEMENT_INFO_EN(x) (((x) >> 16) & 0x1) #define C_028A40_ELEMENT_INFO_EN 0xFFFEFFFF #define S_028A40_RESERVED_5(x) (((unsigned)(x) & 0x1) << 16) /* gfx8, gfx81, gfx9 */ #define G_028A40_RESERVED_5(x) (((x) >> 16) & 0x1) #define C_028A40_RESERVED_5 0xFFFEFFFF #define S_028A40_PARTIAL_THD_AT_EOI(x) (((unsigned)(x) & 0x1) << 17) #define G_028A40_PARTIAL_THD_AT_EOI(x) (((x) >> 17) & 0x1) #define C_028A40_PARTIAL_THD_AT_EOI 0xFFFDFFFF #define S_028A40_SUPPRESS_CUTS(x) (((unsigned)(x) & 0x1) << 18) #define G_028A40_SUPPRESS_CUTS(x) (((x) >> 18) & 0x1) #define C_028A40_SUPPRESS_CUTS 0xFFFBFFFF #define S_028A40_ES_WRITE_OPTIMIZE(x) (((unsigned)(x) & 0x1) << 19) #define G_028A40_ES_WRITE_OPTIMIZE(x) (((x) >> 19) & 0x1) #define C_028A40_ES_WRITE_OPTIMIZE 0xFFF7FFFF #define S_028A40_GS_WRITE_OPTIMIZE(x) (((unsigned)(x) & 0x1) << 20) #define G_028A40_GS_WRITE_OPTIMIZE(x) (((x) >> 20) & 0x1) #define C_028A40_GS_WRITE_OPTIMIZE 0xFFEFFFFF #define S_028A40_ONCHIP(x) (((unsigned)(x) & 0x3) << 21) #define G_028A40_ONCHIP(x) (((x) >> 21) & 0x3) #define C_028A40_ONCHIP 0xFF9FFFFF #define R_028A44_VGT_GS_ONCHIP_CNTL 0x028A44 /* >= gfx7 */ #define S_028A44_ES_VERTS_PER_SUBGRP(x) (((unsigned)(x) & 0x7FF) << 0) #define G_028A44_ES_VERTS_PER_SUBGRP(x) (((x) >> 0) & 0x7FF) #define C_028A44_ES_VERTS_PER_SUBGRP 0xFFFFF800 #define S_028A44_GS_PRIMS_PER_SUBGRP(x) (((unsigned)(x) & 0x7FF) << 11) #define G_028A44_GS_PRIMS_PER_SUBGRP(x) (((x) >> 11) & 0x7FF) #define C_028A44_GS_PRIMS_PER_SUBGRP 0xFFC007FF #define S_028A44_GS_INST_PRIMS_IN_SUBGRP(x) (((unsigned)(x) & 0x3FF) << 22) /* >= gfx9 */ #define G_028A44_GS_INST_PRIMS_IN_SUBGRP(x) (((x) >> 22) & 0x3FF) #define C_028A44_GS_INST_PRIMS_IN_SUBGRP 0x003FFFFF #define R_028A48_PA_SC_MODE_CNTL_0 0x028A48 #define S_028A48_MSAA_ENABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_028A48_MSAA_ENABLE(x) (((x) >> 0) & 0x1) #define C_028A48_MSAA_ENABLE 0xFFFFFFFE #define S_028A48_VPORT_SCISSOR_ENABLE(x) (((unsigned)(x) & 0x1) << 1) #define G_028A48_VPORT_SCISSOR_ENABLE(x) (((x) >> 1) & 0x1) #define C_028A48_VPORT_SCISSOR_ENABLE 0xFFFFFFFD #define S_028A48_LINE_STIPPLE_ENABLE(x) (((unsigned)(x) & 0x1) << 2) #define G_028A48_LINE_STIPPLE_ENABLE(x) (((x) >> 2) & 0x1) #define C_028A48_LINE_STIPPLE_ENABLE 0xFFFFFFFB #define S_028A48_SEND_UNLIT_STILES_TO_PKR(x) (((unsigned)(x) & 0x1) << 3) #define G_028A48_SEND_UNLIT_STILES_TO_PKR(x) (((x) >> 3) & 0x1) #define C_028A48_SEND_UNLIT_STILES_TO_PKR 0xFFFFFFF7 #define S_028A48_SCALE_LINE_WIDTH_PAD(x) (((unsigned)(x) & 0x1) << 4) /* gfx9, gfx10 */ #define G_028A48_SCALE_LINE_WIDTH_PAD(x) (((x) >> 4) & 0x1) #define C_028A48_SCALE_LINE_WIDTH_PAD 0xFFFFFFEF #define S_028A48_ALTERNATE_RBS_PER_TILE(x) (((unsigned)(x) & 0x1) << 5) /* >= gfx9 */ #define G_028A48_ALTERNATE_RBS_PER_TILE(x) (((x) >> 5) & 0x1) #define C_028A48_ALTERNATE_RBS_PER_TILE 0xFFFFFFDF #define S_028A48_COARSE_TILE_STARTS_ON_EVEN_RB(x) (((unsigned)(x) & 0x1) << 6) /* >= gfx9 */ #define G_028A48_COARSE_TILE_STARTS_ON_EVEN_RB(x) (((x) >> 6) & 0x1) #define C_028A48_COARSE_TILE_STARTS_ON_EVEN_RB 0xFFFFFFBF #define R_028A4C_PA_SC_MODE_CNTL_1 0x028A4C #define S_028A4C_WALK_SIZE(x) (((unsigned)(x) & 0x1) << 0) #define G_028A4C_WALK_SIZE(x) (((x) >> 0) & 0x1) #define C_028A4C_WALK_SIZE 0xFFFFFFFE #define S_028A4C_WALK_ALIGNMENT(x) (((unsigned)(x) & 0x1) << 1) #define G_028A4C_WALK_ALIGNMENT(x) (((x) >> 1) & 0x1) #define C_028A4C_WALK_ALIGNMENT 0xFFFFFFFD #define S_028A4C_WALK_ALIGN8_PRIM_FITS_ST(x) (((unsigned)(x) & 0x1) << 2) #define G_028A4C_WALK_ALIGN8_PRIM_FITS_ST(x) (((x) >> 2) & 0x1) #define C_028A4C_WALK_ALIGN8_PRIM_FITS_ST 0xFFFFFFFB #define S_028A4C_WALK_FENCE_ENABLE(x) (((unsigned)(x) & 0x1) << 3) #define G_028A4C_WALK_FENCE_ENABLE(x) (((x) >> 3) & 0x1) #define C_028A4C_WALK_FENCE_ENABLE 0xFFFFFFF7 #define S_028A4C_WALK_FENCE_SIZE(x) (((unsigned)(x) & 0x7) << 4) #define G_028A4C_WALK_FENCE_SIZE(x) (((x) >> 4) & 0x7) #define C_028A4C_WALK_FENCE_SIZE 0xFFFFFF8F #define S_028A4C_SUPERTILE_WALK_ORDER_ENABLE(x) (((unsigned)(x) & 0x1) << 7) #define G_028A4C_SUPERTILE_WALK_ORDER_ENABLE(x) (((x) >> 7) & 0x1) #define C_028A4C_SUPERTILE_WALK_ORDER_ENABLE 0xFFFFFF7F #define S_028A4C_TILE_WALK_ORDER_ENABLE(x) (((unsigned)(x) & 0x1) << 8) #define G_028A4C_TILE_WALK_ORDER_ENABLE(x) (((x) >> 8) & 0x1) #define C_028A4C_TILE_WALK_ORDER_ENABLE 0xFFFFFEFF #define S_028A4C_TILE_COVER_DISABLE(x) (((unsigned)(x) & 0x1) << 9) #define G_028A4C_TILE_COVER_DISABLE(x) (((x) >> 9) & 0x1) #define C_028A4C_TILE_COVER_DISABLE 0xFFFFFDFF #define S_028A4C_TILE_COVER_NO_SCISSOR(x) (((unsigned)(x) & 0x1) << 10) #define G_028A4C_TILE_COVER_NO_SCISSOR(x) (((x) >> 10) & 0x1) #define C_028A4C_TILE_COVER_NO_SCISSOR 0xFFFFFBFF #define S_028A4C_ZMM_LINE_EXTENT(x) (((unsigned)(x) & 0x1) << 11) #define G_028A4C_ZMM_LINE_EXTENT(x) (((x) >> 11) & 0x1) #define C_028A4C_ZMM_LINE_EXTENT 0xFFFFF7FF #define S_028A4C_ZMM_LINE_OFFSET(x) (((unsigned)(x) & 0x1) << 12) #define G_028A4C_ZMM_LINE_OFFSET(x) (((x) >> 12) & 0x1) #define C_028A4C_ZMM_LINE_OFFSET 0xFFFFEFFF #define S_028A4C_ZMM_RECT_EXTENT(x) (((unsigned)(x) & 0x1) << 13) #define G_028A4C_ZMM_RECT_EXTENT(x) (((x) >> 13) & 0x1) #define C_028A4C_ZMM_RECT_EXTENT 0xFFFFDFFF #define S_028A4C_KILL_PIX_POST_HI_Z(x) (((unsigned)(x) & 0x1) << 14) #define G_028A4C_KILL_PIX_POST_HI_Z(x) (((x) >> 14) & 0x1) #define C_028A4C_KILL_PIX_POST_HI_Z 0xFFFFBFFF #define S_028A4C_KILL_PIX_POST_DETAIL_MASK(x) (((unsigned)(x) & 0x1) << 15) #define G_028A4C_KILL_PIX_POST_DETAIL_MASK(x) (((x) >> 15) & 0x1) #define C_028A4C_KILL_PIX_POST_DETAIL_MASK 0xFFFF7FFF #define S_028A4C_PS_ITER_SAMPLE(x) (((unsigned)(x) & 0x1) << 16) #define G_028A4C_PS_ITER_SAMPLE(x) (((x) >> 16) & 0x1) #define C_028A4C_PS_ITER_SAMPLE 0xFFFEFFFF #define S_028A4C_MULTI_SHADER_ENGINE_PRIM_DISCARD_ENABLE(x) (((unsigned)(x) & 0x1) << 17) #define G_028A4C_MULTI_SHADER_ENGINE_PRIM_DISCARD_ENABLE(x) (((x) >> 17) & 0x1) #define C_028A4C_MULTI_SHADER_ENGINE_PRIM_DISCARD_ENABLE 0xFFFDFFFF #define S_028A4C_MULTI_GPU_SUPERTILE_ENABLE(x) (((unsigned)(x) & 0x1) << 18) #define G_028A4C_MULTI_GPU_SUPERTILE_ENABLE(x) (((x) >> 18) & 0x1) #define C_028A4C_MULTI_GPU_SUPERTILE_ENABLE 0xFFFBFFFF #define S_028A4C_GPU_ID_OVERRIDE_ENABLE(x) (((unsigned)(x) & 0x1) << 19) #define G_028A4C_GPU_ID_OVERRIDE_ENABLE(x) (((x) >> 19) & 0x1) #define C_028A4C_GPU_ID_OVERRIDE_ENABLE 0xFFF7FFFF #define S_028A4C_GPU_ID_OVERRIDE(x) (((unsigned)(x) & 0xF) << 20) #define G_028A4C_GPU_ID_OVERRIDE(x) (((x) >> 20) & 0xF) #define C_028A4C_GPU_ID_OVERRIDE 0xFF0FFFFF #define S_028A4C_MULTI_GPU_PRIM_DISCARD_ENABLE(x) (((unsigned)(x) & 0x1) << 24) #define G_028A4C_MULTI_GPU_PRIM_DISCARD_ENABLE(x) (((x) >> 24) & 0x1) #define C_028A4C_MULTI_GPU_PRIM_DISCARD_ENABLE 0xFEFFFFFF #define S_028A4C_FORCE_EOV_CNTDWN_ENABLE(x) (((unsigned)(x) & 0x1) << 25) #define G_028A4C_FORCE_EOV_CNTDWN_ENABLE(x) (((x) >> 25) & 0x1) #define C_028A4C_FORCE_EOV_CNTDWN_ENABLE 0xFDFFFFFF #define S_028A4C_FORCE_EOV_REZ_ENABLE(x) (((unsigned)(x) & 0x1) << 26) #define G_028A4C_FORCE_EOV_REZ_ENABLE(x) (((x) >> 26) & 0x1) #define C_028A4C_FORCE_EOV_REZ_ENABLE 0xFBFFFFFF #define S_028A4C_OUT_OF_ORDER_PRIMITIVE_ENABLE(x) (((unsigned)(x) & 0x1) << 27) #define G_028A4C_OUT_OF_ORDER_PRIMITIVE_ENABLE(x) (((x) >> 27) & 0x1) #define C_028A4C_OUT_OF_ORDER_PRIMITIVE_ENABLE 0xF7FFFFFF #define S_028A4C_OUT_OF_ORDER_WATER_MARK(x) (((unsigned)(x) & 0x7) << 28) #define G_028A4C_OUT_OF_ORDER_WATER_MARK(x) (((x) >> 28) & 0x7) #define C_028A4C_OUT_OF_ORDER_WATER_MARK 0x8FFFFFFF #define R_028A50_VGT_ENHANCE 0x028A50 #define R_028A54_VGT_GS_PER_ES 0x028A54 #define S_028A54_GS_PER_ES(x) (((unsigned)(x) & 0x7FF) << 0) #define G_028A54_GS_PER_ES(x) (((x) >> 0) & 0x7FF) #define C_028A54_GS_PER_ES 0xFFFFF800 #define R_028A58_VGT_ES_PER_GS 0x028A58 #define S_028A58_ES_PER_GS(x) (((unsigned)(x) & 0x7FF) << 0) #define G_028A58_ES_PER_GS(x) (((x) >> 0) & 0x7FF) #define C_028A58_ES_PER_GS 0xFFFFF800 #define R_028A5C_VGT_GS_PER_VS 0x028A5C #define S_028A5C_GS_PER_VS(x) (((unsigned)(x) & 0xF) << 0) #define G_028A5C_GS_PER_VS(x) (((x) >> 0) & 0xF) #define C_028A5C_GS_PER_VS 0xFFFFFFF0 #define R_028A60_VGT_GSVS_RING_OFFSET_1 0x028A60 #define S_028A60_OFFSET(x) (((unsigned)(x) & 0x7FFF) << 0) #define G_028A60_OFFSET(x) (((x) >> 0) & 0x7FFF) #define C_028A60_OFFSET 0xFFFF8000 #define R_028A64_VGT_GSVS_RING_OFFSET_2 0x028A64 #define R_028A68_VGT_GSVS_RING_OFFSET_3 0x028A68 #define R_028A6C_VGT_GS_OUT_PRIM_TYPE 0x028A6C #define S_028A6C_OUTPRIM_TYPE(x) (((unsigned)(x) & 0x3F) << 0) #define G_028A6C_OUTPRIM_TYPE(x) (((x) >> 0) & 0x3F) #define C_028A6C_OUTPRIM_TYPE 0xFFFFFFC0 #define V_028A6C_POINTLIST 0 #define V_028A6C_LINESTRIP 1 #define V_028A6C_TRISTRIP 2 #define V_028A6C_RECTLIST 3 /* >= gfx9 */ #define S_028A6C_OUTPRIM_TYPE_1(x) (((unsigned)(x) & 0x3F) << 8) #define G_028A6C_OUTPRIM_TYPE_1(x) (((x) >> 8) & 0x3F) #define C_028A6C_OUTPRIM_TYPE_1 0xFFFFC0FF #define S_028A6C_OUTPRIM_TYPE_2(x) (((unsigned)(x) & 0x3F) << 16) #define G_028A6C_OUTPRIM_TYPE_2(x) (((x) >> 16) & 0x3F) #define C_028A6C_OUTPRIM_TYPE_2 0xFFC0FFFF #define S_028A6C_OUTPRIM_TYPE_3(x) (((unsigned)(x) & 0x3F) << 22) #define G_028A6C_OUTPRIM_TYPE_3(x) (((x) >> 22) & 0x3F) #define C_028A6C_OUTPRIM_TYPE_3 0xF03FFFFF #define S_028A6C_UNIQUE_TYPE_PER_STREAM(x) (((unsigned)(x) & 0x1) << 31) #define G_028A6C_UNIQUE_TYPE_PER_STREAM(x) (((x) >> 31) & 0x1) #define C_028A6C_UNIQUE_TYPE_PER_STREAM 0x7FFFFFFF #define R_028A70_IA_ENHANCE 0x028A70 #define R_028A74_VGT_DMA_SIZE 0x028A74 #define R_028A78_VGT_DMA_MAX_SIZE 0x028A78 #define R_028A7C_VGT_DMA_INDEX_TYPE 0x028A7C #define S_028A7C_INDEX_TYPE(x) (((unsigned)(x) & 0x3) << 0) #define G_028A7C_INDEX_TYPE(x) (((x) >> 0) & 0x3) #define C_028A7C_INDEX_TYPE 0xFFFFFFFC #define V_028A7C_VGT_INDEX_16 0 #define V_028A7C_VGT_INDEX_32 1 #define V_028A7C_VGT_INDEX_8 2 /* >= gfx8 */ #define S_028A7C_SWAP_MODE(x) (((unsigned)(x) & 0x3) << 2) #define G_028A7C_SWAP_MODE(x) (((x) >> 2) & 0x3) #define C_028A7C_SWAP_MODE 0xFFFFFFF3 #define V_028A7C_VGT_DMA_SWAP_NONE 0 #define V_028A7C_VGT_DMA_SWAP_16_BIT 1 #define V_028A7C_VGT_DMA_SWAP_32_BIT 2 #define V_028A7C_VGT_DMA_SWAP_WORD 3 #define S_028A7C_BUF_TYPE(x) (((unsigned)(x) & 0x3) << 4) #define G_028A7C_BUF_TYPE(x) (((x) >> 4) & 0x3) #define C_028A7C_BUF_TYPE 0xFFFFFFCF #define V_028A7C_VGT_DMA_BUF_MEM 0 #define V_028A7C_VGT_DMA_BUF_RING 1 #define V_028A7C_VGT_DMA_BUF_SETUP 2 #define V_028A7C_VGT_DMA_PTR_UPDATE 3 /* >= gfx8 */ #define S_028A7C_RDREQ_POLICY(x) (((unsigned)(x) & 0x3) << 6) #define G_028A7C_RDREQ_POLICY(x) (((x) >> 6) & 0x3) #define C_028A7C_RDREQ_POLICY 0xFFFFFF3F #define V_028A7C_VGT_POLICY_LRU 0 #define V_028A7C_VGT_POLICY_STREAM 1 #define V_028A7C_VGT_POLICY_BYPASS 2 /* <= gfx7, >= gfx10 */ #define V_028A7C_VGT_POLICY_RESERVED 3 /* <= gfx7 */ #define S_028A7C_ATC(x) (((unsigned)(x) & 0x1) << 8) /* <= gfx7, >= gfx10 */ #define G_028A7C_ATC(x) (((x) >> 8) & 0x1) #define C_028A7C_ATC 0xFFFFFEFF #define S_028A7C_PRIMGEN_EN(x) (((unsigned)(x) & 0x1) << 8) /* gfx9 */ #define G_028A7C_PRIMGEN_EN(x) (((x) >> 8) & 0x1) #define C_028A7C_PRIMGEN_EN 0xFFFFFEFF #define S_028A7C_NOT_EOP(x) (((unsigned)(x) & 0x1) << 9) #define G_028A7C_NOT_EOP(x) (((x) >> 9) & 0x1) #define C_028A7C_NOT_EOP 0xFFFFFDFF #define S_028A7C_REQ_PATH(x) (((unsigned)(x) & 0x1) << 10) #define G_028A7C_REQ_PATH(x) (((x) >> 10) & 0x1) #define C_028A7C_REQ_PATH 0xFFFFFBFF #define S_028A7C_MTYPE(x) (((unsigned)(x) & 0x7) << 11) /* gfx8, gfx81, >= gfx10 */ #define G_028A7C_MTYPE(x) (((x) >> 11) & 0x7) #define C_028A7C_MTYPE 0xFFFFC7FF #define S_028A7C_DISABLE_INSTANCE_PACKING(x) (((unsigned)(x) & 0x1) << 14) /* >= gfx103 */ #define G_028A7C_DISABLE_INSTANCE_PACKING(x) (((x) >> 14) & 0x1) #define C_028A7C_DISABLE_INSTANCE_PACKING 0xFFFFBFFF #define R_028A80_WD_ENHANCE 0x028A80 /* >= gfx7 */ #define R_028A84_VGT_PRIMITIVEID_EN 0x028A84 #define S_028A84_PRIMITIVEID_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_028A84_PRIMITIVEID_EN(x) (((x) >> 0) & 0x1) #define C_028A84_PRIMITIVEID_EN 0xFFFFFFFE #define S_028A84_DISABLE_RESET_ON_EOI(x) (((unsigned)(x) & 0x1) << 1) #define G_028A84_DISABLE_RESET_ON_EOI(x) (((x) >> 1) & 0x1) #define C_028A84_DISABLE_RESET_ON_EOI 0xFFFFFFFD #define S_028A84_NGG_DISABLE_PROVOK_REUSE(x) (((unsigned)(x) & 0x1) << 2) /* >= gfx9 */ #define G_028A84_NGG_DISABLE_PROVOK_REUSE(x) (((x) >> 2) & 0x1) #define C_028A84_NGG_DISABLE_PROVOK_REUSE 0xFFFFFFFB #define R_028A88_VGT_DMA_NUM_INSTANCES 0x028A88 #define R_028A8C_VGT_PRIMITIVEID_RESET 0x028A8C #define R_028A90_VGT_EVENT_INITIATOR 0x028A90 #define S_028A90_EVENT_TYPE(x) (((unsigned)(x) & 0x3F) << 0) #define G_028A90_EVENT_TYPE(x) (((x) >> 0) & 0x3F) #define C_028A90_EVENT_TYPE 0xFFFFFFC0 #define V_028A90_Reserved_0x00 0 #define V_028A90_SAMPLE_STREAMOUTSTATS1 1 #define V_028A90_SAMPLE_STREAMOUTSTATS2 2 #define V_028A90_SAMPLE_STREAMOUTSTATS3 3 #define V_028A90_CACHE_FLUSH_TS 4 #define V_028A90_CONTEXT_DONE 5 #define V_028A90_CACHE_FLUSH 6 #define V_028A90_CS_PARTIAL_FLUSH 7 #define V_028A90_VGT_STREAMOUT_SYNC 8 #define V_028A90_Reserved_0x09 9 /* <= gfx9 */ #define V_028A90_SET_FE_ID 9 /* >= gfx10 */ #define V_028A90_VGT_STREAMOUT_RESET 10 #define V_028A90_END_OF_PIPE_INCR_DE 11 #define V_028A90_END_OF_PIPE_IB_END 12 #define V_028A90_RST_PIX_CNT 13 #define V_028A90_BREAK_BATCH 14 /* >= gfx9 */ #define V_028A90_Reserved_0x0E 14 /* <= gfx81 */ #define V_028A90_VS_PARTIAL_FLUSH 15 #define V_028A90_PS_PARTIAL_FLUSH 16 #define V_028A90_FLUSH_HS_OUTPUT 17 #define V_028A90_FLUSH_DFSM 18 /* >= gfx9 */ #define V_028A90_FLUSH_LS_OUTPUT 18 /* <= gfx81 */ #define V_028A90_RESET_TO_LOWEST_VGT 19 /* >= gfx9 */ #define V_028A90_Reserved_0x13 19 /* <= gfx81 */ #define V_028A90_CACHE_FLUSH_AND_INV_TS_EVENT 20 #define V_028A90_ZPASS_DONE 21 #define V_028A90_CACHE_FLUSH_AND_INV_EVENT 22 #define V_028A90_PERFCOUNTER_START 23 #define V_028A90_PERFCOUNTER_STOP 24 #define V_028A90_PIPELINESTAT_START 25 #define V_028A90_PIPELINESTAT_STOP 26 #define V_028A90_PERFCOUNTER_SAMPLE 27 #define V_028A90_Available_0x1c 28 /* gfx9 */ #define V_028A90_FLUSH_ES_OUTPUT 28 /* <= gfx81, >= gfx10 */ #define V_028A90_Available_0x1d 29 /* gfx9 */ #define V_028A90_BIN_CONF_OVERRIDE_CHECK 29 /* >= gfx10 */ #define V_028A90_FLUSH_GS_OUTPUT 29 /* <= gfx81 */ #define V_028A90_SAMPLE_PIPELINESTAT 30 #define V_028A90_SO_VGTSTREAMOUT_FLUSH 31 #define V_028A90_SAMPLE_STREAMOUTSTATS 32 #define V_028A90_RESET_VTX_CNT 33 #define V_028A90_BLOCK_CONTEXT_DONE 34 #define V_028A90_CS_CONTEXT_DONE 35 #define V_028A90_VGT_FLUSH 36 #define V_028A90_Reserved_0x25 37 /* <= gfx7 */ #define V_028A90_TGID_ROLLOVER 37 /* >= gfx8 */ #define V_028A90_SQ_NON_EVENT 38 #define V_028A90_SC_SEND_DB_VPZ 39 #define V_028A90_BOTTOM_OF_PIPE_TS 40 #define V_028A90_FLUSH_SX_TS 41 #define V_028A90_DB_CACHE_FLUSH_AND_INV 42 #define V_028A90_FLUSH_AND_INV_DB_DATA_TS 43 #define V_028A90_FLUSH_AND_INV_DB_META 44 #define V_028A90_FLUSH_AND_INV_CB_DATA_TS 45 #define V_028A90_FLUSH_AND_INV_CB_META 46 #define V_028A90_CS_DONE 47 #define V_028A90_PS_DONE 48 #define V_028A90_FLUSH_AND_INV_CB_PIXEL_DATA 49 #define V_028A90_SX_CB_RAT_ACK_REQUEST 50 #define V_028A90_THREAD_TRACE_START 51 #define V_028A90_THREAD_TRACE_STOP 52 #define V_028A90_THREAD_TRACE_MARKER 53 #define V_028A90_THREAD_TRACE_DRAW 54 /* >= gfx10 */ #define V_028A90_THREAD_TRACE_FLUSH 54 /* <= gfx9 */ #define V_028A90_THREAD_TRACE_FINISH 55 #define V_028A90_PIXEL_PIPE_STAT_CONTROL 56 #define V_028A90_PIXEL_PIPE_STAT_DUMP 57 #define V_028A90_PIXEL_PIPE_STAT_RESET 58 #define V_028A90_CONTEXT_SUSPEND 59 #define V_028A90_OFFCHIP_HS_DEALLOC 60 /* >= gfx8 */ #define V_028A90_ENABLE_NGG_PIPELINE 61 /* >= gfx9 */ #define V_028A90_ENABLE_LEGACY_PIPELINE 62 /* >= gfx9 */ #define V_028A90_DRAW_DONE 63 /* >= gfx10 */ #define V_028A90_Reserved_0x3f 63 /* gfx9 */ #define S_028A90_ADDRESS_HI_GFX9(x) (((unsigned)(x) & 0x1FFFF) << 10) /* >= gfx9 */ #define G_028A90_ADDRESS_HI_GFX9(x) (((x) >> 10) & 0x1FFFF) #define C_028A90_ADDRESS_HI_GFX9 0xF80003FF #define S_028A90_ADDRESS_HI_GFX6(x) (((unsigned)(x) & 0x1FF) << 18) /* <= gfx81 */ #define G_028A90_ADDRESS_HI_GFX6(x) (((x) >> 18) & 0x1FF) #define C_028A90_ADDRESS_HI_GFX6 0xF803FFFF #define S_028A90_EXTENDED_EVENT(x) (((unsigned)(x) & 0x1) << 27) #define G_028A90_EXTENDED_EVENT(x) (((x) >> 27) & 0x1) #define C_028A90_EXTENDED_EVENT 0xF7FFFFFF #define R_028A94_VGT_GS_MAX_PRIMS_PER_SUBGROUP 0x028A94 /* gfx9 */ #define S_028A94_MAX_PRIMS_PER_SUBGROUP(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_028A94_MAX_PRIMS_PER_SUBGROUP(x) (((x) >> 0) & 0xFFFF) #define C_028A94_MAX_PRIMS_PER_SUBGROUP 0xFFFF0000 #define R_028A94_VGT_MULTI_PRIM_IB_RESET_EN 0x028A94 /* <= gfx81, >= gfx10 */ #define S_028A94_RESET_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_028A94_RESET_EN(x) (((x) >> 0) & 0x1) #define C_028A94_RESET_EN 0xFFFFFFFE #define S_028A94_MATCH_ALL_BITS(x) (((unsigned)(x) & 0x1) << 1) /* >= gfx10 */ #define G_028A94_MATCH_ALL_BITS(x) (((x) >> 1) & 0x1) #define C_028A94_MATCH_ALL_BITS 0xFFFFFFFD #define R_028A98_VGT_DRAW_PAYLOAD_CNTL 0x028A98 /* >= gfx9 */ #define S_028A98_OBJPRIM_ID_EN(x) (((unsigned)(x) & 0x1) << 0) /* gfx9, gfx10 */ #define G_028A98_OBJPRIM_ID_EN(x) (((x) >> 0) & 0x1) #define C_028A98_OBJPRIM_ID_EN 0xFFFFFFFE #define S_028A98_EN_REG_RT_INDEX(x) (((unsigned)(x) & 0x1) << 1) #define G_028A98_EN_REG_RT_INDEX(x) (((x) >> 1) & 0x1) #define C_028A98_EN_REG_RT_INDEX 0xFFFFFFFD #define S_028A98_EN_PIPELINE_PRIMID(x) (((unsigned)(x) & 0x1) << 2) /* gfx9 */ #define G_028A98_EN_PIPELINE_PRIMID(x) (((x) >> 2) & 0x1) #define C_028A98_EN_PIPELINE_PRIMID 0xFFFFFFFB #define S_028A98_OBJECT_ID_INST_EN_GFX10(x) (((unsigned)(x) & 0x1) << 2) /* gfx10 */ #define G_028A98_OBJECT_ID_INST_EN_GFX10(x) (((x) >> 2) & 0x1) #define C_028A98_OBJECT_ID_INST_EN_GFX10 0xFFFFFFFB #define S_028A98_EN_PRIM_PAYLOAD(x) (((unsigned)(x) & 0x1) << 3) /* >= gfx10 */ #define G_028A98_EN_PRIM_PAYLOAD(x) (((x) >> 3) & 0x1) #define C_028A98_EN_PRIM_PAYLOAD 0xFFFFFFF7 #define S_028A98_OBJECT_ID_INST_EN_GFX9(x) (((unsigned)(x) & 0x1) << 3) /* gfx9 */ #define G_028A98_OBJECT_ID_INST_EN_GFX9(x) (((x) >> 3) & 0x1) #define C_028A98_OBJECT_ID_INST_EN_GFX9 0xFFFFFFF7 #define S_028A98_EN_DRAW_VP(x) (((unsigned)(x) & 0x1) << 4) /* >= gfx10 */ #define G_028A98_EN_DRAW_VP(x) (((x) >> 4) & 0x1) #define C_028A98_EN_DRAW_VP 0xFFFFFFEF #define S_028A98_EN_VRS_RATE(x) (((unsigned)(x) & 0x1) << 6) /* >= gfx103 */ #define G_028A98_EN_VRS_RATE(x) (((x) >> 6) & 0x1) #define C_028A98_EN_VRS_RATE 0xFFFFFFBF #define R_028AA0_VGT_INSTANCE_STEP_RATE_0 0x028AA0 #define R_028AA4_VGT_INSTANCE_STEP_RATE_1 0x028AA4 #define R_028AA8_IA_MULTI_VGT_PARAM 0x028AA8 /* <= gfx81, >= gfx10 */ #define S_028AA8_PRIMGROUP_SIZE(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_028AA8_PRIMGROUP_SIZE(x) (((x) >> 0) & 0xFFFF) #define C_028AA8_PRIMGROUP_SIZE 0xFFFF0000 #define S_028AA8_PARTIAL_VS_WAVE_ON(x) (((unsigned)(x) & 0x1) << 16) #define G_028AA8_PARTIAL_VS_WAVE_ON(x) (((x) >> 16) & 0x1) #define C_028AA8_PARTIAL_VS_WAVE_ON 0xFFFEFFFF #define S_028AA8_SWITCH_ON_EOP(x) (((unsigned)(x) & 0x1) << 17) #define G_028AA8_SWITCH_ON_EOP(x) (((x) >> 17) & 0x1) #define C_028AA8_SWITCH_ON_EOP 0xFFFDFFFF #define S_028AA8_PARTIAL_ES_WAVE_ON(x) (((unsigned)(x) & 0x1) << 18) #define G_028AA8_PARTIAL_ES_WAVE_ON(x) (((x) >> 18) & 0x1) #define C_028AA8_PARTIAL_ES_WAVE_ON 0xFFFBFFFF #define S_028AA8_SWITCH_ON_EOI(x) (((unsigned)(x) & 0x1) << 19) #define G_028AA8_SWITCH_ON_EOI(x) (((x) >> 19) & 0x1) #define C_028AA8_SWITCH_ON_EOI 0xFFF7FFFF #define S_028AA8_WD_SWITCH_ON_EOP(x) (((unsigned)(x) & 0x1) << 20) #define G_028AA8_WD_SWITCH_ON_EOP(x) (((x) >> 20) & 0x1) #define C_028AA8_WD_SWITCH_ON_EOP 0xFFEFFFFF #define S_028AA8_MAX_PRIMGRP_IN_WAVE(x) (((unsigned)(x) & 0xF) << 28) /* gfx8, gfx81 */ #define G_028AA8_MAX_PRIMGRP_IN_WAVE(x) (((x) >> 28) & 0xF) #define C_028AA8_MAX_PRIMGRP_IN_WAVE 0x0FFFFFFF #define R_028AAC_VGT_ESGS_RING_ITEMSIZE 0x028AAC #define S_028AAC_ITEMSIZE(x) (((unsigned)(x) & 0x7FFF) << 0) #define G_028AAC_ITEMSIZE(x) (((x) >> 0) & 0x7FFF) #define C_028AAC_ITEMSIZE 0xFFFF8000 #define R_028AB0_VGT_GSVS_RING_ITEMSIZE 0x028AB0 #define S_028AB0_ITEMSIZE(x) (((unsigned)(x) & 0x7FFF) << 0) #define G_028AB0_ITEMSIZE(x) (((x) >> 0) & 0x7FFF) #define C_028AB0_ITEMSIZE 0xFFFF8000 #define R_028AB4_VGT_REUSE_OFF 0x028AB4 #define S_028AB4_REUSE_OFF(x) (((unsigned)(x) & 0x1) << 0) #define G_028AB4_REUSE_OFF(x) (((x) >> 0) & 0x1) #define C_028AB4_REUSE_OFF 0xFFFFFFFE #define R_028AB8_VGT_VTX_CNT_EN 0x028AB8 #define S_028AB8_VTX_CNT_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_028AB8_VTX_CNT_EN(x) (((x) >> 0) & 0x1) #define C_028AB8_VTX_CNT_EN 0xFFFFFFFE #define R_028ABC_DB_HTILE_SURFACE 0x028ABC #define S_028ABC_LINEAR(x) (((unsigned)(x) & 0x1) << 0) /* <= gfx81 */ #define G_028ABC_LINEAR(x) (((x) >> 0) & 0x1) #define C_028ABC_LINEAR 0xFFFFFFFE #define S_028ABC_RESERVED_FIELD_1(x) (((unsigned)(x) & 0x1) << 0) /* >= gfx10 */ #define G_028ABC_RESERVED_FIELD_1(x) (((x) >> 0) & 0x1) #define C_028ABC_RESERVED_FIELD_1 0xFFFFFFFE #define S_028ABC_FULL_CACHE(x) (((unsigned)(x) & 0x1) << 1) #define G_028ABC_FULL_CACHE(x) (((x) >> 1) & 0x1) #define C_028ABC_FULL_CACHE 0xFFFFFFFD #define S_028ABC_HTILE_USES_PRELOAD_WIN(x) (((unsigned)(x) & 0x1) << 2) /* <= gfx9 */ #define G_028ABC_HTILE_USES_PRELOAD_WIN(x) (((x) >> 2) & 0x1) #define C_028ABC_HTILE_USES_PRELOAD_WIN 0xFFFFFFFB #define S_028ABC_RESERVED_FIELD_2(x) (((unsigned)(x) & 0x1) << 2) /* >= gfx10 */ #define G_028ABC_RESERVED_FIELD_2(x) (((x) >> 2) & 0x1) #define C_028ABC_RESERVED_FIELD_2 0xFFFFFFFB #define S_028ABC_PRELOAD(x) (((unsigned)(x) & 0x1) << 3) /* <= gfx9 */ #define G_028ABC_PRELOAD(x) (((x) >> 3) & 0x1) #define C_028ABC_PRELOAD 0xFFFFFFF7 #define S_028ABC_RESERVED_FIELD_3(x) (((unsigned)(x) & 0x1) << 3) /* >= gfx10 */ #define G_028ABC_RESERVED_FIELD_3(x) (((x) >> 3) & 0x1) #define C_028ABC_RESERVED_FIELD_3 0xFFFFFFF7 #define S_028ABC_PREFETCH_WIDTH(x) (((unsigned)(x) & 0x3F) << 4) /* <= gfx9 */ #define G_028ABC_PREFETCH_WIDTH(x) (((x) >> 4) & 0x3F) #define C_028ABC_PREFETCH_WIDTH 0xFFFFFC0F #define S_028ABC_RESERVED_FIELD_4(x) (((unsigned)(x) & 0x3F) << 4) /* >= gfx10 */ #define G_028ABC_RESERVED_FIELD_4(x) (((x) >> 4) & 0x3F) #define C_028ABC_RESERVED_FIELD_4 0xFFFFFC0F #define S_028ABC_PREFETCH_HEIGHT(x) (((unsigned)(x) & 0x3F) << 10) /* <= gfx9 */ #define G_028ABC_PREFETCH_HEIGHT(x) (((x) >> 10) & 0x3F) #define C_028ABC_PREFETCH_HEIGHT 0xFFFF03FF #define S_028ABC_RESERVED_FIELD_5(x) (((unsigned)(x) & 0x3F) << 10) /* >= gfx10 */ #define G_028ABC_RESERVED_FIELD_5(x) (((x) >> 10) & 0x3F) #define C_028ABC_RESERVED_FIELD_5 0xFFFF03FF #define S_028ABC_DST_OUTSIDE_ZERO_TO_ONE(x) (((unsigned)(x) & 0x1) << 16) #define G_028ABC_DST_OUTSIDE_ZERO_TO_ONE(x) (((x) >> 16) & 0x1) #define C_028ABC_DST_OUTSIDE_ZERO_TO_ONE 0xFFFEFFFF #define S_028ABC_RESERVED_FIELD_6(x) (((unsigned)(x) & 0x1) << 17) /* >= gfx10 */ #define G_028ABC_RESERVED_FIELD_6(x) (((x) >> 17) & 0x1) #define C_028ABC_RESERVED_FIELD_6 0xFFFDFFFF #define S_028ABC_TC_COMPATIBLE(x) (((unsigned)(x) & 0x1) << 17) /* gfx8, gfx81 */ #define G_028ABC_TC_COMPATIBLE(x) (((x) >> 17) & 0x1) #define C_028ABC_TC_COMPATIBLE 0xFFFDFFFF #define S_028ABC_PIPE_ALIGNED(x) (((unsigned)(x) & 0x1) << 18) /* >= gfx9 */ #define G_028ABC_PIPE_ALIGNED(x) (((x) >> 18) & 0x1) #define C_028ABC_PIPE_ALIGNED 0xFFFBFFFF #define S_028ABC_RB_ALIGNED(x) (((unsigned)(x) & 0x1) << 19) /* gfx9 */ #define G_028ABC_RB_ALIGNED(x) (((x) >> 19) & 0x1) #define C_028ABC_RB_ALIGNED 0xFFF7FFFF #define S_028ABC_VRS_HTILE_ENCODING(x) (((unsigned)(x) & 0x3) << 19) /* >= gfx103 */ #define G_028ABC_VRS_HTILE_ENCODING(x) (((x) >> 19) & 0x3) #define C_028ABC_VRS_HTILE_ENCODING 0xFFE7FFFF #define V_028ABC_VRS_HTILE_DISABLE 0 #define V_028ABC_VRS_HTILE_2BIT_ENCODING 1 #define V_028ABC_VRS_HTILE_4BIT_ENCODING 2 #define R_028AC0_DB_SRESULTS_COMPARE_STATE0 0x028AC0 #define S_028AC0_COMPAREFUNC0(x) (((unsigned)(x) & 0x7) << 0) #define G_028AC0_COMPAREFUNC0(x) (((x) >> 0) & 0x7) #define C_028AC0_COMPAREFUNC0 0xFFFFFFF8 #define V_028AC0_FRAG_NEVER 0 #define V_028AC0_FRAG_LESS 1 #define V_028AC0_FRAG_EQUAL 2 #define V_028AC0_FRAG_LEQUAL 3 #define V_028AC0_FRAG_GREATER 4 #define V_028AC0_FRAG_NOTEQUAL 5 #define V_028AC0_FRAG_GEQUAL 6 #define V_028AC0_FRAG_ALWAYS 7 #define S_028AC0_COMPAREVALUE0(x) (((unsigned)(x) & 0xFF) << 4) #define G_028AC0_COMPAREVALUE0(x) (((x) >> 4) & 0xFF) #define C_028AC0_COMPAREVALUE0 0xFFFFF00F #define S_028AC0_COMPAREMASK0(x) (((unsigned)(x) & 0xFF) << 12) #define G_028AC0_COMPAREMASK0(x) (((x) >> 12) & 0xFF) #define C_028AC0_COMPAREMASK0 0xFFF00FFF #define S_028AC0_ENABLE0(x) (((unsigned)(x) & 0x1) << 24) #define G_028AC0_ENABLE0(x) (((x) >> 24) & 0x1) #define C_028AC0_ENABLE0 0xFEFFFFFF #define R_028AC4_DB_SRESULTS_COMPARE_STATE1 0x028AC4 #define S_028AC4_COMPAREFUNC1(x) (((unsigned)(x) & 0x7) << 0) #define G_028AC4_COMPAREFUNC1(x) (((x) >> 0) & 0x7) #define C_028AC4_COMPAREFUNC1 0xFFFFFFF8 #define V_028AC4_FRAG_NEVER 0 #define V_028AC4_FRAG_LESS 1 #define V_028AC4_FRAG_EQUAL 2 #define V_028AC4_FRAG_LEQUAL 3 #define V_028AC4_FRAG_GREATER 4 #define V_028AC4_FRAG_NOTEQUAL 5 #define V_028AC4_FRAG_GEQUAL 6 #define V_028AC4_FRAG_ALWAYS 7 #define S_028AC4_COMPAREVALUE1(x) (((unsigned)(x) & 0xFF) << 4) #define G_028AC4_COMPAREVALUE1(x) (((x) >> 4) & 0xFF) #define C_028AC4_COMPAREVALUE1 0xFFFFF00F #define S_028AC4_COMPAREMASK1(x) (((unsigned)(x) & 0xFF) << 12) #define G_028AC4_COMPAREMASK1(x) (((x) >> 12) & 0xFF) #define C_028AC4_COMPAREMASK1 0xFFF00FFF #define S_028AC4_ENABLE1(x) (((unsigned)(x) & 0x1) << 24) #define G_028AC4_ENABLE1(x) (((x) >> 24) & 0x1) #define C_028AC4_ENABLE1 0xFEFFFFFF #define R_028AC8_DB_PRELOAD_CONTROL 0x028AC8 #define S_028AC8_START_X(x) (((unsigned)(x) & 0xFF) << 0) #define G_028AC8_START_X(x) (((x) >> 0) & 0xFF) #define C_028AC8_START_X 0xFFFFFF00 #define S_028AC8_START_Y(x) (((unsigned)(x) & 0xFF) << 8) #define G_028AC8_START_Y(x) (((x) >> 8) & 0xFF) #define C_028AC8_START_Y 0xFFFF00FF #define S_028AC8_MAX_X(x) (((unsigned)(x) & 0xFF) << 16) #define G_028AC8_MAX_X(x) (((x) >> 16) & 0xFF) #define C_028AC8_MAX_X 0xFF00FFFF #define S_028AC8_MAX_Y(x) (((unsigned)(x) & 0xFF) << 24) #define G_028AC8_MAX_Y(x) (((x) >> 24) & 0xFF) #define C_028AC8_MAX_Y 0x00FFFFFF #define R_028AD0_VGT_STRMOUT_BUFFER_SIZE_0 0x028AD0 #define R_028AD4_VGT_STRMOUT_VTX_STRIDE_0 0x028AD4 #define S_028AD4_STRIDE(x) (((unsigned)(x) & 0x3FF) << 0) #define G_028AD4_STRIDE(x) (((x) >> 0) & 0x3FF) #define C_028AD4_STRIDE 0xFFFFFC00 #define R_028ADC_VGT_STRMOUT_BUFFER_OFFSET_0 0x028ADC #define R_028AE0_VGT_STRMOUT_BUFFER_SIZE_1 0x028AE0 #define R_028AE4_VGT_STRMOUT_VTX_STRIDE_1 0x028AE4 #define R_028AEC_VGT_STRMOUT_BUFFER_OFFSET_1 0x028AEC #define R_028AF0_VGT_STRMOUT_BUFFER_SIZE_2 0x028AF0 #define R_028AF4_VGT_STRMOUT_VTX_STRIDE_2 0x028AF4 #define R_028AFC_VGT_STRMOUT_BUFFER_OFFSET_2 0x028AFC #define R_028B00_VGT_STRMOUT_BUFFER_SIZE_3 0x028B00 #define R_028B04_VGT_STRMOUT_VTX_STRIDE_3 0x028B04 #define R_028B0C_VGT_STRMOUT_BUFFER_OFFSET_3 0x028B0C #define R_028B28_VGT_STRMOUT_DRAW_OPAQUE_OFFSET 0x028B28 #define R_028B2C_VGT_STRMOUT_DRAW_OPAQUE_BUFFER_FILLED_SIZE 0x028B2C #define R_028B30_VGT_STRMOUT_DRAW_OPAQUE_VERTEX_STRIDE 0x028B30 #define S_028B30_VERTEX_STRIDE(x) (((unsigned)(x) & 0x1FF) << 0) #define G_028B30_VERTEX_STRIDE(x) (((x) >> 0) & 0x1FF) #define C_028B30_VERTEX_STRIDE 0xFFFFFE00 #define R_028B38_VGT_GS_MAX_VERT_OUT 0x028B38 #define S_028B38_MAX_VERT_OUT(x) (((unsigned)(x) & 0x7FF) << 0) #define G_028B38_MAX_VERT_OUT(x) (((x) >> 0) & 0x7FF) #define C_028B38_MAX_VERT_OUT 0xFFFFF800 #define R_028B4C_GE_NGG_SUBGRP_CNTL 0x028B4C /* >= gfx10 */ #define S_028B4C_PRIM_AMP_FACTOR(x) (((unsigned)(x) & 0x1FF) << 0) #define G_028B4C_PRIM_AMP_FACTOR(x) (((x) >> 0) & 0x1FF) #define C_028B4C_PRIM_AMP_FACTOR 0xFFFFFE00 #define S_028B4C_THDS_PER_SUBGRP(x) (((unsigned)(x) & 0x1FF) << 9) #define G_028B4C_THDS_PER_SUBGRP(x) (((x) >> 9) & 0x1FF) #define C_028B4C_THDS_PER_SUBGRP 0xFFFC01FF #define R_028B50_VGT_TESS_DISTRIBUTION 0x028B50 /* >= gfx8 */ #define S_028B50_ACCUM_ISOLINE(x) (((unsigned)(x) & 0xFF) << 0) #define G_028B50_ACCUM_ISOLINE(x) (((x) >> 0) & 0xFF) #define C_028B50_ACCUM_ISOLINE 0xFFFFFF00 #define S_028B50_ACCUM_TRI(x) (((unsigned)(x) & 0xFF) << 8) #define G_028B50_ACCUM_TRI(x) (((x) >> 8) & 0xFF) #define C_028B50_ACCUM_TRI 0xFFFF00FF #define S_028B50_ACCUM_QUAD(x) (((unsigned)(x) & 0xFF) << 16) #define G_028B50_ACCUM_QUAD(x) (((x) >> 16) & 0xFF) #define C_028B50_ACCUM_QUAD 0xFF00FFFF #define S_028B50_DONUT_SPLIT_GFX81(x) (((unsigned)(x) & 0xFF) << 24) /* gfx81 */ #define G_028B50_DONUT_SPLIT_GFX81(x) (((x) >> 24) & 0xFF) #define C_028B50_DONUT_SPLIT_GFX81 0x00FFFFFF #define S_028B50_DONUT_SPLIT_GFX9(x) (((unsigned)(x) & 0x1F) << 24) /* >= gfx9 */ #define G_028B50_DONUT_SPLIT_GFX9(x) (((x) >> 24) & 0x1F) #define C_028B50_DONUT_SPLIT_GFX9 0xE0FFFFFF #define S_028B50_TRAP_SPLIT(x) (((unsigned)(x) & 0x7) << 29) /* >= gfx9 */ #define G_028B50_TRAP_SPLIT(x) (((x) >> 29) & 0x7) #define C_028B50_TRAP_SPLIT 0x1FFFFFFF #define R_028B54_VGT_SHADER_STAGES_EN 0x028B54 #define S_028B54_LS_EN(x) (((unsigned)(x) & 0x3) << 0) #define G_028B54_LS_EN(x) (((x) >> 0) & 0x3) #define C_028B54_LS_EN 0xFFFFFFFC #define V_028B54_LS_STAGE_OFF 0 #define V_028B54_LS_STAGE_ON 1 #define V_028B54_CS_STAGE_ON 2 #define V_028B54_RESERVED_LS 3 #define S_028B54_HS_EN(x) (((unsigned)(x) & 0x1) << 2) #define G_028B54_HS_EN(x) (((x) >> 2) & 0x1) #define C_028B54_HS_EN 0xFFFFFFFB #define V_028B54_HS_STAGE_OFF 0 #define V_028B54_HS_STAGE_ON 1 #define S_028B54_ES_EN(x) (((unsigned)(x) & 0x3) << 3) #define G_028B54_ES_EN(x) (((x) >> 3) & 0x3) #define C_028B54_ES_EN 0xFFFFFFE7 #define V_028B54_ES_STAGE_OFF 0 #define V_028B54_ES_STAGE_DS 1 #define V_028B54_ES_STAGE_REAL 2 #define V_028B54_RESERVED_ES 3 #define S_028B54_GS_EN(x) (((unsigned)(x) & 0x1) << 5) #define G_028B54_GS_EN(x) (((x) >> 5) & 0x1) #define C_028B54_GS_EN 0xFFFFFFDF #define V_028B54_GS_STAGE_OFF 0 #define V_028B54_GS_STAGE_ON 1 #define S_028B54_VS_EN(x) (((unsigned)(x) & 0x3) << 6) #define G_028B54_VS_EN(x) (((x) >> 6) & 0x3) #define C_028B54_VS_EN 0xFFFFFF3F #define V_028B54_VS_STAGE_REAL 0 #define V_028B54_VS_STAGE_DS 1 #define V_028B54_VS_STAGE_COPY_SHADER 2 #define V_028B54_RESERVED_VS 3 #define S_028B54_DYNAMIC_HS(x) (((unsigned)(x) & 0x1) << 8) /* <= gfx81, >= gfx10 */ #define G_028B54_DYNAMIC_HS(x) (((x) >> 8) & 0x1) #define C_028B54_DYNAMIC_HS 0xFFFFFEFF #define S_028B54_DISPATCH_DRAW_EN(x) (((unsigned)(x) & 0x1) << 9) /* >= gfx8 */ #define G_028B54_DISPATCH_DRAW_EN(x) (((x) >> 9) & 0x1) #define C_028B54_DISPATCH_DRAW_EN 0xFFFFFDFF #define S_028B54_DIS_DEALLOC_ACCUM_0(x) (((unsigned)(x) & 0x1) << 10) /* >= gfx8 */ #define G_028B54_DIS_DEALLOC_ACCUM_0(x) (((x) >> 10) & 0x1) #define C_028B54_DIS_DEALLOC_ACCUM_0 0xFFFFFBFF #define S_028B54_DIS_DEALLOC_ACCUM_1(x) (((unsigned)(x) & 0x1) << 11) /* >= gfx8 */ #define G_028B54_DIS_DEALLOC_ACCUM_1(x) (((x) >> 11) & 0x1) #define C_028B54_DIS_DEALLOC_ACCUM_1 0xFFFFF7FF #define S_028B54_VS_WAVE_ID_EN(x) (((unsigned)(x) & 0x1) << 12) /* >= gfx8 */ #define G_028B54_VS_WAVE_ID_EN(x) (((x) >> 12) & 0x1) #define C_028B54_VS_WAVE_ID_EN 0xFFFFEFFF #define S_028B54_PRIMGEN_EN(x) (((unsigned)(x) & 0x1) << 13) /* >= gfx9 */ #define G_028B54_PRIMGEN_EN(x) (((x) >> 13) & 0x1) #define C_028B54_PRIMGEN_EN 0xFFFFDFFF #define S_028B54_ORDERED_ID_MODE(x) (((unsigned)(x) & 0x1) << 14) /* >= gfx9 */ #define G_028B54_ORDERED_ID_MODE(x) (((x) >> 14) & 0x1) #define C_028B54_ORDERED_ID_MODE 0xFFFFBFFF #define S_028B54_MAX_PRIMGRP_IN_WAVE(x) (((unsigned)(x) & 0xF) << 15) /* >= gfx9 */ #define G_028B54_MAX_PRIMGRP_IN_WAVE(x) (((x) >> 15) & 0xF) #define C_028B54_MAX_PRIMGRP_IN_WAVE 0xFFF87FFF #define S_028B54_GS_FAST_LAUNCH(x) (((unsigned)(x) & 0x3) << 19) /* >= gfx9 */ #define G_028B54_GS_FAST_LAUNCH(x) (((x) >> 19) & 0x3) #define C_028B54_GS_FAST_LAUNCH 0xFFE7FFFF #define S_028B54_HS_W32_EN(x) (((unsigned)(x) & 0x1) << 21) /* >= gfx10 */ #define G_028B54_HS_W32_EN(x) (((x) >> 21) & 0x1) #define C_028B54_HS_W32_EN 0xFFDFFFFF #define S_028B54_GS_W32_EN(x) (((unsigned)(x) & 0x1) << 22) /* >= gfx10 */ #define G_028B54_GS_W32_EN(x) (((x) >> 22) & 0x1) #define C_028B54_GS_W32_EN 0xFFBFFFFF #define S_028B54_VS_W32_EN(x) (((unsigned)(x) & 0x1) << 23) /* >= gfx10 */ #define G_028B54_VS_W32_EN(x) (((x) >> 23) & 0x1) #define C_028B54_VS_W32_EN 0xFF7FFFFF #define S_028B54_NGG_WAVE_ID_EN(x) (((unsigned)(x) & 0x1) << 24) /* >= gfx10 */ #define G_028B54_NGG_WAVE_ID_EN(x) (((x) >> 24) & 0x1) #define C_028B54_NGG_WAVE_ID_EN 0xFEFFFFFF #define S_028B54_PRIMGEN_PASSTHRU_EN(x) (((unsigned)(x) & 0x1) << 25) /* >= gfx10 */ #define G_028B54_PRIMGEN_PASSTHRU_EN(x) (((x) >> 25) & 0x1) #define C_028B54_PRIMGEN_PASSTHRU_EN 0xFDFFFFFF #define S_028B54_PRIMGEN_PASSTHRU_NO_MSG(x) (((unsigned)(x) & 0x1) << 26) /* >= gfx103 */ #define G_028B54_PRIMGEN_PASSTHRU_NO_MSG(x) (((x) >> 26) & 0x1) #define C_028B54_PRIMGEN_PASSTHRU_NO_MSG 0xFBFFFFFF #define R_028B58_VGT_LS_HS_CONFIG 0x028B58 #define S_028B58_NUM_PATCHES(x) (((unsigned)(x) & 0xFF) << 0) #define G_028B58_NUM_PATCHES(x) (((x) >> 0) & 0xFF) #define C_028B58_NUM_PATCHES 0xFFFFFF00 #define S_028B58_HS_NUM_INPUT_CP(x) (((unsigned)(x) & 0x3F) << 8) #define G_028B58_HS_NUM_INPUT_CP(x) (((x) >> 8) & 0x3F) #define C_028B58_HS_NUM_INPUT_CP 0xFFFFC0FF #define S_028B58_HS_NUM_OUTPUT_CP(x) (((unsigned)(x) & 0x3F) << 14) #define G_028B58_HS_NUM_OUTPUT_CP(x) (((x) >> 14) & 0x3F) #define C_028B58_HS_NUM_OUTPUT_CP 0xFFF03FFF #define R_028B5C_VGT_GS_VERT_ITEMSIZE 0x028B5C #define S_028B5C_ITEMSIZE(x) (((unsigned)(x) & 0x7FFF) << 0) #define G_028B5C_ITEMSIZE(x) (((x) >> 0) & 0x7FFF) #define C_028B5C_ITEMSIZE 0xFFFF8000 #define R_028B60_VGT_GS_VERT_ITEMSIZE_1 0x028B60 #define S_028B60_ITEMSIZE(x) (((unsigned)(x) & 0x7FFF) << 0) #define G_028B60_ITEMSIZE(x) (((x) >> 0) & 0x7FFF) #define C_028B60_ITEMSIZE 0xFFFF8000 #define R_028B64_VGT_GS_VERT_ITEMSIZE_2 0x028B64 #define R_028B68_VGT_GS_VERT_ITEMSIZE_3 0x028B68 #define R_028B6C_VGT_TF_PARAM 0x028B6C #define S_028B6C_TYPE(x) (((unsigned)(x) & 0x3) << 0) #define G_028B6C_TYPE(x) (((x) >> 0) & 0x3) #define C_028B6C_TYPE 0xFFFFFFFC #define V_028B6C_TESS_ISOLINE 0 #define V_028B6C_TESS_TRIANGLE 1 #define V_028B6C_TESS_QUAD 2 #define S_028B6C_PARTITIONING(x) (((unsigned)(x) & 0x7) << 2) #define G_028B6C_PARTITIONING(x) (((x) >> 2) & 0x7) #define C_028B6C_PARTITIONING 0xFFFFFFE3 #define V_028B6C_PART_INTEGER 0 #define V_028B6C_PART_POW2 1 #define V_028B6C_PART_FRAC_ODD 2 #define V_028B6C_PART_FRAC_EVEN 3 #define S_028B6C_TOPOLOGY(x) (((unsigned)(x) & 0x7) << 5) #define G_028B6C_TOPOLOGY(x) (((x) >> 5) & 0x7) #define C_028B6C_TOPOLOGY 0xFFFFFF1F #define V_028B6C_OUTPUT_POINT 0 #define V_028B6C_OUTPUT_LINE 1 #define V_028B6C_OUTPUT_TRIANGLE_CW 2 #define V_028B6C_OUTPUT_TRIANGLE_CCW 3 #define S_028B6C_RESERVED_REDUC_AXIS(x) (((unsigned)(x) & 0x1) << 8) #define G_028B6C_RESERVED_REDUC_AXIS(x) (((x) >> 8) & 0x1) #define C_028B6C_RESERVED_REDUC_AXIS 0xFFFFFEFF #define S_028B6C_DEPRECATED(x) (((unsigned)(x) & 0x1) << 9) #define G_028B6C_DEPRECATED(x) (((x) >> 9) & 0x1) #define C_028B6C_DEPRECATED 0xFFFFFDFF #define S_028B6C_NUM_DS_WAVES_PER_SIMD(x) (((unsigned)(x) & 0xF) << 10) /* <= gfx81, >= gfx10 */ #define G_028B6C_NUM_DS_WAVES_PER_SIMD(x) (((x) >> 10) & 0xF) #define C_028B6C_NUM_DS_WAVES_PER_SIMD 0xFFFFC3FF #define S_028B6C_DISABLE_DONUTS(x) (((unsigned)(x) & 0x1) << 14) #define G_028B6C_DISABLE_DONUTS(x) (((x) >> 14) & 0x1) #define C_028B6C_DISABLE_DONUTS 0xFFFFBFFF #define S_028B6C_RDREQ_POLICY(x) (((unsigned)(x) & 0x3) << 15) #define G_028B6C_RDREQ_POLICY(x) (((x) >> 15) & 0x3) #define C_028B6C_RDREQ_POLICY 0xFFFE7FFF #define V_028B6C_VGT_POLICY_LRU 0 #define V_028B6C_VGT_POLICY_STREAM 1 #define V_028B6C_VGT_POLICY_BYPASS 2 /* <= gfx7, >= gfx10 */ #define V_028B6C_VGT_POLICY_RESERVED 3 /* <= gfx7 */ #define S_028B6C_DISTRIBUTION_MODE(x) (((unsigned)(x) & 0x3) << 17) /* >= gfx8 */ #define G_028B6C_DISTRIBUTION_MODE(x) (((x) >> 17) & 0x3) #define C_028B6C_DISTRIBUTION_MODE 0xFFF9FFFF #define V_028B6C_NO_DIST 0 #define V_028B6C_PATCHES 1 #define V_028B6C_DONUTS 2 #define V_028B6C_TRAPEZOIDS 3 /* >= gfx9 */ #define S_028B6C_DETECT_ONE(x) (((unsigned)(x) & 0x1) << 19) /* >= gfx10 */ #define G_028B6C_DETECT_ONE(x) (((x) >> 19) & 0x1) #define C_028B6C_DETECT_ONE 0xFFF7FFFF #define V_028B6C_PRE_CLAMP_TF1 0 #define V_028B6C_POST_CLAMP_TF1 1 #define V_028B6C_DISABLE_TF1 2 #define S_028B6C_MTYPE_GFX8(x) (((unsigned)(x) & 0x3) << 19) /* gfx8, gfx81 */ #define G_028B6C_MTYPE_GFX8(x) (((x) >> 19) & 0x3) #define C_028B6C_MTYPE_GFX8 0xFFE7FFFF #define S_028B6C_DETECT_ZERO(x) (((unsigned)(x) & 0x1) << 20) /* >= gfx10 */ #define G_028B6C_DETECT_ZERO(x) (((x) >> 20) & 0x1) #define C_028B6C_DETECT_ZERO 0xFFEFFFFF #define V_028B6C_PRE_CLAMP_TF0 0 #define V_028B6C_POST_CLAMP_TF0 1 #define V_028B6C_DISABLE_TF0 2 #define S_028B6C_MTYPE_GFX10(x) (((unsigned)(x) & 0x7) << 23) /* >= gfx10 */ #define G_028B6C_MTYPE_GFX10(x) (((x) >> 23) & 0x7) #define C_028B6C_MTYPE_GFX10 0xFC7FFFFF #define R_028B70_DB_ALPHA_TO_MASK 0x028B70 #define S_028B70_ALPHA_TO_MASK_ENABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_028B70_ALPHA_TO_MASK_ENABLE(x) (((x) >> 0) & 0x1) #define C_028B70_ALPHA_TO_MASK_ENABLE 0xFFFFFFFE #define S_028B70_ALPHA_TO_MASK_OFFSET0(x) (((unsigned)(x) & 0x3) << 8) #define G_028B70_ALPHA_TO_MASK_OFFSET0(x) (((x) >> 8) & 0x3) #define C_028B70_ALPHA_TO_MASK_OFFSET0 0xFFFFFCFF #define S_028B70_ALPHA_TO_MASK_OFFSET1(x) (((unsigned)(x) & 0x3) << 10) #define G_028B70_ALPHA_TO_MASK_OFFSET1(x) (((x) >> 10) & 0x3) #define C_028B70_ALPHA_TO_MASK_OFFSET1 0xFFFFF3FF #define S_028B70_ALPHA_TO_MASK_OFFSET2(x) (((unsigned)(x) & 0x3) << 12) #define G_028B70_ALPHA_TO_MASK_OFFSET2(x) (((x) >> 12) & 0x3) #define C_028B70_ALPHA_TO_MASK_OFFSET2 0xFFFFCFFF #define S_028B70_ALPHA_TO_MASK_OFFSET3(x) (((unsigned)(x) & 0x3) << 14) #define G_028B70_ALPHA_TO_MASK_OFFSET3(x) (((x) >> 14) & 0x3) #define C_028B70_ALPHA_TO_MASK_OFFSET3 0xFFFF3FFF #define S_028B70_OFFSET_ROUND(x) (((unsigned)(x) & 0x1) << 16) #define G_028B70_OFFSET_ROUND(x) (((x) >> 16) & 0x1) #define C_028B70_OFFSET_ROUND 0xFFFEFFFF #define R_028B74_VGT_DISPATCH_DRAW_INDEX 0x028B74 /* >= gfx7 */ #define R_028B78_PA_SU_POLY_OFFSET_DB_FMT_CNTL 0x028B78 #define S_028B78_POLY_OFFSET_NEG_NUM_DB_BITS(x) (((unsigned)(x) & 0xFF) << 0) #define G_028B78_POLY_OFFSET_NEG_NUM_DB_BITS(x) (((x) >> 0) & 0xFF) #define C_028B78_POLY_OFFSET_NEG_NUM_DB_BITS 0xFFFFFF00 #define S_028B78_POLY_OFFSET_DB_IS_FLOAT_FMT(x) (((unsigned)(x) & 0x1) << 8) #define G_028B78_POLY_OFFSET_DB_IS_FLOAT_FMT(x) (((x) >> 8) & 0x1) #define C_028B78_POLY_OFFSET_DB_IS_FLOAT_FMT 0xFFFFFEFF #define R_028B7C_PA_SU_POLY_OFFSET_CLAMP 0x028B7C #define R_028B80_PA_SU_POLY_OFFSET_FRONT_SCALE 0x028B80 #define R_028B84_PA_SU_POLY_OFFSET_FRONT_OFFSET 0x028B84 #define R_028B88_PA_SU_POLY_OFFSET_BACK_SCALE 0x028B88 #define R_028B8C_PA_SU_POLY_OFFSET_BACK_OFFSET 0x028B8C #define R_028B90_VGT_GS_INSTANCE_CNT 0x028B90 #define S_028B90_ENABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_028B90_ENABLE(x) (((x) >> 0) & 0x1) #define C_028B90_ENABLE 0xFFFFFFFE #define S_028B90_CNT(x) (((unsigned)(x) & 0x7F) << 2) #define G_028B90_CNT(x) (((x) >> 2) & 0x7F) #define C_028B90_CNT 0xFFFFFE03 #define S_028B90_EN_MAX_VERT_OUT_PER_GS_INSTANCE(x) (((unsigned)(x) & 0x1) << 31) /* >= gfx10 */ #define G_028B90_EN_MAX_VERT_OUT_PER_GS_INSTANCE(x) (((x) >> 31) & 0x1) #define C_028B90_EN_MAX_VERT_OUT_PER_GS_INSTANCE 0x7FFFFFFF #define R_028B94_VGT_STRMOUT_CONFIG 0x028B94 #define S_028B94_STREAMOUT_0_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_028B94_STREAMOUT_0_EN(x) (((x) >> 0) & 0x1) #define C_028B94_STREAMOUT_0_EN 0xFFFFFFFE #define S_028B94_STREAMOUT_1_EN(x) (((unsigned)(x) & 0x1) << 1) #define G_028B94_STREAMOUT_1_EN(x) (((x) >> 1) & 0x1) #define C_028B94_STREAMOUT_1_EN 0xFFFFFFFD #define S_028B94_STREAMOUT_2_EN(x) (((unsigned)(x) & 0x1) << 2) #define G_028B94_STREAMOUT_2_EN(x) (((x) >> 2) & 0x1) #define C_028B94_STREAMOUT_2_EN 0xFFFFFFFB #define S_028B94_STREAMOUT_3_EN(x) (((unsigned)(x) & 0x1) << 3) #define G_028B94_STREAMOUT_3_EN(x) (((x) >> 3) & 0x1) #define C_028B94_STREAMOUT_3_EN 0xFFFFFFF7 #define S_028B94_RAST_STREAM(x) (((unsigned)(x) & 0x7) << 4) #define G_028B94_RAST_STREAM(x) (((x) >> 4) & 0x7) #define C_028B94_RAST_STREAM 0xFFFFFF8F #define S_028B94_EN_PRIMS_NEEDED_CNT(x) (((unsigned)(x) & 0x1) << 7) /* >= gfx9 */ #define G_028B94_EN_PRIMS_NEEDED_CNT(x) (((x) >> 7) & 0x1) #define C_028B94_EN_PRIMS_NEEDED_CNT 0xFFFFFF7F #define S_028B94_RAST_STREAM_MASK(x) (((unsigned)(x) & 0xF) << 8) #define G_028B94_RAST_STREAM_MASK(x) (((x) >> 8) & 0xF) #define C_028B94_RAST_STREAM_MASK 0xFFFFF0FF #define S_028B94_USE_RAST_STREAM_MASK(x) (((unsigned)(x) & 0x1) << 31) #define G_028B94_USE_RAST_STREAM_MASK(x) (((x) >> 31) & 0x1) #define C_028B94_USE_RAST_STREAM_MASK 0x7FFFFFFF #define R_028B98_VGT_STRMOUT_BUFFER_CONFIG 0x028B98 #define S_028B98_STREAM_0_BUFFER_EN(x) (((unsigned)(x) & 0xF) << 0) #define G_028B98_STREAM_0_BUFFER_EN(x) (((x) >> 0) & 0xF) #define C_028B98_STREAM_0_BUFFER_EN 0xFFFFFFF0 #define S_028B98_STREAM_1_BUFFER_EN(x) (((unsigned)(x) & 0xF) << 4) #define G_028B98_STREAM_1_BUFFER_EN(x) (((x) >> 4) & 0xF) #define C_028B98_STREAM_1_BUFFER_EN 0xFFFFFF0F #define S_028B98_STREAM_2_BUFFER_EN(x) (((unsigned)(x) & 0xF) << 8) #define G_028B98_STREAM_2_BUFFER_EN(x) (((x) >> 8) & 0xF) #define C_028B98_STREAM_2_BUFFER_EN 0xFFFFF0FF #define S_028B98_STREAM_3_BUFFER_EN(x) (((unsigned)(x) & 0xF) << 12) #define G_028B98_STREAM_3_BUFFER_EN(x) (((x) >> 12) & 0xF) #define C_028B98_STREAM_3_BUFFER_EN 0xFFFF0FFF #define R_028B9C_VGT_DMA_EVENT_INITIATOR 0x028B9C /* >= gfx9 */ #define S_028B9C_EVENT_TYPE(x) (((unsigned)(x) & 0x3F) << 0) #define G_028B9C_EVENT_TYPE(x) (((x) >> 0) & 0x3F) #define C_028B9C_EVENT_TYPE 0xFFFFFFC0 #define V_028B9C_Reserved_0x00 0 #define V_028B9C_SAMPLE_STREAMOUTSTATS1 1 #define V_028B9C_SAMPLE_STREAMOUTSTATS2 2 #define V_028B9C_SAMPLE_STREAMOUTSTATS3 3 #define V_028B9C_CACHE_FLUSH_TS 4 #define V_028B9C_CONTEXT_DONE 5 #define V_028B9C_CACHE_FLUSH 6 #define V_028B9C_CS_PARTIAL_FLUSH 7 #define V_028B9C_VGT_STREAMOUT_SYNC 8 #define V_028B9C_Reserved_0x09 9 /* gfx9 */ #define V_028B9C_SET_FE_ID 9 /* >= gfx10 */ #define V_028B9C_VGT_STREAMOUT_RESET 10 #define V_028B9C_END_OF_PIPE_INCR_DE 11 #define V_028B9C_END_OF_PIPE_IB_END 12 #define V_028B9C_RST_PIX_CNT 13 #define V_028B9C_BREAK_BATCH 14 #define V_028B9C_VS_PARTIAL_FLUSH 15 #define V_028B9C_PS_PARTIAL_FLUSH 16 #define V_028B9C_FLUSH_HS_OUTPUT 17 #define V_028B9C_FLUSH_DFSM 18 #define V_028B9C_RESET_TO_LOWEST_VGT 19 #define V_028B9C_CACHE_FLUSH_AND_INV_TS_EVENT 20 #define V_028B9C_ZPASS_DONE 21 #define V_028B9C_CACHE_FLUSH_AND_INV_EVENT 22 #define V_028B9C_PERFCOUNTER_START 23 #define V_028B9C_PERFCOUNTER_STOP 24 #define V_028B9C_PIPELINESTAT_START 25 #define V_028B9C_PIPELINESTAT_STOP 26 #define V_028B9C_PERFCOUNTER_SAMPLE 27 #define V_028B9C_Available_0x1c 28 /* gfx9 */ #define V_028B9C_FLUSH_ES_OUTPUT 28 /* >= gfx10 */ #define V_028B9C_Available_0x1d 29 /* gfx9 */ #define V_028B9C_BIN_CONF_OVERRIDE_CHECK 29 /* >= gfx10 */ #define V_028B9C_SAMPLE_PIPELINESTAT 30 #define V_028B9C_SO_VGTSTREAMOUT_FLUSH 31 #define V_028B9C_SAMPLE_STREAMOUTSTATS 32 #define V_028B9C_RESET_VTX_CNT 33 #define V_028B9C_BLOCK_CONTEXT_DONE 34 #define V_028B9C_CS_CONTEXT_DONE 35 #define V_028B9C_VGT_FLUSH 36 #define V_028B9C_TGID_ROLLOVER 37 #define V_028B9C_SQ_NON_EVENT 38 #define V_028B9C_SC_SEND_DB_VPZ 39 #define V_028B9C_BOTTOM_OF_PIPE_TS 40 #define V_028B9C_FLUSH_SX_TS 41 #define V_028B9C_DB_CACHE_FLUSH_AND_INV 42 #define V_028B9C_FLUSH_AND_INV_DB_DATA_TS 43 #define V_028B9C_FLUSH_AND_INV_DB_META 44 #define V_028B9C_FLUSH_AND_INV_CB_DATA_TS 45 #define V_028B9C_FLUSH_AND_INV_CB_META 46 #define V_028B9C_CS_DONE 47 #define V_028B9C_PS_DONE 48 #define V_028B9C_FLUSH_AND_INV_CB_PIXEL_DATA 49 #define V_028B9C_SX_CB_RAT_ACK_REQUEST 50 #define V_028B9C_THREAD_TRACE_START 51 #define V_028B9C_THREAD_TRACE_STOP 52 #define V_028B9C_THREAD_TRACE_MARKER 53 #define V_028B9C_THREAD_TRACE_DRAW 54 /* >= gfx10 */ #define V_028B9C_THREAD_TRACE_FLUSH 54 /* gfx9 */ #define V_028B9C_THREAD_TRACE_FINISH 55 #define V_028B9C_PIXEL_PIPE_STAT_CONTROL 56 #define V_028B9C_PIXEL_PIPE_STAT_DUMP 57 #define V_028B9C_PIXEL_PIPE_STAT_RESET 58 #define V_028B9C_CONTEXT_SUSPEND 59 #define V_028B9C_OFFCHIP_HS_DEALLOC 60 #define V_028B9C_ENABLE_NGG_PIPELINE 61 #define V_028B9C_ENABLE_LEGACY_PIPELINE 62 #define V_028B9C_DRAW_DONE 63 /* >= gfx10 */ #define V_028B9C_Reserved_0x3f 63 /* gfx9 */ #define S_028B9C_ADDRESS_HI(x) (((unsigned)(x) & 0x1FFFF) << 10) #define G_028B9C_ADDRESS_HI(x) (((x) >> 10) & 0x1FFFF) #define C_028B9C_ADDRESS_HI 0xF80003FF #define S_028B9C_EXTENDED_EVENT(x) (((unsigned)(x) & 0x1) << 27) #define G_028B9C_EXTENDED_EVENT(x) (((x) >> 27) & 0x1) #define C_028B9C_EXTENDED_EVENT 0xF7FFFFFF #define R_028BD4_PA_SC_CENTROID_PRIORITY_0 0x028BD4 #define S_028BD4_DISTANCE_0(x) (((unsigned)(x) & 0xF) << 0) #define G_028BD4_DISTANCE_0(x) (((x) >> 0) & 0xF) #define C_028BD4_DISTANCE_0 0xFFFFFFF0 #define S_028BD4_DISTANCE_1(x) (((unsigned)(x) & 0xF) << 4) #define G_028BD4_DISTANCE_1(x) (((x) >> 4) & 0xF) #define C_028BD4_DISTANCE_1 0xFFFFFF0F #define S_028BD4_DISTANCE_2(x) (((unsigned)(x) & 0xF) << 8) #define G_028BD4_DISTANCE_2(x) (((x) >> 8) & 0xF) #define C_028BD4_DISTANCE_2 0xFFFFF0FF #define S_028BD4_DISTANCE_3(x) (((unsigned)(x) & 0xF) << 12) #define G_028BD4_DISTANCE_3(x) (((x) >> 12) & 0xF) #define C_028BD4_DISTANCE_3 0xFFFF0FFF #define S_028BD4_DISTANCE_4(x) (((unsigned)(x) & 0xF) << 16) #define G_028BD4_DISTANCE_4(x) (((x) >> 16) & 0xF) #define C_028BD4_DISTANCE_4 0xFFF0FFFF #define S_028BD4_DISTANCE_5(x) (((unsigned)(x) & 0xF) << 20) #define G_028BD4_DISTANCE_5(x) (((x) >> 20) & 0xF) #define C_028BD4_DISTANCE_5 0xFF0FFFFF #define S_028BD4_DISTANCE_6(x) (((unsigned)(x) & 0xF) << 24) #define G_028BD4_DISTANCE_6(x) (((x) >> 24) & 0xF) #define C_028BD4_DISTANCE_6 0xF0FFFFFF #define S_028BD4_DISTANCE_7(x) (((unsigned)(x) & 0xF) << 28) #define G_028BD4_DISTANCE_7(x) (((x) >> 28) & 0xF) #define C_028BD4_DISTANCE_7 0x0FFFFFFF #define R_028BD8_PA_SC_CENTROID_PRIORITY_1 0x028BD8 #define S_028BD8_DISTANCE_8(x) (((unsigned)(x) & 0xF) << 0) #define G_028BD8_DISTANCE_8(x) (((x) >> 0) & 0xF) #define C_028BD8_DISTANCE_8 0xFFFFFFF0 #define S_028BD8_DISTANCE_9(x) (((unsigned)(x) & 0xF) << 4) #define G_028BD8_DISTANCE_9(x) (((x) >> 4) & 0xF) #define C_028BD8_DISTANCE_9 0xFFFFFF0F #define S_028BD8_DISTANCE_10(x) (((unsigned)(x) & 0xF) << 8) #define G_028BD8_DISTANCE_10(x) (((x) >> 8) & 0xF) #define C_028BD8_DISTANCE_10 0xFFFFF0FF #define S_028BD8_DISTANCE_11(x) (((unsigned)(x) & 0xF) << 12) #define G_028BD8_DISTANCE_11(x) (((x) >> 12) & 0xF) #define C_028BD8_DISTANCE_11 0xFFFF0FFF #define S_028BD8_DISTANCE_12(x) (((unsigned)(x) & 0xF) << 16) #define G_028BD8_DISTANCE_12(x) (((x) >> 16) & 0xF) #define C_028BD8_DISTANCE_12 0xFFF0FFFF #define S_028BD8_DISTANCE_13(x) (((unsigned)(x) & 0xF) << 20) #define G_028BD8_DISTANCE_13(x) (((x) >> 20) & 0xF) #define C_028BD8_DISTANCE_13 0xFF0FFFFF #define S_028BD8_DISTANCE_14(x) (((unsigned)(x) & 0xF) << 24) #define G_028BD8_DISTANCE_14(x) (((x) >> 24) & 0xF) #define C_028BD8_DISTANCE_14 0xF0FFFFFF #define S_028BD8_DISTANCE_15(x) (((unsigned)(x) & 0xF) << 28) #define G_028BD8_DISTANCE_15(x) (((x) >> 28) & 0xF) #define C_028BD8_DISTANCE_15 0x0FFFFFFF #define R_028BDC_PA_SC_LINE_CNTL 0x028BDC #define S_028BDC_EXPAND_LINE_WIDTH(x) (((unsigned)(x) & 0x1) << 9) #define G_028BDC_EXPAND_LINE_WIDTH(x) (((x) >> 9) & 0x1) #define C_028BDC_EXPAND_LINE_WIDTH 0xFFFFFDFF #define S_028BDC_LAST_PIXEL(x) (((unsigned)(x) & 0x1) << 10) #define G_028BDC_LAST_PIXEL(x) (((x) >> 10) & 0x1) #define C_028BDC_LAST_PIXEL 0xFFFFFBFF #define S_028BDC_PERPENDICULAR_ENDCAP_ENA(x) (((unsigned)(x) & 0x1) << 11) #define G_028BDC_PERPENDICULAR_ENDCAP_ENA(x) (((x) >> 11) & 0x1) #define C_028BDC_PERPENDICULAR_ENDCAP_ENA 0xFFFFF7FF #define S_028BDC_DX10_DIAMOND_TEST_ENA(x) (((unsigned)(x) & 0x1) << 12) #define G_028BDC_DX10_DIAMOND_TEST_ENA(x) (((x) >> 12) & 0x1) #define C_028BDC_DX10_DIAMOND_TEST_ENA 0xFFFFEFFF #define S_028BDC_EXTRA_DX_DY_PRECISION(x) (((unsigned)(x) & 0x1) << 13) /* >= gfx9 */ #define G_028BDC_EXTRA_DX_DY_PRECISION(x) (((x) >> 13) & 0x1) #define C_028BDC_EXTRA_DX_DY_PRECISION 0xFFFFDFFF #define R_028BE0_PA_SC_AA_CONFIG 0x028BE0 #define S_028BE0_MSAA_NUM_SAMPLES(x) (((unsigned)(x) & 0x7) << 0) #define G_028BE0_MSAA_NUM_SAMPLES(x) (((x) >> 0) & 0x7) #define C_028BE0_MSAA_NUM_SAMPLES 0xFFFFFFF8 #define S_028BE0_AA_MASK_CENTROID_DTMN(x) (((unsigned)(x) & 0x1) << 4) #define G_028BE0_AA_MASK_CENTROID_DTMN(x) (((x) >> 4) & 0x1) #define C_028BE0_AA_MASK_CENTROID_DTMN 0xFFFFFFEF #define S_028BE0_MAX_SAMPLE_DIST(x) (((unsigned)(x) & 0xF) << 13) #define G_028BE0_MAX_SAMPLE_DIST(x) (((x) >> 13) & 0xF) #define C_028BE0_MAX_SAMPLE_DIST 0xFFFE1FFF #define S_028BE0_MSAA_EXPOSED_SAMPLES(x) (((unsigned)(x) & 0x7) << 20) #define G_028BE0_MSAA_EXPOSED_SAMPLES(x) (((x) >> 20) & 0x7) #define C_028BE0_MSAA_EXPOSED_SAMPLES 0xFF8FFFFF #define S_028BE0_DETAIL_TO_EXPOSED_MODE(x) (((unsigned)(x) & 0x3) << 24) #define G_028BE0_DETAIL_TO_EXPOSED_MODE(x) (((x) >> 24) & 0x3) #define C_028BE0_DETAIL_TO_EXPOSED_MODE 0xFCFFFFFF #define S_028BE0_COVERAGE_TO_SHADER_SELECT(x) (((unsigned)(x) & 0x3) << 26) /* >= gfx9 */ #define G_028BE0_COVERAGE_TO_SHADER_SELECT(x) (((x) >> 26) & 0x3) #define C_028BE0_COVERAGE_TO_SHADER_SELECT 0xF3FFFFFF #define V_028BE0_INPUT_COVERAGE 0 #define V_028BE0_INPUT_INNER_COVERAGE 1 #define V_028BE0_INPUT_DEPTH_COVERAGE 2 #define V_028BE0_RAW 3 #define S_028BE0_SAMPLE_COVERAGE_ENCODING(x) (((unsigned)(x) & 0x1) << 28) /* >= gfx103 */ #define G_028BE0_SAMPLE_COVERAGE_ENCODING(x) (((x) >> 28) & 0x1) #define C_028BE0_SAMPLE_COVERAGE_ENCODING 0xEFFFFFFF #define S_028BE0_COVERED_CENTROID_IS_CENTER(x) (((unsigned)(x) & 0x1) << 29) /* >= gfx103 */ #define G_028BE0_COVERED_CENTROID_IS_CENTER(x) (((x) >> 29) & 0x1) #define C_028BE0_COVERED_CENTROID_IS_CENTER 0xDFFFFFFF #define R_028BE4_PA_SU_VTX_CNTL 0x028BE4 #define S_028BE4_PIX_CENTER(x) (((unsigned)(x) & 0x1) << 0) #define G_028BE4_PIX_CENTER(x) (((x) >> 0) & 0x1) #define C_028BE4_PIX_CENTER 0xFFFFFFFE #define S_028BE4_ROUND_MODE(x) (((unsigned)(x) & 0x3) << 1) #define G_028BE4_ROUND_MODE(x) (((x) >> 1) & 0x3) #define C_028BE4_ROUND_MODE 0xFFFFFFF9 #define V_028BE4_X_TRUNCATE 0 #define V_028BE4_X_ROUND 1 #define V_028BE4_X_ROUND_TO_EVEN 2 #define V_028BE4_X_ROUND_TO_ODD 3 #define S_028BE4_QUANT_MODE(x) (((unsigned)(x) & 0x7) << 3) #define G_028BE4_QUANT_MODE(x) (((x) >> 3) & 0x7) #define C_028BE4_QUANT_MODE 0xFFFFFFC7 #define V_028BE4_X_16_8_FIXED_POINT_1_16TH 0 #define V_028BE4_X_16_8_FIXED_POINT_1_8TH 1 #define V_028BE4_X_16_8_FIXED_POINT_1_4TH 2 #define V_028BE4_X_16_8_FIXED_POINT_1_2 3 #define V_028BE4_X_16_8_FIXED_POINT_1 4 #define V_028BE4_X_16_8_FIXED_POINT_1_256TH 5 #define V_028BE4_X_14_10_FIXED_POINT_1_1024TH 6 #define V_028BE4_X_12_12_FIXED_POINT_1_4096TH 7 #define R_028BE8_PA_CL_GB_VERT_CLIP_ADJ 0x028BE8 #define R_028BEC_PA_CL_GB_VERT_DISC_ADJ 0x028BEC #define R_028BF0_PA_CL_GB_HORZ_CLIP_ADJ 0x028BF0 #define R_028BF4_PA_CL_GB_HORZ_DISC_ADJ 0x028BF4 #define R_028BF8_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_0 0x028BF8 #define S_028BF8_S0_X(x) (((unsigned)(x) & 0xF) << 0) #define G_028BF8_S0_X(x) (((x) >> 0) & 0xF) #define C_028BF8_S0_X 0xFFFFFFF0 #define S_028BF8_S0_Y(x) (((unsigned)(x) & 0xF) << 4) #define G_028BF8_S0_Y(x) (((x) >> 4) & 0xF) #define C_028BF8_S0_Y 0xFFFFFF0F #define S_028BF8_S1_X(x) (((unsigned)(x) & 0xF) << 8) #define G_028BF8_S1_X(x) (((x) >> 8) & 0xF) #define C_028BF8_S1_X 0xFFFFF0FF #define S_028BF8_S1_Y(x) (((unsigned)(x) & 0xF) << 12) #define G_028BF8_S1_Y(x) (((x) >> 12) & 0xF) #define C_028BF8_S1_Y 0xFFFF0FFF #define S_028BF8_S2_X(x) (((unsigned)(x) & 0xF) << 16) #define G_028BF8_S2_X(x) (((x) >> 16) & 0xF) #define C_028BF8_S2_X 0xFFF0FFFF #define S_028BF8_S2_Y(x) (((unsigned)(x) & 0xF) << 20) #define G_028BF8_S2_Y(x) (((x) >> 20) & 0xF) #define C_028BF8_S2_Y 0xFF0FFFFF #define S_028BF8_S3_X(x) (((unsigned)(x) & 0xF) << 24) #define G_028BF8_S3_X(x) (((x) >> 24) & 0xF) #define C_028BF8_S3_X 0xF0FFFFFF #define S_028BF8_S3_Y(x) (((unsigned)(x) & 0xF) << 28) #define G_028BF8_S3_Y(x) (((x) >> 28) & 0xF) #define C_028BF8_S3_Y 0x0FFFFFFF #define R_028BFC_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_1 0x028BFC #define S_028BFC_S4_X(x) (((unsigned)(x) & 0xF) << 0) #define G_028BFC_S4_X(x) (((x) >> 0) & 0xF) #define C_028BFC_S4_X 0xFFFFFFF0 #define S_028BFC_S4_Y(x) (((unsigned)(x) & 0xF) << 4) #define G_028BFC_S4_Y(x) (((x) >> 4) & 0xF) #define C_028BFC_S4_Y 0xFFFFFF0F #define S_028BFC_S5_X(x) (((unsigned)(x) & 0xF) << 8) #define G_028BFC_S5_X(x) (((x) >> 8) & 0xF) #define C_028BFC_S5_X 0xFFFFF0FF #define S_028BFC_S5_Y(x) (((unsigned)(x) & 0xF) << 12) #define G_028BFC_S5_Y(x) (((x) >> 12) & 0xF) #define C_028BFC_S5_Y 0xFFFF0FFF #define S_028BFC_S6_X(x) (((unsigned)(x) & 0xF) << 16) #define G_028BFC_S6_X(x) (((x) >> 16) & 0xF) #define C_028BFC_S6_X 0xFFF0FFFF #define S_028BFC_S6_Y(x) (((unsigned)(x) & 0xF) << 20) #define G_028BFC_S6_Y(x) (((x) >> 20) & 0xF) #define C_028BFC_S6_Y 0xFF0FFFFF #define S_028BFC_S7_X(x) (((unsigned)(x) & 0xF) << 24) #define G_028BFC_S7_X(x) (((x) >> 24) & 0xF) #define C_028BFC_S7_X 0xF0FFFFFF #define S_028BFC_S7_Y(x) (((unsigned)(x) & 0xF) << 28) #define G_028BFC_S7_Y(x) (((x) >> 28) & 0xF) #define C_028BFC_S7_Y 0x0FFFFFFF #define R_028C00_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_2 0x028C00 #define S_028C00_S8_X(x) (((unsigned)(x) & 0xF) << 0) #define G_028C00_S8_X(x) (((x) >> 0) & 0xF) #define C_028C00_S8_X 0xFFFFFFF0 #define S_028C00_S8_Y(x) (((unsigned)(x) & 0xF) << 4) #define G_028C00_S8_Y(x) (((x) >> 4) & 0xF) #define C_028C00_S8_Y 0xFFFFFF0F #define S_028C00_S9_X(x) (((unsigned)(x) & 0xF) << 8) #define G_028C00_S9_X(x) (((x) >> 8) & 0xF) #define C_028C00_S9_X 0xFFFFF0FF #define S_028C00_S9_Y(x) (((unsigned)(x) & 0xF) << 12) #define G_028C00_S9_Y(x) (((x) >> 12) & 0xF) #define C_028C00_S9_Y 0xFFFF0FFF #define S_028C00_S10_X(x) (((unsigned)(x) & 0xF) << 16) #define G_028C00_S10_X(x) (((x) >> 16) & 0xF) #define C_028C00_S10_X 0xFFF0FFFF #define S_028C00_S10_Y(x) (((unsigned)(x) & 0xF) << 20) #define G_028C00_S10_Y(x) (((x) >> 20) & 0xF) #define C_028C00_S10_Y 0xFF0FFFFF #define S_028C00_S11_X(x) (((unsigned)(x) & 0xF) << 24) #define G_028C00_S11_X(x) (((x) >> 24) & 0xF) #define C_028C00_S11_X 0xF0FFFFFF #define S_028C00_S11_Y(x) (((unsigned)(x) & 0xF) << 28) #define G_028C00_S11_Y(x) (((x) >> 28) & 0xF) #define C_028C00_S11_Y 0x0FFFFFFF #define R_028C04_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_3 0x028C04 #define S_028C04_S12_X(x) (((unsigned)(x) & 0xF) << 0) #define G_028C04_S12_X(x) (((x) >> 0) & 0xF) #define C_028C04_S12_X 0xFFFFFFF0 #define S_028C04_S12_Y(x) (((unsigned)(x) & 0xF) << 4) #define G_028C04_S12_Y(x) (((x) >> 4) & 0xF) #define C_028C04_S12_Y 0xFFFFFF0F #define S_028C04_S13_X(x) (((unsigned)(x) & 0xF) << 8) #define G_028C04_S13_X(x) (((x) >> 8) & 0xF) #define C_028C04_S13_X 0xFFFFF0FF #define S_028C04_S13_Y(x) (((unsigned)(x) & 0xF) << 12) #define G_028C04_S13_Y(x) (((x) >> 12) & 0xF) #define C_028C04_S13_Y 0xFFFF0FFF #define S_028C04_S14_X(x) (((unsigned)(x) & 0xF) << 16) #define G_028C04_S14_X(x) (((x) >> 16) & 0xF) #define C_028C04_S14_X 0xFFF0FFFF #define S_028C04_S14_Y(x) (((unsigned)(x) & 0xF) << 20) #define G_028C04_S14_Y(x) (((x) >> 20) & 0xF) #define C_028C04_S14_Y 0xFF0FFFFF #define S_028C04_S15_X(x) (((unsigned)(x) & 0xF) << 24) #define G_028C04_S15_X(x) (((x) >> 24) & 0xF) #define C_028C04_S15_X 0xF0FFFFFF #define S_028C04_S15_Y(x) (((unsigned)(x) & 0xF) << 28) #define G_028C04_S15_Y(x) (((x) >> 28) & 0xF) #define C_028C04_S15_Y 0x0FFFFFFF #define R_028C08_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_0 0x028C08 #define R_028C0C_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_1 0x028C0C #define R_028C10_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_2 0x028C10 #define R_028C14_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_3 0x028C14 #define R_028C18_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_0 0x028C18 #define R_028C1C_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_1 0x028C1C #define R_028C20_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_2 0x028C20 #define R_028C24_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_3 0x028C24 #define R_028C28_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_0 0x028C28 #define R_028C2C_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_1 0x028C2C #define R_028C30_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_2 0x028C30 #define R_028C34_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_3 0x028C34 #define R_028C38_PA_SC_AA_MASK_X0Y0_X1Y0 0x028C38 #define S_028C38_AA_MASK_X0Y0(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_028C38_AA_MASK_X0Y0(x) (((x) >> 0) & 0xFFFF) #define C_028C38_AA_MASK_X0Y0 0xFFFF0000 #define S_028C38_AA_MASK_X1Y0(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_028C38_AA_MASK_X1Y0(x) (((x) >> 16) & 0xFFFF) #define C_028C38_AA_MASK_X1Y0 0x0000FFFF #define R_028C3C_PA_SC_AA_MASK_X0Y1_X1Y1 0x028C3C #define S_028C3C_AA_MASK_X0Y1(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_028C3C_AA_MASK_X0Y1(x) (((x) >> 0) & 0xFFFF) #define C_028C3C_AA_MASK_X0Y1 0xFFFF0000 #define S_028C3C_AA_MASK_X1Y1(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_028C3C_AA_MASK_X1Y1(x) (((x) >> 16) & 0xFFFF) #define C_028C3C_AA_MASK_X1Y1 0x0000FFFF #define R_028C40_PA_SC_SHADER_CONTROL 0x028C40 /* >= gfx81 */ #define S_028C40_REALIGN_DQUADS_AFTER_N_WAVES(x) (((unsigned)(x) & 0x3) << 0) #define G_028C40_REALIGN_DQUADS_AFTER_N_WAVES(x) (((x) >> 0) & 0x3) #define C_028C40_REALIGN_DQUADS_AFTER_N_WAVES 0xFFFFFFFC #define S_028C40_LOAD_COLLISION_WAVEID(x) (((unsigned)(x) & 0x1) << 2) /* >= gfx9 */ #define G_028C40_LOAD_COLLISION_WAVEID(x) (((x) >> 2) & 0x1) #define C_028C40_LOAD_COLLISION_WAVEID 0xFFFFFFFB #define S_028C40_LOAD_INTRAWAVE_COLLISION(x) (((unsigned)(x) & 0x1) << 3) /* >= gfx9 */ #define G_028C40_LOAD_INTRAWAVE_COLLISION(x) (((x) >> 3) & 0x1) #define C_028C40_LOAD_INTRAWAVE_COLLISION 0xFFFFFFF7 #define S_028C40_WAVE_BREAK_REGION_SIZE(x) (((unsigned)(x) & 0x3) << 5) /* >= gfx10 */ #define G_028C40_WAVE_BREAK_REGION_SIZE(x) (((x) >> 5) & 0x3) #define C_028C40_WAVE_BREAK_REGION_SIZE 0xFFFFFF9F #define R_028C44_PA_SC_BINNER_CNTL_0 0x028C44 /* >= gfx9 */ #define S_028C44_BINNING_MODE(x) (((unsigned)(x) & 0x3) << 0) #define G_028C44_BINNING_MODE(x) (((x) >> 0) & 0x3) #define C_028C44_BINNING_MODE 0xFFFFFFFC #define V_028C44_BINNING_ALLOWED 0 #define V_028C44_FORCE_BINNING_ON 1 #define V_028C44_DISABLE_BINNING_USE_NEW_SC 2 #define V_028C44_DISABLE_BINNING_USE_LEGACY_SC 3 #define S_028C44_BIN_SIZE_X(x) (((unsigned)(x) & 0x1) << 2) #define G_028C44_BIN_SIZE_X(x) (((x) >> 2) & 0x1) #define C_028C44_BIN_SIZE_X 0xFFFFFFFB #define S_028C44_BIN_SIZE_Y(x) (((unsigned)(x) & 0x1) << 3) #define G_028C44_BIN_SIZE_Y(x) (((x) >> 3) & 0x1) #define C_028C44_BIN_SIZE_Y 0xFFFFFFF7 #define S_028C44_BIN_SIZE_X_EXTEND(x) (((unsigned)(x) & 0x7) << 4) #define G_028C44_BIN_SIZE_X_EXTEND(x) (((x) >> 4) & 0x7) #define C_028C44_BIN_SIZE_X_EXTEND 0xFFFFFF8F #define V_028C44_BIN_SIZE_32_PIXELS 0 /* >= gfx10 */ #define V_028C44_BIN_SIZE_64_PIXELS 1 /* >= gfx10 */ #define V_028C44_BIN_SIZE_128_PIXELS 2 /* >= gfx10 */ #define V_028C44_BIN_SIZE_256_PIXELS 3 /* >= gfx10 */ #define V_028C44_BIN_SIZE_512_PIXELS 4 /* >= gfx10 */ #define S_028C44_BIN_SIZE_Y_EXTEND(x) (((unsigned)(x) & 0x7) << 7) #define G_028C44_BIN_SIZE_Y_EXTEND(x) (((x) >> 7) & 0x7) #define C_028C44_BIN_SIZE_Y_EXTEND 0xFFFFFC7F #define S_028C44_CONTEXT_STATES_PER_BIN(x) (((unsigned)(x) & 0x7) << 10) #define G_028C44_CONTEXT_STATES_PER_BIN(x) (((x) >> 10) & 0x7) #define C_028C44_CONTEXT_STATES_PER_BIN 0xFFFFE3FF #define S_028C44_PERSISTENT_STATES_PER_BIN(x) (((unsigned)(x) & 0x1F) << 13) #define G_028C44_PERSISTENT_STATES_PER_BIN(x) (((x) >> 13) & 0x1F) #define C_028C44_PERSISTENT_STATES_PER_BIN 0xFFFC1FFF #define S_028C44_DISABLE_START_OF_PRIM(x) (((unsigned)(x) & 0x1) << 18) #define G_028C44_DISABLE_START_OF_PRIM(x) (((x) >> 18) & 0x1) #define C_028C44_DISABLE_START_OF_PRIM 0xFFFBFFFF #define S_028C44_FPOVS_PER_BATCH(x) (((unsigned)(x) & 0xFF) << 19) #define G_028C44_FPOVS_PER_BATCH(x) (((x) >> 19) & 0xFF) #define C_028C44_FPOVS_PER_BATCH 0xF807FFFF #define S_028C44_OPTIMAL_BIN_SELECTION(x) (((unsigned)(x) & 0x1) << 27) #define G_028C44_OPTIMAL_BIN_SELECTION(x) (((x) >> 27) & 0x1) #define C_028C44_OPTIMAL_BIN_SELECTION 0xF7FFFFFF #define S_028C44_FLUSH_ON_BINNING_TRANSITION(x) (((unsigned)(x) & 0x1) << 28) #define G_028C44_FLUSH_ON_BINNING_TRANSITION(x) (((x) >> 28) & 0x1) #define C_028C44_FLUSH_ON_BINNING_TRANSITION 0xEFFFFFFF #define S_028C44_BIN_MAPPING_MODE(x) (((unsigned)(x) & 0x3) << 29) /* >= gfx10 */ #define G_028C44_BIN_MAPPING_MODE(x) (((x) >> 29) & 0x3) #define C_028C44_BIN_MAPPING_MODE 0x9FFFFFFF #define V_028C44_BIN_MAP_MODE_NONE 0 #define V_028C44_BIN_MAP_MODE_RTA_INDEX 1 #define V_028C44_BIN_MAP_MODE_POPS 2 #define R_028C48_PA_SC_BINNER_CNTL_1 0x028C48 /* >= gfx9 */ #define S_028C48_MAX_ALLOC_COUNT(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_028C48_MAX_ALLOC_COUNT(x) (((x) >> 0) & 0xFFFF) #define C_028C48_MAX_ALLOC_COUNT 0xFFFF0000 #define S_028C48_MAX_PRIM_PER_BATCH(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_028C48_MAX_PRIM_PER_BATCH(x) (((x) >> 16) & 0xFFFF) #define C_028C48_MAX_PRIM_PER_BATCH 0x0000FFFF #define R_028C4C_PA_SC_CONSERVATIVE_RASTERIZATION_CNTL 0x028C4C /* >= gfx9 */ #define S_028C4C_OVER_RAST_ENABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_028C4C_OVER_RAST_ENABLE(x) (((x) >> 0) & 0x1) #define C_028C4C_OVER_RAST_ENABLE 0xFFFFFFFE #define S_028C4C_OVER_RAST_SAMPLE_SELECT(x) (((unsigned)(x) & 0xF) << 1) #define G_028C4C_OVER_RAST_SAMPLE_SELECT(x) (((x) >> 1) & 0xF) #define C_028C4C_OVER_RAST_SAMPLE_SELECT 0xFFFFFFE1 #define S_028C4C_UNDER_RAST_ENABLE(x) (((unsigned)(x) & 0x1) << 5) #define G_028C4C_UNDER_RAST_ENABLE(x) (((x) >> 5) & 0x1) #define C_028C4C_UNDER_RAST_ENABLE 0xFFFFFFDF #define S_028C4C_UNDER_RAST_SAMPLE_SELECT(x) (((unsigned)(x) & 0xF) << 6) #define G_028C4C_UNDER_RAST_SAMPLE_SELECT(x) (((x) >> 6) & 0xF) #define C_028C4C_UNDER_RAST_SAMPLE_SELECT 0xFFFFFC3F #define S_028C4C_PBB_UNCERTAINTY_REGION_ENABLE(x) (((unsigned)(x) & 0x1) << 10) #define G_028C4C_PBB_UNCERTAINTY_REGION_ENABLE(x) (((x) >> 10) & 0x1) #define C_028C4C_PBB_UNCERTAINTY_REGION_ENABLE 0xFFFFFBFF #define S_028C4C_ZMM_TRI_EXTENT(x) (((unsigned)(x) & 0x1) << 11) #define G_028C4C_ZMM_TRI_EXTENT(x) (((x) >> 11) & 0x1) #define C_028C4C_ZMM_TRI_EXTENT 0xFFFFF7FF #define S_028C4C_ZMM_TRI_OFFSET(x) (((unsigned)(x) & 0x1) << 12) #define G_028C4C_ZMM_TRI_OFFSET(x) (((x) >> 12) & 0x1) #define C_028C4C_ZMM_TRI_OFFSET 0xFFFFEFFF #define S_028C4C_OVERRIDE_OVER_RAST_INNER_TO_NORMAL(x) (((unsigned)(x) & 0x1) << 13) #define G_028C4C_OVERRIDE_OVER_RAST_INNER_TO_NORMAL(x) (((x) >> 13) & 0x1) #define C_028C4C_OVERRIDE_OVER_RAST_INNER_TO_NORMAL 0xFFFFDFFF #define S_028C4C_OVERRIDE_UNDER_RAST_INNER_TO_NORMAL(x) (((unsigned)(x) & 0x1) << 14) #define G_028C4C_OVERRIDE_UNDER_RAST_INNER_TO_NORMAL(x) (((x) >> 14) & 0x1) #define C_028C4C_OVERRIDE_UNDER_RAST_INNER_TO_NORMAL 0xFFFFBFFF #define S_028C4C_DEGENERATE_OVERRIDE_INNER_TO_NORMAL_DISABLE(x) (((unsigned)(x) & 0x1) << 15) #define G_028C4C_DEGENERATE_OVERRIDE_INNER_TO_NORMAL_DISABLE(x) (((x) >> 15) & 0x1) #define C_028C4C_DEGENERATE_OVERRIDE_INNER_TO_NORMAL_DISABLE 0xFFFF7FFF #define S_028C4C_UNCERTAINTY_REGION_MODE(x) (((unsigned)(x) & 0x3) << 16) #define G_028C4C_UNCERTAINTY_REGION_MODE(x) (((x) >> 16) & 0x3) #define C_028C4C_UNCERTAINTY_REGION_MODE 0xFFFCFFFF #define V_028C4C_SC_HALF_LSB 0 /* >= gfx10 */ #define V_028C4C_SC_LSB_ONE_SIDED 1 /* >= gfx10 */ #define V_028C4C_SC_LSB_TWO_SIDED 2 /* >= gfx10 */ #define S_028C4C_OUTER_UNCERTAINTY_EDGERULE_OVERRIDE(x) (((unsigned)(x) & 0x1) << 18) #define G_028C4C_OUTER_UNCERTAINTY_EDGERULE_OVERRIDE(x) (((x) >> 18) & 0x1) #define C_028C4C_OUTER_UNCERTAINTY_EDGERULE_OVERRIDE 0xFFFBFFFF #define S_028C4C_INNER_UNCERTAINTY_EDGERULE_OVERRIDE(x) (((unsigned)(x) & 0x1) << 19) #define G_028C4C_INNER_UNCERTAINTY_EDGERULE_OVERRIDE(x) (((x) >> 19) & 0x1) #define C_028C4C_INNER_UNCERTAINTY_EDGERULE_OVERRIDE 0xFFF7FFFF #define S_028C4C_NULL_SQUAD_AA_MASK_ENABLE(x) (((unsigned)(x) & 0x1) << 20) #define G_028C4C_NULL_SQUAD_AA_MASK_ENABLE(x) (((x) >> 20) & 0x1) #define C_028C4C_NULL_SQUAD_AA_MASK_ENABLE 0xFFEFFFFF #define S_028C4C_COVERAGE_AA_MASK_ENABLE(x) (((unsigned)(x) & 0x1) << 21) #define G_028C4C_COVERAGE_AA_MASK_ENABLE(x) (((x) >> 21) & 0x1) #define C_028C4C_COVERAGE_AA_MASK_ENABLE 0xFFDFFFFF #define S_028C4C_PREZ_AA_MASK_ENABLE(x) (((unsigned)(x) & 0x1) << 22) #define G_028C4C_PREZ_AA_MASK_ENABLE(x) (((x) >> 22) & 0x1) #define C_028C4C_PREZ_AA_MASK_ENABLE 0xFFBFFFFF #define S_028C4C_POSTZ_AA_MASK_ENABLE(x) (((unsigned)(x) & 0x1) << 23) #define G_028C4C_POSTZ_AA_MASK_ENABLE(x) (((x) >> 23) & 0x1) #define C_028C4C_POSTZ_AA_MASK_ENABLE 0xFF7FFFFF #define S_028C4C_CENTROID_SAMPLE_OVERRIDE(x) (((unsigned)(x) & 0x1) << 24) #define G_028C4C_CENTROID_SAMPLE_OVERRIDE(x) (((x) >> 24) & 0x1) #define C_028C4C_CENTROID_SAMPLE_OVERRIDE 0xFEFFFFFF #define S_028C4C_UNCERTAINTY_REGION_MULT(x) (((unsigned)(x) & 0x3) << 25) /* >= gfx10 */ #define G_028C4C_UNCERTAINTY_REGION_MULT(x) (((x) >> 25) & 0x3) #define C_028C4C_UNCERTAINTY_REGION_MULT 0xF9FFFFFF #define S_028C4C_UNCERTAINTY_REGION_PBB_MULT(x) (((unsigned)(x) & 0x3) << 27) /* >= gfx10 */ #define G_028C4C_UNCERTAINTY_REGION_PBB_MULT(x) (((x) >> 27) & 0x3) #define C_028C4C_UNCERTAINTY_REGION_PBB_MULT 0xE7FFFFFF #define R_028C50_PA_SC_NGG_MODE_CNTL 0x028C50 /* >= gfx9 */ #define S_028C50_MAX_DEALLOCS_IN_WAVE(x) (((unsigned)(x) & 0x7FF) << 0) #define G_028C50_MAX_DEALLOCS_IN_WAVE(x) (((x) >> 0) & 0x7FF) #define C_028C50_MAX_DEALLOCS_IN_WAVE 0xFFFFF800 #define S_028C50_MAX_FPOVS_IN_WAVE(x) (((unsigned)(x) & 0xFF) << 16) /* >= gfx10 */ #define G_028C50_MAX_FPOVS_IN_WAVE(x) (((x) >> 16) & 0xFF) #define C_028C50_MAX_FPOVS_IN_WAVE 0xFF00FFFF #define R_028C58_VGT_VERTEX_REUSE_BLOCK_CNTL 0x028C58 #define S_028C58_VTX_REUSE_DEPTH(x) (((unsigned)(x) & 0xFF) << 0) #define G_028C58_VTX_REUSE_DEPTH(x) (((x) >> 0) & 0xFF) #define C_028C58_VTX_REUSE_DEPTH 0xFFFFFF00 #define R_028C5C_VGT_OUT_DEALLOC_CNTL 0x028C5C #define S_028C5C_DEALLOC_DIST(x) (((unsigned)(x) & 0x7F) << 0) #define G_028C5C_DEALLOC_DIST(x) (((x) >> 0) & 0x7F) #define C_028C5C_DEALLOC_DIST 0xFFFFFF80 #define R_028C60_CB_COLOR0_BASE 0x028C60 #define R_028C64_CB_COLOR0_BASE_EXT 0x028C64 /* gfx9 */ #define S_028C64_BASE_256B(x) (((unsigned)(x) & 0xFF) << 0) #define G_028C64_BASE_256B(x) (((x) >> 0) & 0xFF) #define C_028C64_BASE_256B 0xFFFFFF00 #define R_028C64_CB_COLOR0_PITCH 0x028C64 /* <= gfx81, >= gfx10 */ #define S_028C64_TILE_MAX(x) (((unsigned)(x) & 0x7FF) << 0) #define G_028C64_TILE_MAX(x) (((x) >> 0) & 0x7FF) #define C_028C64_TILE_MAX 0xFFFFF800 #define S_028C64_FMASK_TILE_MAX(x) (((unsigned)(x) & 0x7FF) << 20) #define G_028C64_FMASK_TILE_MAX(x) (((x) >> 20) & 0x7FF) #define C_028C64_FMASK_TILE_MAX 0x800FFFFF #define R_028C68_CB_COLOR0_ATTRIB2 0x028C68 /* gfx9 */ #define S_028C68_MIP0_HEIGHT(x) (((unsigned)(x) & 0x3FFF) << 0) #define G_028C68_MIP0_HEIGHT(x) (((x) >> 0) & 0x3FFF) #define C_028C68_MIP0_HEIGHT 0xFFFFC000 #define S_028C68_MIP0_WIDTH(x) (((unsigned)(x) & 0x3FFF) << 14) #define G_028C68_MIP0_WIDTH(x) (((x) >> 14) & 0x3FFF) #define C_028C68_MIP0_WIDTH 0xF0003FFF #define S_028C68_MAX_MIP(x) (((unsigned)(x) & 0xF) << 28) #define G_028C68_MAX_MIP(x) (((x) >> 28) & 0xF) #define C_028C68_MAX_MIP 0x0FFFFFFF #define R_028C68_CB_COLOR0_SLICE 0x028C68 /* <= gfx81, >= gfx10 */ #define S_028C68_TILE_MAX(x) (((unsigned)(x) & 0x3FFFFF) << 0) #define G_028C68_TILE_MAX(x) (((x) >> 0) & 0x3FFFFF) #define C_028C68_TILE_MAX 0xFFC00000 #define R_028C6C_CB_COLOR0_VIEW 0x028C6C #define S_028C6C_SLICE_START(x) (((unsigned)(x) & 0x1FFF) << 0) #define G_028C6C_SLICE_START(x) (((x) >> 0) & 0x1FFF) #define C_028C6C_SLICE_START 0xFFFFE000 #define S_028C6C_SLICE_MAX_GFX10(x) (((unsigned)(x) & 0x1FFF) << 13) /* >= gfx10 */ #define G_028C6C_SLICE_MAX_GFX10(x) (((x) >> 13) & 0x1FFF) #define C_028C6C_SLICE_MAX_GFX10 0xFC001FFF #define S_028C6C_SLICE_MAX_GFX6(x) (((unsigned)(x) & 0x7FF) << 13) /* <= gfx9 */ #define G_028C6C_SLICE_MAX_GFX6(x) (((x) >> 13) & 0x7FF) #define C_028C6C_SLICE_MAX_GFX6 0xFF001FFF #define S_028C6C_MIP_LEVEL_GFX9(x) (((unsigned)(x) & 0xF) << 24) /* gfx9 */ #define G_028C6C_MIP_LEVEL_GFX9(x) (((x) >> 24) & 0xF) #define C_028C6C_MIP_LEVEL_GFX9 0xF0FFFFFF #define S_028C6C_MIP_LEVEL_GFX10(x) (((unsigned)(x) & 0xF) << 26) /* >= gfx10 */ #define G_028C6C_MIP_LEVEL_GFX10(x) (((x) >> 26) & 0xF) #define C_028C6C_MIP_LEVEL_GFX10 0xC3FFFFFF #define R_028C70_CB_COLOR0_INFO 0x028C70 #define S_028C70_ENDIAN(x) (((unsigned)(x) & 0x3) << 0) #define G_028C70_ENDIAN(x) (((x) >> 0) & 0x3) #define C_028C70_ENDIAN 0xFFFFFFFC #define V_028C70_ENDIAN_NONE 0 #define V_028C70_ENDIAN_8IN16 1 #define V_028C70_ENDIAN_8IN32 2 #define V_028C70_ENDIAN_8IN64 3 #define S_028C70_FORMAT(x) (((unsigned)(x) & 0x1F) << 2) #define G_028C70_FORMAT(x) (((x) >> 2) & 0x1F) #define C_028C70_FORMAT 0xFFFFFF83 #define V_028C70_COLOR_INVALID 0 #define V_028C70_COLOR_8 1 #define V_028C70_COLOR_16 2 #define V_028C70_COLOR_8_8 3 #define V_028C70_COLOR_32 4 #define V_028C70_COLOR_16_16 5 #define V_028C70_COLOR_10_11_11 6 #define V_028C70_COLOR_11_11_10 7 #define V_028C70_COLOR_10_10_10_2 8 #define V_028C70_COLOR_2_10_10_10 9 #define V_028C70_COLOR_8_8_8_8 10 #define V_028C70_COLOR_32_32 11 #define V_028C70_COLOR_16_16_16_16 12 #define V_028C70_COLOR_RESERVED_13 13 /* <= gfx10 */ #define V_028C70_COLOR_32_32_32_32 14 #define V_028C70_COLOR_RESERVED_15 15 /* <= gfx10 */ #define V_028C70_COLOR_5_6_5 16 #define V_028C70_COLOR_1_5_5_5 17 #define V_028C70_COLOR_5_5_5_1 18 #define V_028C70_COLOR_4_4_4_4 19 #define V_028C70_COLOR_8_24 20 #define V_028C70_COLOR_24_8 21 #define V_028C70_COLOR_X24_8_32_FLOAT 22 #define V_028C70_COLOR_RESERVED_23 23 /* <= gfx10 */ #define V_028C70_COLOR_5_9_9_9 24 /* >= gfx103 */ #define V_028C70_COLOR_RESERVED_24 24 /* gfx81, gfx9, gfx10 */ #define V_028C70_COLOR_RESERVED_25 25 /* gfx81, gfx9, gfx10 */ #define V_028C70_COLOR_RESERVED_26 26 /* gfx81, gfx9, gfx10 */ #define V_028C70_COLOR_RESERVED_27 27 /* gfx81, gfx9, gfx10 */ #define V_028C70_COLOR_RESERVED_28 28 /* gfx81, gfx9, gfx10 */ #define V_028C70_COLOR_RESERVED_29 29 /* gfx81, gfx9, gfx10 */ #define V_028C70_COLOR_RESERVED_30 30 /* gfx81, gfx9, gfx10 */ #define V_028C70_COLOR_2_10_10_10_6E4 31 /* gfx9, gfx10 */ #define S_028C70_LINEAR_GENERAL(x) (((unsigned)(x) & 0x1) << 7) /* <= gfx81, >= gfx10 */ #define G_028C70_LINEAR_GENERAL(x) (((x) >> 7) & 0x1) #define C_028C70_LINEAR_GENERAL 0xFFFFFF7F #define S_028C70_NUMBER_TYPE(x) (((unsigned)(x) & 0x7) << 8) #define G_028C70_NUMBER_TYPE(x) (((x) >> 8) & 0x7) #define C_028C70_NUMBER_TYPE 0xFFFFF8FF #define V_028C70_NUMBER_UNORM 0 #define V_028C70_NUMBER_SNORM 1 #define V_028C70_NUMBER_USCALED 2 #define V_028C70_NUMBER_SSCALED 3 #define V_028C70_NUMBER_UINT 4 #define V_028C70_NUMBER_SINT 5 #define V_028C70_NUMBER_SRGB 6 #define V_028C70_NUMBER_FLOAT 7 #define S_028C70_COMP_SWAP(x) (((unsigned)(x) & 0x3) << 11) #define G_028C70_COMP_SWAP(x) (((x) >> 11) & 0x3) #define C_028C70_COMP_SWAP 0xFFFFE7FF #define V_028C70_SWAP_STD 0 #define V_028C70_SWAP_ALT 1 #define V_028C70_SWAP_STD_REV 2 #define V_028C70_SWAP_ALT_REV 3 #define S_028C70_FAST_CLEAR(x) (((unsigned)(x) & 0x1) << 13) #define G_028C70_FAST_CLEAR(x) (((x) >> 13) & 0x1) #define C_028C70_FAST_CLEAR 0xFFFFDFFF #define S_028C70_COMPRESSION(x) (((unsigned)(x) & 0x1) << 14) #define G_028C70_COMPRESSION(x) (((x) >> 14) & 0x1) #define C_028C70_COMPRESSION 0xFFFFBFFF #define S_028C70_BLEND_CLAMP(x) (((unsigned)(x) & 0x1) << 15) #define G_028C70_BLEND_CLAMP(x) (((x) >> 15) & 0x1) #define C_028C70_BLEND_CLAMP 0xFFFF7FFF #define S_028C70_BLEND_BYPASS(x) (((unsigned)(x) & 0x1) << 16) #define G_028C70_BLEND_BYPASS(x) (((x) >> 16) & 0x1) #define C_028C70_BLEND_BYPASS 0xFFFEFFFF #define S_028C70_SIMPLE_FLOAT(x) (((unsigned)(x) & 0x1) << 17) #define G_028C70_SIMPLE_FLOAT(x) (((x) >> 17) & 0x1) #define C_028C70_SIMPLE_FLOAT 0xFFFDFFFF #define S_028C70_ROUND_MODE(x) (((unsigned)(x) & 0x1) << 18) #define G_028C70_ROUND_MODE(x) (((x) >> 18) & 0x1) #define C_028C70_ROUND_MODE 0xFFFBFFFF #define S_028C70_CMASK_IS_LINEAR(x) (((unsigned)(x) & 0x1) << 19) /* <= gfx81, >= gfx10 */ #define G_028C70_CMASK_IS_LINEAR(x) (((x) >> 19) & 0x1) #define C_028C70_CMASK_IS_LINEAR 0xFFF7FFFF #define S_028C70_BLEND_OPT_DONT_RD_DST(x) (((unsigned)(x) & 0x7) << 20) #define G_028C70_BLEND_OPT_DONT_RD_DST(x) (((x) >> 20) & 0x7) #define C_028C70_BLEND_OPT_DONT_RD_DST 0xFF8FFFFF #define V_028C70_FORCE_OPT_AUTO 0 #define V_028C70_FORCE_OPT_DISABLE 1 #define V_028C70_FORCE_OPT_ENABLE_IF_SRC_A_0 2 #define V_028C70_FORCE_OPT_ENABLE_IF_SRC_RGB_0 3 #define V_028C70_FORCE_OPT_ENABLE_IF_SRC_ARGB_0 4 #define V_028C70_FORCE_OPT_ENABLE_IF_SRC_A_1 5 #define V_028C70_FORCE_OPT_ENABLE_IF_SRC_RGB_1 6 #define V_028C70_FORCE_OPT_ENABLE_IF_SRC_ARGB_1 7 #define S_028C70_BLEND_OPT_DISCARD_PIXEL(x) (((unsigned)(x) & 0x7) << 23) #define G_028C70_BLEND_OPT_DISCARD_PIXEL(x) (((x) >> 23) & 0x7) #define C_028C70_BLEND_OPT_DISCARD_PIXEL 0xFC7FFFFF #define S_028C70_FMASK_COMPRESSION_DISABLE(x) (((unsigned)(x) & 0x1) << 26) #define G_028C70_FMASK_COMPRESSION_DISABLE(x) (((x) >> 26) & 0x1) #define C_028C70_FMASK_COMPRESSION_DISABLE 0xFBFFFFFF #define S_028C70_FMASK_COMPRESS_1FRAG_ONLY(x) (((unsigned)(x) & 0x1) << 27) /* >= gfx8 */ #define G_028C70_FMASK_COMPRESS_1FRAG_ONLY(x) (((x) >> 27) & 0x1) #define C_028C70_FMASK_COMPRESS_1FRAG_ONLY 0xF7FFFFFF #define S_028C70_DCC_ENABLE(x) (((unsigned)(x) & 0x1) << 28) /* >= gfx8 */ #define G_028C70_DCC_ENABLE(x) (((x) >> 28) & 0x1) #define C_028C70_DCC_ENABLE 0xEFFFFFFF #define S_028C70_CMASK_ADDR_TYPE(x) (((unsigned)(x) & 0x3) << 29) /* >= gfx8 */ #define G_028C70_CMASK_ADDR_TYPE(x) (((x) >> 29) & 0x3) #define C_028C70_CMASK_ADDR_TYPE 0x9FFFFFFF #define V_028C70_CMASK_ADDR_TILED 0 #define V_028C70_CMASK_ADDR_LINEAR 1 #define V_028C70_CMASK_ADDR_COMPATIBLE 2 #define S_028C70_ALT_TILE_MODE(x) (((unsigned)(x) & 0x1) << 31) /* gfx10 */ #define G_028C70_ALT_TILE_MODE(x) (((x) >> 31) & 0x1) #define C_028C70_ALT_TILE_MODE 0x7FFFFFFF #define S_028C70_NBC_TILING(x) (((unsigned)(x) & 0x1) << 31) /* >= gfx103 */ #define G_028C70_NBC_TILING(x) (((x) >> 31) & 0x1) #define C_028C70_NBC_TILING 0x7FFFFFFF #define R_028C74_CB_COLOR0_ATTRIB 0x028C74 #define S_028C74_MIP0_DEPTH(x) (((unsigned)(x) & 0x7FF) << 0) /* gfx9 */ #define G_028C74_MIP0_DEPTH(x) (((x) >> 0) & 0x7FF) #define C_028C74_MIP0_DEPTH 0xFFFFF800 #define S_028C74_TILE_MODE_INDEX(x) (((unsigned)(x) & 0x1F) << 0) /* <= gfx81, >= gfx10 */ #define G_028C74_TILE_MODE_INDEX(x) (((x) >> 0) & 0x1F) #define C_028C74_TILE_MODE_INDEX 0xFFFFFFE0 #define S_028C74_FMASK_TILE_MODE_INDEX(x) (((unsigned)(x) & 0x1F) << 5) /* <= gfx81, >= gfx10 */ #define G_028C74_FMASK_TILE_MODE_INDEX(x) (((x) >> 5) & 0x1F) #define C_028C74_FMASK_TILE_MODE_INDEX 0xFFFFFC1F #define S_028C74_FMASK_BANK_HEIGHT(x) (((unsigned)(x) & 0x3) << 10) /* <= gfx81, >= gfx10 */ #define G_028C74_FMASK_BANK_HEIGHT(x) (((x) >> 10) & 0x3) #define C_028C74_FMASK_BANK_HEIGHT 0xFFFFF3FF #define S_028C74_META_LINEAR(x) (((unsigned)(x) & 0x1) << 11) /* gfx9 */ #define G_028C74_META_LINEAR(x) (((x) >> 11) & 0x1) #define C_028C74_META_LINEAR 0xFFFFF7FF #define S_028C74_NUM_SAMPLES(x) (((unsigned)(x) & 0x7) << 12) #define G_028C74_NUM_SAMPLES(x) (((x) >> 12) & 0x7) #define C_028C74_NUM_SAMPLES 0xFFFF8FFF #define S_028C74_NUM_FRAGMENTS(x) (((unsigned)(x) & 0x3) << 15) #define G_028C74_NUM_FRAGMENTS(x) (((x) >> 15) & 0x3) #define C_028C74_NUM_FRAGMENTS 0xFFFE7FFF #define S_028C74_FORCE_DST_ALPHA_1(x) (((unsigned)(x) & 0x1) << 17) #define G_028C74_FORCE_DST_ALPHA_1(x) (((x) >> 17) & 0x1) #define C_028C74_FORCE_DST_ALPHA_1 0xFFFDFFFF #define S_028C74_COLOR_SW_MODE(x) (((unsigned)(x) & 0x1F) << 18) /* gfx9 */ #define G_028C74_COLOR_SW_MODE(x) (((x) >> 18) & 0x1F) #define C_028C74_COLOR_SW_MODE 0xFF83FFFF #define S_028C74_DISABLE_FMASK_NOFETCH_OPT(x) (((unsigned)(x) & 0x1) << 18) /* >= gfx10 */ #define G_028C74_DISABLE_FMASK_NOFETCH_OPT(x) (((x) >> 18) & 0x1) #define C_028C74_DISABLE_FMASK_NOFETCH_OPT 0xFFFBFFFF #define S_028C74_LIMIT_COLOR_FETCH_TO_256B_MAX(x) (((unsigned)(x) & 0x1) << 19) /* >= gfx10 */ #define G_028C74_LIMIT_COLOR_FETCH_TO_256B_MAX(x) (((x) >> 19) & 0x1) #define C_028C74_LIMIT_COLOR_FETCH_TO_256B_MAX 0xFFF7FFFF #define S_028C74_FMASK_SW_MODE(x) (((unsigned)(x) & 0x1F) << 23) /* gfx9 */ #define G_028C74_FMASK_SW_MODE(x) (((x) >> 23) & 0x1F) #define C_028C74_FMASK_SW_MODE 0xF07FFFFF #define S_028C74_RESOURCE_TYPE(x) (((unsigned)(x) & 0x3) << 28) /* gfx9 */ #define G_028C74_RESOURCE_TYPE(x) (((x) >> 28) & 0x3) #define C_028C74_RESOURCE_TYPE 0xCFFFFFFF #define S_028C74_RB_ALIGNED(x) (((unsigned)(x) & 0x1) << 30) /* gfx9 */ #define G_028C74_RB_ALIGNED(x) (((x) >> 30) & 0x1) #define C_028C74_RB_ALIGNED 0xBFFFFFFF #define S_028C74_PIPE_ALIGNED(x) (((unsigned)(x) & 0x1) << 31) /* gfx9 */ #define G_028C74_PIPE_ALIGNED(x) (((x) >> 31) & 0x1) #define C_028C74_PIPE_ALIGNED 0x7FFFFFFF #define R_028C78_CB_COLOR0_DCC_CONTROL 0x028C78 /* >= gfx8 */ #define S_028C78_OVERWRITE_COMBINER_DISABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_028C78_OVERWRITE_COMBINER_DISABLE(x) (((x) >> 0) & 0x1) #define C_028C78_OVERWRITE_COMBINER_DISABLE 0xFFFFFFFE #define S_028C78_KEY_CLEAR_ENABLE(x) (((unsigned)(x) & 0x1) << 1) #define G_028C78_KEY_CLEAR_ENABLE(x) (((x) >> 1) & 0x1) #define C_028C78_KEY_CLEAR_ENABLE 0xFFFFFFFD #define S_028C78_MAX_UNCOMPRESSED_BLOCK_SIZE(x) (((unsigned)(x) & 0x3) << 2) #define G_028C78_MAX_UNCOMPRESSED_BLOCK_SIZE(x) (((x) >> 2) & 0x3) #define C_028C78_MAX_UNCOMPRESSED_BLOCK_SIZE 0xFFFFFFF3 #define V_028C78_MAX_BLOCK_SIZE_64B 0 #define V_028C78_MAX_BLOCK_SIZE_128B 1 #define V_028C78_MAX_BLOCK_SIZE_256B 2 #define S_028C78_MIN_COMPRESSED_BLOCK_SIZE(x) (((unsigned)(x) & 0x1) << 4) #define G_028C78_MIN_COMPRESSED_BLOCK_SIZE(x) (((x) >> 4) & 0x1) #define C_028C78_MIN_COMPRESSED_BLOCK_SIZE 0xFFFFFFEF #define V_028C78_MIN_BLOCK_SIZE_32B 0 #define V_028C78_MIN_BLOCK_SIZE_64B 1 #define S_028C78_MAX_COMPRESSED_BLOCK_SIZE(x) (((unsigned)(x) & 0x3) << 5) #define G_028C78_MAX_COMPRESSED_BLOCK_SIZE(x) (((x) >> 5) & 0x3) #define C_028C78_MAX_COMPRESSED_BLOCK_SIZE 0xFFFFFF9F #define S_028C78_COLOR_TRANSFORM(x) (((unsigned)(x) & 0x3) << 7) #define G_028C78_COLOR_TRANSFORM(x) (((x) >> 7) & 0x3) #define C_028C78_COLOR_TRANSFORM 0xFFFFFE7F #define S_028C78_INDEPENDENT_64B_BLOCKS(x) (((unsigned)(x) & 0x1) << 9) #define G_028C78_INDEPENDENT_64B_BLOCKS(x) (((x) >> 9) & 0x1) #define C_028C78_INDEPENDENT_64B_BLOCKS 0xFFFFFDFF #define S_028C78_LOSSY_RGB_PRECISION(x) (((unsigned)(x) & 0xF) << 10) #define G_028C78_LOSSY_RGB_PRECISION(x) (((x) >> 10) & 0xF) #define C_028C78_LOSSY_RGB_PRECISION 0xFFFFC3FF #define S_028C78_LOSSY_ALPHA_PRECISION(x) (((unsigned)(x) & 0xF) << 14) #define G_028C78_LOSSY_ALPHA_PRECISION(x) (((x) >> 14) & 0xF) #define C_028C78_LOSSY_ALPHA_PRECISION 0xFFFC3FFF #define S_028C78_DISABLE_CONSTANT_ENCODE_REG(x) (((unsigned)(x) & 0x1) << 18) /* >= gfx9 */ #define G_028C78_DISABLE_CONSTANT_ENCODE_REG(x) (((x) >> 18) & 0x1) #define C_028C78_DISABLE_CONSTANT_ENCODE_REG 0xFFFBFFFF #define S_028C78_ENABLE_CONSTANT_ENCODE_REG_WRITE(x) (((unsigned)(x) & 0x1) << 19) /* >= gfx9 */ #define G_028C78_ENABLE_CONSTANT_ENCODE_REG_WRITE(x) (((x) >> 19) & 0x1) #define C_028C78_ENABLE_CONSTANT_ENCODE_REG_WRITE 0xFFF7FFFF #define S_028C78_INDEPENDENT_128B_BLOCKS(x) (((unsigned)(x) & 0x1) << 20) /* >= gfx10 */ #define G_028C78_INDEPENDENT_128B_BLOCKS(x) (((x) >> 20) & 0x1) #define C_028C78_INDEPENDENT_128B_BLOCKS 0xFFEFFFFF #define S_028C78_SKIP_LOW_COMP_RATIO(x) (((unsigned)(x) & 0x1) << 21) /* >= gfx103 */ #define G_028C78_SKIP_LOW_COMP_RATIO(x) (((x) >> 21) & 0x1) #define C_028C78_SKIP_LOW_COMP_RATIO 0xFFDFFFFF #define S_028C78_DCC_COMPRESS_DISABLE(x) (((unsigned)(x) & 0x1) << 22) /* >= gfx103 */ #define G_028C78_DCC_COMPRESS_DISABLE(x) (((x) >> 22) & 0x1) #define C_028C78_DCC_COMPRESS_DISABLE 0xFFBFFFFF #define R_028C7C_CB_COLOR0_CMASK 0x028C7C #define R_028C80_CB_COLOR0_CMASK_BASE_EXT 0x028C80 /* gfx9 */ #define S_028C80_BASE_256B(x) (((unsigned)(x) & 0xFF) << 0) #define G_028C80_BASE_256B(x) (((x) >> 0) & 0xFF) #define C_028C80_BASE_256B 0xFFFFFF00 #define R_028C80_CB_COLOR0_CMASK_SLICE 0x028C80 /* <= gfx81, >= gfx10 */ #define S_028C80_TILE_MAX(x) (((unsigned)(x) & 0x3FFF) << 0) #define G_028C80_TILE_MAX(x) (((x) >> 0) & 0x3FFF) #define C_028C80_TILE_MAX 0xFFFFC000 #define R_028C84_CB_COLOR0_FMASK 0x028C84 #define R_028C88_CB_COLOR0_FMASK_BASE_EXT 0x028C88 /* gfx9 */ #define S_028C88_BASE_256B(x) (((unsigned)(x) & 0xFF) << 0) #define G_028C88_BASE_256B(x) (((x) >> 0) & 0xFF) #define C_028C88_BASE_256B 0xFFFFFF00 #define R_028C88_CB_COLOR0_FMASK_SLICE 0x028C88 /* <= gfx81, >= gfx10 */ #define S_028C88_TILE_MAX(x) (((unsigned)(x) & 0x3FFFFF) << 0) #define G_028C88_TILE_MAX(x) (((x) >> 0) & 0x3FFFFF) #define C_028C88_TILE_MAX 0xFFC00000 #define R_028C8C_CB_COLOR0_CLEAR_WORD0 0x028C8C #define R_028C90_CB_COLOR0_CLEAR_WORD1 0x028C90 #define R_028C94_CB_COLOR0_DCC_BASE 0x028C94 /* >= gfx8 */ #define R_028C98_CB_COLOR0_DCC_BASE_EXT 0x028C98 /* gfx9 */ #define S_028C98_BASE_256B(x) (((unsigned)(x) & 0xFF) << 0) #define G_028C98_BASE_256B(x) (((x) >> 0) & 0xFF) #define C_028C98_BASE_256B 0xFFFFFF00 #define R_028C9C_CB_COLOR1_BASE 0x028C9C #define R_028CA0_CB_COLOR1_BASE_EXT 0x028CA0 /* gfx9 */ #define R_028CA0_CB_COLOR1_PITCH 0x028CA0 /* <= gfx81, >= gfx10 */ #define R_028CA4_CB_COLOR1_ATTRIB2 0x028CA4 /* gfx9 */ #define R_028CA4_CB_COLOR1_SLICE 0x028CA4 /* <= gfx81, >= gfx10 */ #define R_028CA8_CB_COLOR1_VIEW 0x028CA8 #define R_028CAC_CB_COLOR1_INFO 0x028CAC #define R_028CB0_CB_COLOR1_ATTRIB 0x028CB0 #define R_028CB4_CB_COLOR1_DCC_CONTROL 0x028CB4 /* >= gfx8 */ #define R_028CB8_CB_COLOR1_CMASK 0x028CB8 #define R_028CBC_CB_COLOR1_CMASK_BASE_EXT 0x028CBC /* gfx9 */ #define R_028CBC_CB_COLOR1_CMASK_SLICE 0x028CBC /* <= gfx81, >= gfx10 */ #define R_028CC0_CB_COLOR1_FMASK 0x028CC0 #define R_028CC4_CB_COLOR1_FMASK_BASE_EXT 0x028CC4 /* gfx9 */ #define R_028CC4_CB_COLOR1_FMASK_SLICE 0x028CC4 /* <= gfx81, >= gfx10 */ #define R_028CC8_CB_COLOR1_CLEAR_WORD0 0x028CC8 #define R_028CCC_CB_COLOR1_CLEAR_WORD1 0x028CCC #define R_028CD0_CB_COLOR1_DCC_BASE 0x028CD0 /* >= gfx8 */ #define R_028CD4_CB_COLOR1_DCC_BASE_EXT 0x028CD4 /* gfx9 */ #define R_028CD8_CB_COLOR2_BASE 0x028CD8 #define R_028CDC_CB_COLOR2_BASE_EXT 0x028CDC /* gfx9 */ #define R_028CDC_CB_COLOR2_PITCH 0x028CDC /* <= gfx81, >= gfx10 */ #define R_028CE0_CB_COLOR2_ATTRIB2 0x028CE0 /* gfx9 */ #define R_028CE0_CB_COLOR2_SLICE 0x028CE0 /* <= gfx81, >= gfx10 */ #define R_028CE4_CB_COLOR2_VIEW 0x028CE4 #define R_028CE8_CB_COLOR2_INFO 0x028CE8 #define R_028CEC_CB_COLOR2_ATTRIB 0x028CEC #define R_028CF0_CB_COLOR2_DCC_CONTROL 0x028CF0 /* >= gfx8 */ #define R_028CF4_CB_COLOR2_CMASK 0x028CF4 #define R_028CF8_CB_COLOR2_CMASK_BASE_EXT 0x028CF8 /* gfx9 */ #define R_028CF8_CB_COLOR2_CMASK_SLICE 0x028CF8 /* <= gfx81, >= gfx10 */ #define R_028CFC_CB_COLOR2_FMASK 0x028CFC #define R_028D00_CB_COLOR2_FMASK_BASE_EXT 0x028D00 /* gfx9 */ #define R_028D00_CB_COLOR2_FMASK_SLICE 0x028D00 /* <= gfx81, >= gfx10 */ #define R_028D04_CB_COLOR2_CLEAR_WORD0 0x028D04 #define R_028D08_CB_COLOR2_CLEAR_WORD1 0x028D08 #define R_028D0C_CB_COLOR2_DCC_BASE 0x028D0C /* >= gfx8 */ #define R_028D10_CB_COLOR2_DCC_BASE_EXT 0x028D10 /* gfx9 */ #define R_028D14_CB_COLOR3_BASE 0x028D14 #define R_028D18_CB_COLOR3_BASE_EXT 0x028D18 /* gfx9 */ #define R_028D18_CB_COLOR3_PITCH 0x028D18 /* <= gfx81, >= gfx10 */ #define R_028D1C_CB_COLOR3_ATTRIB2 0x028D1C /* gfx9 */ #define R_028D1C_CB_COLOR3_SLICE 0x028D1C /* <= gfx81, >= gfx10 */ #define R_028D20_CB_COLOR3_VIEW 0x028D20 #define R_028D24_CB_COLOR3_INFO 0x028D24 #define R_028D28_CB_COLOR3_ATTRIB 0x028D28 #define R_028D2C_CB_COLOR3_DCC_CONTROL 0x028D2C /* >= gfx8 */ #define R_028D30_CB_COLOR3_CMASK 0x028D30 #define R_028D34_CB_COLOR3_CMASK_BASE_EXT 0x028D34 /* gfx9 */ #define R_028D34_CB_COLOR3_CMASK_SLICE 0x028D34 /* <= gfx81, >= gfx10 */ #define R_028D38_CB_COLOR3_FMASK 0x028D38 #define R_028D3C_CB_COLOR3_FMASK_BASE_EXT 0x028D3C /* gfx9 */ #define R_028D3C_CB_COLOR3_FMASK_SLICE 0x028D3C /* <= gfx81, >= gfx10 */ #define R_028D40_CB_COLOR3_CLEAR_WORD0 0x028D40 #define R_028D44_CB_COLOR3_CLEAR_WORD1 0x028D44 #define R_028D48_CB_COLOR3_DCC_BASE 0x028D48 /* >= gfx8 */ #define R_028D4C_CB_COLOR3_DCC_BASE_EXT 0x028D4C /* gfx9 */ #define R_028D50_CB_COLOR4_BASE 0x028D50 #define R_028D54_CB_COLOR4_BASE_EXT 0x028D54 /* gfx9 */ #define R_028D54_CB_COLOR4_PITCH 0x028D54 /* <= gfx81, >= gfx10 */ #define R_028D58_CB_COLOR4_ATTRIB2 0x028D58 /* gfx9 */ #define R_028D58_CB_COLOR4_SLICE 0x028D58 /* <= gfx81, >= gfx10 */ #define R_028D5C_CB_COLOR4_VIEW 0x028D5C #define R_028D60_CB_COLOR4_INFO 0x028D60 #define R_028D64_CB_COLOR4_ATTRIB 0x028D64 #define R_028D68_CB_COLOR4_DCC_CONTROL 0x028D68 /* >= gfx8 */ #define R_028D6C_CB_COLOR4_CMASK 0x028D6C #define R_028D70_CB_COLOR4_CMASK_BASE_EXT 0x028D70 /* gfx9 */ #define R_028D70_CB_COLOR4_CMASK_SLICE 0x028D70 /* <= gfx81, >= gfx10 */ #define R_028D74_CB_COLOR4_FMASK 0x028D74 #define R_028D78_CB_COLOR4_FMASK_BASE_EXT 0x028D78 /* gfx9 */ #define R_028D78_CB_COLOR4_FMASK_SLICE 0x028D78 /* <= gfx81, >= gfx10 */ #define R_028D7C_CB_COLOR4_CLEAR_WORD0 0x028D7C #define R_028D80_CB_COLOR4_CLEAR_WORD1 0x028D80 #define R_028D84_CB_COLOR4_DCC_BASE 0x028D84 /* >= gfx8 */ #define R_028D88_CB_COLOR4_DCC_BASE_EXT 0x028D88 /* gfx9 */ #define R_028D8C_CB_COLOR5_BASE 0x028D8C #define R_028D90_CB_COLOR5_BASE_EXT 0x028D90 /* gfx9 */ #define R_028D90_CB_COLOR5_PITCH 0x028D90 /* <= gfx81, >= gfx10 */ #define R_028D94_CB_COLOR5_ATTRIB2 0x028D94 /* gfx9 */ #define R_028D94_CB_COLOR5_SLICE 0x028D94 /* <= gfx81, >= gfx10 */ #define R_028D98_CB_COLOR5_VIEW 0x028D98 #define R_028D9C_CB_COLOR5_INFO 0x028D9C #define R_028DA0_CB_COLOR5_ATTRIB 0x028DA0 #define R_028DA4_CB_COLOR5_DCC_CONTROL 0x028DA4 /* >= gfx8 */ #define R_028DA8_CB_COLOR5_CMASK 0x028DA8 #define R_028DAC_CB_COLOR5_CMASK_BASE_EXT 0x028DAC /* gfx9 */ #define R_028DAC_CB_COLOR5_CMASK_SLICE 0x028DAC /* <= gfx81, >= gfx10 */ #define R_028DB0_CB_COLOR5_FMASK 0x028DB0 #define R_028DB4_CB_COLOR5_FMASK_BASE_EXT 0x028DB4 /* gfx9 */ #define R_028DB4_CB_COLOR5_FMASK_SLICE 0x028DB4 /* <= gfx81, >= gfx10 */ #define R_028DB8_CB_COLOR5_CLEAR_WORD0 0x028DB8 #define R_028DBC_CB_COLOR5_CLEAR_WORD1 0x028DBC #define R_028DC0_CB_COLOR5_DCC_BASE 0x028DC0 /* >= gfx8 */ #define R_028DC4_CB_COLOR5_DCC_BASE_EXT 0x028DC4 /* gfx9 */ #define R_028DC8_CB_COLOR6_BASE 0x028DC8 #define R_028DCC_CB_COLOR6_BASE_EXT 0x028DCC /* gfx9 */ #define R_028DCC_CB_COLOR6_PITCH 0x028DCC /* <= gfx81, >= gfx10 */ #define R_028DD0_CB_COLOR6_ATTRIB2 0x028DD0 /* gfx9 */ #define R_028DD0_CB_COLOR6_SLICE 0x028DD0 /* <= gfx81, >= gfx10 */ #define R_028DD4_CB_COLOR6_VIEW 0x028DD4 #define R_028DD8_CB_COLOR6_INFO 0x028DD8 #define R_028DDC_CB_COLOR6_ATTRIB 0x028DDC #define R_028DE0_CB_COLOR6_DCC_CONTROL 0x028DE0 /* >= gfx8 */ #define R_028DE4_CB_COLOR6_CMASK 0x028DE4 #define R_028DE8_CB_COLOR6_CMASK_BASE_EXT 0x028DE8 /* gfx9 */ #define R_028DE8_CB_COLOR6_CMASK_SLICE 0x028DE8 /* <= gfx81, >= gfx10 */ #define R_028DEC_CB_COLOR6_FMASK 0x028DEC #define R_028DF0_CB_COLOR6_FMASK_BASE_EXT 0x028DF0 /* gfx9 */ #define R_028DF0_CB_COLOR6_FMASK_SLICE 0x028DF0 /* <= gfx81, >= gfx10 */ #define R_028DF4_CB_COLOR6_CLEAR_WORD0 0x028DF4 #define R_028DF8_CB_COLOR6_CLEAR_WORD1 0x028DF8 #define R_028DFC_CB_COLOR6_DCC_BASE 0x028DFC /* >= gfx8 */ #define R_028E00_CB_COLOR6_DCC_BASE_EXT 0x028E00 /* gfx9 */ #define R_028E04_CB_COLOR7_BASE 0x028E04 #define R_028E08_CB_COLOR7_BASE_EXT 0x028E08 /* gfx9 */ #define R_028E08_CB_COLOR7_PITCH 0x028E08 /* <= gfx81, >= gfx10 */ #define R_028E0C_CB_COLOR7_ATTRIB2 0x028E0C /* gfx9 */ #define R_028E0C_CB_COLOR7_SLICE 0x028E0C /* <= gfx81, >= gfx10 */ #define R_028E10_CB_COLOR7_VIEW 0x028E10 #define R_028E14_CB_COLOR7_INFO 0x028E14 #define R_028E18_CB_COLOR7_ATTRIB 0x028E18 #define R_028E1C_CB_COLOR7_DCC_CONTROL 0x028E1C /* >= gfx8 */ #define R_028E20_CB_COLOR7_CMASK 0x028E20 #define R_028E24_CB_COLOR7_CMASK_BASE_EXT 0x028E24 /* gfx9 */ #define R_028E24_CB_COLOR7_CMASK_SLICE 0x028E24 /* <= gfx81, >= gfx10 */ #define R_028E28_CB_COLOR7_FMASK 0x028E28 #define R_028E2C_CB_COLOR7_FMASK_BASE_EXT 0x028E2C /* gfx9 */ #define R_028E2C_CB_COLOR7_FMASK_SLICE 0x028E2C /* <= gfx81, >= gfx10 */ #define R_028E30_CB_COLOR7_CLEAR_WORD0 0x028E30 #define R_028E34_CB_COLOR7_CLEAR_WORD1 0x028E34 #define R_028E38_CB_COLOR7_DCC_BASE 0x028E38 /* >= gfx8 */ #define R_028E3C_CB_COLOR7_DCC_BASE_EXT 0x028E3C /* gfx9 */ #define R_028E40_CB_COLOR0_BASE_EXT 0x028E40 /* >= gfx10 */ #define S_028E40_BASE_256B(x) (((unsigned)(x) & 0xFF) << 0) #define G_028E40_BASE_256B(x) (((x) >> 0) & 0xFF) #define C_028E40_BASE_256B 0xFFFFFF00 #define R_028E44_CB_COLOR1_BASE_EXT 0x028E44 /* >= gfx10 */ #define R_028E48_CB_COLOR2_BASE_EXT 0x028E48 /* >= gfx10 */ #define R_028E4C_CB_COLOR3_BASE_EXT 0x028E4C /* >= gfx10 */ #define R_028E50_CB_COLOR4_BASE_EXT 0x028E50 /* >= gfx10 */ #define R_028E54_CB_COLOR5_BASE_EXT 0x028E54 /* >= gfx10 */ #define R_028E58_CB_COLOR6_BASE_EXT 0x028E58 /* >= gfx10 */ #define R_028E5C_CB_COLOR7_BASE_EXT 0x028E5C /* >= gfx10 */ #define R_028E60_CB_COLOR0_CMASK_BASE_EXT 0x028E60 /* >= gfx10 */ #define S_028E60_BASE_256B(x) (((unsigned)(x) & 0xFF) << 0) #define G_028E60_BASE_256B(x) (((x) >> 0) & 0xFF) #define C_028E60_BASE_256B 0xFFFFFF00 #define R_028E64_CB_COLOR1_CMASK_BASE_EXT 0x028E64 /* >= gfx10 */ #define R_028E68_CB_COLOR2_CMASK_BASE_EXT 0x028E68 /* >= gfx10 */ #define R_028E6C_CB_COLOR3_CMASK_BASE_EXT 0x028E6C /* >= gfx10 */ #define R_028E70_CB_COLOR4_CMASK_BASE_EXT 0x028E70 /* >= gfx10 */ #define R_028E74_CB_COLOR5_CMASK_BASE_EXT 0x028E74 /* >= gfx10 */ #define R_028E78_CB_COLOR6_CMASK_BASE_EXT 0x028E78 /* >= gfx10 */ #define R_028E7C_CB_COLOR7_CMASK_BASE_EXT 0x028E7C /* >= gfx10 */ #define R_028E80_CB_COLOR0_FMASK_BASE_EXT 0x028E80 /* >= gfx10 */ #define S_028E80_BASE_256B(x) (((unsigned)(x) & 0xFF) << 0) #define G_028E80_BASE_256B(x) (((x) >> 0) & 0xFF) #define C_028E80_BASE_256B 0xFFFFFF00 #define R_028E84_CB_COLOR1_FMASK_BASE_EXT 0x028E84 /* >= gfx10 */ #define R_028E88_CB_COLOR2_FMASK_BASE_EXT 0x028E88 /* >= gfx10 */ #define R_028E8C_CB_COLOR3_FMASK_BASE_EXT 0x028E8C /* >= gfx10 */ #define R_028E90_CB_COLOR4_FMASK_BASE_EXT 0x028E90 /* >= gfx10 */ #define R_028E94_CB_COLOR5_FMASK_BASE_EXT 0x028E94 /* >= gfx10 */ #define R_028E98_CB_COLOR6_FMASK_BASE_EXT 0x028E98 /* >= gfx10 */ #define R_028E9C_CB_COLOR7_FMASK_BASE_EXT 0x028E9C /* >= gfx10 */ #define R_028EA0_CB_COLOR0_DCC_BASE_EXT 0x028EA0 /* >= gfx10 */ #define S_028EA0_BASE_256B(x) (((unsigned)(x) & 0xFF) << 0) #define G_028EA0_BASE_256B(x) (((x) >> 0) & 0xFF) #define C_028EA0_BASE_256B 0xFFFFFF00 #define R_028EA4_CB_COLOR1_DCC_BASE_EXT 0x028EA4 /* >= gfx10 */ #define R_028EA8_CB_COLOR2_DCC_BASE_EXT 0x028EA8 /* >= gfx10 */ #define R_028EAC_CB_COLOR3_DCC_BASE_EXT 0x028EAC /* >= gfx10 */ #define R_028EB0_CB_COLOR4_DCC_BASE_EXT 0x028EB0 /* >= gfx10 */ #define R_028EB4_CB_COLOR5_DCC_BASE_EXT 0x028EB4 /* >= gfx10 */ #define R_028EB8_CB_COLOR6_DCC_BASE_EXT 0x028EB8 /* >= gfx10 */ #define R_028EBC_CB_COLOR7_DCC_BASE_EXT 0x028EBC /* >= gfx10 */ #define R_028EC0_CB_COLOR0_ATTRIB2 0x028EC0 /* >= gfx10 */ #define S_028EC0_MIP0_HEIGHT(x) (((unsigned)(x) & 0x3FFF) << 0) #define G_028EC0_MIP0_HEIGHT(x) (((x) >> 0) & 0x3FFF) #define C_028EC0_MIP0_HEIGHT 0xFFFFC000 #define S_028EC0_MIP0_WIDTH(x) (((unsigned)(x) & 0x3FFF) << 14) #define G_028EC0_MIP0_WIDTH(x) (((x) >> 14) & 0x3FFF) #define C_028EC0_MIP0_WIDTH 0xF0003FFF #define S_028EC0_MAX_MIP(x) (((unsigned)(x) & 0xF) << 28) #define G_028EC0_MAX_MIP(x) (((x) >> 28) & 0xF) #define C_028EC0_MAX_MIP 0x0FFFFFFF #define R_028EC4_CB_COLOR1_ATTRIB2 0x028EC4 /* >= gfx10 */ #define R_028EC8_CB_COLOR2_ATTRIB2 0x028EC8 /* >= gfx10 */ #define R_028ECC_CB_COLOR3_ATTRIB2 0x028ECC /* >= gfx10 */ #define R_028ED0_CB_COLOR4_ATTRIB2 0x028ED0 /* >= gfx10 */ #define R_028ED4_CB_COLOR5_ATTRIB2 0x028ED4 /* >= gfx10 */ #define R_028ED8_CB_COLOR6_ATTRIB2 0x028ED8 /* >= gfx10 */ #define R_028EDC_CB_COLOR7_ATTRIB2 0x028EDC /* >= gfx10 */ #define R_028EE0_CB_COLOR0_ATTRIB3 0x028EE0 /* >= gfx10 */ #define S_028EE0_MIP0_DEPTH(x) (((unsigned)(x) & 0x1FFF) << 0) #define G_028EE0_MIP0_DEPTH(x) (((x) >> 0) & 0x1FFF) #define C_028EE0_MIP0_DEPTH 0xFFFFE000 #define S_028EE0_META_LINEAR(x) (((unsigned)(x) & 0x1) << 13) #define G_028EE0_META_LINEAR(x) (((x) >> 13) & 0x1) #define C_028EE0_META_LINEAR 0xFFFFDFFF #define S_028EE0_COLOR_SW_MODE(x) (((unsigned)(x) & 0x1F) << 14) #define G_028EE0_COLOR_SW_MODE(x) (((x) >> 14) & 0x1F) #define C_028EE0_COLOR_SW_MODE 0xFFF83FFF #define S_028EE0_FMASK_SW_MODE(x) (((unsigned)(x) & 0x1F) << 19) #define G_028EE0_FMASK_SW_MODE(x) (((x) >> 19) & 0x1F) #define C_028EE0_FMASK_SW_MODE 0xFF07FFFF #define S_028EE0_RESOURCE_TYPE(x) (((unsigned)(x) & 0x3) << 24) #define G_028EE0_RESOURCE_TYPE(x) (((x) >> 24) & 0x3) #define C_028EE0_RESOURCE_TYPE 0xFCFFFFFF #define S_028EE0_CMASK_PIPE_ALIGNED(x) (((unsigned)(x) & 0x1) << 26) #define G_028EE0_CMASK_PIPE_ALIGNED(x) (((x) >> 26) & 0x1) #define C_028EE0_CMASK_PIPE_ALIGNED 0xFBFFFFFF #define S_028EE0_RESOURCE_LEVEL(x) (((unsigned)(x) & 0x7) << 27) #define G_028EE0_RESOURCE_LEVEL(x) (((x) >> 27) & 0x7) #define C_028EE0_RESOURCE_LEVEL 0xC7FFFFFF #define S_028EE0_DCC_PIPE_ALIGNED(x) (((unsigned)(x) & 0x1) << 30) #define G_028EE0_DCC_PIPE_ALIGNED(x) (((x) >> 30) & 0x1) #define C_028EE0_DCC_PIPE_ALIGNED 0xBFFFFFFF #define S_028EE0_VRS_RATE_HINT_ENABLE(x) (((unsigned)(x) & 0x1) << 31) /* >= gfx103 */ #define G_028EE0_VRS_RATE_HINT_ENABLE(x) (((x) >> 31) & 0x1) #define C_028EE0_VRS_RATE_HINT_ENABLE 0x7FFFFFFF #define R_028EE4_CB_COLOR1_ATTRIB3 0x028EE4 /* >= gfx10 */ #define R_028EE8_CB_COLOR2_ATTRIB3 0x028EE8 /* >= gfx10 */ #define R_028EEC_CB_COLOR3_ATTRIB3 0x028EEC /* >= gfx10 */ #define R_028EF0_CB_COLOR4_ATTRIB3 0x028EF0 /* >= gfx10 */ #define R_028EF4_CB_COLOR5_ATTRIB3 0x028EF4 /* >= gfx10 */ #define R_028EF8_CB_COLOR6_ATTRIB3 0x028EF8 /* >= gfx10 */ #define R_028EFC_CB_COLOR7_ATTRIB3 0x028EFC /* >= gfx10 */ #define R_030000_CP_EOP_DONE_ADDR_LO 0x030000 /* >= gfx7 */ #define S_030000_ADDR_SWAP(x) (((unsigned)(x) & 0x3) << 0) /* gfx7 */ #define G_030000_ADDR_SWAP(x) (((x) >> 0) & 0x3) #define C_030000_ADDR_SWAP 0xFFFFFFFC #define S_030000_ADDR_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_030000_ADDR_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_030000_ADDR_LO 0x00000003 #define R_030004_CP_EOP_DONE_ADDR_HI 0x030004 /* >= gfx7 */ #define S_030004_ADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030004_ADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_030004_ADDR_HI 0xFFFF0000 #define R_030008_CP_EOP_DONE_DATA_LO 0x030008 /* >= gfx7 */ #define R_03000C_CP_EOP_DONE_DATA_HI 0x03000C /* >= gfx7 */ #define R_030010_CP_EOP_LAST_FENCE_LO 0x030010 /* >= gfx7 */ #define R_030014_CP_EOP_LAST_FENCE_HI 0x030014 /* >= gfx7 */ #define R_030018_CP_STREAM_OUT_ADDR_LO 0x030018 /* >= gfx7 */ #define S_030018_STREAM_OUT_ADDR_SWAP(x) (((unsigned)(x) & 0x3) << 0) /* gfx7 */ #define G_030018_STREAM_OUT_ADDR_SWAP(x) (((x) >> 0) & 0x3) #define C_030018_STREAM_OUT_ADDR_SWAP 0xFFFFFFFC #define S_030018_STREAM_OUT_ADDR_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_030018_STREAM_OUT_ADDR_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_030018_STREAM_OUT_ADDR_LO 0x00000003 #define R_03001C_CP_STREAM_OUT_ADDR_HI 0x03001C /* >= gfx7 */ #define S_03001C_STREAM_OUT_ADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_03001C_STREAM_OUT_ADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_03001C_STREAM_OUT_ADDR_HI 0xFFFF0000 #define R_030020_CP_NUM_PRIM_WRITTEN_COUNT0_LO 0x030020 /* >= gfx7 */ #define R_030024_CP_NUM_PRIM_WRITTEN_COUNT0_HI 0x030024 /* >= gfx7 */ #define R_030028_CP_NUM_PRIM_NEEDED_COUNT0_LO 0x030028 /* >= gfx7 */ #define R_03002C_CP_NUM_PRIM_NEEDED_COUNT0_HI 0x03002C /* >= gfx7 */ #define R_030030_CP_NUM_PRIM_WRITTEN_COUNT1_LO 0x030030 /* >= gfx7 */ #define R_030034_CP_NUM_PRIM_WRITTEN_COUNT1_HI 0x030034 /* >= gfx7 */ #define R_030038_CP_NUM_PRIM_NEEDED_COUNT1_LO 0x030038 /* >= gfx7 */ #define R_03003C_CP_NUM_PRIM_NEEDED_COUNT1_HI 0x03003C /* >= gfx7 */ #define R_030040_CP_NUM_PRIM_WRITTEN_COUNT2_LO 0x030040 /* >= gfx7 */ #define R_030044_CP_NUM_PRIM_WRITTEN_COUNT2_HI 0x030044 /* >= gfx7 */ #define R_030048_CP_NUM_PRIM_NEEDED_COUNT2_LO 0x030048 /* >= gfx7 */ #define R_03004C_CP_NUM_PRIM_NEEDED_COUNT2_HI 0x03004C /* >= gfx7 */ #define R_030050_CP_NUM_PRIM_WRITTEN_COUNT3_LO 0x030050 /* >= gfx7 */ #define R_030054_CP_NUM_PRIM_WRITTEN_COUNT3_HI 0x030054 /* >= gfx7 */ #define R_030058_CP_NUM_PRIM_NEEDED_COUNT3_LO 0x030058 /* >= gfx7 */ #define R_03005C_CP_NUM_PRIM_NEEDED_COUNT3_HI 0x03005C /* >= gfx7 */ #define R_030060_CP_PIPE_STATS_ADDR_LO 0x030060 /* >= gfx7 */ #define S_030060_PIPE_STATS_ADDR_SWAP(x) (((unsigned)(x) & 0x3) << 0) /* gfx7 */ #define G_030060_PIPE_STATS_ADDR_SWAP(x) (((x) >> 0) & 0x3) #define C_030060_PIPE_STATS_ADDR_SWAP 0xFFFFFFFC #define S_030060_PIPE_STATS_ADDR_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_030060_PIPE_STATS_ADDR_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_030060_PIPE_STATS_ADDR_LO 0x00000003 #define R_030064_CP_PIPE_STATS_ADDR_HI 0x030064 /* >= gfx7 */ #define S_030064_PIPE_STATS_ADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030064_PIPE_STATS_ADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_030064_PIPE_STATS_ADDR_HI 0xFFFF0000 #define R_030068_CP_VGT_IAVERT_COUNT_LO 0x030068 /* >= gfx7 */ #define R_03006C_CP_VGT_IAVERT_COUNT_HI 0x03006C /* >= gfx7 */ #define R_030070_CP_VGT_IAPRIM_COUNT_LO 0x030070 /* >= gfx7 */ #define R_030074_CP_VGT_IAPRIM_COUNT_HI 0x030074 /* >= gfx7 */ #define R_030078_CP_VGT_GSPRIM_COUNT_LO 0x030078 /* >= gfx7 */ #define R_03007C_CP_VGT_GSPRIM_COUNT_HI 0x03007C /* >= gfx7 */ #define R_030080_CP_VGT_VSINVOC_COUNT_LO 0x030080 /* >= gfx7 */ #define R_030084_CP_VGT_VSINVOC_COUNT_HI 0x030084 /* >= gfx7 */ #define R_030088_CP_VGT_GSINVOC_COUNT_LO 0x030088 /* >= gfx7 */ #define R_03008C_CP_VGT_GSINVOC_COUNT_HI 0x03008C /* >= gfx7 */ #define R_030090_CP_VGT_HSINVOC_COUNT_LO 0x030090 /* >= gfx7 */ #define R_030094_CP_VGT_HSINVOC_COUNT_HI 0x030094 /* >= gfx7 */ #define R_030098_CP_VGT_DSINVOC_COUNT_LO 0x030098 /* >= gfx7 */ #define R_03009C_CP_VGT_DSINVOC_COUNT_HI 0x03009C /* >= gfx7 */ #define R_0300A0_CP_PA_CINVOC_COUNT_LO 0x0300A0 /* >= gfx7 */ #define R_0300A4_CP_PA_CINVOC_COUNT_HI 0x0300A4 /* >= gfx7 */ #define R_0300A8_CP_PA_CPRIM_COUNT_LO 0x0300A8 /* >= gfx7 */ #define R_0300AC_CP_PA_CPRIM_COUNT_HI 0x0300AC /* >= gfx7 */ #define R_0300B0_CP_SC_PSINVOC_COUNT0_LO 0x0300B0 /* >= gfx7 */ #define R_0300B4_CP_SC_PSINVOC_COUNT0_HI 0x0300B4 /* >= gfx7 */ #define R_0300B8_CP_SC_PSINVOC_COUNT1_LO 0x0300B8 /* >= gfx7 */ #define R_0300BC_CP_SC_PSINVOC_COUNT1_HI 0x0300BC /* >= gfx7 */ #define R_0300C0_CP_VGT_CSINVOC_COUNT_LO 0x0300C0 /* >= gfx7 */ #define R_0300C4_CP_VGT_CSINVOC_COUNT_HI 0x0300C4 /* >= gfx7 */ #define R_0300C8_CP_EOP_DONE_DOORBELL 0x0300C8 /* gfx10 */ #define S_0300C8_DOORBELL_OFFSET(x) (((unsigned)(x) & 0x3FFFFFF) << 2) #define G_0300C8_DOORBELL_OFFSET(x) (((x) >> 2) & 0x3FFFFFF) #define C_0300C8_DOORBELL_OFFSET 0xF0000003 #define R_0300CC_CP_STREAM_OUT_DOORBELL 0x0300CC /* gfx10 */ #define S_0300CC_DOORBELL_OFFSET(x) (((unsigned)(x) & 0x3FFFFFF) << 2) #define G_0300CC_DOORBELL_OFFSET(x) (((x) >> 2) & 0x3FFFFFF) #define C_0300CC_DOORBELL_OFFSET 0xF0000003 #define R_0300D0_CP_SEM_DOORBELL 0x0300D0 /* gfx10 */ #define S_0300D0_DOORBELL_OFFSET(x) (((unsigned)(x) & 0x3FFFFFF) << 2) #define G_0300D0_DOORBELL_OFFSET(x) (((x) >> 2) & 0x3FFFFFF) #define C_0300D0_DOORBELL_OFFSET 0xF0000003 #define R_0300F4_CP_PIPE_STATS_CONTROL 0x0300F4 /* >= gfx8 */ #define S_0300F4_CACHE_CONTROL(x) (((unsigned)(x) & 0x1) << 25) /* gfx8, gfx81 */ #define G_0300F4_CACHE_CONTROL(x) (((x) >> 25) & 0x1) #define C_0300F4_CACHE_CONTROL 0xFDFFFFFF #define S_0300F4_CACHE_POLICY(x) (((unsigned)(x) & 0x3) << 25) /* >= gfx9 */ #define G_0300F4_CACHE_POLICY(x) (((x) >> 25) & 0x3) #define C_0300F4_CACHE_POLICY 0xF9FFFFFF #define S_0300F4_MTYPE(x) (((unsigned)(x) & 0x3) << 27) /* gfx8, gfx81 */ #define G_0300F4_MTYPE(x) (((x) >> 27) & 0x3) #define C_0300F4_MTYPE 0xE7FFFFFF #define R_0300F8_CP_STREAM_OUT_CONTROL 0x0300F8 /* >= gfx8 */ #define S_0300F8_CACHE_CONTROL(x) (((unsigned)(x) & 0x1) << 25) /* gfx8, gfx81 */ #define G_0300F8_CACHE_CONTROL(x) (((x) >> 25) & 0x1) #define C_0300F8_CACHE_CONTROL 0xFDFFFFFF #define S_0300F8_CACHE_POLICY(x) (((unsigned)(x) & 0x3) << 25) /* >= gfx9 */ #define G_0300F8_CACHE_POLICY(x) (((x) >> 25) & 0x3) #define C_0300F8_CACHE_POLICY 0xF9FFFFFF #define S_0300F8_MTYPE(x) (((unsigned)(x) & 0x3) << 27) /* gfx8, gfx81 */ #define G_0300F8_MTYPE(x) (((x) >> 27) & 0x3) #define C_0300F8_MTYPE 0xE7FFFFFF #define R_0300FC_CP_STRMOUT_CNTL 0x0300FC /* >= gfx7 */ #define S_0300FC_OFFSET_UPDATE_DONE(x) (((unsigned)(x) & 0x1) << 0) #define G_0300FC_OFFSET_UPDATE_DONE(x) (((x) >> 0) & 0x1) #define C_0300FC_OFFSET_UPDATE_DONE 0xFFFFFFFE #define R_030100_SCRATCH_REG0 0x030100 /* >= gfx7 */ #define R_030104_SCRATCH_REG1 0x030104 /* >= gfx7 */ #define R_030108_SCRATCH_REG2 0x030108 /* >= gfx7 */ #define R_03010C_SCRATCH_REG3 0x03010C /* >= gfx7 */ #define R_030110_SCRATCH_REG4 0x030110 /* >= gfx7 */ #define R_030114_SCRATCH_REG5 0x030114 /* >= gfx7 */ #define R_030118_SCRATCH_REG6 0x030118 /* >= gfx7 */ #define R_03011C_SCRATCH_REG7 0x03011C /* >= gfx7 */ #define R_030120_CP_PIPE_STATS_DOORBELL 0x030120 /* gfx10 */ #define S_030120_DOORBELL_OFFSET(x) (((unsigned)(x) & 0x3FFFFFF) << 2) #define G_030120_DOORBELL_OFFSET(x) (((x) >> 2) & 0x3FFFFFF) #define C_030120_DOORBELL_OFFSET 0xF0000003 #define R_030120_SCRATCH_REG_ATOMIC 0x030120 /* >= gfx103 */ #define S_030120_IMMED(x) (((unsigned)(x) & 0xFFFFFF) << 0) #define G_030120_IMMED(x) (((x) >> 0) & 0xFFFFFF) #define C_030120_IMMED 0xFF000000 #define S_030120_ID(x) (((unsigned)(x) & 0x7) << 24) #define G_030120_ID(x) (((x) >> 24) & 0x7) #define C_030120_ID 0xF8FFFFFF #define S_030120_reserved27(x) (((unsigned)(x) & 0x1) << 27) #define G_030120_reserved27(x) (((x) >> 27) & 0x1) #define C_030120_reserved27 0xF7FFFFFF #define S_030120_OP(x) (((unsigned)(x) & 0x7) << 28) #define G_030120_OP(x) (((x) >> 28) & 0x7) #define C_030120_OP 0x8FFFFFFF #define S_030120_reserved31(x) (((unsigned)(x) & 0x1) << 31) #define G_030120_reserved31(x) (((x) >> 31) & 0x1) #define C_030120_reserved31 0x7FFFFFFF #define R_03012C_CP_APPEND_DDID_CNT 0x03012C /* >= gfx10 */ #define S_03012C_DATA(x) (((unsigned)(x) & 0xFF) << 0) #define G_03012C_DATA(x) (((x) >> 0) & 0xFF) #define C_03012C_DATA 0xFFFFFF00 #define R_030130_CP_APPEND_DATA_HI 0x030130 /* >= gfx9 */ #define R_030134_CP_APPEND_LAST_CS_FENCE_HI 0x030134 /* >= gfx9 */ #define R_030138_CP_APPEND_LAST_PS_FENCE_HI 0x030138 /* >= gfx9 */ #define R_030140_SCRATCH_UMSK 0x030140 /* >= gfx7 */ #define S_030140_OBSOLETE_UMSK(x) (((unsigned)(x) & 0xFF) << 0) #define G_030140_OBSOLETE_UMSK(x) (((x) >> 0) & 0xFF) #define C_030140_OBSOLETE_UMSK 0xFFFFFF00 #define S_030140_OBSOLETE_SWAP(x) (((unsigned)(x) & 0x3) << 16) #define G_030140_OBSOLETE_SWAP(x) (((x) >> 16) & 0x3) #define C_030140_OBSOLETE_SWAP 0xFFFCFFFF #define R_030144_SCRATCH_ADDR 0x030144 /* >= gfx7 */ #define R_030148_CP_PFP_ATOMIC_PREOP_LO 0x030148 /* >= gfx7 */ #define R_03014C_CP_PFP_ATOMIC_PREOP_HI 0x03014C /* >= gfx7 */ #define R_030150_CP_PFP_GDS_ATOMIC0_PREOP_LO 0x030150 /* >= gfx7 */ #define R_030154_CP_PFP_GDS_ATOMIC0_PREOP_HI 0x030154 /* >= gfx7 */ #define R_030158_CP_PFP_GDS_ATOMIC1_PREOP_LO 0x030158 /* >= gfx7 */ #define R_03015C_CP_PFP_GDS_ATOMIC1_PREOP_HI 0x03015C /* >= gfx7 */ #define R_030160_CP_APPEND_ADDR_LO 0x030160 /* >= gfx7 */ #define S_030160_MEM_ADDR_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_030160_MEM_ADDR_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_030160_MEM_ADDR_LO 0x00000003 #define R_030164_CP_APPEND_ADDR_HI 0x030164 /* >= gfx7 */ #define S_030164_MEM_ADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030164_MEM_ADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_030164_MEM_ADDR_HI 0xFFFF0000 #define S_030164_CS_PS_SEL(x) (((unsigned)(x) & 0x1) << 16) #define G_030164_CS_PS_SEL(x) (((x) >> 16) & 0x1) #define C_030164_CS_PS_SEL 0xFFFEFFFF #define S_030164_CACHE_POLICY(x) (((unsigned)(x) & 0x3) << 25) /* >= gfx8 */ #define G_030164_CACHE_POLICY(x) (((x) >> 25) & 0x3) #define C_030164_CACHE_POLICY 0xF9FFFFFF #define S_030164_MTYPE(x) (((unsigned)(x) & 0x3) << 27) /* gfx8, gfx81 */ #define G_030164_MTYPE(x) (((x) >> 27) & 0x3) #define C_030164_MTYPE 0xE7FFFFFF #define S_030164_COMMAND(x) (((unsigned)(x) & 0x7) << 29) #define G_030164_COMMAND(x) (((x) >> 29) & 0x7) #define C_030164_COMMAND 0x1FFFFFFF #define R_030168_CP_APPEND_DATA 0x030168 /* gfx7, gfx8, gfx81, >= gfx10 */ #define R_030168_CP_APPEND_DATA_LO 0x030168 /* gfx9 */ #define R_03016C_CP_APPEND_LAST_CS_FENCE 0x03016C /* gfx7, gfx8, gfx81, >= gfx10 */ #define R_03016C_CP_APPEND_LAST_CS_FENCE_LO 0x03016C /* gfx9 */ #define R_030170_CP_APPEND_LAST_PS_FENCE 0x030170 /* gfx7, gfx8, gfx81, >= gfx10 */ #define R_030170_CP_APPEND_LAST_PS_FENCE_LO 0x030170 /* gfx9 */ #define R_030174_CP_ATOMIC_PREOP_LO 0x030174 /* >= gfx7 */ #define R_030178_CP_ATOMIC_PREOP_HI 0x030178 /* >= gfx7 */ #define R_03017C_CP_GDS_ATOMIC0_PREOP_LO 0x03017C /* >= gfx7 */ #define R_030180_CP_GDS_ATOMIC0_PREOP_HI 0x030180 /* >= gfx7 */ #define R_030184_CP_GDS_ATOMIC1_PREOP_LO 0x030184 /* >= gfx7 */ #define R_030188_CP_GDS_ATOMIC1_PREOP_HI 0x030188 /* >= gfx7 */ #define R_0301A4_CP_ME_MC_WADDR_LO 0x0301A4 /* >= gfx7 */ #define S_0301A4_ME_MC_WADDR_SWAP(x) (((unsigned)(x) & 0x3) << 0) /* gfx7, gfx8, gfx81 */ #define G_0301A4_ME_MC_WADDR_SWAP(x) (((x) >> 0) & 0x3) #define C_0301A4_ME_MC_WADDR_SWAP 0xFFFFFFFC #define S_0301A4_ME_MC_WADDR_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_0301A4_ME_MC_WADDR_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_0301A4_ME_MC_WADDR_LO 0x00000003 #define R_0301A8_CP_ME_MC_WADDR_HI 0x0301A8 /* >= gfx7 */ #define S_0301A8_ME_MC_WADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_0301A8_ME_MC_WADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_0301A8_ME_MC_WADDR_HI 0xFFFF0000 #define S_0301A8_MTYPE(x) (((unsigned)(x) & 0x3) << 20) /* gfx8, gfx81 */ #define G_0301A8_MTYPE(x) (((x) >> 20) & 0x3) #define C_0301A8_MTYPE 0xFFCFFFFF #define S_0301A8_CACHE_POLICY(x) (((unsigned)(x) & 0x3) << 22) /* >= gfx8 */ #define G_0301A8_CACHE_POLICY(x) (((x) >> 22) & 0x3) #define C_0301A8_CACHE_POLICY 0xFF3FFFFF #define R_0301AC_CP_ME_MC_WDATA_LO 0x0301AC /* >= gfx7 */ #define R_0301B0_CP_ME_MC_WDATA_HI 0x0301B0 /* >= gfx7 */ #define R_0301B4_CP_ME_MC_RADDR_LO 0x0301B4 /* >= gfx7 */ #define S_0301B4_ME_MC_RADDR_SWAP(x) (((unsigned)(x) & 0x3) << 0) /* gfx7, gfx8, gfx81 */ #define G_0301B4_ME_MC_RADDR_SWAP(x) (((x) >> 0) & 0x3) #define C_0301B4_ME_MC_RADDR_SWAP 0xFFFFFFFC #define S_0301B4_ME_MC_RADDR_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_0301B4_ME_MC_RADDR_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_0301B4_ME_MC_RADDR_LO 0x00000003 #define R_0301B8_CP_ME_MC_RADDR_HI 0x0301B8 /* >= gfx7 */ #define S_0301B8_ME_MC_RADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_0301B8_ME_MC_RADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_0301B8_ME_MC_RADDR_HI 0xFFFF0000 #define S_0301B8_MTYPE(x) (((unsigned)(x) & 0x3) << 20) /* gfx8, gfx81 */ #define G_0301B8_MTYPE(x) (((x) >> 20) & 0x3) #define C_0301B8_MTYPE 0xFFCFFFFF #define S_0301B8_CACHE_POLICY(x) (((unsigned)(x) & 0x3) << 22) /* >= gfx8 */ #define G_0301B8_CACHE_POLICY(x) (((x) >> 22) & 0x3) #define C_0301B8_CACHE_POLICY 0xFF3FFFFF #define R_0301BC_CP_SEM_WAIT_TIMER 0x0301BC /* >= gfx7 */ #define R_0301C0_CP_SIG_SEM_ADDR_LO 0x0301C0 /* >= gfx7 */ #define S_0301C0_SEM_ADDR_SWAP(x) (((unsigned)(x) & 0x3) << 0) /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define G_0301C0_SEM_ADDR_SWAP(x) (((x) >> 0) & 0x3) #define C_0301C0_SEM_ADDR_SWAP 0xFFFFFFFC #define S_0301C0_SEM_PRIV(x) (((unsigned)(x) & 0x1) << 0) /* >= gfx103 */ #define G_0301C0_SEM_PRIV(x) (((x) >> 0) & 0x1) #define C_0301C0_SEM_PRIV 0xFFFFFFFE #define S_0301C0_SEM_ADDR_LO(x) (((unsigned)(x) & 0x1FFFFFFF) << 3) #define G_0301C0_SEM_ADDR_LO(x) (((x) >> 3) & 0x1FFFFFFF) #define C_0301C0_SEM_ADDR_LO 0x00000007 #define R_0301C4_CP_SIG_SEM_ADDR_HI 0x0301C4 /* >= gfx7 */ #define S_0301C4_SEM_ADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_0301C4_SEM_ADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_0301C4_SEM_ADDR_HI 0xFFFF0000 #define S_0301C4_SEM_USE_MAILBOX(x) (((unsigned)(x) & 0x1) << 16) #define G_0301C4_SEM_USE_MAILBOX(x) (((x) >> 16) & 0x1) #define C_0301C4_SEM_USE_MAILBOX 0xFFFEFFFF #define S_0301C4_SEM_SIGNAL_TYPE(x) (((unsigned)(x) & 0x1) << 20) #define G_0301C4_SEM_SIGNAL_TYPE(x) (((x) >> 20) & 0x1) #define C_0301C4_SEM_SIGNAL_TYPE 0xFFEFFFFF #define S_0301C4_SEM_CLIENT_CODE(x) (((unsigned)(x) & 0x3) << 24) #define G_0301C4_SEM_CLIENT_CODE(x) (((x) >> 24) & 0x3) #define C_0301C4_SEM_CLIENT_CODE 0xFCFFFFFF #define S_0301C4_SEM_SELECT(x) (((unsigned)(x) & 0x7) << 29) #define G_0301C4_SEM_SELECT(x) (((x) >> 29) & 0x7) #define C_0301C4_SEM_SELECT 0x1FFFFFFF #define R_0301D0_CP_WAIT_REG_MEM_TIMEOUT 0x0301D0 /* >= gfx7 */ #define R_0301D4_CP_WAIT_SEM_ADDR_LO 0x0301D4 /* >= gfx7 */ #define S_0301D4_SEM_ADDR_SWAP(x) (((unsigned)(x) & 0x3) << 0) /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define G_0301D4_SEM_ADDR_SWAP(x) (((x) >> 0) & 0x3) #define C_0301D4_SEM_ADDR_SWAP 0xFFFFFFFC #define S_0301D4_SEM_PRIV(x) (((unsigned)(x) & 0x1) << 0) /* >= gfx103 */ #define G_0301D4_SEM_PRIV(x) (((x) >> 0) & 0x1) #define C_0301D4_SEM_PRIV 0xFFFFFFFE #define S_0301D4_SEM_ADDR_LO(x) (((unsigned)(x) & 0x1FFFFFFF) << 3) #define G_0301D4_SEM_ADDR_LO(x) (((x) >> 3) & 0x1FFFFFFF) #define C_0301D4_SEM_ADDR_LO 0x00000007 #define R_0301D8_CP_WAIT_SEM_ADDR_HI 0x0301D8 /* >= gfx7 */ #define S_0301D8_SEM_ADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_0301D8_SEM_ADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_0301D8_SEM_ADDR_HI 0xFFFF0000 #define S_0301D8_SEM_USE_MAILBOX(x) (((unsigned)(x) & 0x1) << 16) #define G_0301D8_SEM_USE_MAILBOX(x) (((x) >> 16) & 0x1) #define C_0301D8_SEM_USE_MAILBOX 0xFFFEFFFF #define S_0301D8_SEM_SIGNAL_TYPE(x) (((unsigned)(x) & 0x1) << 20) #define G_0301D8_SEM_SIGNAL_TYPE(x) (((x) >> 20) & 0x1) #define C_0301D8_SEM_SIGNAL_TYPE 0xFFEFFFFF #define S_0301D8_SEM_CLIENT_CODE(x) (((unsigned)(x) & 0x3) << 24) #define G_0301D8_SEM_CLIENT_CODE(x) (((x) >> 24) & 0x3) #define C_0301D8_SEM_CLIENT_CODE 0xFCFFFFFF #define S_0301D8_SEM_SELECT(x) (((unsigned)(x) & 0x7) << 29) #define G_0301D8_SEM_SELECT(x) (((x) >> 29) & 0x7) #define C_0301D8_SEM_SELECT 0x1FFFFFFF #define R_0301DC_CP_DMA_PFP_CONTROL 0x0301DC /* >= gfx7 */ #define S_0301DC_MEMLOG_CLEAR(x) (((unsigned)(x) & 0x1) << 10) /* >= gfx9 */ #define G_0301DC_MEMLOG_CLEAR(x) (((x) >> 10) & 0x1) #define C_0301DC_MEMLOG_CLEAR 0xFFFFFBFF #define S_0301DC_SRC_MTYPE(x) (((unsigned)(x) & 0x3) << 10) /* gfx8, gfx81 */ #define G_0301DC_SRC_MTYPE(x) (((x) >> 10) & 0x3) #define C_0301DC_SRC_MTYPE 0xFFFFF3FF #define S_0301DC_SRC_ATC(x) (((unsigned)(x) & 0x1) << 12) /* gfx7, gfx8, gfx81 */ #define G_0301DC_SRC_ATC(x) (((x) >> 12) & 0x1) #define C_0301DC_SRC_ATC 0xFFFFEFFF #define S_0301DC_SRC_CACHE_POLICY(x) (((unsigned)(x) & 0x3) << 13) #define G_0301DC_SRC_CACHE_POLICY(x) (((x) >> 13) & 0x3) #define C_0301DC_SRC_CACHE_POLICY 0xFFFF9FFF #define S_0301DC_SRC_VOLATILE(x) (((unsigned)(x) & 0x1) << 15) /* gfx7 */ #define G_0301DC_SRC_VOLATILE(x) (((x) >> 15) & 0x1) #define C_0301DC_SRC_VOLATILE 0xFFFF7FFF #define S_0301DC_SRC_VOLATLE(x) (((unsigned)(x) & 0x1) << 15) /* >= gfx10 */ #define G_0301DC_SRC_VOLATLE(x) (((x) >> 15) & 0x1) #define C_0301DC_SRC_VOLATLE 0xFFFF7FFF #define S_0301DC_DST_SELECT(x) (((unsigned)(x) & 0x3) << 20) #define G_0301DC_DST_SELECT(x) (((x) >> 20) & 0x3) #define C_0301DC_DST_SELECT 0xFFCFFFFF #define S_0301DC_DST_MTYPE(x) (((unsigned)(x) & 0x3) << 22) /* gfx8, gfx81 */ #define G_0301DC_DST_MTYPE(x) (((x) >> 22) & 0x3) #define C_0301DC_DST_MTYPE 0xFF3FFFFF #define S_0301DC_DST_ATC(x) (((unsigned)(x) & 0x1) << 24) /* gfx7, gfx8, gfx81 */ #define G_0301DC_DST_ATC(x) (((x) >> 24) & 0x1) #define C_0301DC_DST_ATC 0xFEFFFFFF #define S_0301DC_DST_CACHE_POLICY(x) (((unsigned)(x) & 0x3) << 25) #define G_0301DC_DST_CACHE_POLICY(x) (((x) >> 25) & 0x3) #define C_0301DC_DST_CACHE_POLICY 0xF9FFFFFF #define S_0301DC_DST_VOLATILE(x) (((unsigned)(x) & 0x1) << 27) /* gfx7 */ #define G_0301DC_DST_VOLATILE(x) (((x) >> 27) & 0x1) #define C_0301DC_DST_VOLATILE 0xF7FFFFFF #define S_0301DC_DST_VOLATLE(x) (((unsigned)(x) & 0x1) << 27) /* >= gfx10 */ #define G_0301DC_DST_VOLATLE(x) (((x) >> 27) & 0x1) #define C_0301DC_DST_VOLATLE 0xF7FFFFFF #define S_0301DC_SRC_SELECT(x) (((unsigned)(x) & 0x3) << 29) #define G_0301DC_SRC_SELECT(x) (((x) >> 29) & 0x3) #define C_0301DC_SRC_SELECT 0x9FFFFFFF #define R_0301E0_CP_DMA_ME_CONTROL 0x0301E0 /* >= gfx7 */ #define S_0301E0_MEMLOG_CLEAR(x) (((unsigned)(x) & 0x1) << 10) /* >= gfx9 */ #define G_0301E0_MEMLOG_CLEAR(x) (((x) >> 10) & 0x1) #define C_0301E0_MEMLOG_CLEAR 0xFFFFFBFF #define S_0301E0_SRC_MTYPE(x) (((unsigned)(x) & 0x3) << 10) /* gfx8, gfx81 */ #define G_0301E0_SRC_MTYPE(x) (((x) >> 10) & 0x3) #define C_0301E0_SRC_MTYPE 0xFFFFF3FF #define S_0301E0_SRC_ATC(x) (((unsigned)(x) & 0x1) << 12) /* gfx7, gfx8, gfx81 */ #define G_0301E0_SRC_ATC(x) (((x) >> 12) & 0x1) #define C_0301E0_SRC_ATC 0xFFFFEFFF #define S_0301E0_SRC_CACHE_POLICY(x) (((unsigned)(x) & 0x3) << 13) #define G_0301E0_SRC_CACHE_POLICY(x) (((x) >> 13) & 0x3) #define C_0301E0_SRC_CACHE_POLICY 0xFFFF9FFF #define S_0301E0_SRC_VOLATILE(x) (((unsigned)(x) & 0x1) << 15) /* gfx7 */ #define G_0301E0_SRC_VOLATILE(x) (((x) >> 15) & 0x1) #define C_0301E0_SRC_VOLATILE 0xFFFF7FFF #define S_0301E0_SRC_VOLATLE(x) (((unsigned)(x) & 0x1) << 15) /* >= gfx10 */ #define G_0301E0_SRC_VOLATLE(x) (((x) >> 15) & 0x1) #define C_0301E0_SRC_VOLATLE 0xFFFF7FFF #define S_0301E0_DST_SELECT(x) (((unsigned)(x) & 0x3) << 20) #define G_0301E0_DST_SELECT(x) (((x) >> 20) & 0x3) #define C_0301E0_DST_SELECT 0xFFCFFFFF #define S_0301E0_DST_MTYPE(x) (((unsigned)(x) & 0x3) << 22) /* gfx8, gfx81 */ #define G_0301E0_DST_MTYPE(x) (((x) >> 22) & 0x3) #define C_0301E0_DST_MTYPE 0xFF3FFFFF #define S_0301E0_DST_ATC(x) (((unsigned)(x) & 0x1) << 24) /* gfx7, gfx8, gfx81 */ #define G_0301E0_DST_ATC(x) (((x) >> 24) & 0x1) #define C_0301E0_DST_ATC 0xFEFFFFFF #define S_0301E0_DST_CACHE_POLICY(x) (((unsigned)(x) & 0x3) << 25) #define G_0301E0_DST_CACHE_POLICY(x) (((x) >> 25) & 0x3) #define C_0301E0_DST_CACHE_POLICY 0xF9FFFFFF #define S_0301E0_DST_VOLATILE(x) (((unsigned)(x) & 0x1) << 27) /* gfx7 */ #define G_0301E0_DST_VOLATILE(x) (((x) >> 27) & 0x1) #define C_0301E0_DST_VOLATILE 0xF7FFFFFF #define S_0301E0_DST_VOLATLE(x) (((unsigned)(x) & 0x1) << 27) /* >= gfx10 */ #define G_0301E0_DST_VOLATLE(x) (((x) >> 27) & 0x1) #define C_0301E0_DST_VOLATLE 0xF7FFFFFF #define S_0301E0_SRC_SELECT(x) (((unsigned)(x) & 0x3) << 29) #define G_0301E0_SRC_SELECT(x) (((x) >> 29) & 0x3) #define C_0301E0_SRC_SELECT 0x9FFFFFFF #define R_0301E4_CP_COHER_BASE_HI 0x0301E4 /* >= gfx7 */ #define S_0301E4_COHER_BASE_HI_256B(x) (((unsigned)(x) & 0xFF) << 0) #define G_0301E4_COHER_BASE_HI_256B(x) (((x) >> 0) & 0xFF) #define C_0301E4_COHER_BASE_HI_256B 0xFFFFFF00 #define R_0301EC_CP_COHER_START_DELAY 0x0301EC /* >= gfx7 */ #define S_0301EC_START_DELAY_COUNT(x) (((unsigned)(x) & 0x3F) << 0) #define G_0301EC_START_DELAY_COUNT(x) (((x) >> 0) & 0x3F) #define C_0301EC_START_DELAY_COUNT 0xFFFFFFC0 #define R_0301F0_CP_COHER_CNTL 0x0301F0 /* >= gfx7 */ #define S_0301F0_DEST_BASE_0_ENA(x) (((unsigned)(x) & 0x1) << 0) /* gfx7, gfx8, gfx81 */ #define G_0301F0_DEST_BASE_0_ENA(x) (((x) >> 0) & 0x1) #define C_0301F0_DEST_BASE_0_ENA 0xFFFFFFFE #define S_0301F0_DEST_BASE_1_ENA(x) (((unsigned)(x) & 0x1) << 1) /* gfx7, gfx8, gfx81 */ #define G_0301F0_DEST_BASE_1_ENA(x) (((x) >> 1) & 0x1) #define C_0301F0_DEST_BASE_1_ENA 0xFFFFFFFD #define S_0301F0_TC_SD_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 2) /* gfx8, gfx81 */ #define G_0301F0_TC_SD_ACTION_ENA(x) (((x) >> 2) & 0x1) #define C_0301F0_TC_SD_ACTION_ENA 0xFFFFFFFB #define S_0301F0_TC_NC_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 3) /* >= gfx8 */ #define G_0301F0_TC_NC_ACTION_ENA(x) (((x) >> 3) & 0x1) #define C_0301F0_TC_NC_ACTION_ENA 0xFFFFFFF7 #define S_0301F0_TC_WC_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 4) /* >= gfx9 */ #define G_0301F0_TC_WC_ACTION_ENA(x) (((x) >> 4) & 0x1) #define C_0301F0_TC_WC_ACTION_ENA 0xFFFFFFEF #define S_0301F0_TC_INV_METADATA_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 5) /* >= gfx9 */ #define G_0301F0_TC_INV_METADATA_ACTION_ENA(x) (((x) >> 5) & 0x1) #define C_0301F0_TC_INV_METADATA_ACTION_ENA 0xFFFFFFDF #define S_0301F0_CB0_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 6) /* gfx7, gfx8, gfx81 */ #define G_0301F0_CB0_DEST_BASE_ENA(x) (((x) >> 6) & 0x1) #define C_0301F0_CB0_DEST_BASE_ENA 0xFFFFFFBF #define S_0301F0_CB1_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 7) /* gfx7, gfx8, gfx81 */ #define G_0301F0_CB1_DEST_BASE_ENA(x) (((x) >> 7) & 0x1) #define C_0301F0_CB1_DEST_BASE_ENA 0xFFFFFF7F #define S_0301F0_CB2_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 8) /* gfx7, gfx8, gfx81 */ #define G_0301F0_CB2_DEST_BASE_ENA(x) (((x) >> 8) & 0x1) #define C_0301F0_CB2_DEST_BASE_ENA 0xFFFFFEFF #define S_0301F0_CB3_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 9) /* gfx7, gfx8, gfx81 */ #define G_0301F0_CB3_DEST_BASE_ENA(x) (((x) >> 9) & 0x1) #define C_0301F0_CB3_DEST_BASE_ENA 0xFFFFFDFF #define S_0301F0_CB4_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 10) /* gfx7, gfx8, gfx81 */ #define G_0301F0_CB4_DEST_BASE_ENA(x) (((x) >> 10) & 0x1) #define C_0301F0_CB4_DEST_BASE_ENA 0xFFFFFBFF #define S_0301F0_CB5_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 11) /* gfx7, gfx8, gfx81 */ #define G_0301F0_CB5_DEST_BASE_ENA(x) (((x) >> 11) & 0x1) #define C_0301F0_CB5_DEST_BASE_ENA 0xFFFFF7FF #define S_0301F0_CB6_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 12) /* gfx7, gfx8, gfx81 */ #define G_0301F0_CB6_DEST_BASE_ENA(x) (((x) >> 12) & 0x1) #define C_0301F0_CB6_DEST_BASE_ENA 0xFFFFEFFF #define S_0301F0_CB7_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 13) /* gfx7, gfx8, gfx81 */ #define G_0301F0_CB7_DEST_BASE_ENA(x) (((x) >> 13) & 0x1) #define C_0301F0_CB7_DEST_BASE_ENA 0xFFFFDFFF #define S_0301F0_DB_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 14) /* gfx7, gfx8, gfx81 */ #define G_0301F0_DB_DEST_BASE_ENA(x) (((x) >> 14) & 0x1) #define C_0301F0_DB_DEST_BASE_ENA 0xFFFFBFFF #define S_0301F0_TCL1_VOL_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 15) #define G_0301F0_TCL1_VOL_ACTION_ENA(x) (((x) >> 15) & 0x1) #define C_0301F0_TCL1_VOL_ACTION_ENA 0xFFFF7FFF #define S_0301F0_TC_VOL_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 16) /* gfx7 */ #define G_0301F0_TC_VOL_ACTION_ENA(x) (((x) >> 16) & 0x1) #define C_0301F0_TC_VOL_ACTION_ENA 0xFFFEFFFF #define S_0301F0_TC_WB_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 18) #define G_0301F0_TC_WB_ACTION_ENA(x) (((x) >> 18) & 0x1) #define C_0301F0_TC_WB_ACTION_ENA 0xFFFBFFFF #define S_0301F0_DEST_BASE_2_ENA(x) (((unsigned)(x) & 0x1) << 19) /* gfx7, gfx8, gfx81 */ #define G_0301F0_DEST_BASE_2_ENA(x) (((x) >> 19) & 0x1) #define C_0301F0_DEST_BASE_2_ENA 0xFFF7FFFF #define S_0301F0_DEST_BASE_3_ENA(x) (((unsigned)(x) & 0x1) << 21) /* gfx7, gfx8, gfx81 */ #define G_0301F0_DEST_BASE_3_ENA(x) (((x) >> 21) & 0x1) #define C_0301F0_DEST_BASE_3_ENA 0xFFDFFFFF #define S_0301F0_TCL1_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 22) #define G_0301F0_TCL1_ACTION_ENA(x) (((x) >> 22) & 0x1) #define C_0301F0_TCL1_ACTION_ENA 0xFFBFFFFF #define S_0301F0_TC_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 23) #define G_0301F0_TC_ACTION_ENA(x) (((x) >> 23) & 0x1) #define C_0301F0_TC_ACTION_ENA 0xFF7FFFFF #define S_0301F0_CB_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 25) #define G_0301F0_CB_ACTION_ENA(x) (((x) >> 25) & 0x1) #define C_0301F0_CB_ACTION_ENA 0xFDFFFFFF #define S_0301F0_DB_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 26) #define G_0301F0_DB_ACTION_ENA(x) (((x) >> 26) & 0x1) #define C_0301F0_DB_ACTION_ENA 0xFBFFFFFF #define S_0301F0_SH_KCACHE_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 27) #define G_0301F0_SH_KCACHE_ACTION_ENA(x) (((x) >> 27) & 0x1) #define C_0301F0_SH_KCACHE_ACTION_ENA 0xF7FFFFFF #define S_0301F0_SH_KCACHE_VOL_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 28) #define G_0301F0_SH_KCACHE_VOL_ACTION_ENA(x) (((x) >> 28) & 0x1) #define C_0301F0_SH_KCACHE_VOL_ACTION_ENA 0xEFFFFFFF #define S_0301F0_SH_ICACHE_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 29) #define G_0301F0_SH_ICACHE_ACTION_ENA(x) (((x) >> 29) & 0x1) #define C_0301F0_SH_ICACHE_ACTION_ENA 0xDFFFFFFF #define S_0301F0_SH_KCACHE_WB_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 30) /* >= gfx8 */ #define G_0301F0_SH_KCACHE_WB_ACTION_ENA(x) (((x) >> 30) & 0x1) #define C_0301F0_SH_KCACHE_WB_ACTION_ENA 0xBFFFFFFF #define S_0301F0_SH_SD_ACTION_ENA(x) (((unsigned)(x) & 0x1) << 31) /* gfx8, gfx81 */ #define G_0301F0_SH_SD_ACTION_ENA(x) (((x) >> 31) & 0x1) #define C_0301F0_SH_SD_ACTION_ENA 0x7FFFFFFF #define R_0301F4_CP_COHER_SIZE 0x0301F4 /* >= gfx7 */ #define R_0301F8_CP_COHER_BASE 0x0301F8 /* >= gfx7 */ #define R_0301FC_CP_COHER_STATUS 0x0301FC /* >= gfx7 */ #define S_0301FC_MATCHING_GFX_CNTX(x) (((unsigned)(x) & 0xFF) << 0) /* gfx7, gfx8, gfx81 */ #define G_0301FC_MATCHING_GFX_CNTX(x) (((x) >> 0) & 0xFF) #define C_0301FC_MATCHING_GFX_CNTX 0xFFFFFF00 #define S_0301FC_MEID(x) (((unsigned)(x) & 0x3) << 24) #define G_0301FC_MEID(x) (((x) >> 24) & 0x3) #define C_0301FC_MEID 0xFCFFFFFF #define S_0301FC_PHASE1_STATUS(x) (((unsigned)(x) & 0x1) << 30) /* gfx7, gfx8, gfx81 */ #define G_0301FC_PHASE1_STATUS(x) (((x) >> 30) & 0x1) #define C_0301FC_PHASE1_STATUS 0xBFFFFFFF #define S_0301FC_STATUS(x) (((unsigned)(x) & 0x1) << 31) #define G_0301FC_STATUS(x) (((x) >> 31) & 0x1) #define C_0301FC_STATUS 0x7FFFFFFF #define R_030200_CP_DMA_ME_SRC_ADDR 0x030200 /* >= gfx7 */ #define R_030204_CP_DMA_ME_SRC_ADDR_HI 0x030204 /* >= gfx7 */ #define S_030204_SRC_ADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030204_SRC_ADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_030204_SRC_ADDR_HI 0xFFFF0000 #define R_030208_CP_DMA_ME_DST_ADDR 0x030208 /* >= gfx7 */ #define R_03020C_CP_DMA_ME_DST_ADDR_HI 0x03020C /* >= gfx7 */ #define S_03020C_DST_ADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_03020C_DST_ADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_03020C_DST_ADDR_HI 0xFFFF0000 #define R_030210_CP_DMA_ME_COMMAND 0x030210 /* >= gfx7 */ #define S_030210_BYTE_COUNT_GFX7(x) (((unsigned)(x) & 0x1FFFFF) << 0) /* gfx7, gfx8, gfx81 */ #define G_030210_BYTE_COUNT_GFX7(x) (((x) >> 0) & 0x1FFFFF) #define C_030210_BYTE_COUNT_GFX7 0xFFE00000 #define S_030210_BYTE_COUNT_GFX9(x) (((unsigned)(x) & 0x3FFFFFF) << 0) /* >= gfx9 */ #define G_030210_BYTE_COUNT_GFX9(x) (((x) >> 0) & 0x3FFFFFF) #define C_030210_BYTE_COUNT_GFX9 0xFC000000 #define S_030210_DIS_WC_GFX7(x) (((unsigned)(x) & 0x1) << 21) /* gfx7, gfx8, gfx81 */ #define G_030210_DIS_WC_GFX7(x) (((x) >> 21) & 0x1) #define C_030210_DIS_WC_GFX7 0xFFDFFFFF #define S_030210_SRC_SWAP(x) (((unsigned)(x) & 0x3) << 22) /* gfx7, gfx8, gfx81 */ #define G_030210_SRC_SWAP(x) (((x) >> 22) & 0x3) #define C_030210_SRC_SWAP 0xFF3FFFFF #define S_030210_DST_SWAP(x) (((unsigned)(x) & 0x3) << 24) /* gfx7, gfx8, gfx81 */ #define G_030210_DST_SWAP(x) (((x) >> 24) & 0x3) #define C_030210_DST_SWAP 0xFCFFFFFF #define S_030210_SAS(x) (((unsigned)(x) & 0x1) << 26) #define G_030210_SAS(x) (((x) >> 26) & 0x1) #define C_030210_SAS 0xFBFFFFFF #define S_030210_DAS(x) (((unsigned)(x) & 0x1) << 27) #define G_030210_DAS(x) (((x) >> 27) & 0x1) #define C_030210_DAS 0xF7FFFFFF #define S_030210_SAIC(x) (((unsigned)(x) & 0x1) << 28) #define G_030210_SAIC(x) (((x) >> 28) & 0x1) #define C_030210_SAIC 0xEFFFFFFF #define S_030210_DAIC(x) (((unsigned)(x) & 0x1) << 29) #define G_030210_DAIC(x) (((x) >> 29) & 0x1) #define C_030210_DAIC 0xDFFFFFFF #define S_030210_RAW_WAIT(x) (((unsigned)(x) & 0x1) << 30) #define G_030210_RAW_WAIT(x) (((x) >> 30) & 0x1) #define C_030210_RAW_WAIT 0xBFFFFFFF #define S_030210_DIS_WC_GFX9(x) (((unsigned)(x) & 0x1) << 31) /* >= gfx9 */ #define G_030210_DIS_WC_GFX9(x) (((x) >> 31) & 0x1) #define C_030210_DIS_WC_GFX9 0x7FFFFFFF #define R_030214_CP_DMA_PFP_SRC_ADDR 0x030214 /* >= gfx7 */ #define R_030218_CP_DMA_PFP_SRC_ADDR_HI 0x030218 /* >= gfx7 */ #define S_030218_SRC_ADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030218_SRC_ADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_030218_SRC_ADDR_HI 0xFFFF0000 #define R_03021C_CP_DMA_PFP_DST_ADDR 0x03021C /* >= gfx7 */ #define R_030220_CP_DMA_PFP_DST_ADDR_HI 0x030220 /* >= gfx7 */ #define S_030220_DST_ADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030220_DST_ADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_030220_DST_ADDR_HI 0xFFFF0000 #define R_030224_CP_DMA_PFP_COMMAND 0x030224 /* >= gfx7 */ #define S_030224_BYTE_COUNT_GFX7(x) (((unsigned)(x) & 0x1FFFFF) << 0) /* gfx7, gfx8, gfx81 */ #define G_030224_BYTE_COUNT_GFX7(x) (((x) >> 0) & 0x1FFFFF) #define C_030224_BYTE_COUNT_GFX7 0xFFE00000 #define S_030224_BYTE_COUNT_GFX9(x) (((unsigned)(x) & 0x3FFFFFF) << 0) /* >= gfx9 */ #define G_030224_BYTE_COUNT_GFX9(x) (((x) >> 0) & 0x3FFFFFF) #define C_030224_BYTE_COUNT_GFX9 0xFC000000 #define S_030224_DIS_WC_GFX7(x) (((unsigned)(x) & 0x1) << 21) /* gfx7, gfx8, gfx81 */ #define G_030224_DIS_WC_GFX7(x) (((x) >> 21) & 0x1) #define C_030224_DIS_WC_GFX7 0xFFDFFFFF #define S_030224_SRC_SWAP(x) (((unsigned)(x) & 0x3) << 22) /* gfx7, gfx8, gfx81 */ #define G_030224_SRC_SWAP(x) (((x) >> 22) & 0x3) #define C_030224_SRC_SWAP 0xFF3FFFFF #define S_030224_DST_SWAP(x) (((unsigned)(x) & 0x3) << 24) /* gfx7, gfx8, gfx81 */ #define G_030224_DST_SWAP(x) (((x) >> 24) & 0x3) #define C_030224_DST_SWAP 0xFCFFFFFF #define S_030224_SAS(x) (((unsigned)(x) & 0x1) << 26) #define G_030224_SAS(x) (((x) >> 26) & 0x1) #define C_030224_SAS 0xFBFFFFFF #define S_030224_DAS(x) (((unsigned)(x) & 0x1) << 27) #define G_030224_DAS(x) (((x) >> 27) & 0x1) #define C_030224_DAS 0xF7FFFFFF #define S_030224_SAIC(x) (((unsigned)(x) & 0x1) << 28) #define G_030224_SAIC(x) (((x) >> 28) & 0x1) #define C_030224_SAIC 0xEFFFFFFF #define S_030224_DAIC(x) (((unsigned)(x) & 0x1) << 29) #define G_030224_DAIC(x) (((x) >> 29) & 0x1) #define C_030224_DAIC 0xDFFFFFFF #define S_030224_RAW_WAIT(x) (((unsigned)(x) & 0x1) << 30) #define G_030224_RAW_WAIT(x) (((x) >> 30) & 0x1) #define C_030224_RAW_WAIT 0xBFFFFFFF #define S_030224_DIS_WC_GFX9(x) (((unsigned)(x) & 0x1) << 31) /* >= gfx9 */ #define G_030224_DIS_WC_GFX9(x) (((x) >> 31) & 0x1) #define C_030224_DIS_WC_GFX9 0x7FFFFFFF #define R_030228_CP_DMA_CNTL 0x030228 /* >= gfx7 */ #define S_030228_UTCL1_FAULT_CONTROL(x) (((unsigned)(x) & 0x1) << 0) /* >= gfx9 */ #define G_030228_UTCL1_FAULT_CONTROL(x) (((x) >> 0) & 0x1) #define C_030228_UTCL1_FAULT_CONTROL 0xFFFFFFFE #define S_030228_WATCH_CONTROL(x) (((unsigned)(x) & 0x1) << 1) /* >= gfx10 */ #define G_030228_WATCH_CONTROL(x) (((x) >> 1) & 0x1) #define C_030228_WATCH_CONTROL 0xFFFFFFFD #define S_030228_MIN_AVAILSZ(x) (((unsigned)(x) & 0x3) << 4) #define G_030228_MIN_AVAILSZ(x) (((x) >> 4) & 0x3) #define C_030228_MIN_AVAILSZ 0xFFFFFFCF #define S_030228_BUFFER_DEPTH(x) (((unsigned)(x) & 0x1FF) << 16) #define G_030228_BUFFER_DEPTH(x) (((x) >> 16) & 0x1FF) #define C_030228_BUFFER_DEPTH 0xFE00FFFF #define S_030228_PIO_FIFO_EMPTY(x) (((unsigned)(x) & 0x1) << 28) #define G_030228_PIO_FIFO_EMPTY(x) (((x) >> 28) & 0x1) #define C_030228_PIO_FIFO_EMPTY 0xEFFFFFFF #define S_030228_PIO_FIFO_FULL(x) (((unsigned)(x) & 0x1) << 29) #define G_030228_PIO_FIFO_FULL(x) (((x) >> 29) & 0x1) #define C_030228_PIO_FIFO_FULL 0xDFFFFFFF #define S_030228_PIO_COUNT(x) (((unsigned)(x) & 0x3) << 30) #define G_030228_PIO_COUNT(x) (((x) >> 30) & 0x3) #define C_030228_PIO_COUNT 0x3FFFFFFF #define R_03022C_CP_DMA_READ_TAGS 0x03022C /* >= gfx7 */ #define S_03022C_DMA_READ_TAG(x) (((unsigned)(x) & 0x3FFFFFF) << 0) #define G_03022C_DMA_READ_TAG(x) (((x) >> 0) & 0x3FFFFFF) #define C_03022C_DMA_READ_TAG 0xFC000000 #define S_03022C_DMA_READ_TAG_VALID(x) (((unsigned)(x) & 0x1) << 28) #define G_03022C_DMA_READ_TAG_VALID(x) (((x) >> 28) & 0x1) #define C_03022C_DMA_READ_TAG_VALID 0xEFFFFFFF #define R_030230_CP_COHER_SIZE_HI 0x030230 /* >= gfx7 */ #define S_030230_COHER_SIZE_HI_256B(x) (((unsigned)(x) & 0xFF) << 0) #define G_030230_COHER_SIZE_HI_256B(x) (((x) >> 0) & 0xFF) #define C_030230_COHER_SIZE_HI_256B 0xFFFFFF00 #define R_030234_CP_PFP_IB_CONTROL 0x030234 /* >= gfx7 */ #define S_030234_IB_EN(x) (((unsigned)(x) & 0xFF) << 0) #define G_030234_IB_EN(x) (((x) >> 0) & 0xFF) #define C_030234_IB_EN 0xFFFFFF00 #define R_030238_CP_PFP_LOAD_CONTROL 0x030238 /* >= gfx7 */ #define S_030238_CONFIG_REG_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_030238_CONFIG_REG_EN(x) (((x) >> 0) & 0x1) #define C_030238_CONFIG_REG_EN 0xFFFFFFFE #define S_030238_CNTX_REG_EN(x) (((unsigned)(x) & 0x1) << 1) #define G_030238_CNTX_REG_EN(x) (((x) >> 1) & 0x1) #define C_030238_CNTX_REG_EN 0xFFFFFFFD #define S_030238_UCONFIG_REG_EN(x) (((unsigned)(x) & 0x1) << 15) /* gfx7, >= gfx103 */ #define G_030238_UCONFIG_REG_EN(x) (((x) >> 15) & 0x1) #define C_030238_UCONFIG_REG_EN 0xFFFF7FFF #define S_030238_SH_GFX_REG_EN(x) (((unsigned)(x) & 0x1) << 16) #define G_030238_SH_GFX_REG_EN(x) (((x) >> 16) & 0x1) #define C_030238_SH_GFX_REG_EN 0xFFFEFFFF #define S_030238_SH_CS_REG_EN(x) (((unsigned)(x) & 0x1) << 24) #define G_030238_SH_CS_REG_EN(x) (((x) >> 24) & 0x1) #define C_030238_SH_CS_REG_EN 0xFEFFFFFF #define R_03023C_CP_SCRATCH_INDEX 0x03023C /* >= gfx7 */ #define S_03023C_SCRATCH_INDEX(x) (((unsigned)(x) & 0x1FF) << 0) #define G_03023C_SCRATCH_INDEX(x) (((x) >> 0) & 0x1FF) #define C_03023C_SCRATCH_INDEX 0xFFFFFE00 #define S_03023C_SCRATCH_INDEX_64BIT_MODE(x) (((unsigned)(x) & 0x1) << 31) /* >= gfx10 */ #define G_03023C_SCRATCH_INDEX_64BIT_MODE(x) (((x) >> 31) & 0x1) #define C_03023C_SCRATCH_INDEX_64BIT_MODE 0x7FFFFFFF #define R_030240_CP_SCRATCH_DATA 0x030240 /* >= gfx7 */ #define R_030244_CP_RB_OFFSET 0x030244 /* >= gfx7 */ #define S_030244_RB_OFFSET(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_030244_RB_OFFSET(x) (((x) >> 0) & 0xFFFFF) #define C_030244_RB_OFFSET 0xFFF00000 #define R_030248_CP_IB1_OFFSET 0x030248 /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define S_030248_IB1_OFFSET(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_030248_IB1_OFFSET(x) (((x) >> 0) & 0xFFFFF) #define C_030248_IB1_OFFSET 0xFFF00000 #define R_03024C_CP_IB2_OFFSET 0x03024C /* >= gfx7 */ #define S_03024C_IB2_OFFSET(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_03024C_IB2_OFFSET(x) (((x) >> 0) & 0xFFFFF) #define C_03024C_IB2_OFFSET 0xFFF00000 #define R_030250_CP_IB1_PREAMBLE_BEGIN 0x030250 /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define S_030250_IB1_PREAMBLE_BEGIN(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_030250_IB1_PREAMBLE_BEGIN(x) (((x) >> 0) & 0xFFFFF) #define C_030250_IB1_PREAMBLE_BEGIN 0xFFF00000 #define R_030254_CP_IB1_PREAMBLE_END 0x030254 /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define S_030254_IB1_PREAMBLE_END(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_030254_IB1_PREAMBLE_END(x) (((x) >> 0) & 0xFFFFF) #define C_030254_IB1_PREAMBLE_END 0xFFF00000 #define R_030258_CP_IB2_PREAMBLE_BEGIN 0x030258 /* >= gfx7 */ #define S_030258_IB2_PREAMBLE_BEGIN(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_030258_IB2_PREAMBLE_BEGIN(x) (((x) >> 0) & 0xFFFFF) #define C_030258_IB2_PREAMBLE_BEGIN 0xFFF00000 #define R_03025C_CP_IB2_PREAMBLE_END 0x03025C /* >= gfx7 */ #define S_03025C_IB2_PREAMBLE_END(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_03025C_IB2_PREAMBLE_END(x) (((x) >> 0) & 0xFFFFF) #define C_03025C_IB2_PREAMBLE_END 0xFFF00000 #define R_030260_CP_CE_IB1_OFFSET 0x030260 /* >= gfx7 */ #define S_030260_IB1_OFFSET(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_030260_IB1_OFFSET(x) (((x) >> 0) & 0xFFFFF) #define C_030260_IB1_OFFSET 0xFFF00000 #define R_030264_CP_CE_IB2_OFFSET 0x030264 /* >= gfx7 */ #define S_030264_IB2_OFFSET(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_030264_IB2_OFFSET(x) (((x) >> 0) & 0xFFFFF) #define C_030264_IB2_OFFSET 0xFFF00000 #define R_030268_CP_CE_COUNTER 0x030268 /* >= gfx7 */ #define R_03026C_CP_CE_RB_OFFSET 0x03026C /* gfx8, gfx81, gfx9 */ #define S_03026C_RB_OFFSET(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_03026C_RB_OFFSET(x) (((x) >> 0) & 0xFFFFF) #define C_03026C_RB_OFFSET 0xFFF00000 #define R_030270_CP_DMA_ME_CMD_ADDR_LO 0x030270 /* >= gfx10 */ #define S_030270_RSVD(x) (((unsigned)(x) & 0x3) << 0) #define G_030270_RSVD(x) (((x) >> 0) & 0x3) #define C_030270_RSVD 0xFFFFFFFC #define S_030270_ADDR_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_030270_ADDR_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_030270_ADDR_LO 0x00000003 #define R_030274_CP_DMA_ME_CMD_ADDR_HI 0x030274 /* >= gfx10 */ #define S_030274_ADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030274_ADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_030274_ADDR_HI 0xFFFF0000 #define S_030274_RSVD(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_030274_RSVD(x) (((x) >> 16) & 0xFFFF) #define C_030274_RSVD 0x0000FFFF #define R_030278_CP_DMA_PFP_CMD_ADDR_LO 0x030278 /* >= gfx10 */ #define S_030278_RSVD(x) (((unsigned)(x) & 0x3) << 0) #define G_030278_RSVD(x) (((x) >> 0) & 0x3) #define C_030278_RSVD 0xFFFFFFFC #define S_030278_ADDR_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_030278_ADDR_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_030278_ADDR_LO 0x00000003 #define R_03027C_CP_DMA_PFP_CMD_ADDR_HI 0x03027C /* >= gfx10 */ #define S_03027C_ADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_03027C_ADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_03027C_ADDR_HI 0xFFFF0000 #define S_03027C_RSVD(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_03027C_RSVD(x) (((x) >> 16) & 0xFFFF) #define C_03027C_RSVD 0x0000FFFF #define R_030280_CP_APPEND_CMD_ADDR_LO 0x030280 /* >= gfx10 */ #define S_030280_RSVD(x) (((unsigned)(x) & 0x3) << 0) #define G_030280_RSVD(x) (((x) >> 0) & 0x3) #define C_030280_RSVD 0xFFFFFFFC #define S_030280_ADDR_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_030280_ADDR_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_030280_ADDR_LO 0x00000003 #define R_030284_CP_APPEND_CMD_ADDR_HI 0x030284 /* >= gfx10 */ #define S_030284_ADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030284_ADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_030284_ADDR_HI 0xFFFF0000 #define S_030284_RSVD(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_030284_RSVD(x) (((x) >> 16) & 0xFFFF) #define C_030284_RSVD 0x0000FFFF #define R_030288_UCONFIG_RESERVED_REG0 0x030288 /* >= gfx103 */ #define R_03028C_UCONFIG_RESERVED_REG1 0x03028C /* >= gfx103 */ #define R_0302A0_CP_CE_ATOMIC_PREOP_LO 0x0302A0 /* >= gfx103 */ #define R_0302A4_CP_CE_ATOMIC_PREOP_HI 0x0302A4 /* >= gfx103 */ #define R_0302A8_CP_CE_GDS_ATOMIC0_PREOP_LO 0x0302A8 /* >= gfx103 */ #define R_0302AC_CP_CE_GDS_ATOMIC0_PREOP_HI 0x0302AC /* >= gfx103 */ #define R_0302B0_CP_CE_GDS_ATOMIC1_PREOP_LO 0x0302B0 /* >= gfx103 */ #define R_0302B4_CP_CE_GDS_ATOMIC1_PREOP_HI 0x0302B4 /* >= gfx103 */ #define R_0302F4_CP_CE_INIT_CMD_BUFSZ 0x0302F4 /* >= gfx9 */ #define S_0302F4_INIT_CMD_REQSZ(x) (((unsigned)(x) & 0xFFF) << 0) #define G_0302F4_INIT_CMD_REQSZ(x) (((x) >> 0) & 0xFFF) #define C_0302F4_INIT_CMD_REQSZ 0xFFFFF000 #define R_0302F8_CP_CE_IB1_CMD_BUFSZ 0x0302F8 /* >= gfx9 */ #define S_0302F8_IB1_CMD_REQSZ(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_0302F8_IB1_CMD_REQSZ(x) (((x) >> 0) & 0xFFFFF) #define C_0302F8_IB1_CMD_REQSZ 0xFFF00000 #define R_0302FC_CP_CE_IB2_CMD_BUFSZ 0x0302FC /* >= gfx9 */ #define S_0302FC_IB2_CMD_REQSZ(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_0302FC_IB2_CMD_REQSZ(x) (((x) >> 0) & 0xFFFFF) #define C_0302FC_IB2_CMD_REQSZ 0xFFF00000 #define R_030300_CP_IB1_CMD_BUFSZ 0x030300 /* gfx9, gfx10 */ #define S_030300_IB1_CMD_REQSZ(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_030300_IB1_CMD_REQSZ(x) (((x) >> 0) & 0xFFFFF) #define C_030300_IB1_CMD_REQSZ 0xFFF00000 #define R_030304_CP_IB2_CMD_BUFSZ 0x030304 /* >= gfx9 */ #define S_030304_IB2_CMD_REQSZ(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_030304_IB2_CMD_REQSZ(x) (((x) >> 0) & 0xFFFFF) #define C_030304_IB2_CMD_REQSZ 0xFFF00000 #define R_030308_CP_ST_CMD_BUFSZ 0x030308 /* >= gfx9 */ #define S_030308_ST_CMD_REQSZ(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_030308_ST_CMD_REQSZ(x) (((x) >> 0) & 0xFFFFF) #define C_030308_ST_CMD_REQSZ 0xFFF00000 #define R_03030C_CP_CE_INIT_BASE_LO 0x03030C /* >= gfx7 */ #define S_03030C_INIT_BASE_LO(x) (((unsigned)(x) & 0x7FFFFFF) << 5) #define G_03030C_INIT_BASE_LO(x) (((x) >> 5) & 0x7FFFFFF) #define C_03030C_INIT_BASE_LO 0x0000001F #define R_030310_CP_CE_INIT_BASE_HI 0x030310 /* >= gfx7 */ #define S_030310_INIT_BASE_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030310_INIT_BASE_HI(x) (((x) >> 0) & 0xFFFF) #define C_030310_INIT_BASE_HI 0xFFFF0000 #define R_030314_CP_CE_INIT_BUFSZ 0x030314 /* >= gfx7 */ #define S_030314_INIT_BUFSZ(x) (((unsigned)(x) & 0xFFF) << 0) #define G_030314_INIT_BUFSZ(x) (((x) >> 0) & 0xFFF) #define C_030314_INIT_BUFSZ 0xFFFFF000 #define R_030318_CP_CE_IB1_BASE_LO 0x030318 /* >= gfx7 */ #define S_030318_IB1_BASE_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_030318_IB1_BASE_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_030318_IB1_BASE_LO 0x00000003 #define R_03031C_CP_CE_IB1_BASE_HI 0x03031C /* >= gfx7 */ #define S_03031C_IB1_BASE_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_03031C_IB1_BASE_HI(x) (((x) >> 0) & 0xFFFF) #define C_03031C_IB1_BASE_HI 0xFFFF0000 #define R_030320_CP_CE_IB1_BUFSZ 0x030320 /* >= gfx7 */ #define S_030320_IB1_BUFSZ(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_030320_IB1_BUFSZ(x) (((x) >> 0) & 0xFFFFF) #define C_030320_IB1_BUFSZ 0xFFF00000 #define R_030324_CP_CE_IB2_BASE_LO 0x030324 /* >= gfx7 */ #define S_030324_IB2_BASE_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_030324_IB2_BASE_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_030324_IB2_BASE_LO 0x00000003 #define R_030328_CP_CE_IB2_BASE_HI 0x030328 /* >= gfx7 */ #define S_030328_IB2_BASE_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030328_IB2_BASE_HI(x) (((x) >> 0) & 0xFFFF) #define C_030328_IB2_BASE_HI 0xFFFF0000 #define R_03032C_CP_CE_IB2_BUFSZ 0x03032C /* >= gfx7 */ #define S_03032C_IB2_BUFSZ(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_03032C_IB2_BUFSZ(x) (((x) >> 0) & 0xFFFFF) #define C_03032C_IB2_BUFSZ 0xFFF00000 #define R_030330_CP_IB1_BASE_LO 0x030330 /* >= gfx7 */ #define S_030330_IB1_BASE_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_030330_IB1_BASE_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_030330_IB1_BASE_LO 0x00000003 #define R_030334_CP_IB1_BASE_HI 0x030334 /* >= gfx7 */ #define S_030334_IB1_BASE_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030334_IB1_BASE_HI(x) (((x) >> 0) & 0xFFFF) #define C_030334_IB1_BASE_HI 0xFFFF0000 #define R_030338_CP_IB1_BUFSZ 0x030338 /* >= gfx7 */ #define S_030338_IB1_BUFSZ(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_030338_IB1_BUFSZ(x) (((x) >> 0) & 0xFFFFF) #define C_030338_IB1_BUFSZ 0xFFF00000 #define R_03033C_CP_IB2_BASE_LO 0x03033C /* >= gfx7 */ #define S_03033C_IB2_BASE_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_03033C_IB2_BASE_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_03033C_IB2_BASE_LO 0x00000003 #define R_030340_CP_IB2_BASE_HI 0x030340 /* >= gfx7 */ #define S_030340_IB2_BASE_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030340_IB2_BASE_HI(x) (((x) >> 0) & 0xFFFF) #define C_030340_IB2_BASE_HI 0xFFFF0000 #define R_030344_CP_IB2_BUFSZ 0x030344 /* >= gfx7 */ #define S_030344_IB2_BUFSZ(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_030344_IB2_BUFSZ(x) (((x) >> 0) & 0xFFFFF) #define C_030344_IB2_BUFSZ 0xFFF00000 #define R_030348_CP_ST_BASE_LO 0x030348 /* >= gfx7 */ #define S_030348_ST_BASE_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_030348_ST_BASE_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_030348_ST_BASE_LO 0x00000003 #define R_03034C_CP_ST_BASE_HI 0x03034C /* >= gfx7 */ #define S_03034C_ST_BASE_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_03034C_ST_BASE_HI(x) (((x) >> 0) & 0xFFFF) #define C_03034C_ST_BASE_HI 0xFFFF0000 #define R_030350_CP_ST_BUFSZ 0x030350 /* >= gfx7 */ #define S_030350_ST_BUFSZ(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_030350_ST_BUFSZ(x) (((x) >> 0) & 0xFFFFF) #define C_030350_ST_BUFSZ 0xFFF00000 #define R_030354_CP_EOP_DONE_EVENT_CNTL 0x030354 /* >= gfx7 */ #define S_030354_WBINV_TC_OP(x) (((unsigned)(x) & 0x7F) << 0) /* gfx7, gfx8, gfx81, gfx9 */ #define G_030354_WBINV_TC_OP(x) (((x) >> 0) & 0x7F) #define C_030354_WBINV_TC_OP 0xFFFFFF80 #define S_030354_GCR_CNTL(x) (((unsigned)(x) & 0xFFF) << 12) /* >= gfx10 */ #define G_030354_GCR_CNTL(x) (((x) >> 12) & 0xFFF) #define C_030354_GCR_CNTL 0xFF000FFF #define S_030354_WBINV_ACTION_ENA(x) (((unsigned)(x) & 0x3F) << 12) /* gfx7, gfx8, gfx81, gfx9 */ #define G_030354_WBINV_ACTION_ENA(x) (((x) >> 12) & 0x3F) #define C_030354_WBINV_ACTION_ENA 0xFFFC0FFF #define S_030354_CACHE_CONTROL(x) (((unsigned)(x) & 0x3) << 25) /* gfx7, gfx8, gfx81 */ #define G_030354_CACHE_CONTROL(x) (((x) >> 25) & 0x3) #define C_030354_CACHE_CONTROL 0xF9FFFFFF #define S_030354_CACHE_POLICY(x) (((unsigned)(x) & 0x3) << 25) /* >= gfx9 */ #define G_030354_CACHE_POLICY(x) (((x) >> 25) & 0x3) #define C_030354_CACHE_POLICY 0xF9FFFFFF #define S_030354_EOP_VOLATILE(x) (((unsigned)(x) & 0x1) << 27) /* gfx7, >= gfx10 */ #define G_030354_EOP_VOLATILE(x) (((x) >> 27) & 0x1) #define C_030354_EOP_VOLATILE 0xF7FFFFFF #define S_030354_MTYPE(x) (((unsigned)(x) & 0x3) << 27) /* gfx8, gfx81 */ #define G_030354_MTYPE(x) (((x) >> 27) & 0x3) #define C_030354_MTYPE 0xE7FFFFFF #define S_030354_EXECUTE(x) (((unsigned)(x) & 0x1) << 28) /* >= gfx9 */ #define G_030354_EXECUTE(x) (((x) >> 28) & 0x1) #define C_030354_EXECUTE 0xEFFFFFFF #define R_030358_CP_EOP_DONE_DATA_CNTL 0x030358 /* >= gfx7 */ #define S_030358_CNTX_ID(x) (((unsigned)(x) & 0xFFFF) << 0) /* gfx7, gfx8, gfx81 */ #define G_030358_CNTX_ID(x) (((x) >> 0) & 0xFFFF) #define C_030358_CNTX_ID 0xFFFF0000 #define S_030358_DST_SEL(x) (((unsigned)(x) & 0x3) << 16) #define G_030358_DST_SEL(x) (((x) >> 16) & 0x3) #define C_030358_DST_SEL 0xFFFCFFFF #define S_030358_ACTION_PIPE_ID(x) (((unsigned)(x) & 0x3) << 20) /* >= gfx103 */ #define G_030358_ACTION_PIPE_ID(x) (((x) >> 20) & 0x3) #define C_030358_ACTION_PIPE_ID 0xFFCFFFFF #define S_030358_ACTION_ID(x) (((unsigned)(x) & 0x3) << 22) /* >= gfx103 */ #define G_030358_ACTION_ID(x) (((x) >> 22) & 0x3) #define C_030358_ACTION_ID 0xFF3FFFFF #define S_030358_INT_SEL(x) (((unsigned)(x) & 0x7) << 24) #define G_030358_INT_SEL(x) (((x) >> 24) & 0x7) #define C_030358_INT_SEL 0xF8FFFFFF #define S_030358_DATA_SEL(x) (((unsigned)(x) & 0x7) << 29) #define G_030358_DATA_SEL(x) (((x) >> 29) & 0x7) #define C_030358_DATA_SEL 0x1FFFFFFF #define R_03035C_CP_EOP_DONE_CNTX_ID 0x03035C /* >= gfx8 */ #define S_03035C_CNTX_ID(x) (((unsigned)(x) & 0xFFFFFFF) << 0) #define G_03035C_CNTX_ID(x) (((x) >> 0) & 0xFFFFFFF) #define C_03035C_CNTX_ID 0xF0000000 #define R_030360_CP_DB_BASE_LO 0x030360 /* >= gfx10 */ #define S_030360_DB_BASE_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_030360_DB_BASE_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_030360_DB_BASE_LO 0x00000003 #define R_030364_CP_DB_BASE_HI 0x030364 /* >= gfx10 */ #define S_030364_DB_BASE_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030364_DB_BASE_HI(x) (((x) >> 0) & 0xFFFF) #define C_030364_DB_BASE_HI 0xFFFF0000 #define R_030368_CP_DB_BUFSZ 0x030368 /* >= gfx10 */ #define S_030368_DB_BUFSZ(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_030368_DB_BUFSZ(x) (((x) >> 0) & 0xFFFFF) #define C_030368_DB_BUFSZ 0xFFF00000 #define R_03036C_CP_DB_CMD_BUFSZ 0x03036C /* >= gfx10 */ #define S_03036C_DB_CMD_REQSZ(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_03036C_DB_CMD_REQSZ(x) (((x) >> 0) & 0xFFFFF) #define C_03036C_DB_CMD_REQSZ 0xFFF00000 #define R_030370_CP_CE_DB_BASE_LO 0x030370 /* >= gfx10 */ #define S_030370_DB_BASE_LO(x) (((unsigned)(x) & 0x3FFFFFFF) << 2) #define G_030370_DB_BASE_LO(x) (((x) >> 2) & 0x3FFFFFFF) #define C_030370_DB_BASE_LO 0x00000003 #define R_030374_CP_CE_DB_BASE_HI 0x030374 /* >= gfx10 */ #define S_030374_DB_BASE_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030374_DB_BASE_HI(x) (((x) >> 0) & 0xFFFF) #define C_030374_DB_BASE_HI 0xFFFF0000 #define R_030378_CP_CE_DB_BUFSZ 0x030378 /* >= gfx10 */ #define S_030378_DB_BUFSZ(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_030378_DB_BUFSZ(x) (((x) >> 0) & 0xFFFFF) #define C_030378_DB_BUFSZ 0xFFF00000 #define R_03037C_CP_CE_DB_CMD_BUFSZ 0x03037C /* >= gfx10 */ #define S_03037C_DB_CMD_REQSZ(x) (((unsigned)(x) & 0xFFFFF) << 0) #define G_03037C_DB_CMD_REQSZ(x) (((x) >> 0) & 0xFFFFF) #define C_03037C_DB_CMD_REQSZ 0xFFF00000 #define R_0303B0_CP_PFP_COMPLETION_STATUS 0x0303B0 /* >= gfx8 */ #define S_0303B0_STATUS(x) (((unsigned)(x) & 0x3) << 0) #define G_0303B0_STATUS(x) (((x) >> 0) & 0x3) #define C_0303B0_STATUS 0xFFFFFFFC #define R_0303B4_CP_CE_COMPLETION_STATUS 0x0303B4 /* >= gfx8 */ #define S_0303B4_STATUS(x) (((unsigned)(x) & 0x3) << 0) #define G_0303B4_STATUS(x) (((x) >> 0) & 0x3) #define C_0303B4_STATUS 0xFFFFFFFC #define R_0303B8_CP_PRED_NOT_VISIBLE 0x0303B8 /* >= gfx8 */ #define S_0303B8_NOT_VISIBLE(x) (((unsigned)(x) & 0x1) << 0) #define G_0303B8_NOT_VISIBLE(x) (((x) >> 0) & 0x1) #define C_0303B8_NOT_VISIBLE 0xFFFFFFFE #define R_0303C0_CP_PFP_METADATA_BASE_ADDR 0x0303C0 /* >= gfx8 */ #define R_0303C4_CP_PFP_METADATA_BASE_ADDR_HI 0x0303C4 /* >= gfx8 */ #define S_0303C4_ADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_0303C4_ADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_0303C4_ADDR_HI 0xFFFF0000 #define R_0303C8_CP_CE_METADATA_BASE_ADDR 0x0303C8 /* >= gfx8 */ #define R_0303CC_CP_CE_METADATA_BASE_ADDR_HI 0x0303CC /* >= gfx8 */ #define S_0303CC_ADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_0303CC_ADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_0303CC_ADDR_HI 0xFFFF0000 #define R_0303D0_CP_DRAW_INDX_INDR_ADDR 0x0303D0 /* >= gfx8 */ #define R_0303D4_CP_DRAW_INDX_INDR_ADDR_HI 0x0303D4 /* >= gfx8 */ #define S_0303D4_ADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_0303D4_ADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_0303D4_ADDR_HI 0xFFFF0000 #define R_0303D8_CP_DISPATCH_INDR_ADDR 0x0303D8 /* >= gfx8 */ #define R_0303DC_CP_DISPATCH_INDR_ADDR_HI 0x0303DC /* >= gfx8 */ #define S_0303DC_ADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_0303DC_ADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_0303DC_ADDR_HI 0xFFFF0000 #define R_0303E0_CP_INDEX_BASE_ADDR 0x0303E0 /* >= gfx8 */ #define R_0303E4_CP_INDEX_BASE_ADDR_HI 0x0303E4 /* >= gfx8 */ #define S_0303E4_ADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_0303E4_ADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_0303E4_ADDR_HI 0xFFFF0000 #define R_0303E8_CP_INDEX_TYPE 0x0303E8 /* >= gfx8 */ #define S_0303E8_INDEX_TYPE(x) (((unsigned)(x) & 0x3) << 0) #define G_0303E8_INDEX_TYPE(x) (((x) >> 0) & 0x3) #define C_0303E8_INDEX_TYPE 0xFFFFFFFC #define V_0303E8_VGT_INDEX_16 0 #define V_0303E8_VGT_INDEX_32 1 #define V_0303E8_VGT_INDEX_8 2 #define R_0303EC_CP_GDS_BKUP_ADDR 0x0303EC /* >= gfx8 */ #define R_0303F0_CP_GDS_BKUP_ADDR_HI 0x0303F0 /* >= gfx8 */ #define S_0303F0_ADDR_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_0303F0_ADDR_HI(x) (((x) >> 0) & 0xFFFF) #define C_0303F0_ADDR_HI 0xFFFF0000 #define R_0303F4_CP_SAMPLE_STATUS 0x0303F4 /* >= gfx8 */ #define S_0303F4_Z_PASS_ACITVE(x) (((unsigned)(x) & 0x1) << 0) #define G_0303F4_Z_PASS_ACITVE(x) (((x) >> 0) & 0x1) #define C_0303F4_Z_PASS_ACITVE 0xFFFFFFFE #define S_0303F4_STREAMOUT_ACTIVE(x) (((unsigned)(x) & 0x1) << 1) #define G_0303F4_STREAMOUT_ACTIVE(x) (((x) >> 1) & 0x1) #define C_0303F4_STREAMOUT_ACTIVE 0xFFFFFFFD #define S_0303F4_PIPELINE_ACTIVE(x) (((unsigned)(x) & 0x1) << 2) #define G_0303F4_PIPELINE_ACTIVE(x) (((x) >> 2) & 0x1) #define C_0303F4_PIPELINE_ACTIVE 0xFFFFFFFB #define S_0303F4_STIPPLE_ACTIVE(x) (((unsigned)(x) & 0x1) << 3) #define G_0303F4_STIPPLE_ACTIVE(x) (((x) >> 3) & 0x1) #define C_0303F4_STIPPLE_ACTIVE 0xFFFFFFF7 #define S_0303F4_VGT_BUFFERS_ACTIVE(x) (((unsigned)(x) & 0x1) << 4) #define G_0303F4_VGT_BUFFERS_ACTIVE(x) (((x) >> 4) & 0x1) #define C_0303F4_VGT_BUFFERS_ACTIVE 0xFFFFFFEF #define S_0303F4_SCREEN_EXT_ACTIVE(x) (((unsigned)(x) & 0x1) << 5) #define G_0303F4_SCREEN_EXT_ACTIVE(x) (((x) >> 5) & 0x1) #define C_0303F4_SCREEN_EXT_ACTIVE 0xFFFFFFDF #define S_0303F4_DRAW_INDIRECT_ACTIVE(x) (((unsigned)(x) & 0x1) << 6) #define G_0303F4_DRAW_INDIRECT_ACTIVE(x) (((x) >> 6) & 0x1) #define C_0303F4_DRAW_INDIRECT_ACTIVE 0xFFFFFFBF #define S_0303F4_DISP_INDIRECT_ACTIVE(x) (((unsigned)(x) & 0x1) << 7) #define G_0303F4_DISP_INDIRECT_ACTIVE(x) (((x) >> 7) & 0x1) #define C_0303F4_DISP_INDIRECT_ACTIVE 0xFFFFFF7F #define R_0303F8_CP_ME_COHER_CNTL 0x0303F8 /* >= gfx9 */ #define S_0303F8_DEST_BASE_0_ENA(x) (((unsigned)(x) & 0x1) << 0) #define G_0303F8_DEST_BASE_0_ENA(x) (((x) >> 0) & 0x1) #define C_0303F8_DEST_BASE_0_ENA 0xFFFFFFFE #define S_0303F8_DEST_BASE_1_ENA(x) (((unsigned)(x) & 0x1) << 1) #define G_0303F8_DEST_BASE_1_ENA(x) (((x) >> 1) & 0x1) #define C_0303F8_DEST_BASE_1_ENA 0xFFFFFFFD #define S_0303F8_CB0_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 6) #define G_0303F8_CB0_DEST_BASE_ENA(x) (((x) >> 6) & 0x1) #define C_0303F8_CB0_DEST_BASE_ENA 0xFFFFFFBF #define S_0303F8_CB1_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 7) #define G_0303F8_CB1_DEST_BASE_ENA(x) (((x) >> 7) & 0x1) #define C_0303F8_CB1_DEST_BASE_ENA 0xFFFFFF7F #define S_0303F8_CB2_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 8) #define G_0303F8_CB2_DEST_BASE_ENA(x) (((x) >> 8) & 0x1) #define C_0303F8_CB2_DEST_BASE_ENA 0xFFFFFEFF #define S_0303F8_CB3_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 9) #define G_0303F8_CB3_DEST_BASE_ENA(x) (((x) >> 9) & 0x1) #define C_0303F8_CB3_DEST_BASE_ENA 0xFFFFFDFF #define S_0303F8_CB4_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 10) #define G_0303F8_CB4_DEST_BASE_ENA(x) (((x) >> 10) & 0x1) #define C_0303F8_CB4_DEST_BASE_ENA 0xFFFFFBFF #define S_0303F8_CB5_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 11) #define G_0303F8_CB5_DEST_BASE_ENA(x) (((x) >> 11) & 0x1) #define C_0303F8_CB5_DEST_BASE_ENA 0xFFFFF7FF #define S_0303F8_CB6_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 12) #define G_0303F8_CB6_DEST_BASE_ENA(x) (((x) >> 12) & 0x1) #define C_0303F8_CB6_DEST_BASE_ENA 0xFFFFEFFF #define S_0303F8_CB7_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 13) #define G_0303F8_CB7_DEST_BASE_ENA(x) (((x) >> 13) & 0x1) #define C_0303F8_CB7_DEST_BASE_ENA 0xFFFFDFFF #define S_0303F8_DB_DEST_BASE_ENA(x) (((unsigned)(x) & 0x1) << 14) #define G_0303F8_DB_DEST_BASE_ENA(x) (((x) >> 14) & 0x1) #define C_0303F8_DB_DEST_BASE_ENA 0xFFFFBFFF #define S_0303F8_DEST_BASE_2_ENA(x) (((unsigned)(x) & 0x1) << 19) #define G_0303F8_DEST_BASE_2_ENA(x) (((x) >> 19) & 0x1) #define C_0303F8_DEST_BASE_2_ENA 0xFFF7FFFF #define S_0303F8_DEST_BASE_3_ENA(x) (((unsigned)(x) & 0x1) << 21) #define G_0303F8_DEST_BASE_3_ENA(x) (((x) >> 21) & 0x1) #define C_0303F8_DEST_BASE_3_ENA 0xFFDFFFFF #define R_0303FC_CP_ME_COHER_SIZE 0x0303FC /* >= gfx9 */ #define R_030400_CP_ME_COHER_SIZE_HI 0x030400 /* >= gfx9 */ #define S_030400_COHER_SIZE_HI_256B(x) (((unsigned)(x) & 0xFF) << 0) #define G_030400_COHER_SIZE_HI_256B(x) (((x) >> 0) & 0xFF) #define C_030400_COHER_SIZE_HI_256B 0xFFFFFF00 #define R_030404_CP_ME_COHER_BASE 0x030404 /* >= gfx9 */ #define R_030408_CP_ME_COHER_BASE_HI 0x030408 /* >= gfx9 */ #define S_030408_COHER_BASE_HI_256B(x) (((unsigned)(x) & 0xFF) << 0) #define G_030408_COHER_BASE_HI_256B(x) (((x) >> 0) & 0xFF) #define C_030408_COHER_BASE_HI_256B 0xFFFFFF00 #define R_03040C_CP_ME_COHER_STATUS 0x03040C /* >= gfx9 */ #define S_03040C_MATCHING_GFX_CNTX(x) (((unsigned)(x) & 0xFF) << 0) #define G_03040C_MATCHING_GFX_CNTX(x) (((x) >> 0) & 0xFF) #define C_03040C_MATCHING_GFX_CNTX 0xFFFFFF00 #define S_03040C_STATUS(x) (((unsigned)(x) & 0x1) << 31) #define G_03040C_STATUS(x) (((x) >> 31) & 0x1) #define C_03040C_STATUS 0x7FFFFFFF #define R_030500_RLC_GPM_PERF_COUNT_0 0x030500 /* >= gfx9 */ #define S_030500_FEATURE_SEL(x) (((unsigned)(x) & 0xF) << 0) #define G_030500_FEATURE_SEL(x) (((x) >> 0) & 0xF) #define C_030500_FEATURE_SEL 0xFFFFFFF0 #define S_030500_SE_INDEX(x) (((unsigned)(x) & 0xF) << 4) #define G_030500_SE_INDEX(x) (((x) >> 4) & 0xF) #define C_030500_SE_INDEX 0xFFFFFF0F #define S_030500_SA_INDEX(x) (((unsigned)(x) & 0xF) << 8) /* >= gfx10 */ #define G_030500_SA_INDEX(x) (((x) >> 8) & 0xF) #define C_030500_SA_INDEX 0xFFFFF0FF #define S_030500_SH_INDEX(x) (((unsigned)(x) & 0xF) << 8) /* gfx9 */ #define G_030500_SH_INDEX(x) (((x) >> 8) & 0xF) #define C_030500_SH_INDEX 0xFFFFF0FF #define S_030500_CU_INDEX(x) (((unsigned)(x) & 0xF) << 12) /* gfx9 */ #define G_030500_CU_INDEX(x) (((x) >> 12) & 0xF) #define C_030500_CU_INDEX 0xFFFF0FFF #define S_030500_WGP_INDEX(x) (((unsigned)(x) & 0xF) << 12) /* >= gfx10 */ #define G_030500_WGP_INDEX(x) (((x) >> 12) & 0xF) #define C_030500_WGP_INDEX 0xFFFF0FFF #define S_030500_EVENT_SEL(x) (((unsigned)(x) & 0x3) << 16) #define G_030500_EVENT_SEL(x) (((x) >> 16) & 0x3) #define C_030500_EVENT_SEL 0xFFFCFFFF #define S_030500_UNUSED(x) (((unsigned)(x) & 0x3) << 18) #define G_030500_UNUSED(x) (((x) >> 18) & 0x3) #define C_030500_UNUSED 0xFFF3FFFF #define S_030500_ENABLE(x) (((unsigned)(x) & 0x1) << 20) #define G_030500_ENABLE(x) (((x) >> 20) & 0x1) #define C_030500_ENABLE 0xFFEFFFFF #define R_030504_RLC_GPM_PERF_COUNT_1 0x030504 /* >= gfx9 */ #define R_030800_GRBM_GFX_INDEX 0x030800 /* >= gfx7 */ #define S_030800_INSTANCE_INDEX(x) (((unsigned)(x) & 0xFF) << 0) #define G_030800_INSTANCE_INDEX(x) (((x) >> 0) & 0xFF) #define C_030800_INSTANCE_INDEX 0xFFFFFF00 #define S_030800_SA_INDEX(x) (((unsigned)(x) & 0xFF) << 8) /* >= gfx10 */ #define G_030800_SA_INDEX(x) (((x) >> 8) & 0xFF) #define C_030800_SA_INDEX 0xFFFF00FF #define S_030800_SH_INDEX(x) (((unsigned)(x) & 0xFF) << 8) /* gfx7, gfx8, gfx81, gfx9 */ #define G_030800_SH_INDEX(x) (((x) >> 8) & 0xFF) #define C_030800_SH_INDEX 0xFFFF00FF #define S_030800_SE_INDEX(x) (((unsigned)(x) & 0xFF) << 16) #define G_030800_SE_INDEX(x) (((x) >> 16) & 0xFF) #define C_030800_SE_INDEX 0xFF00FFFF #define S_030800_SA_BROADCAST_WRITES(x) (((unsigned)(x) & 0x1) << 29) /* >= gfx10 */ #define G_030800_SA_BROADCAST_WRITES(x) (((x) >> 29) & 0x1) #define C_030800_SA_BROADCAST_WRITES 0xDFFFFFFF #define S_030800_SH_BROADCAST_WRITES(x) (((unsigned)(x) & 0x1) << 29) /* gfx7, gfx8, gfx81, gfx9 */ #define G_030800_SH_BROADCAST_WRITES(x) (((x) >> 29) & 0x1) #define C_030800_SH_BROADCAST_WRITES 0xDFFFFFFF #define S_030800_INSTANCE_BROADCAST_WRITES(x) (((unsigned)(x) & 0x1) << 30) #define G_030800_INSTANCE_BROADCAST_WRITES(x) (((x) >> 30) & 0x1) #define C_030800_INSTANCE_BROADCAST_WRITES 0xBFFFFFFF #define S_030800_SE_BROADCAST_WRITES(x) (((unsigned)(x) & 0x1) << 31) #define G_030800_SE_BROADCAST_WRITES(x) (((x) >> 31) & 0x1) #define C_030800_SE_BROADCAST_WRITES 0x7FFFFFFF #define R_030900_VGT_ESGS_RING_SIZE 0x030900 /* gfx7, gfx8, gfx81 */ #define R_030900_VGT_ESGS_RING_SIZE_UMD 0x030900 /* >= gfx10 */ #define R_030904_VGT_GSVS_RING_SIZE 0x030904 /* gfx7, gfx8, gfx81, gfx9 */ #define R_030904_VGT_GSVS_RING_SIZE_UMD 0x030904 /* >= gfx10 */ #define R_030908_VGT_PRIMITIVE_TYPE 0x030908 /* >= gfx7 */ #define S_030908_PRIM_TYPE(x) (((unsigned)(x) & 0x3F) << 0) #define G_030908_PRIM_TYPE(x) (((x) >> 0) & 0x3F) #define C_030908_PRIM_TYPE 0xFFFFFFC0 #define V_030908_DI_PT_NONE 0 #define V_030908_DI_PT_POINTLIST 1 #define V_030908_DI_PT_LINELIST 2 #define V_030908_DI_PT_LINESTRIP 3 #define V_030908_DI_PT_TRILIST 4 #define V_030908_DI_PT_TRIFAN 5 #define V_030908_DI_PT_TRISTRIP 6 #define V_030908_DI_PT_2D_RECTANGLE 7 /* >= gfx9 */ #define V_030908_DI_PT_UNUSED_0 7 /* gfx7, gfx8, gfx81 */ #define V_030908_DI_PT_UNUSED_1 8 #define V_030908_DI_PT_PATCH 9 #define V_030908_DI_PT_LINELIST_ADJ 10 #define V_030908_DI_PT_LINESTRIP_ADJ 11 #define V_030908_DI_PT_TRILIST_ADJ 12 #define V_030908_DI_PT_TRISTRIP_ADJ 13 #define V_030908_DI_PT_UNUSED_3 14 #define V_030908_DI_PT_UNUSED_4 15 #define V_030908_DI_PT_TRI_WITH_WFLAGS 16 #define V_030908_DI_PT_RECTLIST 17 #define V_030908_DI_PT_LINELOOP 18 #define V_030908_DI_PT_QUADLIST 19 #define V_030908_DI_PT_QUADSTRIP 20 #define V_030908_DI_PT_POLYGON 21 #define V_030908_DI_PT_2D_COPY_RECT_LIST_V0 22 /* gfx7, gfx8, gfx81 */ #define V_030908_DI_PT_2D_COPY_RECT_LIST_V1 23 /* gfx7, gfx8, gfx81 */ #define V_030908_DI_PT_2D_COPY_RECT_LIST_V2 24 /* gfx7, gfx8, gfx81 */ #define V_030908_DI_PT_2D_COPY_RECT_LIST_V3 25 /* gfx7, gfx8, gfx81 */ #define V_030908_DI_PT_2D_FILL_RECT_LIST 26 /* gfx7, gfx8, gfx81 */ #define V_030908_DI_PT_2D_LINE_STRIP 27 /* gfx7, gfx8, gfx81 */ #define V_030908_DI_PT_2D_TRI_STRIP 28 /* gfx7, gfx8, gfx81 */ #define R_03090C_VGT_INDEX_TYPE 0x03090C /* >= gfx7 */ #define S_03090C_INDEX_TYPE(x) (((unsigned)(x) & 0x3) << 0) #define G_03090C_INDEX_TYPE(x) (((x) >> 0) & 0x3) #define C_03090C_INDEX_TYPE 0xFFFFFFFC #define V_03090C_VGT_INDEX_16 0 #define V_03090C_VGT_INDEX_32 1 #define V_03090C_VGT_INDEX_8 2 /* >= gfx8 */ #define S_03090C_PRIMGEN_EN(x) (((unsigned)(x) & 0x1) << 8) /* gfx9 */ #define G_03090C_PRIMGEN_EN(x) (((x) >> 8) & 0x1) #define C_03090C_PRIMGEN_EN 0xFFFFFEFF #define S_03090C_DISABLE_INSTANCE_PACKING(x) (((unsigned)(x) & 0x1) << 14) /* >= gfx103 */ #define G_03090C_DISABLE_INSTANCE_PACKING(x) (((x) >> 14) & 0x1) #define C_03090C_DISABLE_INSTANCE_PACKING 0xFFFFBFFF #define R_030910_VGT_STRMOUT_BUFFER_FILLED_SIZE_0 0x030910 /* >= gfx7 */ #define R_030914_VGT_STRMOUT_BUFFER_FILLED_SIZE_1 0x030914 /* >= gfx7 */ #define R_030918_VGT_STRMOUT_BUFFER_FILLED_SIZE_2 0x030918 /* >= gfx7 */ #define R_03091C_VGT_STRMOUT_BUFFER_FILLED_SIZE_3 0x03091C /* >= gfx7 */ #define R_030920_VGT_MAX_VTX_INDX 0x030920 /* gfx9 */ #define R_030924_GE_MIN_VTX_INDX 0x030924 /* >= gfx10 */ #define R_030924_VGT_MIN_VTX_INDX 0x030924 /* gfx9 */ #define R_030928_GE_INDX_OFFSET 0x030928 /* >= gfx10 */ #define R_030928_VGT_INDX_OFFSET 0x030928 /* gfx9 */ #define R_03092C_GE_MULTI_PRIM_IB_RESET_EN 0x03092C /* >= gfx10 */ #define S_03092C_RESET_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_03092C_RESET_EN(x) (((x) >> 0) & 0x1) #define C_03092C_RESET_EN 0xFFFFFFFE #define S_03092C_MATCH_ALL_BITS(x) (((unsigned)(x) & 0x1) << 1) #define G_03092C_MATCH_ALL_BITS(x) (((x) >> 1) & 0x1) #define C_03092C_MATCH_ALL_BITS 0xFFFFFFFD #define R_03092C_VGT_MULTI_PRIM_IB_RESET_EN 0x03092C /* gfx9 */ #define R_030930_VGT_NUM_INDICES 0x030930 /* >= gfx7 */ #define R_030934_VGT_NUM_INSTANCES 0x030934 /* >= gfx7 */ #define R_030938_VGT_TF_RING_SIZE 0x030938 /* gfx7, gfx8, gfx81, gfx9 */ #define S_030938_SIZE(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030938_SIZE(x) (((x) >> 0) & 0xFFFF) #define C_030938_SIZE 0xFFFF0000 #define R_030938_VGT_TF_RING_SIZE_UMD 0x030938 /* >= gfx10 */ #define R_03093C_VGT_HS_OFFCHIP_PARAM 0x03093C /* gfx7, gfx8, gfx81, gfx9 */ #define S_03093C_OFFCHIP_BUFFERING_GFX7(x) (((unsigned)(x) & 0x1FF) << 0) #define G_03093C_OFFCHIP_BUFFERING_GFX7(x) (((x) >> 0) & 0x1FF) #define C_03093C_OFFCHIP_BUFFERING_GFX7 0xFFFFFE00 #define S_03093C_OFFCHIP_GRANULARITY_GFX7(x) (((unsigned)(x) & 0x3) << 9) #define G_03093C_OFFCHIP_GRANULARITY_GFX7(x) (((x) >> 9) & 0x3) #define C_03093C_OFFCHIP_GRANULARITY_GFX7 0xFFFFF9FF #define V_03093C_X_8K_DWORDS 0 #define V_03093C_X_4K_DWORDS 1 #define V_03093C_X_2K_DWORDS 2 #define V_03093C_X_1K_DWORDS 3 #define R_03093C_VGT_HS_OFFCHIP_PARAM_UMD 0x03093C /* >= gfx10 */ #define S_03093C_OFFCHIP_BUFFERING_GFX103(x) (((unsigned)(x) & 0x3FF) << 0) /* >= gfx103 */ #define G_03093C_OFFCHIP_BUFFERING_GFX103(x) (((x) >> 0) & 0x3FF) #define C_03093C_OFFCHIP_BUFFERING_GFX103 0xFFFFFC00 #define S_03093C_OFFCHIP_GRANULARITY_GFX103(x) (((unsigned)(x) & 0x3) << 10) /* >= gfx103 */ #define G_03093C_OFFCHIP_GRANULARITY_GFX103(x) (((x) >> 10) & 0x3) #define C_03093C_OFFCHIP_GRANULARITY_GFX103 0xFFFFF3FF #define R_030940_VGT_TF_MEMORY_BASE 0x030940 /* gfx7, gfx8, gfx81, gfx9 */ #define R_030940_VGT_TF_MEMORY_BASE_UMD 0x030940 /* >= gfx10 */ #define R_030944_GE_DMA_FIRST_INDEX 0x030944 /* >= gfx10 */ #define R_030944_VGT_TF_MEMORY_BASE_HI 0x030944 /* gfx9 */ #define S_030944_BASE_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_030944_BASE_HI(x) (((x) >> 0) & 0xFF) #define C_030944_BASE_HI 0xFFFFFF00 #define R_030948_WD_POS_BUF_BASE 0x030948 /* >= gfx9 */ #define R_03094C_WD_POS_BUF_BASE_HI 0x03094C /* >= gfx9 */ #define S_03094C_BASE_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_03094C_BASE_HI(x) (((x) >> 0) & 0xFF) #define C_03094C_BASE_HI 0xFFFFFF00 #define R_030950_WD_CNTL_SB_BUF_BASE 0x030950 /* >= gfx9 */ #define R_030954_WD_CNTL_SB_BUF_BASE_HI 0x030954 /* >= gfx9 */ #define S_030954_BASE_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_030954_BASE_HI(x) (((x) >> 0) & 0xFF) #define C_030954_BASE_HI 0xFFFFFF00 #define R_030958_WD_INDEX_BUF_BASE 0x030958 /* >= gfx9 */ #define R_03095C_WD_INDEX_BUF_BASE_HI 0x03095C /* >= gfx9 */ #define S_03095C_BASE_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_03095C_BASE_HI(x) (((x) >> 0) & 0xFF) #define C_03095C_BASE_HI 0xFFFFFF00 #define R_030960_IA_MULTI_VGT_PARAM 0x030960 /* gfx9 */ #define S_030960_PRIMGROUP_SIZE(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030960_PRIMGROUP_SIZE(x) (((x) >> 0) & 0xFFFF) #define C_030960_PRIMGROUP_SIZE 0xFFFF0000 #define S_030960_PARTIAL_VS_WAVE_ON(x) (((unsigned)(x) & 0x1) << 16) #define G_030960_PARTIAL_VS_WAVE_ON(x) (((x) >> 16) & 0x1) #define C_030960_PARTIAL_VS_WAVE_ON 0xFFFEFFFF #define S_030960_SWITCH_ON_EOP(x) (((unsigned)(x) & 0x1) << 17) #define G_030960_SWITCH_ON_EOP(x) (((x) >> 17) & 0x1) #define C_030960_SWITCH_ON_EOP 0xFFFDFFFF #define S_030960_PARTIAL_ES_WAVE_ON(x) (((unsigned)(x) & 0x1) << 18) #define G_030960_PARTIAL_ES_WAVE_ON(x) (((x) >> 18) & 0x1) #define C_030960_PARTIAL_ES_WAVE_ON 0xFFFBFFFF #define S_030960_SWITCH_ON_EOI(x) (((unsigned)(x) & 0x1) << 19) #define G_030960_SWITCH_ON_EOI(x) (((x) >> 19) & 0x1) #define C_030960_SWITCH_ON_EOI 0xFFF7FFFF #define S_030960_WD_SWITCH_ON_EOP(x) (((unsigned)(x) & 0x1) << 20) #define G_030960_WD_SWITCH_ON_EOP(x) (((x) >> 20) & 0x1) #define C_030960_WD_SWITCH_ON_EOP 0xFFEFFFFF #define S_030960_EN_INST_OPT_BASIC(x) (((unsigned)(x) & 0x1) << 21) #define G_030960_EN_INST_OPT_BASIC(x) (((x) >> 21) & 0x1) #define C_030960_EN_INST_OPT_BASIC 0xFFDFFFFF #define S_030960_EN_INST_OPT_ADV(x) (((unsigned)(x) & 0x1) << 22) #define G_030960_EN_INST_OPT_ADV(x) (((x) >> 22) & 0x1) #define C_030960_EN_INST_OPT_ADV 0xFFBFFFFF #define S_030960_HW_USE_ONLY(x) (((unsigned)(x) & 0x1) << 23) #define G_030960_HW_USE_ONLY(x) (((x) >> 23) & 0x1) #define C_030960_HW_USE_ONLY 0xFF7FFFFF #define R_030960_IA_MULTI_VGT_PARAM_PIPED 0x030960 /* >= gfx10 */ #define R_030964_GE_MAX_VTX_INDX 0x030964 /* >= gfx10 */ #define R_030968_VGT_INSTANCE_BASE_ID 0x030968 /* >= gfx9 */ #define R_03096C_GE_CNTL 0x03096C /* >= gfx10 */ #define S_03096C_PRIM_GRP_SIZE(x) (((unsigned)(x) & 0x1FF) << 0) #define G_03096C_PRIM_GRP_SIZE(x) (((x) >> 0) & 0x1FF) #define C_03096C_PRIM_GRP_SIZE 0xFFFFFE00 #define S_03096C_VERT_GRP_SIZE(x) (((unsigned)(x) & 0x1FF) << 9) #define G_03096C_VERT_GRP_SIZE(x) (((x) >> 9) & 0x1FF) #define C_03096C_VERT_GRP_SIZE 0xFFFC01FF #define S_03096C_BREAK_WAVE_AT_EOI(x) (((unsigned)(x) & 0x1) << 18) #define G_03096C_BREAK_WAVE_AT_EOI(x) (((x) >> 18) & 0x1) #define C_03096C_BREAK_WAVE_AT_EOI 0xFFFBFFFF #define S_03096C_PACKET_TO_ONE_PA(x) (((unsigned)(x) & 0x1) << 19) #define G_03096C_PACKET_TO_ONE_PA(x) (((x) >> 19) & 0x1) #define C_03096C_PACKET_TO_ONE_PA 0xFFF7FFFF #define R_030970_GE_USER_VGPR1 0x030970 /* >= gfx10 */ #define R_030974_GE_USER_VGPR2 0x030974 /* >= gfx10 */ #define R_030978_GE_USER_VGPR3 0x030978 /* >= gfx10 */ #define R_03097C_GE_STEREO_CNTL 0x03097C /* >= gfx10 */ #define S_03097C_RT_SLICE(x) (((unsigned)(x) & 0x7) << 0) #define G_03097C_RT_SLICE(x) (((x) >> 0) & 0x7) #define C_03097C_RT_SLICE 0xFFFFFFF8 #define S_03097C_VIEWPORT(x) (((unsigned)(x) & 0xF) << 3) #define G_03097C_VIEWPORT(x) (((x) >> 3) & 0xF) #define C_03097C_VIEWPORT 0xFFFFFF87 #define S_03097C_EN_STEREO(x) (((unsigned)(x) & 0x1) << 8) #define G_03097C_EN_STEREO(x) (((x) >> 8) & 0x1) #define C_03097C_EN_STEREO 0xFFFFFEFF #define R_030980_GE_PC_ALLOC 0x030980 /* >= gfx10 */ #define S_030980_OVERSUB_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_030980_OVERSUB_EN(x) (((x) >> 0) & 0x1) #define C_030980_OVERSUB_EN 0xFFFFFFFE #define S_030980_NUM_PC_LINES(x) (((unsigned)(x) & 0x3FF) << 1) #define G_030980_NUM_PC_LINES(x) (((x) >> 1) & 0x3FF) #define C_030980_NUM_PC_LINES 0xFFFFF801 #define R_030984_VGT_TF_MEMORY_BASE_HI_UMD 0x030984 /* >= gfx10 */ #define S_030984_BASE_HI(x) (((unsigned)(x) & 0xFF) << 0) #define G_030984_BASE_HI(x) (((x) >> 0) & 0xFF) #define C_030984_BASE_HI 0xFFFFFF00 #define R_030988_GE_USER_VGPR_EN 0x030988 /* >= gfx10 */ #define S_030988_EN_USER_VGPR1(x) (((unsigned)(x) & 0x1) << 0) #define G_030988_EN_USER_VGPR1(x) (((x) >> 0) & 0x1) #define C_030988_EN_USER_VGPR1 0xFFFFFFFE #define S_030988_EN_USER_VGPR2(x) (((unsigned)(x) & 0x1) << 1) #define G_030988_EN_USER_VGPR2(x) (((x) >> 1) & 0x1) #define C_030988_EN_USER_VGPR2 0xFFFFFFFD #define S_030988_EN_USER_VGPR3(x) (((unsigned)(x) & 0x1) << 2) #define G_030988_EN_USER_VGPR3(x) (((x) >> 2) & 0x1) #define C_030988_EN_USER_VGPR3 0xFFFFFFFB #define R_03098C_GE_VRS_RATE 0x03098C /* >= gfx103 */ #define S_03098C_RATE_X(x) (((unsigned)(x) & 0x3) << 0) #define G_03098C_RATE_X(x) (((x) >> 0) & 0x3) #define C_03098C_RATE_X 0xFFFFFFFC #define S_03098C_RATE_Y(x) (((unsigned)(x) & 0x3) << 4) #define G_03098C_RATE_Y(x) (((x) >> 4) & 0x3) #define C_03098C_RATE_Y 0xFFFFFFCF #define R_030A00_PA_SU_LINE_STIPPLE_VALUE 0x030A00 /* >= gfx7 */ #define S_030A00_LINE_STIPPLE_VALUE(x) (((unsigned)(x) & 0xFFFFFF) << 0) #define G_030A00_LINE_STIPPLE_VALUE(x) (((x) >> 0) & 0xFFFFFF) #define C_030A00_LINE_STIPPLE_VALUE 0xFF000000 #define R_030A04_PA_SC_LINE_STIPPLE_STATE 0x030A04 /* >= gfx7 */ #define S_030A04_CURRENT_PTR(x) (((unsigned)(x) & 0xF) << 0) #define G_030A04_CURRENT_PTR(x) (((x) >> 0) & 0xF) #define C_030A04_CURRENT_PTR 0xFFFFFFF0 #define S_030A04_CURRENT_COUNT(x) (((unsigned)(x) & 0xFF) << 8) #define G_030A04_CURRENT_COUNT(x) (((x) >> 8) & 0xFF) #define C_030A04_CURRENT_COUNT 0xFFFF00FF #define R_030A10_PA_SC_SCREEN_EXTENT_MIN_0 0x030A10 /* >= gfx7 */ #define S_030A10_X(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030A10_X(x) (((x) >> 0) & 0xFFFF) #define C_030A10_X 0xFFFF0000 #define S_030A10_Y(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_030A10_Y(x) (((x) >> 16) & 0xFFFF) #define C_030A10_Y 0x0000FFFF #define R_030A14_PA_SC_SCREEN_EXTENT_MAX_0 0x030A14 /* >= gfx7 */ #define S_030A14_X(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030A14_X(x) (((x) >> 0) & 0xFFFF) #define C_030A14_X 0xFFFF0000 #define S_030A14_Y(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_030A14_Y(x) (((x) >> 16) & 0xFFFF) #define C_030A14_Y 0x0000FFFF #define R_030A18_PA_SC_SCREEN_EXTENT_MIN_1 0x030A18 /* >= gfx7 */ #define R_030A2C_PA_SC_SCREEN_EXTENT_MAX_1 0x030A2C /* >= gfx7 */ #define R_030A80_PA_SC_P3D_TRAP_SCREEN_HV_EN 0x030A80 /* >= gfx7 */ #define S_030A80_ENABLE_HV_PRE_SHADER(x) (((unsigned)(x) & 0x1) << 0) #define G_030A80_ENABLE_HV_PRE_SHADER(x) (((x) >> 0) & 0x1) #define C_030A80_ENABLE_HV_PRE_SHADER 0xFFFFFFFE #define S_030A80_FORCE_PRE_SHADER_ALL_PIXELS(x) (((unsigned)(x) & 0x1) << 1) #define G_030A80_FORCE_PRE_SHADER_ALL_PIXELS(x) (((x) >> 1) & 0x1) #define C_030A80_FORCE_PRE_SHADER_ALL_PIXELS 0xFFFFFFFD #define R_030A84_PA_SC_P3D_TRAP_SCREEN_H 0x030A84 /* >= gfx7 */ #define S_030A84_X_COORD(x) (((unsigned)(x) & 0x3FFF) << 0) #define G_030A84_X_COORD(x) (((x) >> 0) & 0x3FFF) #define C_030A84_X_COORD 0xFFFFC000 #define R_030A88_PA_SC_P3D_TRAP_SCREEN_V 0x030A88 /* >= gfx7 */ #define S_030A88_Y_COORD(x) (((unsigned)(x) & 0x3FFF) << 0) #define G_030A88_Y_COORD(x) (((x) >> 0) & 0x3FFF) #define C_030A88_Y_COORD 0xFFFFC000 #define R_030A8C_PA_SC_P3D_TRAP_SCREEN_OCCURRENCE 0x030A8C /* >= gfx7 */ #define S_030A8C_COUNT(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030A8C_COUNT(x) (((x) >> 0) & 0xFFFF) #define C_030A8C_COUNT 0xFFFF0000 #define R_030A90_PA_SC_P3D_TRAP_SCREEN_COUNT 0x030A90 /* >= gfx7 */ #define S_030A90_COUNT(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030A90_COUNT(x) (((x) >> 0) & 0xFFFF) #define C_030A90_COUNT 0xFFFF0000 #define R_030AA0_PA_SC_HP3D_TRAP_SCREEN_HV_EN 0x030AA0 /* >= gfx7 */ #define S_030AA0_ENABLE_HV_PRE_SHADER(x) (((unsigned)(x) & 0x1) << 0) #define G_030AA0_ENABLE_HV_PRE_SHADER(x) (((x) >> 0) & 0x1) #define C_030AA0_ENABLE_HV_PRE_SHADER 0xFFFFFFFE #define S_030AA0_FORCE_PRE_SHADER_ALL_PIXELS(x) (((unsigned)(x) & 0x1) << 1) #define G_030AA0_FORCE_PRE_SHADER_ALL_PIXELS(x) (((x) >> 1) & 0x1) #define C_030AA0_FORCE_PRE_SHADER_ALL_PIXELS 0xFFFFFFFD #define R_030AA4_PA_SC_HP3D_TRAP_SCREEN_H 0x030AA4 /* >= gfx7 */ #define S_030AA4_X_COORD(x) (((unsigned)(x) & 0x3FFF) << 0) #define G_030AA4_X_COORD(x) (((x) >> 0) & 0x3FFF) #define C_030AA4_X_COORD 0xFFFFC000 #define R_030AA8_PA_SC_HP3D_TRAP_SCREEN_V 0x030AA8 /* >= gfx7 */ #define S_030AA8_Y_COORD(x) (((unsigned)(x) & 0x3FFF) << 0) #define G_030AA8_Y_COORD(x) (((x) >> 0) & 0x3FFF) #define C_030AA8_Y_COORD 0xFFFFC000 #define R_030AAC_PA_SC_HP3D_TRAP_SCREEN_OCCURRENCE 0x030AAC /* >= gfx7 */ #define S_030AAC_COUNT(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030AAC_COUNT(x) (((x) >> 0) & 0xFFFF) #define C_030AAC_COUNT 0xFFFF0000 #define R_030AB0_PA_SC_HP3D_TRAP_SCREEN_COUNT 0x030AB0 /* >= gfx7 */ #define S_030AB0_COUNT(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030AB0_COUNT(x) (((x) >> 0) & 0xFFFF) #define C_030AB0_COUNT 0xFFFF0000 #define R_030AC0_PA_SC_TRAP_SCREEN_HV_EN 0x030AC0 /* >= gfx7 */ #define S_030AC0_ENABLE_HV_PRE_SHADER(x) (((unsigned)(x) & 0x1) << 0) #define G_030AC0_ENABLE_HV_PRE_SHADER(x) (((x) >> 0) & 0x1) #define C_030AC0_ENABLE_HV_PRE_SHADER 0xFFFFFFFE #define S_030AC0_FORCE_PRE_SHADER_ALL_PIXELS(x) (((unsigned)(x) & 0x1) << 1) #define G_030AC0_FORCE_PRE_SHADER_ALL_PIXELS(x) (((x) >> 1) & 0x1) #define C_030AC0_FORCE_PRE_SHADER_ALL_PIXELS 0xFFFFFFFD #define R_030AC4_PA_SC_TRAP_SCREEN_H 0x030AC4 /* >= gfx7 */ #define S_030AC4_X_COORD(x) (((unsigned)(x) & 0x3FFF) << 0) #define G_030AC4_X_COORD(x) (((x) >> 0) & 0x3FFF) #define C_030AC4_X_COORD 0xFFFFC000 #define R_030AC8_PA_SC_TRAP_SCREEN_V 0x030AC8 /* >= gfx7 */ #define S_030AC8_Y_COORD(x) (((unsigned)(x) & 0x3FFF) << 0) #define G_030AC8_Y_COORD(x) (((x) >> 0) & 0x3FFF) #define C_030AC8_Y_COORD 0xFFFFC000 #define R_030ACC_PA_SC_TRAP_SCREEN_OCCURRENCE 0x030ACC /* >= gfx7 */ #define S_030ACC_COUNT(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030ACC_COUNT(x) (((x) >> 0) & 0xFFFF) #define C_030ACC_COUNT 0xFFFF0000 #define R_030AD0_PA_SC_TRAP_SCREEN_COUNT 0x030AD0 /* >= gfx7 */ #define S_030AD0_COUNT(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030AD0_COUNT(x) (((x) >> 0) & 0xFFFF) #define C_030AD0_COUNT 0xFFFF0000 #define R_030AD4_PA_STATE_STEREO_X 0x030AD4 /* gfx9 */ #define R_030CC0_SQ_THREAD_TRACE_BASE 0x030CC0 /* gfx8, gfx81, gfx9 */ #define R_030CC4_SQ_THREAD_TRACE_SIZE 0x030CC4 /* gfx8, gfx81, gfx9 */ #define S_030CC4_SIZE(x) (((unsigned)(x) & 0x3FFFFF) << 0) #define G_030CC4_SIZE(x) (((x) >> 0) & 0x3FFFFF) #define C_030CC4_SIZE 0xFFC00000 #define R_030CC8_SQ_THREAD_TRACE_MASK 0x030CC8 /* gfx8, gfx81, gfx9 */ #define S_030CC8_CU_SEL(x) (((unsigned)(x) & 0x1F) << 0) #define G_030CC8_CU_SEL(x) (((x) >> 0) & 0x1F) #define C_030CC8_CU_SEL 0xFFFFFFE0 #define S_030CC8_SH_SEL(x) (((unsigned)(x) & 0x1) << 5) #define G_030CC8_SH_SEL(x) (((x) >> 5) & 0x1) #define C_030CC8_SH_SEL 0xFFFFFFDF #define S_030CC8_REG_STALL_EN(x) (((unsigned)(x) & 0x1) << 7) #define G_030CC8_REG_STALL_EN(x) (((x) >> 7) & 0x1) #define C_030CC8_REG_STALL_EN 0xFFFFFF7F #define S_030CC8_SIMD_EN(x) (((unsigned)(x) & 0xF) << 8) #define G_030CC8_SIMD_EN(x) (((x) >> 8) & 0xF) #define C_030CC8_SIMD_EN 0xFFFFF0FF #define S_030CC8_VM_ID_MASK(x) (((unsigned)(x) & 0x3) << 12) #define G_030CC8_VM_ID_MASK(x) (((x) >> 12) & 0x3) #define C_030CC8_VM_ID_MASK 0xFFFFCFFF #define S_030CC8_SPI_STALL_EN(x) (((unsigned)(x) & 0x1) << 14) #define G_030CC8_SPI_STALL_EN(x) (((x) >> 14) & 0x1) #define C_030CC8_SPI_STALL_EN 0xFFFFBFFF #define S_030CC8_SQ_STALL_EN(x) (((unsigned)(x) & 0x1) << 15) #define G_030CC8_SQ_STALL_EN(x) (((x) >> 15) & 0x1) #define C_030CC8_SQ_STALL_EN 0xFFFF7FFF #define S_030CC8_RANDOM_SEED(x) (((unsigned)(x) & 0xFFFF) << 16) /* gfx8, gfx81 */ #define G_030CC8_RANDOM_SEED(x) (((x) >> 16) & 0xFFFF) #define C_030CC8_RANDOM_SEED 0x0000FFFF #define R_030CCC_SQ_THREAD_TRACE_TOKEN_MASK 0x030CCC /* gfx8, gfx81, gfx9 */ #define S_030CCC_TOKEN_MASK(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030CCC_TOKEN_MASK(x) (((x) >> 0) & 0xFFFF) #define C_030CCC_TOKEN_MASK 0xFFFF0000 #define S_030CCC_REG_MASK(x) (((unsigned)(x) & 0xFF) << 16) #define G_030CCC_REG_MASK(x) (((x) >> 16) & 0xFF) #define C_030CCC_REG_MASK 0xFF00FFFF #define S_030CCC_REG_DROP_ON_STALL(x) (((unsigned)(x) & 0x1) << 24) #define G_030CCC_REG_DROP_ON_STALL(x) (((x) >> 24) & 0x1) #define C_030CCC_REG_DROP_ON_STALL 0xFEFFFFFF #define R_030CD0_SQ_THREAD_TRACE_PERF_MASK 0x030CD0 /* gfx8, gfx81, gfx9 */ #define S_030CD0_SH0_MASK(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_030CD0_SH0_MASK(x) (((x) >> 0) & 0xFFFF) #define C_030CD0_SH0_MASK 0xFFFF0000 #define S_030CD0_SH1_MASK(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_030CD0_SH1_MASK(x) (((x) >> 16) & 0xFFFF) #define C_030CD0_SH1_MASK 0x0000FFFF #define R_030CD4_SQ_THREAD_TRACE_CTRL 0x030CD4 /* gfx8, gfx81, gfx9 */ #define S_030CD4_RESET_BUFFER(x) (((unsigned)(x) & 0x1) << 31) #define G_030CD4_RESET_BUFFER(x) (((x) >> 31) & 0x1) #define C_030CD4_RESET_BUFFER 0x7FFFFFFF #define R_030CD8_SQ_THREAD_TRACE_MODE 0x030CD8 /* gfx8, gfx81, gfx9 */ #define S_030CD8_MASK_PS(x) (((unsigned)(x) & 0x7) << 0) #define G_030CD8_MASK_PS(x) (((x) >> 0) & 0x7) #define C_030CD8_MASK_PS 0xFFFFFFF8 #define S_030CD8_MASK_VS(x) (((unsigned)(x) & 0x7) << 3) #define G_030CD8_MASK_VS(x) (((x) >> 3) & 0x7) #define C_030CD8_MASK_VS 0xFFFFFFC7 #define S_030CD8_MASK_GS(x) (((unsigned)(x) & 0x7) << 6) #define G_030CD8_MASK_GS(x) (((x) >> 6) & 0x7) #define C_030CD8_MASK_GS 0xFFFFFE3F #define S_030CD8_MASK_ES(x) (((unsigned)(x) & 0x7) << 9) #define G_030CD8_MASK_ES(x) (((x) >> 9) & 0x7) #define C_030CD8_MASK_ES 0xFFFFF1FF #define S_030CD8_MASK_HS(x) (((unsigned)(x) & 0x7) << 12) #define G_030CD8_MASK_HS(x) (((x) >> 12) & 0x7) #define C_030CD8_MASK_HS 0xFFFF8FFF #define S_030CD8_MASK_LS(x) (((unsigned)(x) & 0x7) << 15) #define G_030CD8_MASK_LS(x) (((x) >> 15) & 0x7) #define C_030CD8_MASK_LS 0xFFFC7FFF #define S_030CD8_MASK_CS(x) (((unsigned)(x) & 0x7) << 18) #define G_030CD8_MASK_CS(x) (((x) >> 18) & 0x7) #define C_030CD8_MASK_CS 0xFFE3FFFF #define S_030CD8_MODE(x) (((unsigned)(x) & 0x3) << 21) #define G_030CD8_MODE(x) (((x) >> 21) & 0x3) #define C_030CD8_MODE 0xFF9FFFFF #define S_030CD8_CAPTURE_MODE(x) (((unsigned)(x) & 0x3) << 23) #define G_030CD8_CAPTURE_MODE(x) (((x) >> 23) & 0x3) #define C_030CD8_CAPTURE_MODE 0xFE7FFFFF #define S_030CD8_AUTOFLUSH_EN(x) (((unsigned)(x) & 0x1) << 25) #define G_030CD8_AUTOFLUSH_EN(x) (((x) >> 25) & 0x1) #define C_030CD8_AUTOFLUSH_EN 0xFDFFFFFF #define S_030CD8_PRIV(x) (((unsigned)(x) & 0x1) << 26) /* gfx8, gfx81 */ #define G_030CD8_PRIV(x) (((x) >> 26) & 0x1) #define C_030CD8_PRIV 0xFBFFFFFF #define S_030CD8_TC_PERF_EN(x) (((unsigned)(x) & 0x1) << 26) /* gfx9 */ #define G_030CD8_TC_PERF_EN(x) (((x) >> 26) & 0x1) #define C_030CD8_TC_PERF_EN 0xFBFFFFFF #define S_030CD8_ISSUE_MASK(x) (((unsigned)(x) & 0x3) << 27) #define G_030CD8_ISSUE_MASK(x) (((x) >> 27) & 0x3) #define C_030CD8_ISSUE_MASK 0xE7FFFFFF #define S_030CD8_TEST_MODE(x) (((unsigned)(x) & 0x1) << 29) #define G_030CD8_TEST_MODE(x) (((x) >> 29) & 0x1) #define C_030CD8_TEST_MODE 0xDFFFFFFF #define S_030CD8_INTERRUPT_EN(x) (((unsigned)(x) & 0x1) << 30) #define G_030CD8_INTERRUPT_EN(x) (((x) >> 30) & 0x1) #define C_030CD8_INTERRUPT_EN 0xBFFFFFFF #define S_030CD8_WRAP(x) (((unsigned)(x) & 0x1) << 31) #define G_030CD8_WRAP(x) (((x) >> 31) & 0x1) #define C_030CD8_WRAP 0x7FFFFFFF #define R_030CDC_SQ_THREAD_TRACE_BASE2 0x030CDC /* gfx8, gfx81, gfx9 */ #define S_030CDC_ADDR_HI(x) (((unsigned)(x) & 0xF) << 0) #define G_030CDC_ADDR_HI(x) (((x) >> 0) & 0xF) #define C_030CDC_ADDR_HI 0xFFFFFFF0 #define R_030CE0_SQ_THREAD_TRACE_TOKEN_MASK2 0x030CE0 /* gfx8, gfx81, gfx9 */ #define R_030CE4_SQ_THREAD_TRACE_WPTR 0x030CE4 /* gfx8, gfx81, gfx9 */ #define S_030CE4_WPTR(x) (((unsigned)(x) & 0x3FFFFFFF) << 0) #define G_030CE4_WPTR(x) (((x) >> 0) & 0x3FFFFFFF) #define C_030CE4_WPTR 0xC0000000 #define S_030CE4_READ_OFFSET(x) (((unsigned)(x) & 0x3) << 30) #define G_030CE4_READ_OFFSET(x) (((x) >> 30) & 0x3) #define C_030CE4_READ_OFFSET 0x3FFFFFFF #define R_030CE8_SQ_THREAD_TRACE_STATUS 0x030CE8 /* gfx8, gfx81, gfx9 */ #define S_030CE8_FINISH_PENDING(x) (((unsigned)(x) & 0x3FF) << 0) #define G_030CE8_FINISH_PENDING(x) (((x) >> 0) & 0x3FF) #define C_030CE8_FINISH_PENDING 0xFFFFFC00 #define S_030CE8_FINISH_DONE(x) (((unsigned)(x) & 0x3FF) << 16) #define G_030CE8_FINISH_DONE(x) (((x) >> 16) & 0x3FF) #define C_030CE8_FINISH_DONE 0xFC00FFFF #define S_030CE8_UTC_ERROR(x) (((unsigned)(x) & 0x1) << 28) /* gfx9 */ #define G_030CE8_UTC_ERROR(x) (((x) >> 28) & 0x1) #define C_030CE8_UTC_ERROR 0xEFFFFFFF #define S_030CE8_NEW_BUF(x) (((unsigned)(x) & 0x1) << 29) #define G_030CE8_NEW_BUF(x) (((x) >> 29) & 0x1) #define C_030CE8_NEW_BUF 0xDFFFFFFF #define S_030CE8_BUSY(x) (((unsigned)(x) & 0x1) << 30) #define G_030CE8_BUSY(x) (((x) >> 30) & 0x1) #define C_030CE8_BUSY 0xBFFFFFFF #define S_030CE8_FULL(x) (((unsigned)(x) & 0x1) << 31) #define G_030CE8_FULL(x) (((x) >> 31) & 0x1) #define C_030CE8_FULL 0x7FFFFFFF #define R_030CEC_SQ_THREAD_TRACE_HIWATER 0x030CEC /* gfx8, gfx81, gfx9 */ #define S_030CEC_HIWATER(x) (((unsigned)(x) & 0x7) << 0) #define G_030CEC_HIWATER(x) (((x) >> 0) & 0x7) #define C_030CEC_HIWATER 0xFFFFFFF8 #define R_030CF0_SQ_THREAD_TRACE_CNTR 0x030CF0 /* gfx9 */ #define R_030D00_SQ_THREAD_TRACE_USERDATA_0 0x030D00 /* >= gfx7 */ #define R_030D04_SQ_THREAD_TRACE_USERDATA_1 0x030D04 /* >= gfx7 */ #define R_030D08_SQ_THREAD_TRACE_USERDATA_2 0x030D08 /* >= gfx7 */ #define R_030D0C_SQ_THREAD_TRACE_USERDATA_3 0x030D0C /* >= gfx7 */ #define R_030D10_SQ_THREAD_TRACE_USERDATA_4 0x030D10 /* >= gfx10 */ #define R_030D14_SQ_THREAD_TRACE_USERDATA_5 0x030D14 /* >= gfx10 */ #define R_030D18_SQ_THREAD_TRACE_USERDATA_6 0x030D18 /* >= gfx10 */ #define R_030D1C_SQ_THREAD_TRACE_USERDATA_7 0x030D1C /* >= gfx10 */ #define R_030D20_SQC_CACHES 0x030D20 /* >= gfx7 */ #define S_030D20_INST_INVALIDATE(x) (((unsigned)(x) & 0x1) << 0) /* gfx7 */ #define G_030D20_INST_INVALIDATE(x) (((x) >> 0) & 0x1) #define C_030D20_INST_INVALIDATE 0xFFFFFFFE #define S_030D20_TARGET_INST(x) (((unsigned)(x) & 0x1) << 0) /* >= gfx8 */ #define G_030D20_TARGET_INST(x) (((x) >> 0) & 0x1) #define C_030D20_TARGET_INST 0xFFFFFFFE #define S_030D20_DATA_INVALIDATE(x) (((unsigned)(x) & 0x1) << 1) /* gfx7 */ #define G_030D20_DATA_INVALIDATE(x) (((x) >> 1) & 0x1) #define C_030D20_DATA_INVALIDATE 0xFFFFFFFD #define S_030D20_TARGET_DATA(x) (((unsigned)(x) & 0x1) << 1) /* >= gfx8 */ #define G_030D20_TARGET_DATA(x) (((x) >> 1) & 0x1) #define C_030D20_TARGET_DATA 0xFFFFFFFD #define S_030D20_INVALIDATE(x) (((unsigned)(x) & 0x1) << 2) /* >= gfx8 */ #define G_030D20_INVALIDATE(x) (((x) >> 2) & 0x1) #define C_030D20_INVALIDATE 0xFFFFFFFB #define S_030D20_INVALIDATE_VOLATILE(x) (((unsigned)(x) & 0x1) << 2) /* gfx7 */ #define G_030D20_INVALIDATE_VOLATILE(x) (((x) >> 2) & 0x1) #define C_030D20_INVALIDATE_VOLATILE 0xFFFFFFFB #define S_030D20_WRITEBACK(x) (((unsigned)(x) & 0x1) << 3) /* gfx8, gfx81, gfx9, gfx10 */ #define G_030D20_WRITEBACK(x) (((x) >> 3) & 0x1) #define C_030D20_WRITEBACK 0xFFFFFFF7 #define S_030D20_VOL(x) (((unsigned)(x) & 0x1) << 4) /* gfx8, gfx81, gfx9, gfx10 */ #define G_030D20_VOL(x) (((x) >> 4) & 0x1) #define C_030D20_VOL 0xFFFFFFEF #define S_030D20_COMPLETE(x) (((unsigned)(x) & 0x1) << 16) /* >= gfx8 */ #define G_030D20_COMPLETE(x) (((x) >> 16) & 0x1) #define C_030D20_COMPLETE 0xFFFEFFFF #define S_030D20_L2_WB_POLICY(x) (((unsigned)(x) & 0x3) << 17) /* >= gfx10 */ #define G_030D20_L2_WB_POLICY(x) (((x) >> 17) & 0x3) #define C_030D20_L2_WB_POLICY 0xFFF9FFFF #define R_030D24_SQC_WRITEBACK 0x030D24 /* gfx8, gfx81, gfx9, gfx10 */ #define S_030D24_DWB(x) (((unsigned)(x) & 0x1) << 0) #define G_030D24_DWB(x) (((x) >> 0) & 0x1) #define C_030D24_DWB 0xFFFFFFFE #define S_030D24_DIRTY(x) (((unsigned)(x) & 0x1) << 1) #define G_030D24_DIRTY(x) (((x) >> 1) & 0x1) #define C_030D24_DIRTY 0xFFFFFFFD #define R_030E00_TA_CS_BC_BASE_ADDR 0x030E00 /* >= gfx7 */ #define R_030E04_TA_CS_BC_BASE_ADDR_HI 0x030E04 /* >= gfx7 */ #define S_030E04_ADDRESS(x) (((unsigned)(x) & 0xFF) << 0) #define G_030E04_ADDRESS(x) (((x) >> 0) & 0xFF) #define C_030E04_ADDRESS 0xFFFFFF00 #define R_030F00_DB_OCCLUSION_COUNT0_LOW 0x030F00 /* >= gfx7 */ #define R_030F04_DB_OCCLUSION_COUNT0_HI 0x030F04 /* >= gfx7 */ #define S_030F04_COUNT_HI(x) (((unsigned)(x) & 0x7FFFFFFF) << 0) #define G_030F04_COUNT_HI(x) (((x) >> 0) & 0x7FFFFFFF) #define C_030F04_COUNT_HI 0x80000000 #define R_030F08_DB_OCCLUSION_COUNT1_LOW 0x030F08 /* >= gfx7 */ #define R_030F0C_DB_OCCLUSION_COUNT1_HI 0x030F0C /* >= gfx7 */ #define R_030F10_DB_OCCLUSION_COUNT2_LOW 0x030F10 /* >= gfx7 */ #define R_030F14_DB_OCCLUSION_COUNT2_HI 0x030F14 /* >= gfx7 */ #define R_030F18_DB_OCCLUSION_COUNT3_LOW 0x030F18 /* >= gfx7 */ #define R_030F1C_DB_OCCLUSION_COUNT3_HI 0x030F1C /* >= gfx7 */ #define R_030FF8_DB_ZPASS_COUNT_LOW 0x030FF8 /* >= gfx7 */ #define R_030FFC_DB_ZPASS_COUNT_HI 0x030FFC /* >= gfx7 */ #define S_030FFC_COUNT_HI(x) (((unsigned)(x) & 0x7FFFFFFF) << 0) #define G_030FFC_COUNT_HI(x) (((x) >> 0) & 0x7FFFFFFF) #define C_030FFC_COUNT_HI 0x80000000 #define R_031000_GDS_RD_ADDR 0x031000 /* >= gfx7 */ #define R_031004_GDS_RD_DATA 0x031004 /* >= gfx7 */ #define R_031008_GDS_RD_BURST_ADDR 0x031008 /* >= gfx7 */ #define R_03100C_GDS_RD_BURST_COUNT 0x03100C /* >= gfx7 */ #define R_031010_GDS_RD_BURST_DATA 0x031010 /* >= gfx7 */ #define R_031014_GDS_WR_ADDR 0x031014 /* >= gfx7 */ #define R_031018_GDS_WR_DATA 0x031018 /* >= gfx7 */ #define R_03101C_GDS_WR_BURST_ADDR 0x03101C /* >= gfx7 */ #define R_031020_GDS_WR_BURST_DATA 0x031020 /* >= gfx7 */ #define R_031024_GDS_WRITE_COMPLETE 0x031024 /* >= gfx7 */ #define R_031028_GDS_ATOM_CNTL 0x031028 /* >= gfx7 */ #define S_031028_AINC(x) (((unsigned)(x) & 0x3F) << 0) #define G_031028_AINC(x) (((x) >> 0) & 0x3F) #define C_031028_AINC 0xFFFFFFC0 #define S_031028_UNUSED1(x) (((unsigned)(x) & 0x3) << 6) #define G_031028_UNUSED1(x) (((x) >> 6) & 0x3) #define C_031028_UNUSED1 0xFFFFFF3F #define S_031028_DMODE_GFX7(x) (((unsigned)(x) & 0x1) << 8) /* gfx7 */ #define G_031028_DMODE_GFX7(x) (((x) >> 8) & 0x1) #define C_031028_DMODE_GFX7 0xFFFFFEFF #define S_031028_DMODE_GFX8(x) (((unsigned)(x) & 0x3) << 8) /* >= gfx8 */ #define G_031028_DMODE_GFX8(x) (((x) >> 8) & 0x3) #define C_031028_DMODE_GFX8 0xFFFFFCFF #define S_031028_UNUSED2_GFX7(x) (((unsigned)(x) & 0x7FFFFF) << 9) /* gfx7 */ #define G_031028_UNUSED2_GFX7(x) (((x) >> 9) & 0x7FFFFF) #define C_031028_UNUSED2_GFX7 0x000001FF #define S_031028_UNUSED2_GFX8(x) (((unsigned)(x) & 0x3FFFFF) << 10) /* >= gfx8 */ #define G_031028_UNUSED2_GFX8(x) (((x) >> 10) & 0x3FFFFF) #define C_031028_UNUSED2_GFX8 0x000003FF #define R_03102C_GDS_ATOM_COMPLETE 0x03102C /* >= gfx7 */ #define S_03102C_COMPLETE(x) (((unsigned)(x) & 0x1) << 0) #define G_03102C_COMPLETE(x) (((x) >> 0) & 0x1) #define C_03102C_COMPLETE 0xFFFFFFFE #define S_03102C_UNUSED(x) (((unsigned)(x) & 0x7FFFFFFF) << 1) #define G_03102C_UNUSED(x) (((x) >> 1) & 0x7FFFFFFF) #define C_03102C_UNUSED 0x00000001 #define R_031030_GDS_ATOM_BASE 0x031030 /* >= gfx7 */ #define S_031030_BASE(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_031030_BASE(x) (((x) >> 0) & 0xFFFF) #define C_031030_BASE 0xFFFF0000 #define S_031030_UNUSED(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_031030_UNUSED(x) (((x) >> 16) & 0xFFFF) #define C_031030_UNUSED 0x0000FFFF #define R_031034_GDS_ATOM_SIZE 0x031034 /* >= gfx7 */ #define S_031034_SIZE(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_031034_SIZE(x) (((x) >> 0) & 0xFFFF) #define C_031034_SIZE 0xFFFF0000 #define S_031034_UNUSED(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_031034_UNUSED(x) (((x) >> 16) & 0xFFFF) #define C_031034_UNUSED 0x0000FFFF #define R_031038_GDS_ATOM_OFFSET0 0x031038 /* >= gfx7 */ #define S_031038_OFFSET0(x) (((unsigned)(x) & 0xFF) << 0) #define G_031038_OFFSET0(x) (((x) >> 0) & 0xFF) #define C_031038_OFFSET0 0xFFFFFF00 #define S_031038_UNUSED(x) (((unsigned)(x) & 0xFFFFFF) << 8) #define G_031038_UNUSED(x) (((x) >> 8) & 0xFFFFFF) #define C_031038_UNUSED 0x000000FF #define R_03103C_GDS_ATOM_OFFSET1 0x03103C /* >= gfx7 */ #define S_03103C_OFFSET1(x) (((unsigned)(x) & 0xFF) << 0) #define G_03103C_OFFSET1(x) (((x) >> 0) & 0xFF) #define C_03103C_OFFSET1 0xFFFFFF00 #define S_03103C_UNUSED(x) (((unsigned)(x) & 0xFFFFFF) << 8) #define G_03103C_UNUSED(x) (((x) >> 8) & 0xFFFFFF) #define C_03103C_UNUSED 0x000000FF #define R_031040_GDS_ATOM_DST 0x031040 /* >= gfx7 */ #define R_031044_GDS_ATOM_OP 0x031044 /* >= gfx7 */ #define S_031044_OP(x) (((unsigned)(x) & 0xFF) << 0) #define G_031044_OP(x) (((x) >> 0) & 0xFF) #define C_031044_OP 0xFFFFFF00 #define S_031044_UNUSED(x) (((unsigned)(x) & 0xFFFFFF) << 8) #define G_031044_UNUSED(x) (((x) >> 8) & 0xFFFFFF) #define C_031044_UNUSED 0x000000FF #define R_031048_GDS_ATOM_SRC0 0x031048 /* >= gfx7 */ #define R_03104C_GDS_ATOM_SRC0_U 0x03104C /* >= gfx7 */ #define R_031050_GDS_ATOM_SRC1 0x031050 /* >= gfx7 */ #define R_031054_GDS_ATOM_SRC1_U 0x031054 /* >= gfx7 */ #define R_031058_GDS_ATOM_READ0 0x031058 /* >= gfx7 */ #define R_03105C_GDS_ATOM_READ0_U 0x03105C /* >= gfx7 */ #define R_031060_GDS_ATOM_READ1 0x031060 /* >= gfx7 */ #define R_031064_GDS_ATOM_READ1_U 0x031064 /* >= gfx7 */ #define R_031068_GDS_GWS_RESOURCE_CNTL 0x031068 /* >= gfx7 */ #define S_031068_INDEX(x) (((unsigned)(x) & 0x3F) << 0) #define G_031068_INDEX(x) (((x) >> 0) & 0x3F) #define C_031068_INDEX 0xFFFFFFC0 #define S_031068_UNUSED(x) (((unsigned)(x) & 0x3FFFFFF) << 6) #define G_031068_UNUSED(x) (((x) >> 6) & 0x3FFFFFF) #define C_031068_UNUSED 0x0000003F #define R_03106C_GDS_GWS_RESOURCE 0x03106C /* >= gfx7 */ #define S_03106C_FLAG(x) (((unsigned)(x) & 0x1) << 0) #define G_03106C_FLAG(x) (((x) >> 0) & 0x1) #define C_03106C_FLAG 0xFFFFFFFE #define S_03106C_COUNTER(x) (((unsigned)(x) & 0xFFF) << 1) #define G_03106C_COUNTER(x) (((x) >> 1) & 0xFFF) #define C_03106C_COUNTER 0xFFFFE001 #define S_03106C_TYPE(x) (((unsigned)(x) & 0x1) << 13) #define G_03106C_TYPE(x) (((x) >> 13) & 0x1) #define C_03106C_TYPE 0xFFFFDFFF #define S_03106C_DED(x) (((unsigned)(x) & 0x1) << 14) #define G_03106C_DED(x) (((x) >> 14) & 0x1) #define C_03106C_DED 0xFFFFBFFF #define S_03106C_RELEASE_ALL(x) (((unsigned)(x) & 0x1) << 15) #define G_03106C_RELEASE_ALL(x) (((x) >> 15) & 0x1) #define C_03106C_RELEASE_ALL 0xFFFF7FFF #define S_03106C_HEAD_QUEUE_GFX7(x) (((unsigned)(x) & 0x7FF) << 16) /* gfx7, gfx8, >= gfx10 */ #define G_03106C_HEAD_QUEUE_GFX7(x) (((x) >> 16) & 0x7FF) #define C_03106C_HEAD_QUEUE_GFX7 0xF800FFFF #define S_03106C_HEAD_QUEUE_GFX81(x) (((unsigned)(x) & 0xFFF) << 16) /* gfx81, gfx9 */ #define G_03106C_HEAD_QUEUE_GFX81(x) (((x) >> 16) & 0xFFF) #define C_03106C_HEAD_QUEUE_GFX81 0xF000FFFF #define S_03106C_HEAD_VALID_GFX7(x) (((unsigned)(x) & 0x1) << 27) /* gfx7, gfx8, >= gfx10 */ #define G_03106C_HEAD_VALID_GFX7(x) (((x) >> 27) & 0x1) #define C_03106C_HEAD_VALID_GFX7 0xF7FFFFFF #define S_03106C_HEAD_FLAG_GFX7(x) (((unsigned)(x) & 0x1) << 28) /* gfx7, gfx8, >= gfx10 */ #define G_03106C_HEAD_FLAG_GFX7(x) (((x) >> 28) & 0x1) #define C_03106C_HEAD_FLAG_GFX7 0xEFFFFFFF #define S_03106C_HEAD_VALID_GFX81(x) (((unsigned)(x) & 0x1) << 28) /* gfx81, gfx9 */ #define G_03106C_HEAD_VALID_GFX81(x) (((x) >> 28) & 0x1) #define C_03106C_HEAD_VALID_GFX81 0xEFFFFFFF #define S_03106C_HALTED_GFX10(x) (((unsigned)(x) & 0x1) << 29) /* >= gfx10 */ #define G_03106C_HALTED_GFX10(x) (((x) >> 29) & 0x1) #define C_03106C_HALTED_GFX10 0xDFFFFFFF #define S_03106C_HEAD_FLAG_GFX81(x) (((unsigned)(x) & 0x1) << 29) /* gfx81, gfx9 */ #define G_03106C_HEAD_FLAG_GFX81(x) (((x) >> 29) & 0x1) #define C_03106C_HEAD_FLAG_GFX81 0xDFFFFFFF #define S_03106C_UNUSED1_GFX7(x) (((unsigned)(x) & 0x7) << 29) /* gfx7, gfx8 */ #define G_03106C_UNUSED1_GFX7(x) (((x) >> 29) & 0x7) #define C_03106C_UNUSED1_GFX7 0x1FFFFFFF #define S_03106C_HALTED_GFX9(x) (((unsigned)(x) & 0x1) << 30) /* gfx9 */ #define G_03106C_HALTED_GFX9(x) (((x) >> 30) & 0x1) #define C_03106C_HALTED_GFX9 0xBFFFFFFF #define S_03106C_HEAD_QUEUE1(x) (((unsigned)(x) & 0x1) << 30) /* >= gfx103 */ #define G_03106C_HEAD_QUEUE1(x) (((x) >> 30) & 0x1) #define C_03106C_HEAD_QUEUE1 0xBFFFFFFF #define S_03106C_UNUSED1_GFX81(x) (((unsigned)(x) & 0x3) << 30) /* gfx81, gfx10 */ #define G_03106C_UNUSED1_GFX81(x) (((x) >> 30) & 0x3) #define C_03106C_UNUSED1_GFX81 0x3FFFFFFF #define S_03106C_UNUSED1_GFX9(x) (((unsigned)(x) & 0x1) << 31) /* gfx9, >= gfx103 */ #define G_03106C_UNUSED1_GFX9(x) (((x) >> 31) & 0x1) #define C_03106C_UNUSED1_GFX9 0x7FFFFFFF #define R_031070_GDS_GWS_RESOURCE_CNT 0x031070 /* >= gfx7 */ #define S_031070_RESOURCE_CNT(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_031070_RESOURCE_CNT(x) (((x) >> 0) & 0xFFFF) #define C_031070_RESOURCE_CNT 0xFFFF0000 #define S_031070_UNUSED(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_031070_UNUSED(x) (((x) >> 16) & 0xFFFF) #define C_031070_UNUSED 0x0000FFFF #define R_031074_GDS_OA_CNTL 0x031074 /* >= gfx7 */ #define S_031074_INDEX(x) (((unsigned)(x) & 0xF) << 0) #define G_031074_INDEX(x) (((x) >> 0) & 0xF) #define C_031074_INDEX 0xFFFFFFF0 #define S_031074_UNUSED(x) (((unsigned)(x) & 0xFFFFFFF) << 4) #define G_031074_UNUSED(x) (((x) >> 4) & 0xFFFFFFF) #define C_031074_UNUSED 0x0000000F #define R_031078_GDS_OA_COUNTER 0x031078 /* >= gfx7 */ #define R_03107C_GDS_OA_ADDRESS 0x03107C /* >= gfx7 */ #define S_03107C_DS_ADDRESS(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_03107C_DS_ADDRESS(x) (((x) >> 0) & 0xFFFF) #define C_03107C_DS_ADDRESS 0xFFFF0000 #define S_03107C_CRAWLER_GFX8(x) (((unsigned)(x) & 0xF) << 16) /* gfx8, gfx81, gfx9 */ #define G_03107C_CRAWLER_GFX8(x) (((x) >> 16) & 0xF) #define C_03107C_CRAWLER_GFX8 0xFFF0FFFF #define S_03107C_CRAWLER_TYPE_GFX7(x) (((unsigned)(x) & 0xF) << 16) /* gfx7, >= gfx10 */ #define G_03107C_CRAWLER_TYPE_GFX7(x) (((x) >> 16) & 0xF) #define C_03107C_CRAWLER_TYPE_GFX7 0xFFF0FFFF #define S_03107C_CRAWLER_GFX7(x) (((unsigned)(x) & 0xF) << 20) /* gfx7, >= gfx10 */ #define G_03107C_CRAWLER_GFX7(x) (((x) >> 20) & 0xF) #define C_03107C_CRAWLER_GFX7 0xFF0FFFFF #define S_03107C_CRAWLER_TYPE_GFX8(x) (((unsigned)(x) & 0x3) << 20) /* gfx8, gfx81, gfx9 */ #define G_03107C_CRAWLER_TYPE_GFX8(x) (((x) >> 20) & 0x3) #define C_03107C_CRAWLER_TYPE_GFX8 0xFFCFFFFF #define S_03107C_UNUSED_GFX8(x) (((unsigned)(x) & 0xFF) << 22) /* gfx8, gfx81, gfx9 */ #define G_03107C_UNUSED_GFX8(x) (((x) >> 22) & 0xFF) #define C_03107C_UNUSED_GFX8 0xC03FFFFF #define S_03107C_UNUSED_GFX7(x) (((unsigned)(x) & 0x3F) << 24) /* gfx7, >= gfx10 */ #define G_03107C_UNUSED_GFX7(x) (((x) >> 24) & 0x3F) #define C_03107C_UNUSED_GFX7 0xC0FFFFFF #define S_03107C_NO_ALLOC(x) (((unsigned)(x) & 0x1) << 30) #define G_03107C_NO_ALLOC(x) (((x) >> 30) & 0x1) #define C_03107C_NO_ALLOC 0xBFFFFFFF #define S_03107C_ENABLE(x) (((unsigned)(x) & 0x1) << 31) #define G_03107C_ENABLE(x) (((x) >> 31) & 0x1) #define C_03107C_ENABLE 0x7FFFFFFF #define R_031080_GDS_OA_INCDEC 0x031080 /* >= gfx7 */ #define S_031080_VALUE(x) (((unsigned)(x) & 0x7FFFFFFF) << 0) #define G_031080_VALUE(x) (((x) >> 0) & 0x7FFFFFFF) #define C_031080_VALUE 0x80000000 #define S_031080_INCDEC(x) (((unsigned)(x) & 0x1) << 31) #define G_031080_INCDEC(x) (((x) >> 31) & 0x1) #define C_031080_INCDEC 0x7FFFFFFF #define R_031084_GDS_OA_RING_SIZE 0x031084 /* >= gfx7 */ #define R_031100_SPI_CONFIG_CNTL 0x031100 /* gfx9 */ #define S_031100_GPR_WRITE_PRIORITY(x) (((unsigned)(x) & 0x1FFFFF) << 0) #define G_031100_GPR_WRITE_PRIORITY(x) (((x) >> 0) & 0x1FFFFF) #define C_031100_GPR_WRITE_PRIORITY 0xFFE00000 #define S_031100_EXP_PRIORITY_ORDER(x) (((unsigned)(x) & 0x7) << 21) #define G_031100_EXP_PRIORITY_ORDER(x) (((x) >> 21) & 0x7) #define C_031100_EXP_PRIORITY_ORDER 0xFF1FFFFF #define S_031100_ENABLE_SQG_TOP_EVENTS(x) (((unsigned)(x) & 0x1) << 24) #define G_031100_ENABLE_SQG_TOP_EVENTS(x) (((x) >> 24) & 0x1) #define C_031100_ENABLE_SQG_TOP_EVENTS 0xFEFFFFFF #define S_031100_ENABLE_SQG_BOP_EVENTS(x) (((unsigned)(x) & 0x1) << 25) #define G_031100_ENABLE_SQG_BOP_EVENTS(x) (((x) >> 25) & 0x1) #define C_031100_ENABLE_SQG_BOP_EVENTS 0xFDFFFFFF #define S_031100_RSRC_MGMT_RESET(x) (((unsigned)(x) & 0x1) << 26) #define G_031100_RSRC_MGMT_RESET(x) (((x) >> 26) & 0x1) #define C_031100_RSRC_MGMT_RESET 0xFBFFFFFF #define S_031100_TTRACE_STALL_ALL(x) (((unsigned)(x) & 0x1) << 27) #define G_031100_TTRACE_STALL_ALL(x) (((x) >> 27) & 0x1) #define C_031100_TTRACE_STALL_ALL 0xF7FFFFFF #define S_031100_ALLOC_ARB_LRU_ENA(x) (((unsigned)(x) & 0x1) << 28) #define G_031100_ALLOC_ARB_LRU_ENA(x) (((x) >> 28) & 0x1) #define C_031100_ALLOC_ARB_LRU_ENA 0xEFFFFFFF #define S_031100_EXP_ARB_LRU_ENA(x) (((unsigned)(x) & 0x1) << 29) #define G_031100_EXP_ARB_LRU_ENA(x) (((x) >> 29) & 0x1) #define C_031100_EXP_ARB_LRU_ENA 0xDFFFFFFF #define S_031100_PS_PKR_PRIORITY_CNTL(x) (((unsigned)(x) & 0x3) << 30) #define G_031100_PS_PKR_PRIORITY_CNTL(x) (((x) >> 30) & 0x3) #define C_031100_PS_PKR_PRIORITY_CNTL 0x3FFFFFFF #define R_031100_SPI_CONFIG_CNTL_REMAP 0x031100 /* >= gfx10 */ #define R_031104_SPI_CONFIG_CNTL_1 0x031104 /* gfx9 */ #define S_031104_VTX_DONE_DELAY(x) (((unsigned)(x) & 0xF) << 0) #define G_031104_VTX_DONE_DELAY(x) (((x) >> 0) & 0xF) #define C_031104_VTX_DONE_DELAY 0xFFFFFFF0 #define S_031104_INTERP_ONE_PRIM_PER_ROW(x) (((unsigned)(x) & 0x1) << 4) #define G_031104_INTERP_ONE_PRIM_PER_ROW(x) (((x) >> 4) & 0x1) #define C_031104_INTERP_ONE_PRIM_PER_ROW 0xFFFFFFEF #define S_031104_BATON_RESET_DISABLE(x) (((unsigned)(x) & 0x1) << 5) #define G_031104_BATON_RESET_DISABLE(x) (((x) >> 5) & 0x1) #define C_031104_BATON_RESET_DISABLE 0xFFFFFFDF #define S_031104_PC_LIMIT_ENABLE(x) (((unsigned)(x) & 0x1) << 6) #define G_031104_PC_LIMIT_ENABLE(x) (((x) >> 6) & 0x1) #define C_031104_PC_LIMIT_ENABLE 0xFFFFFFBF #define S_031104_PC_LIMIT_STRICT(x) (((unsigned)(x) & 0x1) << 7) #define G_031104_PC_LIMIT_STRICT(x) (((x) >> 7) & 0x1) #define C_031104_PC_LIMIT_STRICT 0xFFFFFF7F #define S_031104_CRC_SIMD_ID_WADDR_DISABLE(x) (((unsigned)(x) & 0x1) << 8) #define G_031104_CRC_SIMD_ID_WADDR_DISABLE(x) (((x) >> 8) & 0x1) #define C_031104_CRC_SIMD_ID_WADDR_DISABLE 0xFFFFFEFF #define S_031104_LBPW_CU_CHK_MODE(x) (((unsigned)(x) & 0x1) << 9) #define G_031104_LBPW_CU_CHK_MODE(x) (((x) >> 9) & 0x1) #define C_031104_LBPW_CU_CHK_MODE 0xFFFFFDFF #define S_031104_LBPW_CU_CHK_CNT(x) (((unsigned)(x) & 0xF) << 10) #define G_031104_LBPW_CU_CHK_CNT(x) (((x) >> 10) & 0xF) #define C_031104_LBPW_CU_CHK_CNT 0xFFFFC3FF #define S_031104_CSC_PWR_SAVE_DISABLE(x) (((unsigned)(x) & 0x1) << 14) #define G_031104_CSC_PWR_SAVE_DISABLE(x) (((x) >> 14) & 0x1) #define C_031104_CSC_PWR_SAVE_DISABLE 0xFFFFBFFF #define S_031104_CSG_PWR_SAVE_DISABLE(x) (((unsigned)(x) & 0x1) << 15) #define G_031104_CSG_PWR_SAVE_DISABLE(x) (((x) >> 15) & 0x1) #define C_031104_CSG_PWR_SAVE_DISABLE 0xFFFF7FFF #define S_031104_PC_LIMIT_SIZE(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_031104_PC_LIMIT_SIZE(x) (((x) >> 16) & 0xFFFF) #define C_031104_PC_LIMIT_SIZE 0x0000FFFF #define R_031104_SPI_CONFIG_CNTL_1_REMAP 0x031104 /* >= gfx10 */ #define R_031108_SPI_CONFIG_CNTL_2 0x031108 /* gfx9 */ #define S_031108_CONTEXT_SAVE_WAIT_GDS_REQUEST_CYCLE_OVHD(x) (((unsigned)(x) & 0xF) << 0) #define G_031108_CONTEXT_SAVE_WAIT_GDS_REQUEST_CYCLE_OVHD(x) (((x) >> 0) & 0xF) #define C_031108_CONTEXT_SAVE_WAIT_GDS_REQUEST_CYCLE_OVHD 0xFFFFFFF0 #define S_031108_CONTEXT_SAVE_WAIT_GDS_GRANT_CYCLE_OVHD(x) (((unsigned)(x) & 0xF) << 4) #define G_031108_CONTEXT_SAVE_WAIT_GDS_GRANT_CYCLE_OVHD(x) (((x) >> 4) & 0xF) #define C_031108_CONTEXT_SAVE_WAIT_GDS_GRANT_CYCLE_OVHD 0xFFFFFF0F #define R_031108_SPI_CONFIG_CNTL_2_REMAP 0x031108 /* >= gfx10 */ #define R_03110C_SPI_WAVE_LIMIT_CNTL 0x03110C /* gfx9 */ #define S_03110C_PS_WAVE_GRAN(x) (((unsigned)(x) & 0x3) << 0) #define G_03110C_PS_WAVE_GRAN(x) (((x) >> 0) & 0x3) #define C_03110C_PS_WAVE_GRAN 0xFFFFFFFC #define S_03110C_VS_WAVE_GRAN(x) (((unsigned)(x) & 0x3) << 2) #define G_03110C_VS_WAVE_GRAN(x) (((x) >> 2) & 0x3) #define C_03110C_VS_WAVE_GRAN 0xFFFFFFF3 #define S_03110C_GS_WAVE_GRAN(x) (((unsigned)(x) & 0x3) << 4) #define G_03110C_GS_WAVE_GRAN(x) (((x) >> 4) & 0x3) #define C_03110C_GS_WAVE_GRAN 0xFFFFFFCF #define S_03110C_HS_WAVE_GRAN(x) (((unsigned)(x) & 0x3) << 6) #define G_03110C_HS_WAVE_GRAN(x) (((x) >> 6) & 0x3) #define C_03110C_HS_WAVE_GRAN 0xFFFFFF3F #define R_03110C_SPI_WAVE_LIMIT_CNTL_REMAP 0x03110C /* >= gfx10 */ #define R_034000_CPG_PERFCOUNTER1_LO 0x034000 /* >= gfx7 */ #define R_034004_CPG_PERFCOUNTER1_HI 0x034004 /* >= gfx7 */ #define R_034008_CPG_PERFCOUNTER0_LO 0x034008 /* >= gfx7 */ #define R_03400C_CPG_PERFCOUNTER0_HI 0x03400C /* >= gfx7 */ #define R_034010_CPC_PERFCOUNTER1_LO 0x034010 /* >= gfx7 */ #define R_034014_CPC_PERFCOUNTER1_HI 0x034014 /* >= gfx7 */ #define R_034018_CPC_PERFCOUNTER0_LO 0x034018 /* >= gfx7 */ #define R_03401C_CPC_PERFCOUNTER0_HI 0x03401C /* >= gfx7 */ #define R_034020_CPF_PERFCOUNTER1_LO 0x034020 /* >= gfx7 */ #define R_034024_CPF_PERFCOUNTER1_HI 0x034024 /* >= gfx7 */ #define R_034028_CPF_PERFCOUNTER0_LO 0x034028 /* >= gfx7 */ #define R_03402C_CPF_PERFCOUNTER0_HI 0x03402C /* >= gfx7 */ #define R_034030_CPF_LATENCY_STATS_DATA 0x034030 /* >= gfx9 */ #define R_034034_CPG_LATENCY_STATS_DATA 0x034034 /* >= gfx9 */ #define R_034038_CPC_LATENCY_STATS_DATA 0x034038 /* >= gfx9 */ #define R_034100_GRBM_PERFCOUNTER0_LO 0x034100 /* >= gfx7 */ #define R_034104_GRBM_PERFCOUNTER0_HI 0x034104 /* >= gfx7 */ #define R_03410C_GRBM_PERFCOUNTER1_LO 0x03410C /* >= gfx7 */ #define R_034110_GRBM_PERFCOUNTER1_HI 0x034110 /* >= gfx7 */ #define R_034114_GRBM_SE0_PERFCOUNTER_LO 0x034114 /* >= gfx7 */ #define R_034118_GRBM_SE0_PERFCOUNTER_HI 0x034118 /* >= gfx7 */ #define R_03411C_GRBM_SE1_PERFCOUNTER_LO 0x03411C /* >= gfx7 */ #define R_034120_GRBM_SE1_PERFCOUNTER_HI 0x034120 /* >= gfx7 */ #define R_034124_GRBM_SE2_PERFCOUNTER_LO 0x034124 /* >= gfx7 */ #define R_034128_GRBM_SE2_PERFCOUNTER_HI 0x034128 /* >= gfx7 */ #define R_03412C_GRBM_SE3_PERFCOUNTER_LO 0x03412C /* >= gfx7 */ #define R_034130_GRBM_SE3_PERFCOUNTER_HI 0x034130 /* >= gfx7 */ #define R_034200_GE_PERFCOUNTER0_LO 0x034200 /* gfx10 */ #define R_034200_WD_PERFCOUNTER0_LO 0x034200 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034204_GE_PERFCOUNTER0_HI 0x034204 /* gfx10 */ #define R_034204_WD_PERFCOUNTER0_HI 0x034204 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034208_GE_PERFCOUNTER1_LO 0x034208 /* gfx10 */ #define R_034208_WD_PERFCOUNTER1_LO 0x034208 /* gfx7, gfx8, gfx81, gfx9 */ #define R_03420C_GE_PERFCOUNTER1_HI 0x03420C /* gfx10 */ #define R_03420C_WD_PERFCOUNTER1_HI 0x03420C /* gfx7, gfx8, gfx81, gfx9 */ #define R_034210_GE_PERFCOUNTER2_LO 0x034210 /* gfx10 */ #define R_034210_WD_PERFCOUNTER2_LO 0x034210 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034214_GE_PERFCOUNTER2_HI 0x034214 /* gfx10 */ #define R_034214_WD_PERFCOUNTER2_HI 0x034214 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034218_GE_PERFCOUNTER3_LO 0x034218 /* gfx10 */ #define R_034218_WD_PERFCOUNTER3_LO 0x034218 /* gfx7, gfx8, gfx81, gfx9 */ #define R_03421C_GE_PERFCOUNTER3_HI 0x03421C /* gfx10 */ #define R_03421C_WD_PERFCOUNTER3_HI 0x03421C /* gfx7, gfx8, gfx81, gfx9 */ #define R_034220_GE_PERFCOUNTER4_LO 0x034220 /* gfx10 */ #define R_034220_IA_PERFCOUNTER0_LO 0x034220 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034224_GE_PERFCOUNTER4_HI 0x034224 /* gfx10 */ #define R_034224_IA_PERFCOUNTER0_HI 0x034224 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034228_GE_PERFCOUNTER5_LO 0x034228 /* gfx10 */ #define R_034228_IA_PERFCOUNTER1_LO 0x034228 /* gfx7, gfx8, gfx81, gfx9 */ #define R_03422C_GE_PERFCOUNTER5_HI 0x03422C /* gfx10 */ #define R_03422C_IA_PERFCOUNTER1_HI 0x03422C /* gfx7, gfx8, gfx81, gfx9 */ #define R_034230_GE_PERFCOUNTER6_LO 0x034230 /* gfx10 */ #define R_034230_IA_PERFCOUNTER2_LO 0x034230 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034234_GE_PERFCOUNTER6_HI 0x034234 /* gfx10 */ #define R_034234_IA_PERFCOUNTER2_HI 0x034234 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034238_GE_PERFCOUNTER7_LO 0x034238 /* gfx10 */ #define R_034238_IA_PERFCOUNTER3_LO 0x034238 /* gfx7, gfx8, gfx81, gfx9 */ #define R_03423C_GE_PERFCOUNTER7_HI 0x03423C /* gfx10 */ #define R_03423C_IA_PERFCOUNTER3_HI 0x03423C /* gfx7, gfx8, gfx81, gfx9 */ #define R_034240_GE_PERFCOUNTER8_LO 0x034240 /* gfx10 */ #define R_034240_VGT_PERFCOUNTER0_LO 0x034240 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034244_GE_PERFCOUNTER8_HI 0x034244 /* gfx10 */ #define R_034244_VGT_PERFCOUNTER0_HI 0x034244 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034248_GE_PERFCOUNTER9_LO 0x034248 /* gfx10 */ #define R_034248_VGT_PERFCOUNTER1_LO 0x034248 /* gfx7, gfx8, gfx81, gfx9 */ #define R_03424C_GE_PERFCOUNTER9_HI 0x03424C /* gfx10 */ #define R_03424C_VGT_PERFCOUNTER1_HI 0x03424C /* gfx7, gfx8, gfx81, gfx9 */ #define R_034250_GE_PERFCOUNTER10_LO 0x034250 /* gfx10 */ #define R_034250_VGT_PERFCOUNTER2_LO 0x034250 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034254_GE_PERFCOUNTER10_HI 0x034254 /* gfx10 */ #define R_034254_VGT_PERFCOUNTER2_HI 0x034254 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034258_GE_PERFCOUNTER11_LO 0x034258 /* gfx10 */ #define R_034258_VGT_PERFCOUNTER3_LO 0x034258 /* gfx7, gfx8, gfx81, gfx9 */ #define R_03425C_GE_PERFCOUNTER11_HI 0x03425C /* gfx10 */ #define R_03425C_VGT_PERFCOUNTER3_HI 0x03425C /* gfx7, gfx8, gfx81, gfx9 */ #define R_034290_GE1_PERFCOUNTER0_LO 0x034290 /* >= gfx103 */ #define R_034294_GE1_PERFCOUNTER0_HI 0x034294 /* >= gfx103 */ #define R_034298_GE1_PERFCOUNTER1_LO 0x034298 /* >= gfx103 */ #define R_03429C_GE1_PERFCOUNTER1_HI 0x03429C /* >= gfx103 */ #define R_0342A0_GE1_PERFCOUNTER2_LO 0x0342A0 /* >= gfx103 */ #define R_0342A4_GE1_PERFCOUNTER2_HI 0x0342A4 /* >= gfx103 */ #define R_0342A8_GE1_PERFCOUNTER3_LO 0x0342A8 /* >= gfx103 */ #define R_0342AC_GE1_PERFCOUNTER3_HI 0x0342AC /* >= gfx103 */ #define R_0342B0_GE2_DIST_PERFCOUNTER0_LO 0x0342B0 /* >= gfx103 */ #define R_0342B4_GE2_DIST_PERFCOUNTER0_HI 0x0342B4 /* >= gfx103 */ #define R_0342B8_GE2_DIST_PERFCOUNTER1_LO 0x0342B8 /* >= gfx103 */ #define R_0342BC_GE2_DIST_PERFCOUNTER1_HI 0x0342BC /* >= gfx103 */ #define R_0342C0_GE2_DIST_PERFCOUNTER2_LO 0x0342C0 /* >= gfx103 */ #define R_0342C4_GE2_DIST_PERFCOUNTER2_HI 0x0342C4 /* >= gfx103 */ #define R_0342C8_GE2_DIST_PERFCOUNTER3_LO 0x0342C8 /* >= gfx103 */ #define R_0342CC_GE2_DIST_PERFCOUNTER3_HI 0x0342CC /* >= gfx103 */ #define R_0342D0_GE2_SE_PERFCOUNTER0_LO 0x0342D0 /* >= gfx103 */ #define R_0342D4_GE2_SE_PERFCOUNTER0_HI 0x0342D4 /* >= gfx103 */ #define R_0342D8_GE2_SE_PERFCOUNTER1_LO 0x0342D8 /* >= gfx103 */ #define R_0342DC_GE2_SE_PERFCOUNTER1_HI 0x0342DC /* >= gfx103 */ #define R_0342E0_GE2_SE_PERFCOUNTER2_LO 0x0342E0 /* >= gfx103 */ #define R_0342E4_GE2_SE_PERFCOUNTER2_HI 0x0342E4 /* >= gfx103 */ #define R_0342E8_GE2_SE_PERFCOUNTER3_LO 0x0342E8 /* >= gfx103 */ #define R_0342EC_GE2_SE_PERFCOUNTER3_HI 0x0342EC /* >= gfx103 */ #define R_034400_PA_SU_PERFCOUNTER0_LO 0x034400 /* >= gfx7 */ #define R_034404_PA_SU_PERFCOUNTER0_HI 0x034404 /* >= gfx7 */ #define S_034404_PERFCOUNTER_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_034404_PERFCOUNTER_HI(x) (((x) >> 0) & 0xFFFF) #define C_034404_PERFCOUNTER_HI 0xFFFF0000 #define R_034408_PA_SU_PERFCOUNTER1_LO 0x034408 /* >= gfx7 */ #define R_03440C_PA_SU_PERFCOUNTER1_HI 0x03440C /* >= gfx7 */ #define R_034410_PA_SU_PERFCOUNTER2_LO 0x034410 /* >= gfx7 */ #define R_034414_PA_SU_PERFCOUNTER2_HI 0x034414 /* >= gfx7 */ #define R_034418_PA_SU_PERFCOUNTER3_LO 0x034418 /* >= gfx7 */ #define R_03441C_PA_SU_PERFCOUNTER3_HI 0x03441C /* >= gfx7 */ #define R_034500_PA_SC_PERFCOUNTER0_LO 0x034500 /* >= gfx7 */ #define R_034504_PA_SC_PERFCOUNTER0_HI 0x034504 /* >= gfx7 */ #define R_034508_PA_SC_PERFCOUNTER1_LO 0x034508 /* >= gfx7 */ #define R_03450C_PA_SC_PERFCOUNTER1_HI 0x03450C /* >= gfx7 */ #define R_034510_PA_SC_PERFCOUNTER2_LO 0x034510 /* >= gfx7 */ #define R_034514_PA_SC_PERFCOUNTER2_HI 0x034514 /* >= gfx7 */ #define R_034518_PA_SC_PERFCOUNTER3_LO 0x034518 /* >= gfx7 */ #define R_03451C_PA_SC_PERFCOUNTER3_HI 0x03451C /* >= gfx7 */ #define R_034520_PA_SC_PERFCOUNTER4_LO 0x034520 /* >= gfx7 */ #define R_034524_PA_SC_PERFCOUNTER4_HI 0x034524 /* >= gfx7 */ #define R_034528_PA_SC_PERFCOUNTER5_LO 0x034528 /* >= gfx7 */ #define R_03452C_PA_SC_PERFCOUNTER5_HI 0x03452C /* >= gfx7 */ #define R_034530_PA_SC_PERFCOUNTER6_LO 0x034530 /* >= gfx7 */ #define R_034534_PA_SC_PERFCOUNTER6_HI 0x034534 /* >= gfx7 */ #define R_034538_PA_SC_PERFCOUNTER7_LO 0x034538 /* >= gfx7 */ #define R_03453C_PA_SC_PERFCOUNTER7_HI 0x03453C /* >= gfx7 */ #define R_034600_SPI_PERFCOUNTER0_HI 0x034600 /* >= gfx7 */ #define R_034604_SPI_PERFCOUNTER0_LO 0x034604 /* >= gfx7 */ #define R_034608_SPI_PERFCOUNTER1_HI 0x034608 /* >= gfx7 */ #define R_03460C_SPI_PERFCOUNTER1_LO 0x03460C /* >= gfx7 */ #define R_034610_SPI_PERFCOUNTER2_HI 0x034610 /* >= gfx7 */ #define R_034614_SPI_PERFCOUNTER2_LO 0x034614 /* >= gfx7 */ #define R_034618_SPI_PERFCOUNTER3_HI 0x034618 /* >= gfx7 */ #define R_03461C_SPI_PERFCOUNTER3_LO 0x03461C /* >= gfx7 */ #define R_034620_SPI_PERFCOUNTER4_HI 0x034620 /* >= gfx7 */ #define R_034624_SPI_PERFCOUNTER4_LO 0x034624 /* >= gfx7 */ #define R_034628_SPI_PERFCOUNTER5_HI 0x034628 /* >= gfx7 */ #define R_03462C_SPI_PERFCOUNTER5_LO 0x03462C /* >= gfx7 */ #define R_034700_SQ_PERFCOUNTER0_LO 0x034700 /* >= gfx7 */ #define R_034704_SQ_PERFCOUNTER0_HI 0x034704 /* >= gfx7 */ #define R_034708_SQ_PERFCOUNTER1_LO 0x034708 /* >= gfx7 */ #define R_03470C_SQ_PERFCOUNTER1_HI 0x03470C /* >= gfx7 */ #define R_034710_SQ_PERFCOUNTER2_LO 0x034710 /* >= gfx7 */ #define R_034714_SQ_PERFCOUNTER2_HI 0x034714 /* >= gfx7 */ #define R_034718_SQ_PERFCOUNTER3_LO 0x034718 /* >= gfx7 */ #define R_03471C_SQ_PERFCOUNTER3_HI 0x03471C /* >= gfx7 */ #define R_034720_SQ_PERFCOUNTER4_LO 0x034720 /* >= gfx7 */ #define R_034724_SQ_PERFCOUNTER4_HI 0x034724 /* >= gfx7 */ #define R_034728_SQ_PERFCOUNTER5_LO 0x034728 /* >= gfx7 */ #define R_03472C_SQ_PERFCOUNTER5_HI 0x03472C /* >= gfx7 */ #define R_034730_SQ_PERFCOUNTER6_LO 0x034730 /* >= gfx7 */ #define R_034734_SQ_PERFCOUNTER6_HI 0x034734 /* >= gfx7 */ #define R_034738_SQ_PERFCOUNTER7_LO 0x034738 /* >= gfx7 */ #define R_03473C_SQ_PERFCOUNTER7_HI 0x03473C /* >= gfx7 */ #define R_034740_SQ_PERFCOUNTER8_LO 0x034740 /* >= gfx7 */ #define R_034744_SQ_PERFCOUNTER8_HI 0x034744 /* >= gfx7 */ #define R_034748_SQ_PERFCOUNTER9_LO 0x034748 /* >= gfx7 */ #define R_03474C_SQ_PERFCOUNTER9_HI 0x03474C /* >= gfx7 */ #define R_034750_SQ_PERFCOUNTER10_LO 0x034750 /* >= gfx7 */ #define R_034754_SQ_PERFCOUNTER10_HI 0x034754 /* >= gfx7 */ #define R_034758_SQ_PERFCOUNTER11_LO 0x034758 /* >= gfx7 */ #define R_03475C_SQ_PERFCOUNTER11_HI 0x03475C /* >= gfx7 */ #define R_034760_SQ_PERFCOUNTER12_LO 0x034760 /* >= gfx7 */ #define R_034764_SQ_PERFCOUNTER12_HI 0x034764 /* >= gfx7 */ #define R_034768_SQ_PERFCOUNTER13_LO 0x034768 /* >= gfx7 */ #define R_03476C_SQ_PERFCOUNTER13_HI 0x03476C /* >= gfx7 */ #define R_034770_SQ_PERFCOUNTER14_LO 0x034770 /* >= gfx7 */ #define R_034774_SQ_PERFCOUNTER14_HI 0x034774 /* >= gfx7 */ #define R_034778_SQ_PERFCOUNTER15_LO 0x034778 /* >= gfx7 */ #define R_03477C_SQ_PERFCOUNTER15_HI 0x03477C /* >= gfx7 */ #define R_034900_SX_PERFCOUNTER0_LO 0x034900 /* >= gfx7 */ #define R_034904_SX_PERFCOUNTER0_HI 0x034904 /* >= gfx7 */ #define R_034908_SX_PERFCOUNTER1_LO 0x034908 /* >= gfx7 */ #define R_03490C_SX_PERFCOUNTER1_HI 0x03490C /* >= gfx7 */ #define R_034910_SX_PERFCOUNTER2_LO 0x034910 /* >= gfx7 */ #define R_034914_SX_PERFCOUNTER2_HI 0x034914 /* >= gfx7 */ #define R_034918_SX_PERFCOUNTER3_LO 0x034918 /* >= gfx7 */ #define R_03491C_SX_PERFCOUNTER3_HI 0x03491C /* >= gfx7 */ #define R_034980_GCEA_PERFCOUNTER2_LO 0x034980 /* >= gfx10 */ #define R_034984_GCEA_PERFCOUNTER2_HI 0x034984 /* >= gfx10 */ #define R_034988_GCEA_PERFCOUNTER_LO 0x034988 /* >= gfx103 */ #define R_03498C_GCEA_PERFCOUNTER_HI 0x03498C /* >= gfx103 */ #define S_03498C_COUNTER_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_03498C_COUNTER_HI(x) (((x) >> 0) & 0xFFFF) #define C_03498C_COUNTER_HI 0xFFFF0000 #define S_03498C_COMPARE_VALUE(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_03498C_COMPARE_VALUE(x) (((x) >> 16) & 0xFFFF) #define C_03498C_COMPARE_VALUE 0x0000FFFF #define R_034A00_GDS_PERFCOUNTER0_LO 0x034A00 /* >= gfx7 */ #define R_034A04_GDS_PERFCOUNTER0_HI 0x034A04 /* >= gfx7 */ #define R_034A08_GDS_PERFCOUNTER1_LO 0x034A08 /* >= gfx7 */ #define R_034A0C_GDS_PERFCOUNTER1_HI 0x034A0C /* >= gfx7 */ #define R_034A10_GDS_PERFCOUNTER2_LO 0x034A10 /* >= gfx7 */ #define R_034A14_GDS_PERFCOUNTER2_HI 0x034A14 /* >= gfx7 */ #define R_034A18_GDS_PERFCOUNTER3_LO 0x034A18 /* >= gfx7 */ #define R_034A1C_GDS_PERFCOUNTER3_HI 0x034A1C /* >= gfx7 */ #define R_034B00_TA_PERFCOUNTER0_LO 0x034B00 /* >= gfx7 */ #define R_034B04_TA_PERFCOUNTER0_HI 0x034B04 /* >= gfx7 */ #define R_034B08_TA_PERFCOUNTER1_LO 0x034B08 /* >= gfx7 */ #define R_034B0C_TA_PERFCOUNTER1_HI 0x034B0C /* >= gfx7 */ #define R_034C00_TD_PERFCOUNTER0_LO 0x034C00 /* >= gfx7 */ #define R_034C04_TD_PERFCOUNTER0_HI 0x034C04 /* >= gfx7 */ #define R_034C08_TD_PERFCOUNTER1_LO 0x034C08 /* >= gfx7 */ #define R_034C0C_TD_PERFCOUNTER1_HI 0x034C0C /* >= gfx7 */ #define R_034D00_TCP_PERFCOUNTER0_LO 0x034D00 /* >= gfx7 */ #define R_034D04_TCP_PERFCOUNTER0_HI 0x034D04 /* >= gfx7 */ #define R_034D08_TCP_PERFCOUNTER1_LO 0x034D08 /* >= gfx7 */ #define R_034D0C_TCP_PERFCOUNTER1_HI 0x034D0C /* >= gfx7 */ #define R_034D10_TCP_PERFCOUNTER2_LO 0x034D10 /* >= gfx7 */ #define R_034D14_TCP_PERFCOUNTER2_HI 0x034D14 /* >= gfx7 */ #define R_034D18_TCP_PERFCOUNTER3_LO 0x034D18 /* >= gfx7 */ #define R_034D1C_TCP_PERFCOUNTER3_HI 0x034D1C /* >= gfx7 */ #define R_034E00_GL2C_PERFCOUNTER0_LO 0x034E00 /* >= gfx10 */ #define R_034E00_TCC_PERFCOUNTER0_LO 0x034E00 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034E04_GL2C_PERFCOUNTER0_HI 0x034E04 /* >= gfx10 */ #define R_034E04_TCC_PERFCOUNTER0_HI 0x034E04 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034E08_GL2C_PERFCOUNTER1_LO 0x034E08 /* >= gfx10 */ #define R_034E08_TCC_PERFCOUNTER1_LO 0x034E08 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034E0C_GL2C_PERFCOUNTER1_HI 0x034E0C /* >= gfx10 */ #define R_034E0C_TCC_PERFCOUNTER1_HI 0x034E0C /* gfx7, gfx8, gfx81, gfx9 */ #define R_034E10_GL2C_PERFCOUNTER2_LO 0x034E10 /* >= gfx10 */ #define R_034E10_TCC_PERFCOUNTER2_LO 0x034E10 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034E14_GL2C_PERFCOUNTER2_HI 0x034E14 /* >= gfx10 */ #define R_034E14_TCC_PERFCOUNTER2_HI 0x034E14 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034E18_GL2C_PERFCOUNTER3_LO 0x034E18 /* >= gfx10 */ #define R_034E18_TCC_PERFCOUNTER3_LO 0x034E18 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034E1C_GL2C_PERFCOUNTER3_HI 0x034E1C /* >= gfx10 */ #define R_034E1C_TCC_PERFCOUNTER3_HI 0x034E1C /* gfx7, gfx8, gfx81, gfx9 */ #define R_034E40_GL2A_PERFCOUNTER0_LO 0x034E40 /* >= gfx10 */ #define R_034E40_TCA_PERFCOUNTER0_LO 0x034E40 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034E44_GL2A_PERFCOUNTER0_HI 0x034E44 /* >= gfx10 */ #define R_034E44_TCA_PERFCOUNTER0_HI 0x034E44 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034E48_GL2A_PERFCOUNTER1_LO 0x034E48 /* >= gfx10 */ #define R_034E48_TCA_PERFCOUNTER1_LO 0x034E48 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034E4C_GL2A_PERFCOUNTER1_HI 0x034E4C /* >= gfx10 */ #define R_034E4C_TCA_PERFCOUNTER1_HI 0x034E4C /* gfx7, gfx8, gfx81, gfx9 */ #define R_034E50_GL2A_PERFCOUNTER2_LO 0x034E50 /* >= gfx10 */ #define R_034E50_TCA_PERFCOUNTER2_LO 0x034E50 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034E54_GL2A_PERFCOUNTER2_HI 0x034E54 /* >= gfx10 */ #define R_034E54_TCA_PERFCOUNTER2_HI 0x034E54 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034E58_GL2A_PERFCOUNTER3_LO 0x034E58 /* >= gfx10 */ #define R_034E58_TCA_PERFCOUNTER3_LO 0x034E58 /* gfx7, gfx8, gfx81, gfx9 */ #define R_034E5C_GL2A_PERFCOUNTER3_HI 0x034E5C /* >= gfx10 */ #define R_034E5C_TCA_PERFCOUNTER3_HI 0x034E5C /* gfx7, gfx8, gfx81, gfx9 */ #define R_034E80_GL1C_PERFCOUNTER0_LO 0x034E80 /* >= gfx10 */ #define R_034E80_TCS_PERFCOUNTER0_LO 0x034E80 /* gfx7 */ #define R_034E84_GL1C_PERFCOUNTER0_HI 0x034E84 /* >= gfx10 */ #define R_034E84_TCS_PERFCOUNTER0_HI 0x034E84 /* gfx7 */ #define R_034E88_GL1C_PERFCOUNTER1_LO 0x034E88 /* >= gfx10 */ #define R_034E88_TCS_PERFCOUNTER1_LO 0x034E88 /* gfx7 */ #define R_034E8C_GL1C_PERFCOUNTER1_HI 0x034E8C /* >= gfx10 */ #define R_034E8C_TCS_PERFCOUNTER1_HI 0x034E8C /* gfx7 */ #define R_034E90_GL1C_PERFCOUNTER2_LO 0x034E90 /* >= gfx10 */ #define R_034E90_TCS_PERFCOUNTER2_LO 0x034E90 /* gfx7 */ #define R_034E94_GL1C_PERFCOUNTER2_HI 0x034E94 /* >= gfx10 */ #define R_034E94_TCS_PERFCOUNTER2_HI 0x034E94 /* gfx7 */ #define R_034E98_GL1C_PERFCOUNTER3_LO 0x034E98 /* >= gfx10 */ #define R_034E98_TCS_PERFCOUNTER3_LO 0x034E98 /* gfx7 */ #define R_034E9C_GL1C_PERFCOUNTER3_HI 0x034E9C /* >= gfx10 */ #define R_034E9C_TCS_PERFCOUNTER3_HI 0x034E9C /* gfx7 */ #define R_034F00_CHC_PERFCOUNTER0_LO 0x034F00 /* >= gfx10 */ #define R_034F04_CHC_PERFCOUNTER0_HI 0x034F04 /* >= gfx10 */ #define R_034F08_CHC_PERFCOUNTER1_LO 0x034F08 /* >= gfx10 */ #define R_034F0C_CHC_PERFCOUNTER1_HI 0x034F0C /* >= gfx10 */ #define R_034F10_CHC_PERFCOUNTER2_LO 0x034F10 /* >= gfx10 */ #define R_034F14_CHC_PERFCOUNTER2_HI 0x034F14 /* >= gfx10 */ #define R_034F18_CHC_PERFCOUNTER3_LO 0x034F18 /* >= gfx10 */ #define R_034F1C_CHC_PERFCOUNTER3_HI 0x034F1C /* >= gfx10 */ #define R_034F20_CHCG_PERFCOUNTER0_LO 0x034F20 /* >= gfx10 */ #define R_034F24_CHCG_PERFCOUNTER0_HI 0x034F24 /* >= gfx10 */ #define R_034F28_CHCG_PERFCOUNTER1_LO 0x034F28 /* >= gfx10 */ #define R_034F2C_CHCG_PERFCOUNTER1_HI 0x034F2C /* >= gfx10 */ #define R_034F30_CHCG_PERFCOUNTER2_LO 0x034F30 /* >= gfx10 */ #define R_034F34_CHCG_PERFCOUNTER2_HI 0x034F34 /* >= gfx10 */ #define R_034F38_CHCG_PERFCOUNTER3_LO 0x034F38 /* >= gfx10 */ #define R_034F3C_CHCG_PERFCOUNTER3_HI 0x034F3C /* >= gfx10 */ #define R_035018_CB_PERFCOUNTER0_LO 0x035018 /* >= gfx7 */ #define R_03501C_CB_PERFCOUNTER0_HI 0x03501C /* >= gfx7 */ #define R_035020_CB_PERFCOUNTER1_LO 0x035020 /* >= gfx7 */ #define R_035024_CB_PERFCOUNTER1_HI 0x035024 /* >= gfx7 */ #define R_035028_CB_PERFCOUNTER2_LO 0x035028 /* >= gfx7 */ #define R_03502C_CB_PERFCOUNTER2_HI 0x03502C /* >= gfx7 */ #define R_035030_CB_PERFCOUNTER3_LO 0x035030 /* >= gfx7 */ #define R_035034_CB_PERFCOUNTER3_HI 0x035034 /* >= gfx7 */ #define R_035100_DB_PERFCOUNTER0_LO 0x035100 /* >= gfx7 */ #define R_035104_DB_PERFCOUNTER0_HI 0x035104 /* >= gfx7 */ #define R_035108_DB_PERFCOUNTER1_LO 0x035108 /* >= gfx7 */ #define R_03510C_DB_PERFCOUNTER1_HI 0x03510C /* >= gfx7 */ #define R_035110_DB_PERFCOUNTER2_LO 0x035110 /* >= gfx7 */ #define R_035114_DB_PERFCOUNTER2_HI 0x035114 /* >= gfx7 */ #define R_035118_DB_PERFCOUNTER3_LO 0x035118 /* >= gfx7 */ #define R_03511C_DB_PERFCOUNTER3_HI 0x03511C /* >= gfx7 */ #define R_035200_RLC_PERFCOUNTER0_LO 0x035200 /* >= gfx7 */ #define R_035204_RLC_PERFCOUNTER0_HI 0x035204 /* >= gfx7 */ #define R_035208_RLC_PERFCOUNTER1_LO 0x035208 /* >= gfx7 */ #define R_03520C_RLC_PERFCOUNTER1_HI 0x03520C /* >= gfx7 */ #define R_035300_RMI_PERFCOUNTER0_LO 0x035300 /* >= gfx9 */ #define R_035304_RMI_PERFCOUNTER0_HI 0x035304 /* >= gfx9 */ #define R_035308_RMI_PERFCOUNTER1_LO 0x035308 /* >= gfx9 */ #define R_03530C_RMI_PERFCOUNTER1_HI 0x03530C /* >= gfx9 */ #define R_035310_RMI_PERFCOUNTER2_LO 0x035310 /* >= gfx9 */ #define R_035314_RMI_PERFCOUNTER2_HI 0x035314 /* >= gfx9 */ #define R_035318_RMI_PERFCOUNTER3_LO 0x035318 /* >= gfx9 */ #define R_03531C_RMI_PERFCOUNTER3_HI 0x03531C /* >= gfx9 */ #define R_035380_GC_ATC_L2_PERFCOUNTER_LO 0x035380 /* gfx10 */ #define R_035384_GC_ATC_L2_PERFCOUNTER_HI 0x035384 /* gfx10 */ #define S_035384_COUNTER_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_035384_COUNTER_HI(x) (((x) >> 0) & 0xFFFF) #define C_035384_COUNTER_HI 0xFFFF0000 #define S_035384_COMPARE_VALUE(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_035384_COMPARE_VALUE(x) (((x) >> 16) & 0xFFFF) #define C_035384_COMPARE_VALUE 0x0000FFFF #define R_0353A0_GCMC_VM_L2_PERFCOUNTER_LO 0x0353A0 /* >= gfx10 */ #define R_0353A4_GCMC_VM_L2_PERFCOUNTER_HI 0x0353A4 /* >= gfx10 */ #define S_0353A4_COUNTER_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_0353A4_COUNTER_HI(x) (((x) >> 0) & 0xFFFF) #define C_0353A4_COUNTER_HI 0xFFFF0000 #define S_0353A4_COMPARE_VALUE(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_0353A4_COMPARE_VALUE(x) (((x) >> 16) & 0xFFFF) #define C_0353A4_COMPARE_VALUE 0x0000FFFF #define R_0353A8_GCUTCL2_PERFCOUNTER_LO 0x0353A8 /* >= gfx103 */ #define R_0353AC_GCUTCL2_PERFCOUNTER_HI 0x0353AC /* >= gfx103 */ #define S_0353AC_COUNTER_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_0353AC_COUNTER_HI(x) (((x) >> 0) & 0xFFFF) #define C_0353AC_COUNTER_HI 0xFFFF0000 #define S_0353AC_COMPARE_VALUE(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_0353AC_COMPARE_VALUE(x) (((x) >> 16) & 0xFFFF) #define C_0353AC_COMPARE_VALUE 0x0000FFFF #define R_0353E0_GCVML2_PERFCOUNTER2_0_LO 0x0353E0 /* >= gfx10 */ #define R_0353E4_GCVML2_PERFCOUNTER2_1_LO 0x0353E4 /* >= gfx10 */ #define R_0353E8_GCVML2_PERFCOUNTER2_0_HI 0x0353E8 /* >= gfx10 */ #define R_0353EC_GCVML2_PERFCOUNTER2_1_HI 0x0353EC /* >= gfx10 */ #define R_0353F0_GC_ATC_L2_PERFCOUNTER2_LO 0x0353F0 /* gfx10 */ #define R_0353F4_GC_ATC_L2_PERFCOUNTER2_HI 0x0353F4 /* gfx10 */ #define R_035400_ATC_L2_PERFCOUNTER_LO 0x035400 /* gfx9 */ #define R_035404_ATC_L2_PERFCOUNTER_HI 0x035404 /* gfx9 */ #define S_035404_COUNTER_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_035404_COUNTER_HI(x) (((x) >> 0) & 0xFFFF) #define C_035404_COUNTER_HI 0xFFFF0000 #define S_035404_COMPARE_VALUE(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_035404_COMPARE_VALUE(x) (((x) >> 16) & 0xFFFF) #define C_035404_COMPARE_VALUE 0x0000FFFF #define R_035420_MC_VM_L2_PERFCOUNTER_LO 0x035420 /* gfx9 */ #define R_035424_MC_VM_L2_PERFCOUNTER_HI 0x035424 /* gfx9 */ #define S_035424_COUNTER_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_035424_COUNTER_HI(x) (((x) >> 0) & 0xFFFF) #define C_035424_COUNTER_HI 0xFFFF0000 #define S_035424_COMPARE_VALUE(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_035424_COMPARE_VALUE(x) (((x) >> 16) & 0xFFFF) #define C_035424_COMPARE_VALUE 0x0000FFFF #define R_035470_UTCL1_PERFCOUNTER0_LO 0x035470 /* >= gfx10 */ #define R_035474_UTCL1_PERFCOUNTER0_HI 0x035474 /* >= gfx10 */ #define R_035478_UTCL1_PERFCOUNTER1_LO 0x035478 /* >= gfx10 */ #define R_03547C_UTCL1_PERFCOUNTER1_HI 0x03547C /* >= gfx10 */ #define R_035480_GCR_PERFCOUNTER0_LO 0x035480 /* >= gfx10 */ #define R_035484_GCR_PERFCOUNTER0_HI 0x035484 /* >= gfx10 */ #define R_035488_GCR_PERFCOUNTER1_LO 0x035488 /* >= gfx10 */ #define R_03548C_GCR_PERFCOUNTER1_HI 0x03548C /* >= gfx10 */ #define R_035600_PA_PH_PERFCOUNTER0_LO 0x035600 /* >= gfx10 */ #define R_035604_PA_PH_PERFCOUNTER0_HI 0x035604 /* >= gfx10 */ #define R_035608_PA_PH_PERFCOUNTER1_LO 0x035608 /* >= gfx10 */ #define R_03560C_PA_PH_PERFCOUNTER1_HI 0x03560C /* >= gfx10 */ #define R_035610_PA_PH_PERFCOUNTER2_LO 0x035610 /* >= gfx10 */ #define R_035614_PA_PH_PERFCOUNTER2_HI 0x035614 /* >= gfx10 */ #define R_035618_PA_PH_PERFCOUNTER3_LO 0x035618 /* >= gfx10 */ #define R_03561C_PA_PH_PERFCOUNTER3_HI 0x03561C /* >= gfx10 */ #define R_035620_PA_PH_PERFCOUNTER4_LO 0x035620 /* >= gfx10 */ #define R_035624_PA_PH_PERFCOUNTER4_HI 0x035624 /* >= gfx10 */ #define R_035628_PA_PH_PERFCOUNTER5_LO 0x035628 /* >= gfx10 */ #define R_03562C_PA_PH_PERFCOUNTER5_HI 0x03562C /* >= gfx10 */ #define R_035630_PA_PH_PERFCOUNTER6_LO 0x035630 /* >= gfx10 */ #define R_035634_PA_PH_PERFCOUNTER6_HI 0x035634 /* >= gfx10 */ #define R_035638_PA_PH_PERFCOUNTER7_LO 0x035638 /* >= gfx10 */ #define R_03563C_PA_PH_PERFCOUNTER7_HI 0x03563C /* >= gfx10 */ #define R_035700_GL1A_PERFCOUNTER0_LO 0x035700 /* >= gfx10 */ #define R_035704_GL1A_PERFCOUNTER0_HI 0x035704 /* >= gfx10 */ #define R_035708_GL1A_PERFCOUNTER1_LO 0x035708 /* >= gfx10 */ #define R_03570C_GL1A_PERFCOUNTER1_HI 0x03570C /* >= gfx10 */ #define R_035710_GL1A_PERFCOUNTER2_LO 0x035710 /* >= gfx10 */ #define R_035714_GL1A_PERFCOUNTER2_HI 0x035714 /* >= gfx10 */ #define R_035718_GL1A_PERFCOUNTER3_LO 0x035718 /* >= gfx10 */ #define R_03571C_GL1A_PERFCOUNTER3_HI 0x03571C /* >= gfx10 */ #define R_035800_CHA_PERFCOUNTER0_LO 0x035800 /* >= gfx10 */ #define R_035804_CHA_PERFCOUNTER0_HI 0x035804 /* >= gfx10 */ #define R_035808_CHA_PERFCOUNTER1_LO 0x035808 /* >= gfx10 */ #define R_03580C_CHA_PERFCOUNTER1_HI 0x03580C /* >= gfx10 */ #define R_035810_CHA_PERFCOUNTER2_LO 0x035810 /* >= gfx10 */ #define R_035814_CHA_PERFCOUNTER2_HI 0x035814 /* >= gfx10 */ #define R_035818_CHA_PERFCOUNTER3_LO 0x035818 /* >= gfx10 */ #define R_03581C_CHA_PERFCOUNTER3_HI 0x03581C /* >= gfx10 */ #define R_035900_GUS_PERFCOUNTER2_LO 0x035900 /* >= gfx10 */ #define R_035904_GUS_PERFCOUNTER2_HI 0x035904 /* >= gfx10 */ #define R_035908_GUS_PERFCOUNTER_LO 0x035908 /* >= gfx103 */ #define R_03590C_GUS_PERFCOUNTER_HI 0x03590C /* >= gfx103 */ #define S_03590C_COUNTER_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_03590C_COUNTER_HI(x) (((x) >> 0) & 0xFFFF) #define C_03590C_COUNTER_HI 0xFFFF0000 #define S_03590C_COMPARE_VALUE(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_03590C_COMPARE_VALUE(x) (((x) >> 16) & 0xFFFF) #define C_03590C_COMPARE_VALUE 0x0000FFFF #define R_035980_SDMA0_PERFCNT_PERFCOUNTER_LO 0x035980 /* >= gfx103 */ #define R_035984_SDMA0_PERFCNT_PERFCOUNTER_HI 0x035984 /* >= gfx103 */ #define S_035984_COUNTER_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_035984_COUNTER_HI(x) (((x) >> 0) & 0xFFFF) #define C_035984_COUNTER_HI 0xFFFF0000 #define S_035984_COMPARE_VALUE(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_035984_COMPARE_VALUE(x) (((x) >> 16) & 0xFFFF) #define C_035984_COMPARE_VALUE 0x0000FFFF #define R_035988_SDMA0_PERFCOUNTER0_LO 0x035988 /* >= gfx103 */ #define R_03598C_SDMA0_PERFCOUNTER0_HI 0x03598C /* >= gfx103 */ #define R_035990_SDMA0_PERFCOUNTER1_LO 0x035990 /* >= gfx103 */ #define R_035994_SDMA0_PERFCOUNTER1_HI 0x035994 /* >= gfx103 */ #define R_0359B0_SDMA1_PERFCNT_PERFCOUNTER_LO 0x0359B0 /* >= gfx103 */ #define R_0359B4_SDMA1_PERFCNT_PERFCOUNTER_HI 0x0359B4 /* >= gfx103 */ #define R_0359B8_SDMA1_PERFCOUNTER0_LO 0x0359B8 /* >= gfx103 */ #define R_0359BC_SDMA1_PERFCOUNTER0_HI 0x0359BC /* >= gfx103 */ #define R_0359C0_SDMA1_PERFCOUNTER1_LO 0x0359C0 /* >= gfx103 */ #define R_0359C4_SDMA1_PERFCOUNTER1_HI 0x0359C4 /* >= gfx103 */ #define R_0359E0_SDMA2_PERFCNT_PERFCOUNTER_LO 0x0359E0 /* >= gfx103 */ #define R_0359E4_SDMA2_PERFCNT_PERFCOUNTER_HI 0x0359E4 /* >= gfx103 */ #define R_0359E8_SDMA2_PERFCOUNTER0_LO 0x0359E8 /* >= gfx103 */ #define R_0359EC_SDMA2_PERFCOUNTER0_HI 0x0359EC /* >= gfx103 */ #define R_0359F0_SDMA2_PERFCOUNTER1_LO 0x0359F0 /* >= gfx103 */ #define R_0359F4_SDMA2_PERFCOUNTER1_HI 0x0359F4 /* >= gfx103 */ #define R_035A10_SDMA3_PERFCNT_PERFCOUNTER_LO 0x035A10 /* >= gfx103 */ #define R_035A14_SDMA3_PERFCNT_PERFCOUNTER_HI 0x035A14 /* >= gfx103 */ #define R_035A18_SDMA3_PERFCOUNTER0_LO 0x035A18 /* >= gfx103 */ #define R_035A1C_SDMA3_PERFCOUNTER0_HI 0x035A1C /* >= gfx103 */ #define R_035A20_SDMA3_PERFCOUNTER1_LO 0x035A20 /* >= gfx103 */ #define R_035A24_SDMA3_PERFCOUNTER1_HI 0x035A24 /* >= gfx103 */ #define R_036000_CPG_PERFCOUNTER1_SELECT 0x036000 /* >= gfx7 */ #define S_036000_CNTR_SEL0(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx9 */ #define G_036000_CNTR_SEL0(x) (((x) >> 0) & 0x3FF) #define C_036000_CNTR_SEL0 0xFFFFFC00 #define S_036000_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx7, gfx8, gfx81, >= gfx10 */ #define G_036000_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036000_PERF_SEL 0xFFFFFC00 #define S_036000_CNTR_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) /* gfx9 */ #define G_036000_CNTR_SEL1(x) (((x) >> 10) & 0x3FF) #define C_036000_CNTR_SEL1 0xFFF003FF #define S_036000_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) /* >= gfx10 */ #define G_036000_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_036000_PERF_SEL1 0xFFF003FF #define S_036000_SPM_MODE(x) (((unsigned)(x) & 0xF) << 20) /* >= gfx9 */ #define G_036000_SPM_MODE(x) (((x) >> 20) & 0xF) #define C_036000_SPM_MODE 0xFF0FFFFF #define S_036000_CNTR_MODE1(x) (((unsigned)(x) & 0xF) << 24) /* >= gfx9 */ #define G_036000_CNTR_MODE1(x) (((x) >> 24) & 0xF) #define C_036000_CNTR_MODE1 0xF0FFFFFF #define S_036000_CNTR_MODE0(x) (((unsigned)(x) & 0xF) << 28) /* >= gfx9 */ #define G_036000_CNTR_MODE0(x) (((x) >> 28) & 0xF) #define C_036000_CNTR_MODE0 0x0FFFFFFF #define R_036004_CPG_PERFCOUNTER0_SELECT1 0x036004 /* >= gfx7 */ #define S_036004_CNTR_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx9 */ #define G_036004_CNTR_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036004_CNTR_SEL2 0xFFFFFC00 #define S_036004_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx7, gfx8, gfx81, >= gfx10 */ #define G_036004_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036004_PERF_SEL2 0xFFFFFC00 #define S_036004_CNTR_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) /* gfx9 */ #define G_036004_CNTR_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036004_CNTR_SEL3 0xFFF003FF #define S_036004_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) /* gfx7, gfx8, gfx81, >= gfx10 */ #define G_036004_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036004_PERF_SEL3 0xFFF003FF #define S_036004_CNTR_MODE3(x) (((unsigned)(x) & 0xF) << 24) /* >= gfx9 */ #define G_036004_CNTR_MODE3(x) (((x) >> 24) & 0xF) #define C_036004_CNTR_MODE3 0xF0FFFFFF #define S_036004_CNTR_MODE2(x) (((unsigned)(x) & 0xF) << 28) /* >= gfx9 */ #define G_036004_CNTR_MODE2(x) (((x) >> 28) & 0xF) #define C_036004_CNTR_MODE2 0x0FFFFFFF #define R_036008_CPG_PERFCOUNTER0_SELECT 0x036008 /* >= gfx7 */ #define S_036008_PERF_SEL(x) (((unsigned)(x) & 0x3F) << 0) /* gfx7, gfx8, gfx81 */ #define G_036008_PERF_SEL(x) (((x) >> 0) & 0x3F) #define C_036008_PERF_SEL 0xFFFFFFC0 #define S_036008_PERF_SEL1(x) (((unsigned)(x) & 0x3F) << 10) /* gfx7, gfx8, gfx81 */ #define G_036008_PERF_SEL1(x) (((x) >> 10) & 0x3F) #define C_036008_PERF_SEL1 0xFFFF03FF #define S_036008_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) /* gfx7, gfx8, gfx81 */ #define G_036008_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036008_CNTR_MODE 0xFF0FFFFF #define R_03600C_CPC_PERFCOUNTER1_SELECT 0x03600C /* >= gfx7 */ #define S_03600C_CNTR_SEL0(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx9 */ #define G_03600C_CNTR_SEL0(x) (((x) >> 0) & 0x3FF) #define C_03600C_CNTR_SEL0 0xFFFFFC00 #define S_03600C_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx7, gfx8, gfx81, >= gfx10 */ #define G_03600C_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_03600C_PERF_SEL 0xFFFFFC00 #define S_03600C_CNTR_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) /* gfx9 */ #define G_03600C_CNTR_SEL1(x) (((x) >> 10) & 0x3FF) #define C_03600C_CNTR_SEL1 0xFFF003FF #define S_03600C_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) /* >= gfx10 */ #define G_03600C_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_03600C_PERF_SEL1 0xFFF003FF #define S_03600C_SPM_MODE(x) (((unsigned)(x) & 0xF) << 20) /* >= gfx9 */ #define G_03600C_SPM_MODE(x) (((x) >> 20) & 0xF) #define C_03600C_SPM_MODE 0xFF0FFFFF #define S_03600C_CNTR_MODE1(x) (((unsigned)(x) & 0xF) << 24) /* >= gfx9 */ #define G_03600C_CNTR_MODE1(x) (((x) >> 24) & 0xF) #define C_03600C_CNTR_MODE1 0xF0FFFFFF #define S_03600C_CNTR_MODE0(x) (((unsigned)(x) & 0xF) << 28) /* >= gfx9 */ #define G_03600C_CNTR_MODE0(x) (((x) >> 28) & 0xF) #define C_03600C_CNTR_MODE0 0x0FFFFFFF #define R_036010_CPC_PERFCOUNTER0_SELECT1 0x036010 /* >= gfx7 */ #define S_036010_CNTR_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx9 */ #define G_036010_CNTR_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036010_CNTR_SEL2 0xFFFFFC00 #define S_036010_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx7, gfx8, gfx81, >= gfx10 */ #define G_036010_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036010_PERF_SEL2 0xFFFFFC00 #define S_036010_CNTR_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) /* gfx9 */ #define G_036010_CNTR_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036010_CNTR_SEL3 0xFFF003FF #define S_036010_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) /* gfx7, gfx8, gfx81, >= gfx10 */ #define G_036010_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036010_PERF_SEL3 0xFFF003FF #define S_036010_CNTR_MODE3(x) (((unsigned)(x) & 0xF) << 24) /* >= gfx9 */ #define G_036010_CNTR_MODE3(x) (((x) >> 24) & 0xF) #define C_036010_CNTR_MODE3 0xF0FFFFFF #define S_036010_CNTR_MODE2(x) (((unsigned)(x) & 0xF) << 28) /* >= gfx9 */ #define G_036010_CNTR_MODE2(x) (((x) >> 28) & 0xF) #define C_036010_CNTR_MODE2 0x0FFFFFFF #define R_036014_CPF_PERFCOUNTER1_SELECT 0x036014 /* >= gfx7 */ #define S_036014_CNTR_SEL0(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx9 */ #define G_036014_CNTR_SEL0(x) (((x) >> 0) & 0x3FF) #define C_036014_CNTR_SEL0 0xFFFFFC00 #define S_036014_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx7, gfx8, gfx81, >= gfx10 */ #define G_036014_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036014_PERF_SEL 0xFFFFFC00 #define S_036014_CNTR_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) /* gfx9 */ #define G_036014_CNTR_SEL1(x) (((x) >> 10) & 0x3FF) #define C_036014_CNTR_SEL1 0xFFF003FF #define S_036014_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) /* >= gfx10 */ #define G_036014_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_036014_PERF_SEL1 0xFFF003FF #define S_036014_SPM_MODE(x) (((unsigned)(x) & 0xF) << 20) /* >= gfx9 */ #define G_036014_SPM_MODE(x) (((x) >> 20) & 0xF) #define C_036014_SPM_MODE 0xFF0FFFFF #define S_036014_CNTR_MODE1(x) (((unsigned)(x) & 0xF) << 24) /* >= gfx9 */ #define G_036014_CNTR_MODE1(x) (((x) >> 24) & 0xF) #define C_036014_CNTR_MODE1 0xF0FFFFFF #define S_036014_CNTR_MODE0(x) (((unsigned)(x) & 0xF) << 28) /* >= gfx9 */ #define G_036014_CNTR_MODE0(x) (((x) >> 28) & 0xF) #define C_036014_CNTR_MODE0 0x0FFFFFFF #define R_036018_CPF_PERFCOUNTER0_SELECT1 0x036018 /* >= gfx7 */ #define S_036018_CNTR_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx9 */ #define G_036018_CNTR_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036018_CNTR_SEL2 0xFFFFFC00 #define S_036018_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx7, gfx8, gfx81, >= gfx10 */ #define G_036018_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036018_PERF_SEL2 0xFFFFFC00 #define S_036018_CNTR_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) /* gfx9 */ #define G_036018_CNTR_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036018_CNTR_SEL3 0xFFF003FF #define S_036018_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) /* gfx7, gfx8, gfx81, >= gfx10 */ #define G_036018_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036018_PERF_SEL3 0xFFF003FF #define S_036018_CNTR_MODE3(x) (((unsigned)(x) & 0xF) << 24) /* >= gfx9 */ #define G_036018_CNTR_MODE3(x) (((x) >> 24) & 0xF) #define C_036018_CNTR_MODE3 0xF0FFFFFF #define S_036018_CNTR_MODE2(x) (((unsigned)(x) & 0xF) << 28) /* >= gfx9 */ #define G_036018_CNTR_MODE2(x) (((x) >> 28) & 0xF) #define C_036018_CNTR_MODE2 0x0FFFFFFF #define R_03601C_CPF_PERFCOUNTER0_SELECT 0x03601C /* >= gfx7 */ #define S_03601C_PERF_SEL(x) (((unsigned)(x) & 0x3F) << 0) /* gfx7, gfx8, gfx81 */ #define G_03601C_PERF_SEL(x) (((x) >> 0) & 0x3F) #define C_03601C_PERF_SEL 0xFFFFFFC0 #define S_03601C_PERF_SEL1(x) (((unsigned)(x) & 0x3F) << 10) /* gfx7, gfx8, gfx81 */ #define G_03601C_PERF_SEL1(x) (((x) >> 10) & 0x3F) #define C_03601C_PERF_SEL1 0xFFFF03FF #define S_03601C_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) /* gfx7, gfx8, gfx81 */ #define G_03601C_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_03601C_CNTR_MODE 0xFF0FFFFF #define R_036020_CP_PERFMON_CNTL 0x036020 /* >= gfx7 */ #define S_036020_PERFMON_STATE(x) (((unsigned)(x) & 0xF) << 0) #define G_036020_PERFMON_STATE(x) (((x) >> 0) & 0xF) #define C_036020_PERFMON_STATE 0xFFFFFFF0 #define V_036020_CP_PERFMON_STATE_DISABLE_AND_RESET 0 #define V_036020_CP_PERFMON_STATE_START_COUNTING 1 #define V_036020_CP_PERFMON_STATE_STOP_COUNTING 2 #define V_036020_CP_PERFMON_STATE_RESERVED_3 3 #define V_036020_CP_PERFMON_STATE_DISABLE_AND_RESET_PHANTOM 4 #define V_036020_CP_PERFMON_STATE_COUNT_AND_DUMP_PHANTOM 5 #define S_036020_SPM_PERFMON_STATE(x) (((unsigned)(x) & 0xF) << 4) #define G_036020_SPM_PERFMON_STATE(x) (((x) >> 4) & 0xF) #define C_036020_SPM_PERFMON_STATE 0xFFFFFF0F #define V_036020_STRM_PERFMON_STATE_DISABLE_AND_RESET 0 #define V_036020_STRM_PERFMON_STATE_START_COUNTING 1 #define V_036020_STRM_PERFMON_STATE_STOP_COUNTING 2 #define V_036020_STRM_PERFMON_STATE_RESERVED_3 3 #define V_036020_STRM_PERFMON_STATE_DISABLE_AND_RESET_PHANTOM 4 #define V_036020_STRM_PERFMON_STATE_COUNT_AND_DUMP_PHANTOM 5 #define S_036020_PERFMON_ENABLE_MODE(x) (((unsigned)(x) & 0x3) << 8) #define G_036020_PERFMON_ENABLE_MODE(x) (((x) >> 8) & 0x3) #define C_036020_PERFMON_ENABLE_MODE 0xFFFFFCFF #define V_036020_CP_PERFMON_ENABLE_MODE_ALWAYS_COUNT 0 #define V_036020_CP_PERFMON_ENABLE_MODE_RESERVED_1 1 #define V_036020_CP_PERFMON_ENABLE_MODE_COUNT_CONTEXT_TRUE 2 #define V_036020_CP_PERFMON_ENABLE_MODE_COUNT_CONTEXT_FALSE 3 #define S_036020_PERFMON_SAMPLE_ENABLE(x) (((unsigned)(x) & 0x1) << 10) #define G_036020_PERFMON_SAMPLE_ENABLE(x) (((x) >> 10) & 0x1) #define C_036020_PERFMON_SAMPLE_ENABLE 0xFFFFFBFF #define R_036024_CPC_PERFCOUNTER0_SELECT 0x036024 /* >= gfx7 */ #define S_036024_PERF_SEL(x) (((unsigned)(x) & 0x3F) << 0) /* gfx7, gfx8, gfx81 */ #define G_036024_PERF_SEL(x) (((x) >> 0) & 0x3F) #define C_036024_PERF_SEL 0xFFFFFFC0 #define S_036024_PERF_SEL1(x) (((unsigned)(x) & 0x3F) << 10) /* gfx7, gfx8, gfx81 */ #define G_036024_PERF_SEL1(x) (((x) >> 10) & 0x3F) #define C_036024_PERF_SEL1 0xFFFF03FF #define S_036024_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) /* gfx7, gfx8, gfx81 */ #define G_036024_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036024_CNTR_MODE 0xFF0FFFFF #define R_036028_CPF_TC_PERF_COUNTER_WINDOW_SELECT 0x036028 /* >= gfx9 */ #define S_036028_INDEX(x) (((unsigned)(x) & 0x7) << 0) #define G_036028_INDEX(x) (((x) >> 0) & 0x7) #define C_036028_INDEX 0xFFFFFFF8 #define S_036028_ALWAYS(x) (((unsigned)(x) & 0x1) << 30) #define G_036028_ALWAYS(x) (((x) >> 30) & 0x1) #define C_036028_ALWAYS 0xBFFFFFFF #define S_036028_ENABLE(x) (((unsigned)(x) & 0x1) << 31) #define G_036028_ENABLE(x) (((x) >> 31) & 0x1) #define C_036028_ENABLE 0x7FFFFFFF #define R_03602C_CPG_TC_PERF_COUNTER_WINDOW_SELECT 0x03602C /* >= gfx9 */ #define S_03602C_INDEX(x) (((unsigned)(x) & 0x1F) << 0) #define G_03602C_INDEX(x) (((x) >> 0) & 0x1F) #define C_03602C_INDEX 0xFFFFFFE0 #define S_03602C_ALWAYS(x) (((unsigned)(x) & 0x1) << 30) #define G_03602C_ALWAYS(x) (((x) >> 30) & 0x1) #define C_03602C_ALWAYS 0xBFFFFFFF #define S_03602C_ENABLE(x) (((unsigned)(x) & 0x1) << 31) #define G_03602C_ENABLE(x) (((x) >> 31) & 0x1) #define C_03602C_ENABLE 0x7FFFFFFF #define R_036030_CPF_LATENCY_STATS_SELECT 0x036030 /* >= gfx9 */ #define S_036030_INDEX(x) (((unsigned)(x) & 0xF) << 0) #define G_036030_INDEX(x) (((x) >> 0) & 0xF) #define C_036030_INDEX 0xFFFFFFF0 #define S_036030_CLEAR(x) (((unsigned)(x) & 0x1) << 30) #define G_036030_CLEAR(x) (((x) >> 30) & 0x1) #define C_036030_CLEAR 0xBFFFFFFF #define S_036030_ENABLE(x) (((unsigned)(x) & 0x1) << 31) #define G_036030_ENABLE(x) (((x) >> 31) & 0x1) #define C_036030_ENABLE 0x7FFFFFFF #define R_036034_CPG_LATENCY_STATS_SELECT 0x036034 /* >= gfx9 */ #define S_036034_INDEX(x) (((unsigned)(x) & 0x1F) << 0) #define G_036034_INDEX(x) (((x) >> 0) & 0x1F) #define C_036034_INDEX 0xFFFFFFE0 #define S_036034_CLEAR(x) (((unsigned)(x) & 0x1) << 30) #define G_036034_CLEAR(x) (((x) >> 30) & 0x1) #define C_036034_CLEAR 0xBFFFFFFF #define S_036034_ENABLE(x) (((unsigned)(x) & 0x1) << 31) #define G_036034_ENABLE(x) (((x) >> 31) & 0x1) #define C_036034_ENABLE 0x7FFFFFFF #define R_036038_CPC_LATENCY_STATS_SELECT 0x036038 /* >= gfx9 */ #define S_036038_INDEX(x) (((unsigned)(x) & 0xF) << 0) #define G_036038_INDEX(x) (((x) >> 0) & 0xF) #define C_036038_INDEX 0xFFFFFFF0 #define S_036038_CLEAR(x) (((unsigned)(x) & 0x1) << 30) #define G_036038_CLEAR(x) (((x) >> 30) & 0x1) #define C_036038_CLEAR 0xBFFFFFFF #define S_036038_ENABLE(x) (((unsigned)(x) & 0x1) << 31) #define G_036038_ENABLE(x) (((x) >> 31) & 0x1) #define C_036038_ENABLE 0x7FFFFFFF #define R_036040_CP_DRAW_OBJECT 0x036040 /* >= gfx7 */ #define R_036044_CP_DRAW_OBJECT_COUNTER 0x036044 /* >= gfx7 */ #define S_036044_COUNT(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_036044_COUNT(x) (((x) >> 0) & 0xFFFF) #define C_036044_COUNT 0xFFFF0000 #define R_036048_CP_DRAW_WINDOW_MASK_HI 0x036048 /* >= gfx7 */ #define R_03604C_CP_DRAW_WINDOW_HI 0x03604C /* >= gfx7 */ #define R_036050_CP_DRAW_WINDOW_LO 0x036050 /* >= gfx7 */ #define S_036050_MIN(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_036050_MIN(x) (((x) >> 0) & 0xFFFF) #define C_036050_MIN 0xFFFF0000 #define S_036050_MAX(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_036050_MAX(x) (((x) >> 16) & 0xFFFF) #define C_036050_MAX 0x0000FFFF #define R_036054_CP_DRAW_WINDOW_CNTL 0x036054 /* >= gfx7 */ #define S_036054_DISABLE_DRAW_WINDOW_LO_MAX(x) (((unsigned)(x) & 0x1) << 0) #define G_036054_DISABLE_DRAW_WINDOW_LO_MAX(x) (((x) >> 0) & 0x1) #define C_036054_DISABLE_DRAW_WINDOW_LO_MAX 0xFFFFFFFE #define S_036054_DISABLE_DRAW_WINDOW_LO_MIN(x) (((unsigned)(x) & 0x1) << 1) #define G_036054_DISABLE_DRAW_WINDOW_LO_MIN(x) (((x) >> 1) & 0x1) #define C_036054_DISABLE_DRAW_WINDOW_LO_MIN 0xFFFFFFFD #define S_036054_DISABLE_DRAW_WINDOW_HI(x) (((unsigned)(x) & 0x1) << 2) #define G_036054_DISABLE_DRAW_WINDOW_HI(x) (((x) >> 2) & 0x1) #define C_036054_DISABLE_DRAW_WINDOW_HI 0xFFFFFFFB #define S_036054_MODE(x) (((unsigned)(x) & 0x1) << 8) #define G_036054_MODE(x) (((x) >> 8) & 0x1) #define C_036054_MODE 0xFFFFFEFF #define R_036100_GRBM_PERFCOUNTER0_SELECT 0x036100 /* >= gfx7 */ #define S_036100_PERF_SEL(x) (((unsigned)(x) & 0x3F) << 0) #define G_036100_PERF_SEL(x) (((x) >> 0) & 0x3F) #define C_036100_PERF_SEL 0xFFFFFFC0 #define S_036100_DB_CLEAN_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 10) #define G_036100_DB_CLEAN_USER_DEFINED_MASK(x) (((x) >> 10) & 0x1) #define C_036100_DB_CLEAN_USER_DEFINED_MASK 0xFFFFFBFF #define S_036100_CB_CLEAN_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 11) #define G_036100_CB_CLEAN_USER_DEFINED_MASK(x) (((x) >> 11) & 0x1) #define C_036100_CB_CLEAN_USER_DEFINED_MASK 0xFFFFF7FF #define S_036100_VGT_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 12) /* gfx7, gfx8, gfx81, gfx9 */ #define G_036100_VGT_BUSY_USER_DEFINED_MASK(x) (((x) >> 12) & 0x1) #define C_036100_VGT_BUSY_USER_DEFINED_MASK 0xFFFFEFFF #define S_036100_TA_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 13) #define G_036100_TA_BUSY_USER_DEFINED_MASK(x) (((x) >> 13) & 0x1) #define C_036100_TA_BUSY_USER_DEFINED_MASK 0xFFFFDFFF #define S_036100_SX_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 14) #define G_036100_SX_BUSY_USER_DEFINED_MASK(x) (((x) >> 14) & 0x1) #define C_036100_SX_BUSY_USER_DEFINED_MASK 0xFFFFBFFF #define S_036100_SPI_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 16) #define G_036100_SPI_BUSY_USER_DEFINED_MASK(x) (((x) >> 16) & 0x1) #define C_036100_SPI_BUSY_USER_DEFINED_MASK 0xFFFEFFFF #define S_036100_SC_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 17) #define G_036100_SC_BUSY_USER_DEFINED_MASK(x) (((x) >> 17) & 0x1) #define C_036100_SC_BUSY_USER_DEFINED_MASK 0xFFFDFFFF #define S_036100_PA_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 18) #define G_036100_PA_BUSY_USER_DEFINED_MASK(x) (((x) >> 18) & 0x1) #define C_036100_PA_BUSY_USER_DEFINED_MASK 0xFFFBFFFF #define S_036100_GRBM_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 19) #define G_036100_GRBM_BUSY_USER_DEFINED_MASK(x) (((x) >> 19) & 0x1) #define C_036100_GRBM_BUSY_USER_DEFINED_MASK 0xFFF7FFFF #define S_036100_DB_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 20) #define G_036100_DB_BUSY_USER_DEFINED_MASK(x) (((x) >> 20) & 0x1) #define C_036100_DB_BUSY_USER_DEFINED_MASK 0xFFEFFFFF #define S_036100_CB_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 21) #define G_036100_CB_BUSY_USER_DEFINED_MASK(x) (((x) >> 21) & 0x1) #define C_036100_CB_BUSY_USER_DEFINED_MASK 0xFFDFFFFF #define S_036100_CP_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 22) #define G_036100_CP_BUSY_USER_DEFINED_MASK(x) (((x) >> 22) & 0x1) #define C_036100_CP_BUSY_USER_DEFINED_MASK 0xFFBFFFFF #define S_036100_IA_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 23) /* gfx7, gfx8, gfx81, gfx9 */ #define G_036100_IA_BUSY_USER_DEFINED_MASK(x) (((x) >> 23) & 0x1) #define C_036100_IA_BUSY_USER_DEFINED_MASK 0xFF7FFFFF #define S_036100_GDS_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 24) #define G_036100_GDS_BUSY_USER_DEFINED_MASK(x) (((x) >> 24) & 0x1) #define C_036100_GDS_BUSY_USER_DEFINED_MASK 0xFEFFFFFF #define S_036100_BCI_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 25) #define G_036100_BCI_BUSY_USER_DEFINED_MASK(x) (((x) >> 25) & 0x1) #define C_036100_BCI_BUSY_USER_DEFINED_MASK 0xFDFFFFFF #define S_036100_RLC_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 26) #define G_036100_RLC_BUSY_USER_DEFINED_MASK(x) (((x) >> 26) & 0x1) #define C_036100_RLC_BUSY_USER_DEFINED_MASK 0xFBFFFFFF #define S_036100_TCP_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 27) /* >= gfx10 */ #define G_036100_TCP_BUSY_USER_DEFINED_MASK(x) (((x) >> 27) & 0x1) #define C_036100_TCP_BUSY_USER_DEFINED_MASK 0xF7FFFFFF #define S_036100_TC_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 27) /* gfx7, gfx8, gfx81, gfx9 */ #define G_036100_TC_BUSY_USER_DEFINED_MASK(x) (((x) >> 27) & 0x1) #define C_036100_TC_BUSY_USER_DEFINED_MASK 0xF7FFFFFF #define S_036100_GE_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 28) /* >= gfx10 */ #define G_036100_GE_BUSY_USER_DEFINED_MASK(x) (((x) >> 28) & 0x1) #define C_036100_GE_BUSY_USER_DEFINED_MASK 0xEFFFFFFF #define S_036100_WD_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 28) /* gfx7, gfx8, gfx81, gfx9 */ #define G_036100_WD_BUSY_USER_DEFINED_MASK(x) (((x) >> 28) & 0x1) #define C_036100_WD_BUSY_USER_DEFINED_MASK 0xEFFFFFFF #define S_036100_UTCL2_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 29) /* >= gfx9 */ #define G_036100_UTCL2_BUSY_USER_DEFINED_MASK(x) (((x) >> 29) & 0x1) #define C_036100_UTCL2_BUSY_USER_DEFINED_MASK 0xDFFFFFFF #define S_036100_EA_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 30) /* >= gfx9 */ #define G_036100_EA_BUSY_USER_DEFINED_MASK(x) (((x) >> 30) & 0x1) #define C_036100_EA_BUSY_USER_DEFINED_MASK 0xBFFFFFFF #define S_036100_RMI_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 31) /* >= gfx9 */ #define G_036100_RMI_BUSY_USER_DEFINED_MASK(x) (((x) >> 31) & 0x1) #define C_036100_RMI_BUSY_USER_DEFINED_MASK 0x7FFFFFFF #define R_036104_GRBM_PERFCOUNTER1_SELECT 0x036104 /* >= gfx7 */ #define R_036108_GRBM_SE0_PERFCOUNTER_SELECT 0x036108 /* >= gfx7 */ #define S_036108_PERF_SEL(x) (((unsigned)(x) & 0x3F) << 0) #define G_036108_PERF_SEL(x) (((x) >> 0) & 0x3F) #define C_036108_PERF_SEL 0xFFFFFFC0 #define S_036108_DB_CLEAN_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 10) #define G_036108_DB_CLEAN_USER_DEFINED_MASK(x) (((x) >> 10) & 0x1) #define C_036108_DB_CLEAN_USER_DEFINED_MASK 0xFFFFFBFF #define S_036108_CB_CLEAN_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 11) #define G_036108_CB_CLEAN_USER_DEFINED_MASK(x) (((x) >> 11) & 0x1) #define C_036108_CB_CLEAN_USER_DEFINED_MASK 0xFFFFF7FF #define S_036108_TA_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 12) #define G_036108_TA_BUSY_USER_DEFINED_MASK(x) (((x) >> 12) & 0x1) #define C_036108_TA_BUSY_USER_DEFINED_MASK 0xFFFFEFFF #define S_036108_SX_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 13) #define G_036108_SX_BUSY_USER_DEFINED_MASK(x) (((x) >> 13) & 0x1) #define C_036108_SX_BUSY_USER_DEFINED_MASK 0xFFFFDFFF #define S_036108_SPI_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 15) #define G_036108_SPI_BUSY_USER_DEFINED_MASK(x) (((x) >> 15) & 0x1) #define C_036108_SPI_BUSY_USER_DEFINED_MASK 0xFFFF7FFF #define S_036108_SC_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 16) #define G_036108_SC_BUSY_USER_DEFINED_MASK(x) (((x) >> 16) & 0x1) #define C_036108_SC_BUSY_USER_DEFINED_MASK 0xFFFEFFFF #define S_036108_DB_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 17) #define G_036108_DB_BUSY_USER_DEFINED_MASK(x) (((x) >> 17) & 0x1) #define C_036108_DB_BUSY_USER_DEFINED_MASK 0xFFFDFFFF #define S_036108_CB_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 18) #define G_036108_CB_BUSY_USER_DEFINED_MASK(x) (((x) >> 18) & 0x1) #define C_036108_CB_BUSY_USER_DEFINED_MASK 0xFFFBFFFF #define S_036108_VGT_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 19) /* gfx7, gfx8, gfx81, gfx9 */ #define G_036108_VGT_BUSY_USER_DEFINED_MASK(x) (((x) >> 19) & 0x1) #define C_036108_VGT_BUSY_USER_DEFINED_MASK 0xFFF7FFFF #define S_036108_PA_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 20) #define G_036108_PA_BUSY_USER_DEFINED_MASK(x) (((x) >> 20) & 0x1) #define C_036108_PA_BUSY_USER_DEFINED_MASK 0xFFEFFFFF #define S_036108_BCI_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 21) #define G_036108_BCI_BUSY_USER_DEFINED_MASK(x) (((x) >> 21) & 0x1) #define C_036108_BCI_BUSY_USER_DEFINED_MASK 0xFFDFFFFF #define S_036108_RMI_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 22) /* >= gfx9 */ #define G_036108_RMI_BUSY_USER_DEFINED_MASK(x) (((x) >> 22) & 0x1) #define C_036108_RMI_BUSY_USER_DEFINED_MASK 0xFFBFFFFF #define S_036108_UTCL1_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 23) /* >= gfx10 */ #define G_036108_UTCL1_BUSY_USER_DEFINED_MASK(x) (((x) >> 23) & 0x1) #define C_036108_UTCL1_BUSY_USER_DEFINED_MASK 0xFF7FFFFF #define S_036108_TCP_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 24) /* >= gfx10 */ #define G_036108_TCP_BUSY_USER_DEFINED_MASK(x) (((x) >> 24) & 0x1) #define C_036108_TCP_BUSY_USER_DEFINED_MASK 0xFEFFFFFF #define S_036108_GL1CC_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 25) /* >= gfx10 */ #define G_036108_GL1CC_BUSY_USER_DEFINED_MASK(x) (((x) >> 25) & 0x1) #define C_036108_GL1CC_BUSY_USER_DEFINED_MASK 0xFDFFFFFF #define R_03610C_GRBM_SE1_PERFCOUNTER_SELECT 0x03610C /* >= gfx7 */ #define R_036110_GRBM_SE2_PERFCOUNTER_SELECT 0x036110 /* >= gfx7 */ #define R_036114_GRBM_SE3_PERFCOUNTER_SELECT 0x036114 /* >= gfx7 */ #define R_036134_GRBM_PERFCOUNTER0_SELECT_HI 0x036134 /* >= gfx10 */ #define S_036134_UTCL1_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 1) #define G_036134_UTCL1_BUSY_USER_DEFINED_MASK(x) (((x) >> 1) & 0x1) #define C_036134_UTCL1_BUSY_USER_DEFINED_MASK 0xFFFFFFFD #define S_036134_GL2CC_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 2) #define G_036134_GL2CC_BUSY_USER_DEFINED_MASK(x) (((x) >> 2) & 0x1) #define C_036134_GL2CC_BUSY_USER_DEFINED_MASK 0xFFFFFFFB #define S_036134_SDMA_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 3) #define G_036134_SDMA_BUSY_USER_DEFINED_MASK(x) (((x) >> 3) & 0x1) #define C_036134_SDMA_BUSY_USER_DEFINED_MASK 0xFFFFFFF7 #define S_036134_CH_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 4) #define G_036134_CH_BUSY_USER_DEFINED_MASK(x) (((x) >> 4) & 0x1) #define C_036134_CH_BUSY_USER_DEFINED_MASK 0xFFFFFFEF #define S_036134_PH_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 5) #define G_036134_PH_BUSY_USER_DEFINED_MASK(x) (((x) >> 5) & 0x1) #define C_036134_PH_BUSY_USER_DEFINED_MASK 0xFFFFFFDF #define S_036134_PMM_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 6) #define G_036134_PMM_BUSY_USER_DEFINED_MASK(x) (((x) >> 6) & 0x1) #define C_036134_PMM_BUSY_USER_DEFINED_MASK 0xFFFFFFBF #define S_036134_GUS_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 7) #define G_036134_GUS_BUSY_USER_DEFINED_MASK(x) (((x) >> 7) & 0x1) #define C_036134_GUS_BUSY_USER_DEFINED_MASK 0xFFFFFF7F #define S_036134_GL1CC_BUSY_USER_DEFINED_MASK(x) (((unsigned)(x) & 0x1) << 8) #define G_036134_GL1CC_BUSY_USER_DEFINED_MASK(x) (((x) >> 8) & 0x1) #define C_036134_GL1CC_BUSY_USER_DEFINED_MASK 0xFFFFFEFF #define R_036138_GRBM_PERFCOUNTER1_SELECT_HI 0x036138 /* >= gfx10 */ #define R_036200_GE_PERFCOUNTER0_SELECT 0x036200 /* gfx10 */ #define S_036200_PERF_SEL0(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036200_PERF_SEL0(x) (((x) >> 0) & 0x3FF) #define C_036200_PERF_SEL0 0xFFFFFC00 #define S_036200_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036200_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_036200_PERF_SEL1 0xFFF003FF #define S_036200_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036200_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036200_CNTR_MODE 0xFF0FFFFF #define S_036200_PERF_MODE0(x) (((unsigned)(x) & 0xF) << 24) #define G_036200_PERF_MODE0(x) (((x) >> 24) & 0xF) #define C_036200_PERF_MODE0 0xF0FFFFFF #define S_036200_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 28) #define G_036200_PERF_MODE1(x) (((x) >> 28) & 0xF) #define C_036200_PERF_MODE1 0x0FFFFFFF #define R_036200_WD_PERFCOUNTER0_SELECT 0x036200 /* gfx7, gfx8, gfx81, gfx9 */ #define S_036200_PERF_SEL(x) (((unsigned)(x) & 0xFF) << 0) #define G_036200_PERF_SEL(x) (((x) >> 0) & 0xFF) #define C_036200_PERF_SEL 0xFFFFFF00 #define S_036200_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_036200_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036200_PERF_MODE 0x0FFFFFFF #define R_036204_GE_PERFCOUNTER0_SELECT1 0x036204 /* gfx10 */ #define S_036204_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036204_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036204_PERF_SEL2 0xFFFFFC00 #define S_036204_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036204_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036204_PERF_SEL3 0xFFF003FF #define S_036204_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 24) #define G_036204_PERF_MODE2(x) (((x) >> 24) & 0xF) #define C_036204_PERF_MODE2 0xF0FFFFFF #define S_036204_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 28) #define G_036204_PERF_MODE3(x) (((x) >> 28) & 0xF) #define C_036204_PERF_MODE3 0x0FFFFFFF #define R_036204_WD_PERFCOUNTER1_SELECT 0x036204 /* gfx7, gfx8, gfx81, gfx9 */ #define R_036208_GE_PERFCOUNTER1_SELECT 0x036208 /* gfx10 */ #define R_036208_WD_PERFCOUNTER2_SELECT 0x036208 /* gfx7, gfx8, gfx81, gfx9 */ #define R_03620C_GE_PERFCOUNTER1_SELECT1 0x03620C /* gfx10 */ #define R_03620C_WD_PERFCOUNTER3_SELECT 0x03620C /* gfx7, gfx8, gfx81, gfx9 */ #define R_036210_GE_PERFCOUNTER2_SELECT 0x036210 /* gfx10 */ #define R_036210_IA_PERFCOUNTER0_SELECT 0x036210 /* gfx7, gfx8, gfx81, gfx9 */ #define S_036210_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036210_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036210_PERF_SEL 0xFFFFFC00 #define S_036210_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036210_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_036210_PERF_SEL1 0xFFF003FF #define S_036210_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036210_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036210_CNTR_MODE 0xFF0FFFFF #define S_036210_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) #define G_036210_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_036210_PERF_MODE1 0xF0FFFFFF #define S_036210_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_036210_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036210_PERF_MODE 0x0FFFFFFF #define R_036214_GE_PERFCOUNTER2_SELECT1 0x036214 /* gfx10 */ #define R_036214_IA_PERFCOUNTER1_SELECT 0x036214 /* gfx7, gfx8, gfx81, gfx9 */ #define S_036214_PERF_SEL(x) (((unsigned)(x) & 0xFF) << 0) #define G_036214_PERF_SEL(x) (((x) >> 0) & 0xFF) #define C_036214_PERF_SEL 0xFFFFFF00 #define S_036214_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_036214_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036214_PERF_MODE 0x0FFFFFFF #define R_036218_GE_PERFCOUNTER3_SELECT 0x036218 /* gfx10 */ #define R_036218_IA_PERFCOUNTER2_SELECT 0x036218 /* gfx7, gfx8, gfx81, gfx9 */ #define R_03621C_GE_PERFCOUNTER3_SELECT1 0x03621C /* gfx10 */ #define R_03621C_IA_PERFCOUNTER3_SELECT 0x03621C /* gfx7, gfx8, gfx81, gfx9 */ #define R_036220_GE_PERFCOUNTER4_SELECT 0x036220 /* gfx10 */ #define S_036220_PERF_SEL0(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036220_PERF_SEL0(x) (((x) >> 0) & 0x3FF) #define C_036220_PERF_SEL0 0xFFFFFC00 #define S_036220_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_036220_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036220_PERF_MODE 0x0FFFFFFF #define R_036220_IA_PERFCOUNTER0_SELECT1 0x036220 /* gfx7, gfx8, gfx81, gfx9 */ #define S_036220_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036220_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036220_PERF_SEL2 0xFFFFFC00 #define S_036220_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036220_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036220_PERF_SEL3 0xFFF003FF #define S_036220_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 24) #define G_036220_PERF_MODE3(x) (((x) >> 24) & 0xF) #define C_036220_PERF_MODE3 0xF0FFFFFF #define S_036220_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 28) #define G_036220_PERF_MODE2(x) (((x) >> 28) & 0xF) #define C_036220_PERF_MODE2 0x0FFFFFFF #define R_036228_GE_PERFCOUNTER5_SELECT 0x036228 /* gfx10 */ #define R_036230_GE_PERFCOUNTER6_SELECT 0x036230 /* gfx10 */ #define R_036230_VGT_PERFCOUNTER0_SELECT 0x036230 /* gfx7, gfx8, gfx81, gfx9 */ #define S_036230_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036230_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036230_PERF_SEL 0xFFFFFC00 #define S_036230_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036230_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_036230_PERF_SEL1 0xFFF003FF #define S_036230_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036230_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036230_CNTR_MODE 0xFF0FFFFF #define S_036230_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) #define G_036230_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_036230_PERF_MODE1 0xF0FFFFFF #define S_036230_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_036230_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036230_PERF_MODE 0x0FFFFFFF #define R_036234_VGT_PERFCOUNTER1_SELECT 0x036234 /* gfx7, gfx8, gfx81, gfx9 */ #define R_036238_GE_PERFCOUNTER7_SELECT 0x036238 /* gfx10 */ #define R_036238_VGT_PERFCOUNTER2_SELECT 0x036238 /* gfx7, gfx8, gfx81, gfx9 */ #define S_036238_PERF_SEL(x) (((unsigned)(x) & 0xFF) << 0) #define G_036238_PERF_SEL(x) (((x) >> 0) & 0xFF) #define C_036238_PERF_SEL 0xFFFFFF00 #define S_036238_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_036238_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036238_PERF_MODE 0x0FFFFFFF #define R_03623C_VGT_PERFCOUNTER3_SELECT 0x03623C /* gfx7, gfx8, gfx81, gfx9 */ #define R_036240_GE_PERFCOUNTER8_SELECT 0x036240 /* gfx10 */ #define R_036240_VGT_PERFCOUNTER0_SELECT1 0x036240 /* gfx7, gfx8, gfx81, gfx9 */ #define S_036240_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036240_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036240_PERF_SEL2 0xFFFFFC00 #define S_036240_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036240_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036240_PERF_SEL3 0xFFF003FF #define S_036240_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 24) #define G_036240_PERF_MODE3(x) (((x) >> 24) & 0xF) #define C_036240_PERF_MODE3 0xF0FFFFFF #define S_036240_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 28) #define G_036240_PERF_MODE2(x) (((x) >> 28) & 0xF) #define C_036240_PERF_MODE2 0x0FFFFFFF #define R_036244_VGT_PERFCOUNTER1_SELECT1 0x036244 /* gfx7, gfx8, gfx81, gfx9 */ #define R_036248_GE_PERFCOUNTER9_SELECT 0x036248 /* gfx10 */ #define R_036250_GE_PERFCOUNTER10_SELECT 0x036250 /* gfx10 */ #define R_036250_VGT_PERFCOUNTER_SEID_MASK 0x036250 /* gfx7, gfx8, gfx81, gfx9 */ #define S_036250_PERF_SEID_IGNORE_MASK(x) (((unsigned)(x) & 0xFF) << 0) #define G_036250_PERF_SEID_IGNORE_MASK(x) (((x) >> 0) & 0xFF) #define C_036250_PERF_SEID_IGNORE_MASK 0xFFFFFF00 #define R_036258_GE_PERFCOUNTER11_SELECT 0x036258 /* gfx10 */ #define R_036290_GE1_PERFCOUNTER0_SELECT 0x036290 /* >= gfx103 */ #define S_036290_PERF_SEL0(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036290_PERF_SEL0(x) (((x) >> 0) & 0x3FF) #define C_036290_PERF_SEL0 0xFFFFFC00 #define S_036290_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036290_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_036290_PERF_SEL1 0xFFF003FF #define S_036290_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036290_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036290_CNTR_MODE 0xFF0FFFFF #define S_036290_PERF_MODE0(x) (((unsigned)(x) & 0xF) << 24) #define G_036290_PERF_MODE0(x) (((x) >> 24) & 0xF) #define C_036290_PERF_MODE0 0xF0FFFFFF #define S_036290_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 28) #define G_036290_PERF_MODE1(x) (((x) >> 28) & 0xF) #define C_036290_PERF_MODE1 0x0FFFFFFF #define R_036294_GE1_PERFCOUNTER0_SELECT1 0x036294 /* >= gfx103 */ #define S_036294_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036294_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036294_PERF_SEL2 0xFFFFFC00 #define S_036294_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036294_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036294_PERF_SEL3 0xFFF003FF #define S_036294_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 24) #define G_036294_PERF_MODE2(x) (((x) >> 24) & 0xF) #define C_036294_PERF_MODE2 0xF0FFFFFF #define S_036294_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 28) #define G_036294_PERF_MODE3(x) (((x) >> 28) & 0xF) #define C_036294_PERF_MODE3 0x0FFFFFFF #define R_036298_GE1_PERFCOUNTER1_SELECT 0x036298 /* >= gfx103 */ #define R_03629C_GE1_PERFCOUNTER1_SELECT1 0x03629C /* >= gfx103 */ #define R_0362A0_GE1_PERFCOUNTER2_SELECT 0x0362A0 /* >= gfx103 */ #define R_0362A4_GE1_PERFCOUNTER2_SELECT1 0x0362A4 /* >= gfx103 */ #define R_0362A8_GE1_PERFCOUNTER3_SELECT 0x0362A8 /* >= gfx103 */ #define R_0362AC_GE1_PERFCOUNTER3_SELECT1 0x0362AC /* >= gfx103 */ #define R_0362B0_GE2_DIST_PERFCOUNTER0_SELECT 0x0362B0 /* >= gfx103 */ #define S_0362B0_PERF_SEL0(x) (((unsigned)(x) & 0x3FF) << 0) #define G_0362B0_PERF_SEL0(x) (((x) >> 0) & 0x3FF) #define C_0362B0_PERF_SEL0 0xFFFFFC00 #define S_0362B0_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_0362B0_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_0362B0_PERF_SEL1 0xFFF003FF #define S_0362B0_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_0362B0_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_0362B0_CNTR_MODE 0xFF0FFFFF #define S_0362B0_PERF_MODE0(x) (((unsigned)(x) & 0xF) << 24) #define G_0362B0_PERF_MODE0(x) (((x) >> 24) & 0xF) #define C_0362B0_PERF_MODE0 0xF0FFFFFF #define S_0362B0_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 28) #define G_0362B0_PERF_MODE1(x) (((x) >> 28) & 0xF) #define C_0362B0_PERF_MODE1 0x0FFFFFFF #define R_0362B4_GE2_DIST_PERFCOUNTER0_SELECT1 0x0362B4 /* >= gfx103 */ #define S_0362B4_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_0362B4_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_0362B4_PERF_SEL2 0xFFFFFC00 #define S_0362B4_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_0362B4_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_0362B4_PERF_SEL3 0xFFF003FF #define S_0362B4_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 24) #define G_0362B4_PERF_MODE2(x) (((x) >> 24) & 0xF) #define C_0362B4_PERF_MODE2 0xF0FFFFFF #define S_0362B4_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 28) #define G_0362B4_PERF_MODE3(x) (((x) >> 28) & 0xF) #define C_0362B4_PERF_MODE3 0x0FFFFFFF #define R_0362B8_GE2_DIST_PERFCOUNTER1_SELECT 0x0362B8 /* >= gfx103 */ #define R_0362BC_GE2_DIST_PERFCOUNTER1_SELECT1 0x0362BC /* >= gfx103 */ #define R_0362C0_GE2_DIST_PERFCOUNTER2_SELECT 0x0362C0 /* >= gfx103 */ #define R_0362C4_GE2_DIST_PERFCOUNTER2_SELECT1 0x0362C4 /* >= gfx103 */ #define R_0362C8_GE2_DIST_PERFCOUNTER3_SELECT 0x0362C8 /* >= gfx103 */ #define R_0362CC_GE2_DIST_PERFCOUNTER3_SELECT1 0x0362CC /* >= gfx103 */ #define R_0362D0_GE2_SE_PERFCOUNTER0_SELECT 0x0362D0 /* >= gfx103 */ #define S_0362D0_PERF_SEL0(x) (((unsigned)(x) & 0x3FF) << 0) #define G_0362D0_PERF_SEL0(x) (((x) >> 0) & 0x3FF) #define C_0362D0_PERF_SEL0 0xFFFFFC00 #define S_0362D0_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_0362D0_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_0362D0_PERF_SEL1 0xFFF003FF #define S_0362D0_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_0362D0_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_0362D0_CNTR_MODE 0xFF0FFFFF #define S_0362D0_PERF_MODE0(x) (((unsigned)(x) & 0xF) << 24) #define G_0362D0_PERF_MODE0(x) (((x) >> 24) & 0xF) #define C_0362D0_PERF_MODE0 0xF0FFFFFF #define S_0362D0_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 28) #define G_0362D0_PERF_MODE1(x) (((x) >> 28) & 0xF) #define C_0362D0_PERF_MODE1 0x0FFFFFFF #define R_0362D4_GE2_SE_PERFCOUNTER0_SELECT1 0x0362D4 /* >= gfx103 */ #define S_0362D4_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_0362D4_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_0362D4_PERF_SEL2 0xFFFFFC00 #define S_0362D4_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_0362D4_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_0362D4_PERF_SEL3 0xFFF003FF #define S_0362D4_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 24) #define G_0362D4_PERF_MODE2(x) (((x) >> 24) & 0xF) #define C_0362D4_PERF_MODE2 0xF0FFFFFF #define S_0362D4_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 28) #define G_0362D4_PERF_MODE3(x) (((x) >> 28) & 0xF) #define C_0362D4_PERF_MODE3 0x0FFFFFFF #define R_0362D8_GE2_SE_PERFCOUNTER1_SELECT 0x0362D8 /* >= gfx103 */ #define R_0362DC_GE2_SE_PERFCOUNTER1_SELECT1 0x0362DC /* >= gfx103 */ #define R_0362E0_GE2_SE_PERFCOUNTER2_SELECT 0x0362E0 /* >= gfx103 */ #define R_0362E4_GE2_SE_PERFCOUNTER2_SELECT1 0x0362E4 /* >= gfx103 */ #define R_0362E8_GE2_SE_PERFCOUNTER3_SELECT 0x0362E8 /* >= gfx103 */ #define R_0362EC_GE2_SE_PERFCOUNTER3_SELECT1 0x0362EC /* >= gfx103 */ #define R_036400_PA_SU_PERFCOUNTER0_SELECT 0x036400 /* >= gfx7 */ #define S_036400_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036400_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036400_PERF_SEL 0xFFFFFC00 #define S_036400_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036400_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_036400_PERF_SEL1 0xFFF003FF #define S_036400_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036400_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036400_CNTR_MODE 0xFF0FFFFF #define S_036400_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) /* >= gfx9 */ #define G_036400_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_036400_PERF_MODE1 0xF0FFFFFF #define S_036400_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) /* >= gfx9 */ #define G_036400_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036400_PERF_MODE 0x0FFFFFFF #define R_036404_PA_SU_PERFCOUNTER0_SELECT1 0x036404 /* >= gfx7 */ #define S_036404_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036404_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036404_PERF_SEL2 0xFFFFFC00 #define S_036404_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036404_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036404_PERF_SEL3 0xFFF003FF #define S_036404_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 24) /* >= gfx9 */ #define G_036404_PERF_MODE3(x) (((x) >> 24) & 0xF) #define C_036404_PERF_MODE3 0xF0FFFFFF #define S_036404_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 28) /* >= gfx9 */ #define G_036404_PERF_MODE2(x) (((x) >> 28) & 0xF) #define C_036404_PERF_MODE2 0x0FFFFFFF #define R_036408_PA_SU_PERFCOUNTER1_SELECT 0x036408 /* >= gfx7 */ #define R_03640C_PA_SU_PERFCOUNTER1_SELECT1 0x03640C /* >= gfx7 */ #define R_036410_PA_SU_PERFCOUNTER2_SELECT 0x036410 /* >= gfx7 */ #define S_036410_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx7, gfx8, gfx81, gfx9 */ #define G_036410_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036410_PERF_SEL 0xFFFFFC00 #define S_036410_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) /* gfx7, gfx8, gfx81, gfx9 */ #define G_036410_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036410_CNTR_MODE 0xFF0FFFFF #define S_036410_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) /* gfx9 */ #define G_036410_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036410_PERF_MODE 0x0FFFFFFF #define R_036414_PA_SU_PERFCOUNTER2_SELECT1 0x036414 /* >= gfx10 */ #define R_036414_PA_SU_PERFCOUNTER3_SELECT 0x036414 /* gfx7, gfx8, gfx81, gfx9 */ #define R_036418_PA_SU_PERFCOUNTER3_SELECT 0x036418 /* >= gfx10 */ #define R_03641C_PA_SU_PERFCOUNTER3_SELECT1 0x03641C /* >= gfx10 */ #define R_036500_PA_SC_PERFCOUNTER0_SELECT 0x036500 /* >= gfx7 */ #define S_036500_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036500_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036500_PERF_SEL 0xFFFFFC00 #define S_036500_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036500_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_036500_PERF_SEL1 0xFFF003FF #define S_036500_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036500_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036500_CNTR_MODE 0xFF0FFFFF #define S_036500_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) /* >= gfx9 */ #define G_036500_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_036500_PERF_MODE1 0xF0FFFFFF #define S_036500_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) /* >= gfx9 */ #define G_036500_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036500_PERF_MODE 0x0FFFFFFF #define R_036504_PA_SC_PERFCOUNTER0_SELECT1 0x036504 /* >= gfx7 */ #define S_036504_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036504_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036504_PERF_SEL2 0xFFFFFC00 #define S_036504_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036504_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036504_PERF_SEL3 0xFFF003FF #define S_036504_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 24) /* >= gfx9 */ #define G_036504_PERF_MODE3(x) (((x) >> 24) & 0xF) #define C_036504_PERF_MODE3 0xF0FFFFFF #define S_036504_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 28) /* >= gfx9 */ #define G_036504_PERF_MODE2(x) (((x) >> 28) & 0xF) #define C_036504_PERF_MODE2 0x0FFFFFFF #define R_036508_PA_SC_PERFCOUNTER1_SELECT 0x036508 /* >= gfx7 */ #define S_036508_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036508_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036508_PERF_SEL 0xFFFFFC00 #define R_03650C_PA_SC_PERFCOUNTER2_SELECT 0x03650C /* >= gfx7 */ #define R_036510_PA_SC_PERFCOUNTER3_SELECT 0x036510 /* >= gfx7 */ #define R_036514_PA_SC_PERFCOUNTER4_SELECT 0x036514 /* >= gfx7 */ #define R_036518_PA_SC_PERFCOUNTER5_SELECT 0x036518 /* >= gfx7 */ #define R_03651C_PA_SC_PERFCOUNTER6_SELECT 0x03651C /* >= gfx7 */ #define R_036520_PA_SC_PERFCOUNTER7_SELECT 0x036520 /* >= gfx7 */ #define R_036600_SPI_PERFCOUNTER0_SELECT 0x036600 /* >= gfx7 */ #define S_036600_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036600_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036600_PERF_SEL 0xFFFFFC00 #define S_036600_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036600_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_036600_PERF_SEL1 0xFFF003FF #define S_036600_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036600_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036600_CNTR_MODE 0xFF0FFFFF #define S_036600_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) /* >= gfx9 */ #define G_036600_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_036600_PERF_MODE1 0xF0FFFFFF #define S_036600_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) /* >= gfx9 */ #define G_036600_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036600_PERF_MODE 0x0FFFFFFF #define R_036604_SPI_PERFCOUNTER1_SELECT 0x036604 /* >= gfx7 */ #define R_036608_SPI_PERFCOUNTER2_SELECT 0x036608 /* >= gfx7 */ #define R_03660C_SPI_PERFCOUNTER3_SELECT 0x03660C /* >= gfx7 */ #define R_036610_SPI_PERFCOUNTER0_SELECT1 0x036610 /* >= gfx7 */ #define S_036610_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036610_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036610_PERF_SEL2 0xFFFFFC00 #define S_036610_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036610_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036610_PERF_SEL3 0xFFF003FF #define S_036610_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 24) /* >= gfx9 */ #define G_036610_PERF_MODE3(x) (((x) >> 24) & 0xF) #define C_036610_PERF_MODE3 0xF0FFFFFF #define S_036610_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 28) /* >= gfx9 */ #define G_036610_PERF_MODE2(x) (((x) >> 28) & 0xF) #define C_036610_PERF_MODE2 0x0FFFFFFF #define R_036614_SPI_PERFCOUNTER1_SELECT1 0x036614 /* >= gfx7 */ #define R_036618_SPI_PERFCOUNTER2_SELECT1 0x036618 /* >= gfx7 */ #define R_03661C_SPI_PERFCOUNTER3_SELECT1 0x03661C /* >= gfx7 */ #define R_036620_SPI_PERFCOUNTER4_SELECT 0x036620 /* >= gfx7 */ #define S_036620_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036620_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036620_PERF_SEL 0xFFFFFC00 #define R_036624_SPI_PERFCOUNTER5_SELECT 0x036624 /* >= gfx7 */ #define R_036628_SPI_PERFCOUNTER_BINS 0x036628 /* >= gfx7 */ #define S_036628_BIN0_MIN(x) (((unsigned)(x) & 0xF) << 0) #define G_036628_BIN0_MIN(x) (((x) >> 0) & 0xF) #define C_036628_BIN0_MIN 0xFFFFFFF0 #define S_036628_BIN0_MAX(x) (((unsigned)(x) & 0xF) << 4) #define G_036628_BIN0_MAX(x) (((x) >> 4) & 0xF) #define C_036628_BIN0_MAX 0xFFFFFF0F #define S_036628_BIN1_MIN(x) (((unsigned)(x) & 0xF) << 8) #define G_036628_BIN1_MIN(x) (((x) >> 8) & 0xF) #define C_036628_BIN1_MIN 0xFFFFF0FF #define S_036628_BIN1_MAX(x) (((unsigned)(x) & 0xF) << 12) #define G_036628_BIN1_MAX(x) (((x) >> 12) & 0xF) #define C_036628_BIN1_MAX 0xFFFF0FFF #define S_036628_BIN2_MIN(x) (((unsigned)(x) & 0xF) << 16) #define G_036628_BIN2_MIN(x) (((x) >> 16) & 0xF) #define C_036628_BIN2_MIN 0xFFF0FFFF #define S_036628_BIN2_MAX(x) (((unsigned)(x) & 0xF) << 20) #define G_036628_BIN2_MAX(x) (((x) >> 20) & 0xF) #define C_036628_BIN2_MAX 0xFF0FFFFF #define S_036628_BIN3_MIN(x) (((unsigned)(x) & 0xF) << 24) #define G_036628_BIN3_MIN(x) (((x) >> 24) & 0xF) #define C_036628_BIN3_MIN 0xF0FFFFFF #define S_036628_BIN3_MAX(x) (((unsigned)(x) & 0xF) << 28) #define G_036628_BIN3_MAX(x) (((x) >> 28) & 0xF) #define C_036628_BIN3_MAX 0x0FFFFFFF #define R_036700_SQ_PERFCOUNTER0_SELECT 0x036700 /* >= gfx7 */ #define S_036700_PERF_SEL(x) (((unsigned)(x) & 0x1FF) << 0) #define G_036700_PERF_SEL(x) (((x) >> 0) & 0x1FF) #define C_036700_PERF_SEL 0xFFFFFE00 #define S_036700_SQC_BANK_MASK(x) (((unsigned)(x) & 0xF) << 12) /* gfx7, gfx8, gfx81, gfx9, gfx10 */ #define G_036700_SQC_BANK_MASK(x) (((x) >> 12) & 0xF) #define C_036700_SQC_BANK_MASK 0xFFFF0FFF #define S_036700_SQC_CLIENT_MASK(x) (((unsigned)(x) & 0xF) << 16) /* gfx7, gfx8, gfx81, gfx9 */ #define G_036700_SQC_CLIENT_MASK(x) (((x) >> 16) & 0xF) #define C_036700_SQC_CLIENT_MASK 0xFFF0FFFF #define S_036700_SPM_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036700_SPM_MODE(x) (((x) >> 20) & 0xF) #define C_036700_SPM_MODE 0xFF0FFFFF #define S_036700_SIMD_MASK(x) (((unsigned)(x) & 0xF) << 24) /* gfx7, gfx8, gfx81, gfx9 */ #define G_036700_SIMD_MASK(x) (((x) >> 24) & 0xF) #define C_036700_SIMD_MASK 0xF0FFFFFF #define S_036700_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_036700_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036700_PERF_MODE 0x0FFFFFFF #define R_036704_SQ_PERFCOUNTER1_SELECT 0x036704 /* >= gfx7 */ #define R_036708_SQ_PERFCOUNTER2_SELECT 0x036708 /* >= gfx7 */ #define R_03670C_SQ_PERFCOUNTER3_SELECT 0x03670C /* >= gfx7 */ #define R_036710_SQ_PERFCOUNTER4_SELECT 0x036710 /* >= gfx7 */ #define R_036714_SQ_PERFCOUNTER5_SELECT 0x036714 /* >= gfx7 */ #define R_036718_SQ_PERFCOUNTER6_SELECT 0x036718 /* >= gfx7 */ #define R_03671C_SQ_PERFCOUNTER7_SELECT 0x03671C /* >= gfx7 */ #define R_036720_SQ_PERFCOUNTER8_SELECT 0x036720 /* >= gfx7 */ #define R_036724_SQ_PERFCOUNTER9_SELECT 0x036724 /* >= gfx7 */ #define R_036728_SQ_PERFCOUNTER10_SELECT 0x036728 /* >= gfx7 */ #define R_03672C_SQ_PERFCOUNTER11_SELECT 0x03672C /* >= gfx7 */ #define R_036730_SQ_PERFCOUNTER12_SELECT 0x036730 /* >= gfx7 */ #define R_036734_SQ_PERFCOUNTER13_SELECT 0x036734 /* >= gfx7 */ #define R_036738_SQ_PERFCOUNTER14_SELECT 0x036738 /* >= gfx7 */ #define R_03673C_SQ_PERFCOUNTER15_SELECT 0x03673C /* >= gfx7 */ #define R_036780_SQ_PERFCOUNTER_CTRL 0x036780 /* >= gfx7 */ #define S_036780_PS_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_036780_PS_EN(x) (((x) >> 0) & 0x1) #define C_036780_PS_EN 0xFFFFFFFE #define S_036780_VS_EN(x) (((unsigned)(x) & 0x1) << 1) #define G_036780_VS_EN(x) (((x) >> 1) & 0x1) #define C_036780_VS_EN 0xFFFFFFFD #define V_036780_VS_STAGE_REAL 0 #define V_036780_VS_STAGE_DS 1 #define V_036780_VS_STAGE_COPY_SHADER 2 #define V_036780_RESERVED_VS 3 #define S_036780_GS_EN(x) (((unsigned)(x) & 0x1) << 2) #define G_036780_GS_EN(x) (((x) >> 2) & 0x1) #define C_036780_GS_EN 0xFFFFFFFB #define V_036780_GS_STAGE_OFF 0 #define V_036780_GS_STAGE_ON 1 #define S_036780_ES_EN(x) (((unsigned)(x) & 0x1) << 3) #define G_036780_ES_EN(x) (((x) >> 3) & 0x1) #define C_036780_ES_EN 0xFFFFFFF7 #define V_036780_ES_STAGE_OFF 0 #define V_036780_ES_STAGE_DS 1 #define V_036780_ES_STAGE_REAL 2 #define V_036780_RESERVED_ES 3 #define S_036780_HS_EN(x) (((unsigned)(x) & 0x1) << 4) #define G_036780_HS_EN(x) (((x) >> 4) & 0x1) #define C_036780_HS_EN 0xFFFFFFEF #define V_036780_HS_STAGE_OFF 0 #define V_036780_HS_STAGE_ON 1 #define S_036780_LS_EN(x) (((unsigned)(x) & 0x1) << 5) #define G_036780_LS_EN(x) (((x) >> 5) & 0x1) #define C_036780_LS_EN 0xFFFFFFDF #define V_036780_LS_STAGE_OFF 0 #define V_036780_LS_STAGE_ON 1 #define V_036780_CS_STAGE_ON 2 #define V_036780_RESERVED_LS 3 #define S_036780_CS_EN(x) (((unsigned)(x) & 0x1) << 6) #define G_036780_CS_EN(x) (((x) >> 6) & 0x1) #define C_036780_CS_EN 0xFFFFFFBF #define S_036780_CNTR_RATE(x) (((unsigned)(x) & 0x1F) << 8) #define G_036780_CNTR_RATE(x) (((x) >> 8) & 0x1F) #define C_036780_CNTR_RATE 0xFFFFE0FF #define S_036780_DISABLE_FLUSH(x) (((unsigned)(x) & 0x1) << 13) #define G_036780_DISABLE_FLUSH(x) (((x) >> 13) & 0x1) #define C_036780_DISABLE_FLUSH 0xFFFFDFFF #define S_036780_DISABLE_ME0PIPE0_PERF(x) (((unsigned)(x) & 0x1) << 14) /* >= gfx103 */ #define G_036780_DISABLE_ME0PIPE0_PERF(x) (((x) >> 14) & 0x1) #define C_036780_DISABLE_ME0PIPE0_PERF 0xFFFFBFFF #define S_036780_DISABLE_ME0PIPE1_PERF(x) (((unsigned)(x) & 0x1) << 15) /* >= gfx103 */ #define G_036780_DISABLE_ME0PIPE1_PERF(x) (((x) >> 15) & 0x1) #define C_036780_DISABLE_ME0PIPE1_PERF 0xFFFF7FFF #define S_036780_DISABLE_ME1PIPE0_PERF(x) (((unsigned)(x) & 0x1) << 16) /* >= gfx103 */ #define G_036780_DISABLE_ME1PIPE0_PERF(x) (((x) >> 16) & 0x1) #define C_036780_DISABLE_ME1PIPE0_PERF 0xFFFEFFFF #define S_036780_DISABLE_ME1PIPE1_PERF(x) (((unsigned)(x) & 0x1) << 17) /* >= gfx103 */ #define G_036780_DISABLE_ME1PIPE1_PERF(x) (((x) >> 17) & 0x1) #define C_036780_DISABLE_ME1PIPE1_PERF 0xFFFDFFFF #define S_036780_DISABLE_ME1PIPE2_PERF(x) (((unsigned)(x) & 0x1) << 18) /* >= gfx103 */ #define G_036780_DISABLE_ME1PIPE2_PERF(x) (((x) >> 18) & 0x1) #define C_036780_DISABLE_ME1PIPE2_PERF 0xFFFBFFFF #define S_036780_DISABLE_ME1PIPE3_PERF(x) (((unsigned)(x) & 0x1) << 19) /* >= gfx103 */ #define G_036780_DISABLE_ME1PIPE3_PERF(x) (((x) >> 19) & 0x1) #define C_036780_DISABLE_ME1PIPE3_PERF 0xFFF7FFFF #define R_036784_SQ_PERFCOUNTER_MASK 0x036784 /* gfx7, gfx8, gfx81, gfx9 */ #define S_036784_SH0_MASK(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_036784_SH0_MASK(x) (((x) >> 0) & 0xFFFF) #define C_036784_SH0_MASK 0xFFFF0000 #define S_036784_SH1_MASK(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_036784_SH1_MASK(x) (((x) >> 16) & 0xFFFF) #define C_036784_SH1_MASK 0x0000FFFF #define R_036788_SQ_PERFCOUNTER_CTRL2 0x036788 /* >= gfx7 */ #define S_036788_FORCE_EN(x) (((unsigned)(x) & 0x1) << 0) #define G_036788_FORCE_EN(x) (((x) >> 0) & 0x1) #define C_036788_FORCE_EN 0xFFFFFFFE #define R_036800_GCEA_PERFCOUNTER2_SELECT 0x036800 /* >= gfx10 */ #define S_036800_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036800_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036800_PERF_SEL 0xFFFFFC00 #define S_036800_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036800_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_036800_PERF_SEL1 0xFFF003FF #define S_036800_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036800_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036800_CNTR_MODE 0xFF0FFFFF #define S_036800_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) #define G_036800_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_036800_PERF_MODE1 0xF0FFFFFF #define S_036800_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_036800_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036800_PERF_MODE 0x0FFFFFFF #define R_036804_GCEA_PERFCOUNTER2_SELECT1 0x036804 /* >= gfx10 */ #define S_036804_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036804_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036804_PERF_SEL2 0xFFFFFC00 #define S_036804_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036804_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036804_PERF_SEL3 0xFFF003FF #define S_036804_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 24) #define G_036804_PERF_MODE3(x) (((x) >> 24) & 0xF) #define C_036804_PERF_MODE3 0xF0FFFFFF #define S_036804_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 28) #define G_036804_PERF_MODE2(x) (((x) >> 28) & 0xF) #define C_036804_PERF_MODE2 0x0FFFFFFF #define R_036808_GCEA_PERFCOUNTER2_MODE 0x036808 /* >= gfx10 */ #define S_036808_COMPARE_MODE0(x) (((unsigned)(x) & 0x3) << 0) #define G_036808_COMPARE_MODE0(x) (((x) >> 0) & 0x3) #define C_036808_COMPARE_MODE0 0xFFFFFFFC #define S_036808_COMPARE_MODE1(x) (((unsigned)(x) & 0x3) << 2) #define G_036808_COMPARE_MODE1(x) (((x) >> 2) & 0x3) #define C_036808_COMPARE_MODE1 0xFFFFFFF3 #define S_036808_COMPARE_MODE2(x) (((unsigned)(x) & 0x3) << 4) #define G_036808_COMPARE_MODE2(x) (((x) >> 4) & 0x3) #define C_036808_COMPARE_MODE2 0xFFFFFFCF #define S_036808_COMPARE_MODE3(x) (((unsigned)(x) & 0x3) << 6) #define G_036808_COMPARE_MODE3(x) (((x) >> 6) & 0x3) #define C_036808_COMPARE_MODE3 0xFFFFFF3F #define S_036808_COMPARE_VALUE0(x) (((unsigned)(x) & 0xF) << 8) #define G_036808_COMPARE_VALUE0(x) (((x) >> 8) & 0xF) #define C_036808_COMPARE_VALUE0 0xFFFFF0FF #define S_036808_COMPARE_VALUE1(x) (((unsigned)(x) & 0xF) << 12) #define G_036808_COMPARE_VALUE1(x) (((x) >> 12) & 0xF) #define C_036808_COMPARE_VALUE1 0xFFFF0FFF #define S_036808_COMPARE_VALUE2(x) (((unsigned)(x) & 0xF) << 16) #define G_036808_COMPARE_VALUE2(x) (((x) >> 16) & 0xF) #define C_036808_COMPARE_VALUE2 0xFFF0FFFF #define S_036808_COMPARE_VALUE3(x) (((unsigned)(x) & 0xF) << 20) #define G_036808_COMPARE_VALUE3(x) (((x) >> 20) & 0xF) #define C_036808_COMPARE_VALUE3 0xFF0FFFFF #define R_03680C_GCEA_PERFCOUNTER0_CFG 0x03680C /* >= gfx103 */ #define S_03680C_PERF_SEL(x) (((unsigned)(x) & 0xFF) << 0) #define G_03680C_PERF_SEL(x) (((x) >> 0) & 0xFF) #define C_03680C_PERF_SEL 0xFFFFFF00 #define S_03680C_PERF_SEL_END(x) (((unsigned)(x) & 0xFF) << 8) #define G_03680C_PERF_SEL_END(x) (((x) >> 8) & 0xFF) #define C_03680C_PERF_SEL_END 0xFFFF00FF #define S_03680C_PERF_MODE(x) (((unsigned)(x) & 0xF) << 24) #define G_03680C_PERF_MODE(x) (((x) >> 24) & 0xF) #define C_03680C_PERF_MODE 0xF0FFFFFF #define S_03680C_ENABLE(x) (((unsigned)(x) & 0x1) << 28) #define G_03680C_ENABLE(x) (((x) >> 28) & 0x1) #define C_03680C_ENABLE 0xEFFFFFFF #define S_03680C_CLEAR(x) (((unsigned)(x) & 0x1) << 29) #define G_03680C_CLEAR(x) (((x) >> 29) & 0x1) #define C_03680C_CLEAR 0xDFFFFFFF #define R_036810_GCEA_PERFCOUNTER1_CFG 0x036810 /* >= gfx103 */ #define R_036814_GCEA_PERFCOUNTER_RSLT_CNTL 0x036814 /* >= gfx103 */ #define S_036814_PERF_COUNTER_SELECT(x) (((unsigned)(x) & 0xF) << 0) #define G_036814_PERF_COUNTER_SELECT(x) (((x) >> 0) & 0xF) #define C_036814_PERF_COUNTER_SELECT 0xFFFFFFF0 #define S_036814_START_TRIGGER(x) (((unsigned)(x) & 0xFF) << 8) #define G_036814_START_TRIGGER(x) (((x) >> 8) & 0xFF) #define C_036814_START_TRIGGER 0xFFFF00FF #define S_036814_STOP_TRIGGER(x) (((unsigned)(x) & 0xFF) << 16) #define G_036814_STOP_TRIGGER(x) (((x) >> 16) & 0xFF) #define C_036814_STOP_TRIGGER 0xFF00FFFF #define S_036814_ENABLE_ANY(x) (((unsigned)(x) & 0x1) << 24) #define G_036814_ENABLE_ANY(x) (((x) >> 24) & 0x1) #define C_036814_ENABLE_ANY 0xFEFFFFFF #define S_036814_CLEAR_ALL(x) (((unsigned)(x) & 0x1) << 25) #define G_036814_CLEAR_ALL(x) (((x) >> 25) & 0x1) #define C_036814_CLEAR_ALL 0xFDFFFFFF #define S_036814_STOP_ALL_ON_SATURATE(x) (((unsigned)(x) & 0x1) << 26) #define G_036814_STOP_ALL_ON_SATURATE(x) (((x) >> 26) & 0x1) #define C_036814_STOP_ALL_ON_SATURATE 0xFBFFFFFF #define R_036900_SX_PERFCOUNTER0_SELECT 0x036900 /* >= gfx7 */ #define S_036900_PERFCOUNTER_SELECT(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx7, gfx8, gfx81, gfx10 */ #define G_036900_PERFCOUNTER_SELECT(x) (((x) >> 0) & 0x3FF) #define C_036900_PERFCOUNTER_SELECT 0xFFFFFC00 #define S_036900_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx9, >= gfx103 */ #define G_036900_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036900_PERF_SEL 0xFFFFFC00 #define S_036900_PERFCOUNTER_SELECT1(x) (((unsigned)(x) & 0x3FF) << 10) /* gfx7, gfx8, gfx81, gfx10 */ #define G_036900_PERFCOUNTER_SELECT1(x) (((x) >> 10) & 0x3FF) #define C_036900_PERFCOUNTER_SELECT1 0xFFF003FF #define S_036900_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) /* gfx9, >= gfx103 */ #define G_036900_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_036900_PERF_SEL1 0xFFF003FF #define S_036900_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036900_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036900_CNTR_MODE 0xFF0FFFFF #define S_036900_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) /* gfx9, >= gfx103 */ #define G_036900_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_036900_PERF_MODE1 0xF0FFFFFF #define S_036900_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) /* gfx9, >= gfx103 */ #define G_036900_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036900_PERF_MODE 0x0FFFFFFF #define R_036904_SX_PERFCOUNTER1_SELECT 0x036904 /* >= gfx7 */ #define R_036908_SX_PERFCOUNTER2_SELECT 0x036908 /* >= gfx7 */ #define S_036908_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx9, >= gfx103 */ #define G_036908_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036908_PERF_SEL 0xFFFFFC00 #define S_036908_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) /* gfx9, >= gfx103 */ #define G_036908_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036908_CNTR_MODE 0xFF0FFFFF #define S_036908_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) /* gfx9, >= gfx103 */ #define G_036908_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036908_PERF_MODE 0x0FFFFFFF #define R_03690C_SX_PERFCOUNTER3_SELECT 0x03690C /* >= gfx7 */ #define R_036910_SX_PERFCOUNTER0_SELECT1 0x036910 /* >= gfx7 */ #define S_036910_PERFCOUNTER_SELECT2(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx7, gfx8, gfx81, gfx10 */ #define G_036910_PERFCOUNTER_SELECT2(x) (((x) >> 0) & 0x3FF) #define C_036910_PERFCOUNTER_SELECT2 0xFFFFFC00 #define S_036910_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx9, >= gfx103 */ #define G_036910_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036910_PERF_SEL2 0xFFFFFC00 #define S_036910_PERFCOUNTER_SELECT3(x) (((unsigned)(x) & 0x3FF) << 10) /* gfx7, gfx8, gfx81, gfx10 */ #define G_036910_PERFCOUNTER_SELECT3(x) (((x) >> 10) & 0x3FF) #define C_036910_PERFCOUNTER_SELECT3 0xFFF003FF #define S_036910_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) /* gfx9, >= gfx103 */ #define G_036910_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036910_PERF_SEL3 0xFFF003FF #define S_036910_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 24) /* gfx9, >= gfx103 */ #define G_036910_PERF_MODE3(x) (((x) >> 24) & 0xF) #define C_036910_PERF_MODE3 0xF0FFFFFF #define S_036910_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 28) /* gfx9, >= gfx103 */ #define G_036910_PERF_MODE2(x) (((x) >> 28) & 0xF) #define C_036910_PERF_MODE2 0x0FFFFFFF #define R_036914_SX_PERFCOUNTER1_SELECT1 0x036914 /* >= gfx7 */ #define R_036A00_GDS_PERFCOUNTER0_SELECT 0x036A00 /* >= gfx7 */ #define S_036A00_PERFCOUNTER_SELECT(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx7, gfx8, gfx81 */ #define G_036A00_PERFCOUNTER_SELECT(x) (((x) >> 0) & 0x3FF) #define C_036A00_PERFCOUNTER_SELECT 0xFFFFFC00 #define S_036A00_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) /* >= gfx9 */ #define G_036A00_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036A00_PERF_SEL 0xFFFFFC00 #define S_036A00_PERFCOUNTER_SELECT1(x) (((unsigned)(x) & 0x3FF) << 10) /* gfx7, gfx8, gfx81 */ #define G_036A00_PERFCOUNTER_SELECT1(x) (((x) >> 10) & 0x3FF) #define C_036A00_PERFCOUNTER_SELECT1 0xFFF003FF #define S_036A00_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) /* >= gfx9 */ #define G_036A00_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_036A00_PERF_SEL1 0xFFF003FF #define S_036A00_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036A00_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036A00_CNTR_MODE 0xFF0FFFFF #define S_036A00_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) /* >= gfx9 */ #define G_036A00_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_036A00_PERF_MODE1 0xF0FFFFFF #define S_036A00_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) /* >= gfx9 */ #define G_036A00_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036A00_PERF_MODE 0x0FFFFFFF #define R_036A04_GDS_PERFCOUNTER1_SELECT 0x036A04 /* >= gfx7 */ #define R_036A08_GDS_PERFCOUNTER2_SELECT 0x036A08 /* >= gfx7 */ #define R_036A0C_GDS_PERFCOUNTER3_SELECT 0x036A0C /* >= gfx7 */ #define R_036A10_GDS_PERFCOUNTER0_SELECT1 0x036A10 /* >= gfx7 */ #define S_036A10_PERFCOUNTER_SELECT2(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx7, gfx8, gfx81 */ #define G_036A10_PERFCOUNTER_SELECT2(x) (((x) >> 0) & 0x3FF) #define C_036A10_PERFCOUNTER_SELECT2 0xFFFFFC00 #define S_036A10_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) /* >= gfx9 */ #define G_036A10_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036A10_PERF_SEL2 0xFFFFFC00 #define S_036A10_PERFCOUNTER_SELECT3(x) (((unsigned)(x) & 0x3FF) << 10) /* gfx7, gfx8, gfx81 */ #define G_036A10_PERFCOUNTER_SELECT3(x) (((x) >> 10) & 0x3FF) #define C_036A10_PERFCOUNTER_SELECT3 0xFFF003FF #define S_036A10_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) /* >= gfx9 */ #define G_036A10_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036A10_PERF_SEL3 0xFFF003FF #define S_036A10_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 24) /* >= gfx9 */ #define G_036A10_PERF_MODE3(x) (((x) >> 24) & 0xF) #define C_036A10_PERF_MODE3 0xF0FFFFFF #define S_036A10_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 28) /* >= gfx9 */ #define G_036A10_PERF_MODE2(x) (((x) >> 28) & 0xF) #define C_036A10_PERF_MODE2 0x0FFFFFFF #define R_036A14_GDS_PERFCOUNTER1_SELECT1 0x036A14 /* >= gfx103 */ #define R_036A18_GDS_PERFCOUNTER2_SELECT1 0x036A18 /* >= gfx103 */ #define R_036A1C_GDS_PERFCOUNTER3_SELECT1 0x036A1C /* >= gfx103 */ #define R_036B00_TA_PERFCOUNTER0_SELECT 0x036B00 /* >= gfx7 */ #define S_036B00_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036B00_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036B00_PERF_SEL 0xFFFFFC00 #define S_036B00_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036B00_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_036B00_PERF_SEL1 0xFFF003FF #define S_036B00_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036B00_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036B00_CNTR_MODE 0xFF0FFFFF #define S_036B00_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) #define G_036B00_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_036B00_PERF_MODE1 0xF0FFFFFF #define S_036B00_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_036B00_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036B00_PERF_MODE 0x0FFFFFFF #define R_036B04_TA_PERFCOUNTER0_SELECT1 0x036B04 /* >= gfx7 */ #define S_036B04_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036B04_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036B04_PERF_SEL2 0xFFFFFC00 #define S_036B04_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036B04_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036B04_PERF_SEL3 0xFFF003FF #define S_036B04_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 24) #define G_036B04_PERF_MODE3(x) (((x) >> 24) & 0xF) #define C_036B04_PERF_MODE3 0xF0FFFFFF #define S_036B04_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 28) #define G_036B04_PERF_MODE2(x) (((x) >> 28) & 0xF) #define C_036B04_PERF_MODE2 0x0FFFFFFF #define R_036B08_TA_PERFCOUNTER1_SELECT 0x036B08 /* >= gfx7 */ #define S_036B08_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) /* >= gfx9 */ #define G_036B08_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036B08_PERF_SEL 0xFFFFFC00 #define S_036B08_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) /* >= gfx9 */ #define G_036B08_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036B08_CNTR_MODE 0xFF0FFFFF #define S_036B08_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) /* >= gfx9 */ #define G_036B08_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036B08_PERF_MODE 0x0FFFFFFF #define R_036C00_TD_PERFCOUNTER0_SELECT 0x036C00 /* >= gfx7 */ #define S_036C00_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036C00_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036C00_PERF_SEL 0xFFFFFC00 #define S_036C00_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036C00_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_036C00_PERF_SEL1 0xFFF003FF #define S_036C00_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036C00_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036C00_CNTR_MODE 0xFF0FFFFF #define S_036C00_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) #define G_036C00_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_036C00_PERF_MODE1 0xF0FFFFFF #define S_036C00_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_036C00_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036C00_PERF_MODE 0x0FFFFFFF #define R_036C04_TD_PERFCOUNTER0_SELECT1 0x036C04 /* >= gfx7 */ #define S_036C04_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036C04_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036C04_PERF_SEL2 0xFFFFFC00 #define S_036C04_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036C04_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036C04_PERF_SEL3 0xFFF003FF #define S_036C04_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 24) #define G_036C04_PERF_MODE3(x) (((x) >> 24) & 0xF) #define C_036C04_PERF_MODE3 0xF0FFFFFF #define S_036C04_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 28) #define G_036C04_PERF_MODE2(x) (((x) >> 28) & 0xF) #define C_036C04_PERF_MODE2 0x0FFFFFFF #define R_036C08_TD_PERFCOUNTER1_SELECT 0x036C08 /* >= gfx7 */ #define S_036C08_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) /* >= gfx9 */ #define G_036C08_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036C08_PERF_SEL 0xFFFFFC00 #define S_036C08_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) /* >= gfx9 */ #define G_036C08_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036C08_CNTR_MODE 0xFF0FFFFF #define S_036C08_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) /* >= gfx9 */ #define G_036C08_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036C08_PERF_MODE 0x0FFFFFFF #define R_036D00_TCP_PERFCOUNTER0_SELECT 0x036D00 /* >= gfx7 */ #define S_036D00_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036D00_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036D00_PERF_SEL 0xFFFFFC00 #define S_036D00_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036D00_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_036D00_PERF_SEL1 0xFFF003FF #define S_036D00_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036D00_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036D00_CNTR_MODE 0xFF0FFFFF #define S_036D00_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) #define G_036D00_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_036D00_PERF_MODE1 0xF0FFFFFF #define S_036D00_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_036D00_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036D00_PERF_MODE 0x0FFFFFFF #define R_036D04_TCP_PERFCOUNTER0_SELECT1 0x036D04 /* >= gfx7 */ #define S_036D04_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036D04_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036D04_PERF_SEL2 0xFFFFFC00 #define S_036D04_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036D04_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036D04_PERF_SEL3 0xFFF003FF #define S_036D04_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 24) #define G_036D04_PERF_MODE3(x) (((x) >> 24) & 0xF) #define C_036D04_PERF_MODE3 0xF0FFFFFF #define S_036D04_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 28) #define G_036D04_PERF_MODE2(x) (((x) >> 28) & 0xF) #define C_036D04_PERF_MODE2 0x0FFFFFFF #define R_036D08_TCP_PERFCOUNTER1_SELECT 0x036D08 /* >= gfx7 */ #define R_036D0C_TCP_PERFCOUNTER1_SELECT1 0x036D0C /* >= gfx7 */ #define R_036D10_TCP_PERFCOUNTER2_SELECT 0x036D10 /* >= gfx7 */ #define S_036D10_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036D10_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036D10_PERF_SEL 0xFFFFFC00 #define S_036D10_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036D10_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036D10_CNTR_MODE 0xFF0FFFFF #define S_036D10_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_036D10_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036D10_PERF_MODE 0x0FFFFFFF #define R_036D14_TCP_PERFCOUNTER3_SELECT 0x036D14 /* >= gfx7 */ #define R_036E00_GL2C_PERFCOUNTER0_SELECT 0x036E00 /* >= gfx10 */ #define S_036E00_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036E00_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036E00_PERF_SEL 0xFFFFFC00 #define S_036E00_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036E00_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_036E00_PERF_SEL1 0xFFF003FF #define S_036E00_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036E00_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036E00_CNTR_MODE 0xFF0FFFFF #define S_036E00_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) #define G_036E00_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_036E00_PERF_MODE1 0xF0FFFFFF #define S_036E00_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_036E00_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036E00_PERF_MODE 0x0FFFFFFF #define R_036E00_TCC_PERFCOUNTER0_SELECT 0x036E00 /* gfx7, gfx8, gfx81, gfx9 */ #define R_036E04_GL2C_PERFCOUNTER0_SELECT1 0x036E04 /* >= gfx10 */ #define S_036E04_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036E04_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036E04_PERF_SEL2 0xFFFFFC00 #define S_036E04_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036E04_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036E04_PERF_SEL3 0xFFF003FF #define S_036E04_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 24) #define G_036E04_PERF_MODE2(x) (((x) >> 24) & 0xF) #define C_036E04_PERF_MODE2 0xF0FFFFFF #define S_036E04_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 28) #define G_036E04_PERF_MODE3(x) (((x) >> 28) & 0xF) #define C_036E04_PERF_MODE3 0x0FFFFFFF #define R_036E04_TCC_PERFCOUNTER0_SELECT1 0x036E04 /* gfx7, gfx8, gfx81, gfx9 */ #define R_036E08_GL2C_PERFCOUNTER1_SELECT 0x036E08 /* >= gfx10 */ #define R_036E08_TCC_PERFCOUNTER1_SELECT 0x036E08 /* gfx7, gfx8, gfx81, gfx9 */ #define R_036E0C_GL2C_PERFCOUNTER1_SELECT1 0x036E0C /* >= gfx10 */ #define R_036E0C_TCC_PERFCOUNTER1_SELECT1 0x036E0C /* gfx7, gfx8, gfx81, gfx9 */ #define R_036E10_GL2C_PERFCOUNTER2_SELECT 0x036E10 /* >= gfx10 */ #define S_036E10_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036E10_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036E10_PERF_SEL 0xFFFFFC00 #define S_036E10_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036E10_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036E10_CNTR_MODE 0xFF0FFFFF #define S_036E10_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_036E10_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036E10_PERF_MODE 0x0FFFFFFF #define R_036E10_TCC_PERFCOUNTER2_SELECT 0x036E10 /* gfx7, gfx8, gfx81, gfx9 */ #define R_036E14_GL2C_PERFCOUNTER3_SELECT 0x036E14 /* >= gfx10 */ #define R_036E14_TCC_PERFCOUNTER3_SELECT 0x036E14 /* gfx7, gfx8, gfx81, gfx9 */ #define R_036E40_GL2A_PERFCOUNTER0_SELECT 0x036E40 /* >= gfx10 */ #define S_036E40_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036E40_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036E40_PERF_SEL 0xFFFFFC00 #define S_036E40_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036E40_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_036E40_PERF_SEL1 0xFFF003FF #define S_036E40_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036E40_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036E40_CNTR_MODE 0xFF0FFFFF #define S_036E40_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) #define G_036E40_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_036E40_PERF_MODE1 0xF0FFFFFF #define S_036E40_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_036E40_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036E40_PERF_MODE 0x0FFFFFFF #define R_036E40_TCA_PERFCOUNTER0_SELECT 0x036E40 /* gfx7, gfx8, gfx81, gfx9 */ #define R_036E44_GL2A_PERFCOUNTER0_SELECT1 0x036E44 /* >= gfx10 */ #define S_036E44_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036E44_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036E44_PERF_SEL2 0xFFFFFC00 #define S_036E44_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036E44_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036E44_PERF_SEL3 0xFFF003FF #define S_036E44_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 24) #define G_036E44_PERF_MODE2(x) (((x) >> 24) & 0xF) #define C_036E44_PERF_MODE2 0xF0FFFFFF #define S_036E44_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 28) #define G_036E44_PERF_MODE3(x) (((x) >> 28) & 0xF) #define C_036E44_PERF_MODE3 0x0FFFFFFF #define R_036E44_TCA_PERFCOUNTER0_SELECT1 0x036E44 /* gfx7, gfx8, gfx81, gfx9 */ #define R_036E48_GL2A_PERFCOUNTER1_SELECT 0x036E48 /* >= gfx10 */ #define R_036E48_TCA_PERFCOUNTER1_SELECT 0x036E48 /* gfx7, gfx8, gfx81, gfx9 */ #define R_036E4C_GL2A_PERFCOUNTER1_SELECT1 0x036E4C /* >= gfx10 */ #define R_036E4C_TCA_PERFCOUNTER1_SELECT1 0x036E4C /* gfx7, gfx8, gfx81, gfx9 */ #define R_036E50_GL2A_PERFCOUNTER2_SELECT 0x036E50 /* >= gfx10 */ #define S_036E50_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036E50_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036E50_PERF_SEL 0xFFFFFC00 #define S_036E50_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036E50_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036E50_CNTR_MODE 0xFF0FFFFF #define S_036E50_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_036E50_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036E50_PERF_MODE 0x0FFFFFFF #define R_036E50_TCA_PERFCOUNTER2_SELECT 0x036E50 /* gfx7, gfx8, gfx81, gfx9 */ #define R_036E54_GL2A_PERFCOUNTER3_SELECT 0x036E54 /* >= gfx10 */ #define R_036E54_TCA_PERFCOUNTER3_SELECT 0x036E54 /* gfx7, gfx8, gfx81, gfx9 */ #define R_036E80_GL1C_PERFCOUNTER0_SELECT 0x036E80 /* >= gfx10 */ #define S_036E80_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx7 */ #define G_036E80_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036E80_PERF_SEL 0xFFFFFC00 #define S_036E80_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) /* gfx7 */ #define G_036E80_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_036E80_PERF_SEL1 0xFFF003FF #define S_036E80_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) /* gfx7 */ #define G_036E80_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036E80_CNTR_MODE 0xFF0FFFFF #define S_036E80_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) /* gfx7 */ #define G_036E80_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_036E80_PERF_MODE1 0xF0FFFFFF #define S_036E80_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) /* gfx7 */ #define G_036E80_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036E80_PERF_MODE 0x0FFFFFFF #define R_036E80_TCS_PERFCOUNTER0_SELECT 0x036E80 /* gfx7 */ #define R_036E84_GL1C_PERFCOUNTER0_SELECT1 0x036E84 /* >= gfx10 */ #define S_036E84_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx7 */ #define G_036E84_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036E84_PERF_SEL2 0xFFFFFC00 #define S_036E84_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) /* gfx7 */ #define G_036E84_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036E84_PERF_SEL3 0xFFF003FF #define S_036E84_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 24) /* gfx7 */ #define G_036E84_PERF_MODE2(x) (((x) >> 24) & 0xF) #define C_036E84_PERF_MODE2 0xF0FFFFFF #define S_036E84_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 28) /* gfx7 */ #define G_036E84_PERF_MODE3(x) (((x) >> 28) & 0xF) #define C_036E84_PERF_MODE3 0x0FFFFFFF #define R_036E84_TCS_PERFCOUNTER0_SELECT1 0x036E84 /* gfx7 */ #define R_036E88_GL1C_PERFCOUNTER1_SELECT 0x036E88 /* >= gfx10 */ #define S_036E88_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) /* gfx7 */ #define G_036E88_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036E88_PERF_SEL 0xFFFFFC00 #define S_036E88_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) /* gfx7 */ #define G_036E88_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036E88_CNTR_MODE 0xFF0FFFFF #define S_036E88_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) /* gfx7 */ #define G_036E88_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036E88_PERF_MODE 0x0FFFFFFF #define R_036E88_TCS_PERFCOUNTER1_SELECT 0x036E88 /* gfx7 */ #define R_036E8C_GL1C_PERFCOUNTER2_SELECT 0x036E8C /* >= gfx10 */ #define R_036E8C_TCS_PERFCOUNTER2_SELECT 0x036E8C /* gfx7 */ #define R_036E90_GL1C_PERFCOUNTER3_SELECT 0x036E90 /* >= gfx10 */ #define R_036E90_TCS_PERFCOUNTER3_SELECT 0x036E90 /* gfx7 */ #define R_036F00_CHC_PERFCOUNTER0_SELECT 0x036F00 /* >= gfx10 */ #define S_036F00_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036F00_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036F00_PERF_SEL 0xFFFFFC00 #define S_036F00_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036F00_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_036F00_PERF_SEL1 0xFFF003FF #define S_036F00_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036F00_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036F00_CNTR_MODE 0xFF0FFFFF #define S_036F00_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) #define G_036F00_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_036F00_PERF_MODE1 0xF0FFFFFF #define S_036F00_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_036F00_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036F00_PERF_MODE 0x0FFFFFFF #define R_036F04_CHC_PERFCOUNTER0_SELECT1 0x036F04 /* >= gfx10 */ #define S_036F04_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036F04_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036F04_PERF_SEL2 0xFFFFFC00 #define S_036F04_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036F04_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036F04_PERF_SEL3 0xFFF003FF #define S_036F04_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 24) #define G_036F04_PERF_MODE2(x) (((x) >> 24) & 0xF) #define C_036F04_PERF_MODE2 0xF0FFFFFF #define S_036F04_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 28) #define G_036F04_PERF_MODE3(x) (((x) >> 28) & 0xF) #define C_036F04_PERF_MODE3 0x0FFFFFFF #define R_036F08_CHC_PERFCOUNTER1_SELECT 0x036F08 /* >= gfx10 */ #define S_036F08_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036F08_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036F08_PERF_SEL 0xFFFFFC00 #define S_036F08_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036F08_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036F08_CNTR_MODE 0xFF0FFFFF #define S_036F08_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_036F08_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036F08_PERF_MODE 0x0FFFFFFF #define R_036F0C_CHC_PERFCOUNTER2_SELECT 0x036F0C /* >= gfx10 */ #define R_036F10_CHC_PERFCOUNTER3_SELECT 0x036F10 /* >= gfx10 */ #define R_036F18_CHCG_PERFCOUNTER0_SELECT 0x036F18 /* >= gfx10 */ #define S_036F18_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036F18_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036F18_PERF_SEL 0xFFFFFC00 #define S_036F18_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036F18_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_036F18_PERF_SEL1 0xFFF003FF #define S_036F18_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036F18_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036F18_CNTR_MODE 0xFF0FFFFF #define S_036F18_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) #define G_036F18_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_036F18_PERF_MODE1 0xF0FFFFFF #define S_036F18_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_036F18_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036F18_PERF_MODE 0x0FFFFFFF #define R_036F1C_CHCG_PERFCOUNTER0_SELECT1 0x036F1C /* >= gfx10 */ #define S_036F1C_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036F1C_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_036F1C_PERF_SEL2 0xFFFFFC00 #define S_036F1C_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_036F1C_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_036F1C_PERF_SEL3 0xFFF003FF #define S_036F1C_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 24) #define G_036F1C_PERF_MODE2(x) (((x) >> 24) & 0xF) #define C_036F1C_PERF_MODE2 0xF0FFFFFF #define S_036F1C_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 28) #define G_036F1C_PERF_MODE3(x) (((x) >> 28) & 0xF) #define C_036F1C_PERF_MODE3 0x0FFFFFFF #define R_036F20_CHCG_PERFCOUNTER1_SELECT 0x036F20 /* >= gfx10 */ #define S_036F20_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_036F20_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_036F20_PERF_SEL 0xFFFFFC00 #define S_036F20_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_036F20_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_036F20_CNTR_MODE 0xFF0FFFFF #define S_036F20_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_036F20_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_036F20_PERF_MODE 0x0FFFFFFF #define R_036F24_CHCG_PERFCOUNTER2_SELECT 0x036F24 /* >= gfx10 */ #define R_036F28_CHCG_PERFCOUNTER3_SELECT 0x036F28 /* >= gfx10 */ #define R_037000_CB_PERFCOUNTER_FILTER 0x037000 /* >= gfx7 */ #define S_037000_OP_FILTER_ENABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_037000_OP_FILTER_ENABLE(x) (((x) >> 0) & 0x1) #define C_037000_OP_FILTER_ENABLE 0xFFFFFFFE #define S_037000_OP_FILTER_SEL(x) (((unsigned)(x) & 0x7) << 1) #define G_037000_OP_FILTER_SEL(x) (((x) >> 1) & 0x7) #define C_037000_OP_FILTER_SEL 0xFFFFFFF1 #define V_037000_CB_PERF_OP_FILTER_SEL_WRITE_ONLY 0 #define V_037000_CB_PERF_OP_FILTER_SEL_NEEDS_DESTINATION 1 #define V_037000_CB_PERF_OP_FILTER_SEL_RESOLVE 2 #define V_037000_CB_PERF_OP_FILTER_SEL_DECOMPRESS 3 #define V_037000_CB_PERF_OP_FILTER_SEL_FMASK_DECOMPRESS 4 #define V_037000_CB_PERF_OP_FILTER_SEL_ELIMINATE_FAST_CLEAR 5 #define S_037000_FORMAT_FILTER_ENABLE(x) (((unsigned)(x) & 0x1) << 4) #define G_037000_FORMAT_FILTER_ENABLE(x) (((x) >> 4) & 0x1) #define C_037000_FORMAT_FILTER_ENABLE 0xFFFFFFEF #define S_037000_FORMAT_FILTER_SEL(x) (((unsigned)(x) & 0x1F) << 5) #define G_037000_FORMAT_FILTER_SEL(x) (((x) >> 5) & 0x1F) #define C_037000_FORMAT_FILTER_SEL 0xFFFFFC1F #define S_037000_CLEAR_FILTER_ENABLE(x) (((unsigned)(x) & 0x1) << 10) #define G_037000_CLEAR_FILTER_ENABLE(x) (((x) >> 10) & 0x1) #define C_037000_CLEAR_FILTER_ENABLE 0xFFFFFBFF #define S_037000_CLEAR_FILTER_SEL(x) (((unsigned)(x) & 0x1) << 11) #define G_037000_CLEAR_FILTER_SEL(x) (((x) >> 11) & 0x1) #define C_037000_CLEAR_FILTER_SEL 0xFFFFF7FF #define V_037000_CB_PERF_CLEAR_FILTER_SEL_NONCLEAR 0 #define V_037000_CB_PERF_CLEAR_FILTER_SEL_CLEAR 1 #define S_037000_MRT_FILTER_ENABLE(x) (((unsigned)(x) & 0x1) << 12) #define G_037000_MRT_FILTER_ENABLE(x) (((x) >> 12) & 0x1) #define C_037000_MRT_FILTER_ENABLE 0xFFFFEFFF #define S_037000_MRT_FILTER_SEL(x) (((unsigned)(x) & 0x7) << 13) #define G_037000_MRT_FILTER_SEL(x) (((x) >> 13) & 0x7) #define C_037000_MRT_FILTER_SEL 0xFFFF1FFF #define S_037000_NUM_SAMPLES_FILTER_ENABLE(x) (((unsigned)(x) & 0x1) << 17) #define G_037000_NUM_SAMPLES_FILTER_ENABLE(x) (((x) >> 17) & 0x1) #define C_037000_NUM_SAMPLES_FILTER_ENABLE 0xFFFDFFFF #define S_037000_NUM_SAMPLES_FILTER_SEL(x) (((unsigned)(x) & 0x7) << 18) #define G_037000_NUM_SAMPLES_FILTER_SEL(x) (((x) >> 18) & 0x7) #define C_037000_NUM_SAMPLES_FILTER_SEL 0xFFE3FFFF #define S_037000_NUM_FRAGMENTS_FILTER_ENABLE(x) (((unsigned)(x) & 0x1) << 21) #define G_037000_NUM_FRAGMENTS_FILTER_ENABLE(x) (((x) >> 21) & 0x1) #define C_037000_NUM_FRAGMENTS_FILTER_ENABLE 0xFFDFFFFF #define S_037000_NUM_FRAGMENTS_FILTER_SEL(x) (((unsigned)(x) & 0x3) << 22) #define G_037000_NUM_FRAGMENTS_FILTER_SEL(x) (((x) >> 22) & 0x3) #define C_037000_NUM_FRAGMENTS_FILTER_SEL 0xFF3FFFFF #define R_037004_CB_PERFCOUNTER0_SELECT 0x037004 /* >= gfx7 */ #define S_037004_PERF_SEL(x) (((unsigned)(x) & 0x1FF) << 0) #define G_037004_PERF_SEL(x) (((x) >> 0) & 0x1FF) #define C_037004_PERF_SEL 0xFFFFFE00 #define S_037004_PERF_SEL1(x) (((unsigned)(x) & 0x1FF) << 10) #define G_037004_PERF_SEL1(x) (((x) >> 10) & 0x1FF) #define C_037004_PERF_SEL1 0xFFF803FF #define S_037004_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_037004_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_037004_CNTR_MODE 0xFF0FFFFF #define S_037004_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) #define G_037004_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_037004_PERF_MODE1 0xF0FFFFFF #define S_037004_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_037004_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_037004_PERF_MODE 0x0FFFFFFF #define R_037008_CB_PERFCOUNTER0_SELECT1 0x037008 /* >= gfx7 */ #define S_037008_PERF_SEL2(x) (((unsigned)(x) & 0x1FF) << 0) #define G_037008_PERF_SEL2(x) (((x) >> 0) & 0x1FF) #define C_037008_PERF_SEL2 0xFFFFFE00 #define S_037008_PERF_SEL3(x) (((unsigned)(x) & 0x1FF) << 10) #define G_037008_PERF_SEL3(x) (((x) >> 10) & 0x1FF) #define C_037008_PERF_SEL3 0xFFF803FF #define S_037008_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 24) #define G_037008_PERF_MODE3(x) (((x) >> 24) & 0xF) #define C_037008_PERF_MODE3 0xF0FFFFFF #define S_037008_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 28) #define G_037008_PERF_MODE2(x) (((x) >> 28) & 0xF) #define C_037008_PERF_MODE2 0x0FFFFFFF #define R_03700C_CB_PERFCOUNTER1_SELECT 0x03700C /* >= gfx7 */ #define S_03700C_PERF_SEL(x) (((unsigned)(x) & 0x1FF) << 0) #define G_03700C_PERF_SEL(x) (((x) >> 0) & 0x1FF) #define C_03700C_PERF_SEL 0xFFFFFE00 #define S_03700C_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_03700C_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_03700C_PERF_MODE 0x0FFFFFFF #define R_037010_CB_PERFCOUNTER2_SELECT 0x037010 /* >= gfx7 */ #define R_037014_CB_PERFCOUNTER3_SELECT 0x037014 /* >= gfx7 */ #define R_037100_DB_PERFCOUNTER0_SELECT 0x037100 /* >= gfx7 */ #define S_037100_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_037100_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_037100_PERF_SEL 0xFFFFFC00 #define S_037100_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_037100_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_037100_PERF_SEL1 0xFFF003FF #define S_037100_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_037100_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_037100_CNTR_MODE 0xFF0FFFFF #define S_037100_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) #define G_037100_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_037100_PERF_MODE1 0xF0FFFFFF #define S_037100_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_037100_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_037100_PERF_MODE 0x0FFFFFFF #define R_037104_DB_PERFCOUNTER0_SELECT1 0x037104 /* >= gfx7 */ #define S_037104_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_037104_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_037104_PERF_SEL2 0xFFFFFC00 #define S_037104_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_037104_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_037104_PERF_SEL3 0xFFF003FF #define S_037104_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 24) #define G_037104_PERF_MODE3(x) (((x) >> 24) & 0xF) #define C_037104_PERF_MODE3 0xF0FFFFFF #define S_037104_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 28) #define G_037104_PERF_MODE2(x) (((x) >> 28) & 0xF) #define C_037104_PERF_MODE2 0x0FFFFFFF #define R_037108_DB_PERFCOUNTER1_SELECT 0x037108 /* >= gfx7 */ #define R_03710C_DB_PERFCOUNTER1_SELECT1 0x03710C /* >= gfx7 */ #define R_037110_DB_PERFCOUNTER2_SELECT 0x037110 /* >= gfx7 */ #define R_037118_DB_PERFCOUNTER3_SELECT 0x037118 /* >= gfx7 */ #define R_037200_RLC_SPM_PERFMON_CNTL 0x037200 /* >= gfx7 */ #define S_037200_RESERVED1(x) (((unsigned)(x) & 0xFFF) << 0) #define G_037200_RESERVED1(x) (((x) >> 0) & 0xFFF) #define C_037200_RESERVED1 0xFFFFF000 #define S_037200_PERFMON_RING_MODE(x) (((unsigned)(x) & 0x3) << 12) #define G_037200_PERFMON_RING_MODE(x) (((x) >> 12) & 0x3) #define C_037200_PERFMON_RING_MODE 0xFFFFCFFF #define S_037200_PERFMON_SAMPLE_INTERVAL(x) (((unsigned)(x) & 0xFFFF) << 16) #define G_037200_PERFMON_SAMPLE_INTERVAL(x) (((x) >> 16) & 0xFFFF) #define C_037200_PERFMON_SAMPLE_INTERVAL 0x0000FFFF #define R_037204_RLC_SPM_PERFMON_RING_BASE_LO 0x037204 /* >= gfx7 */ #define R_037208_RLC_SPM_PERFMON_RING_BASE_HI 0x037208 /* >= gfx7 */ #define S_037208_RING_BASE_HI(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_037208_RING_BASE_HI(x) (((x) >> 0) & 0xFFFF) #define C_037208_RING_BASE_HI 0xFFFF0000 #define R_03720C_RLC_SPM_PERFMON_RING_SIZE 0x03720C /* >= gfx7 */ #define R_037210_RLC_SPM_PERFMON_SEGMENT_SIZE 0x037210 /* >= gfx7 */ #define S_037210_PERFMON_SEGMENT_SIZE(x) (((unsigned)(x) & 0xFF) << 0) #define G_037210_PERFMON_SEGMENT_SIZE(x) (((x) >> 0) & 0xFF) #define C_037210_PERFMON_SEGMENT_SIZE 0xFFFFFF00 #define S_037210_RESERVED1(x) (((unsigned)(x) & 0x7) << 8) #define G_037210_RESERVED1(x) (((x) >> 8) & 0x7) #define C_037210_RESERVED1 0xFFFFF8FF #define S_037210_GLOBAL_NUM_LINE(x) (((unsigned)(x) & 0x1F) << 11) #define G_037210_GLOBAL_NUM_LINE(x) (((x) >> 11) & 0x1F) #define C_037210_GLOBAL_NUM_LINE 0xFFFF07FF #define S_037210_SE0_NUM_LINE(x) (((unsigned)(x) & 0x1F) << 16) #define G_037210_SE0_NUM_LINE(x) (((x) >> 16) & 0x1F) #define C_037210_SE0_NUM_LINE 0xFFE0FFFF #define S_037210_SE1_NUM_LINE(x) (((unsigned)(x) & 0x1F) << 21) #define G_037210_SE1_NUM_LINE(x) (((x) >> 21) & 0x1F) #define C_037210_SE1_NUM_LINE 0xFC1FFFFF #define S_037210_SE2_NUM_LINE(x) (((unsigned)(x) & 0x1F) << 26) #define G_037210_SE2_NUM_LINE(x) (((x) >> 26) & 0x1F) #define C_037210_SE2_NUM_LINE 0x83FFFFFF #define R_037214_RLC_SPM_RING_RDPTR 0x037214 /* >= gfx10 */ #define R_037214_RLC_SPM_SE_MUXSEL_ADDR 0x037214 /* gfx7, gfx8, gfx81, gfx9 */ #define R_037218_RLC_SPM_SEGMENT_THRESHOLD 0x037218 /* >= gfx10 */ #define S_037218_NUM_SEGMENT_THRESHOLD(x) (((unsigned)(x) & 0xFF) << 0) #define G_037218_NUM_SEGMENT_THRESHOLD(x) (((x) >> 0) & 0xFF) #define C_037218_NUM_SEGMENT_THRESHOLD 0xFFFFFF00 #define R_037218_RLC_SPM_SE_MUXSEL_DATA 0x037218 /* gfx7, gfx8, gfx81, gfx9 */ #define R_03721C_RLC_SPM_CPG_PERFMON_SAMPLE_DELAY 0x03721C /* gfx7, gfx8, gfx81, gfx9 */ #define S_03721C_PERFMON_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_03721C_PERFMON_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_03721C_PERFMON_SAMPLE_DELAY 0xFFFFFF00 #define R_03721C_RLC_SPM_SE_MUXSEL_ADDR 0x03721C /* >= gfx10 */ #define S_03721C_PERFMON_SEL_ADDR(x) (((unsigned)(x) & 0x1FF) << 0) #define G_03721C_PERFMON_SEL_ADDR(x) (((x) >> 0) & 0x1FF) #define C_03721C_PERFMON_SEL_ADDR 0xFFFFFE00 #define R_037220_RLC_SPM_CPC_PERFMON_SAMPLE_DELAY 0x037220 /* gfx7, gfx8, gfx81, gfx9 */ #define S_037220_PERFMON_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_037220_PERFMON_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_037220_PERFMON_SAMPLE_DELAY 0xFFFFFF00 #define R_037220_RLC_SPM_SE_MUXSEL_DATA 0x037220 /* >= gfx10 */ #define R_037224_RLC_SPM_CPF_PERFMON_SAMPLE_DELAY 0x037224 /* gfx7, gfx8, gfx81, gfx9 */ #define S_037224_PERFMON_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_037224_PERFMON_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_037224_PERFMON_SAMPLE_DELAY 0xFFFFFF00 #define R_037224_RLC_SPM_GLOBAL_MUXSEL_ADDR 0x037224 /* >= gfx10 */ #define S_037224_PERFMON_SEL_ADDR(x) (((unsigned)(x) & 0xFF) << 0) #define G_037224_PERFMON_SEL_ADDR(x) (((x) >> 0) & 0xFF) #define C_037224_PERFMON_SEL_ADDR 0xFFFFFF00 #define R_037228_RLC_SPM_CB_PERFMON_SAMPLE_DELAY 0x037228 /* gfx7, gfx8, gfx81, gfx9 */ #define S_037228_PERFMON_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_037228_PERFMON_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_037228_PERFMON_SAMPLE_DELAY 0xFFFFFF00 #define R_037228_RLC_SPM_GLOBAL_MUXSEL_DATA 0x037228 /* >= gfx10 */ #define R_03722C_RLC_SPM_DB_PERFMON_SAMPLE_DELAY 0x03722C /* gfx7, gfx8, gfx81, gfx9 */ #define S_03722C_PERFMON_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_03722C_PERFMON_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_03722C_PERFMON_SAMPLE_DELAY 0xFFFFFF00 #define R_03722C_RLC_SPM_DESER_START_SKEW 0x03722C /* >= gfx10 */ #define S_03722C_DESER_START_SKEW(x) (((unsigned)(x) & 0x7F) << 0) #define G_03722C_DESER_START_SKEW(x) (((x) >> 0) & 0x7F) #define C_03722C_DESER_START_SKEW 0xFFFFFF80 #define R_037230_RLC_SPM_GLOBALS_SAMPLE_SKEW 0x037230 /* >= gfx10 */ #define S_037230_GLOBALS_SAMPLE_SKEW(x) (((unsigned)(x) & 0x7F) << 0) #define G_037230_GLOBALS_SAMPLE_SKEW(x) (((x) >> 0) & 0x7F) #define C_037230_GLOBALS_SAMPLE_SKEW 0xFFFFFF80 #define R_037230_RLC_SPM_PA_PERFMON_SAMPLE_DELAY 0x037230 /* gfx7, gfx8, gfx81, gfx9 */ #define S_037230_PERFMON_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_037230_PERFMON_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_037230_PERFMON_SAMPLE_DELAY 0xFFFFFF00 #define R_037234_RLC_SPM_GDS_PERFMON_SAMPLE_DELAY 0x037234 /* gfx7, gfx8, gfx81, gfx9 */ #define S_037234_PERFMON_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_037234_PERFMON_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_037234_PERFMON_SAMPLE_DELAY 0xFFFFFF00 #define R_037234_RLC_SPM_GLOBALS_MUXSEL_SKEW 0x037234 /* >= gfx10 */ #define S_037234_GLOBALS_MUXSEL_SKEW(x) (((unsigned)(x) & 0x7F) << 0) #define G_037234_GLOBALS_MUXSEL_SKEW(x) (((x) >> 0) & 0x7F) #define C_037234_GLOBALS_MUXSEL_SKEW 0xFFFFFF80 #define R_037238_RLC_SPM_IA_PERFMON_SAMPLE_DELAY 0x037238 /* gfx7, gfx8, gfx81, gfx9 */ #define S_037238_PERFMON_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_037238_PERFMON_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_037238_PERFMON_SAMPLE_DELAY 0xFFFFFF00 #define R_037238_RLC_SPM_SE_SAMPLE_SKEW 0x037238 /* >= gfx10 */ #define S_037238_SE_SAMPLE_SKEW(x) (((unsigned)(x) & 0x7F) << 0) #define G_037238_SE_SAMPLE_SKEW(x) (((x) >> 0) & 0x7F) #define C_037238_SE_SAMPLE_SKEW 0xFFFFFF80 #define R_03723C_RLC_SPM_SE_MUXSEL_SKEW 0x03723C /* >= gfx10 */ #define S_03723C_SE_MUXSEL_SKEW(x) (((unsigned)(x) & 0x7F) << 0) #define G_03723C_SE_MUXSEL_SKEW(x) (((x) >> 0) & 0x7F) #define C_03723C_SE_MUXSEL_SKEW 0xFFFFFF80 #define R_037240_RLC_SPM_GLB_SAMPLEDELAY_IND_ADDR 0x037240 /* >= gfx10 */ #define R_037240_RLC_SPM_SC_PERFMON_SAMPLE_DELAY 0x037240 /* gfx7, gfx8, gfx81, gfx9 */ #define S_037240_PERFMON_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_037240_PERFMON_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_037240_PERFMON_SAMPLE_DELAY 0xFFFFFF00 #define R_037244_RLC_SPM_GLB_SAMPLEDELAY_IND_DATA 0x037244 /* >= gfx10 */ #define S_037244_data(x) (((unsigned)(x) & 0x7F) << 0) #define G_037244_data(x) (((x) >> 0) & 0x7F) #define C_037244_data 0xFFFFFF80 #define R_037244_RLC_SPM_TCC_PERFMON_SAMPLE_DELAY 0x037244 /* gfx7, gfx8, gfx81, gfx9 */ #define S_037244_PERFMON_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_037244_PERFMON_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_037244_PERFMON_SAMPLE_DELAY 0xFFFFFF00 #define R_037248_RLC_SPM_SE_SAMPLEDELAY_IND_ADDR 0x037248 /* >= gfx10 */ #define R_037248_RLC_SPM_TCA_PERFMON_SAMPLE_DELAY 0x037248 /* gfx7, gfx8, gfx81, gfx9 */ #define S_037248_PERFMON_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_037248_PERFMON_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_037248_PERFMON_SAMPLE_DELAY 0xFFFFFF00 #define R_03724C_RLC_SPM_SE_SAMPLEDELAY_IND_DATA 0x03724C /* >= gfx10 */ #define S_03724C_data(x) (((unsigned)(x) & 0x7F) << 0) #define G_03724C_data(x) (((x) >> 0) & 0x7F) #define C_03724C_data 0xFFFFFF80 #define R_03724C_RLC_SPM_TCP_PERFMON_SAMPLE_DELAY 0x03724C /* gfx7, gfx8, gfx81, gfx9 */ #define S_03724C_PERFMON_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_03724C_PERFMON_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_03724C_PERFMON_SAMPLE_DELAY 0xFFFFFF00 #define R_037250_RLC_SPM_RING_WRPTR 0x037250 /* >= gfx10 */ #define S_037250_PERFMON_RING_WRPTR(x) (((unsigned)(x) & 0x7FFFFFF) << 5) #define G_037250_PERFMON_RING_WRPTR(x) (((x) >> 5) & 0x7FFFFFF) #define C_037250_PERFMON_RING_WRPTR 0x0000001F #define R_037250_RLC_SPM_TA_PERFMON_SAMPLE_DELAY 0x037250 /* gfx7, gfx8, gfx81, gfx9 */ #define S_037250_PERFMON_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_037250_PERFMON_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_037250_PERFMON_SAMPLE_DELAY 0xFFFFFF00 #define R_037254_RLC_SPM_ACCUM_DATARAM_ADDR 0x037254 /* >= gfx10 */ #define S_037254_addr(x) (((unsigned)(x) & 0x7F) << 0) #define G_037254_addr(x) (((x) >> 0) & 0x7F) #define C_037254_addr 0xFFFFFF80 #define R_037254_RLC_SPM_TD_PERFMON_SAMPLE_DELAY 0x037254 /* gfx7, gfx8, gfx81, gfx9 */ #define S_037254_PERFMON_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_037254_PERFMON_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_037254_PERFMON_SAMPLE_DELAY 0xFFFFFF00 #define R_037258_RLC_SPM_ACCUM_DATARAM_DATA 0x037258 /* >= gfx10 */ #define R_037258_RLC_SPM_VGT_PERFMON_SAMPLE_DELAY 0x037258 /* gfx7, gfx8, gfx81, gfx9 */ #define S_037258_PERFMON_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_037258_PERFMON_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_037258_PERFMON_SAMPLE_DELAY 0xFFFFFF00 #define R_03725C_RLC_SPM_ACCUM_CTRLRAM_ADDR 0x03725C /* >= gfx10 */ #define S_03725C_addr_GFX10(x) (((unsigned)(x) & 0x1FF) << 0) /* gfx10 */ #define G_03725C_addr_GFX10(x) (((x) >> 0) & 0x1FF) #define C_03725C_addr_GFX10 0xFFFFFE00 #define S_03725C_addr_GFX103(x) (((unsigned)(x) & 0x7FF) << 0) /* >= gfx103 */ #define G_03725C_addr_GFX103(x) (((x) >> 0) & 0x7FF) #define C_03725C_addr_GFX103 0xFFFFF800 #define R_03725C_RLC_SPM_SPI_PERFMON_SAMPLE_DELAY 0x03725C /* gfx7, gfx8, gfx81, gfx9 */ #define S_03725C_PERFMON_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_03725C_PERFMON_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_03725C_PERFMON_SAMPLE_DELAY 0xFFFFFF00 #define R_037260_RLC_SPM_ACCUM_CTRLRAM_DATA 0x037260 /* >= gfx10 */ #define S_037260_data(x) (((unsigned)(x) & 0xFF) << 0) #define G_037260_data(x) (((x) >> 0) & 0xFF) #define C_037260_data 0xFFFFFF00 #define R_037260_RLC_SPM_SQG_PERFMON_SAMPLE_DELAY 0x037260 /* gfx7, gfx8, gfx81, gfx9 */ #define S_037260_PERFMON_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_037260_PERFMON_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_037260_PERFMON_SAMPLE_DELAY 0xFFFFFF00 #define R_037264_RLC_SPM_ACCUM_STATUS 0x037264 /* >= gfx10 */ #define S_037264_NumbSamplesCompleted(x) (((unsigned)(x) & 0xFF) << 0) #define G_037264_NumbSamplesCompleted(x) (((x) >> 0) & 0xFF) #define C_037264_NumbSamplesCompleted 0xFFFFFF00 #define S_037264_AccumDone(x) (((unsigned)(x) & 0x1) << 8) #define G_037264_AccumDone(x) (((x) >> 8) & 0x1) #define C_037264_AccumDone 0xFFFFFEFF #define S_037264_SpmDone(x) (((unsigned)(x) & 0x1) << 9) #define G_037264_SpmDone(x) (((x) >> 9) & 0x1) #define C_037264_SpmDone 0xFFFFFDFF #define S_037264_AccumOverflow(x) (((unsigned)(x) & 0x1) << 10) #define G_037264_AccumOverflow(x) (((x) >> 10) & 0x1) #define C_037264_AccumOverflow 0xFFFFFBFF #define S_037264_AccumArmed(x) (((unsigned)(x) & 0x1) << 11) #define G_037264_AccumArmed(x) (((x) >> 11) & 0x1) #define C_037264_AccumArmed 0xFFFFF7FF #define S_037264_SequenceInProgress(x) (((unsigned)(x) & 0x1) << 12) #define G_037264_SequenceInProgress(x) (((x) >> 12) & 0x1) #define C_037264_SequenceInProgress 0xFFFFEFFF #define S_037264_FinalSequenceInProgress(x) (((unsigned)(x) & 0x1) << 13) #define G_037264_FinalSequenceInProgress(x) (((x) >> 13) & 0x1) #define C_037264_FinalSequenceInProgress 0xFFFFDFFF #define S_037264_AllFifosEmpty(x) (((unsigned)(x) & 0x1) << 14) #define G_037264_AllFifosEmpty(x) (((x) >> 14) & 0x1) #define C_037264_AllFifosEmpty 0xFFFFBFFF #define S_037264_FSMIsIdle(x) (((unsigned)(x) & 0x1) << 15) #define G_037264_FSMIsIdle(x) (((x) >> 15) & 0x1) #define C_037264_FSMIsIdle 0xFFFF7FFF #define S_037264_SwaAccumDone(x) (((unsigned)(x) & 0x1) << 16) /* >= gfx103 */ #define G_037264_SwaAccumDone(x) (((x) >> 16) & 0x1) #define C_037264_SwaAccumDone 0xFFFEFFFF #define S_037264_SwaSpmDone(x) (((unsigned)(x) & 0x1) << 17) /* >= gfx103 */ #define G_037264_SwaSpmDone(x) (((x) >> 17) & 0x1) #define C_037264_SwaSpmDone 0xFFFDFFFF #define S_037264_SwaAccumOverflow(x) (((unsigned)(x) & 0x1) << 18) /* >= gfx103 */ #define G_037264_SwaAccumOverflow(x) (((x) >> 18) & 0x1) #define C_037264_SwaAccumOverflow 0xFFFBFFFF #define S_037264_SwaAccumArmed(x) (((unsigned)(x) & 0x1) << 19) /* >= gfx103 */ #define G_037264_SwaAccumArmed(x) (((x) >> 19) & 0x1) #define C_037264_SwaAccumArmed 0xFFF7FFFF #define S_037264_AllSegsDone(x) (((unsigned)(x) & 0x1) << 20) /* >= gfx103 */ #define G_037264_AllSegsDone(x) (((x) >> 20) & 0x1) #define C_037264_AllSegsDone 0xFFEFFFFF #define S_037264_RearmSwaPending(x) (((unsigned)(x) & 0x1) << 21) /* >= gfx103 */ #define G_037264_RearmSwaPending(x) (((x) >> 21) & 0x1) #define C_037264_RearmSwaPending 0xFFDFFFFF #define S_037264_RearmSppPending(x) (((unsigned)(x) & 0x1) << 22) /* >= gfx103 */ #define G_037264_RearmSppPending(x) (((x) >> 22) & 0x1) #define C_037264_RearmSppPending 0xFFBFFFFF #define R_037264_RLC_SPM_TCS_PERFMON_SAMPLE_DELAY 0x037264 /* gfx7 */ #define S_037264_PERFMON_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_037264_PERFMON_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_037264_PERFMON_SAMPLE_DELAY 0xFFFFFF00 #define R_037268_RLC_SPM_ACCUM_CTRL 0x037268 /* >= gfx10 */ #define S_037268_StrobeResetPerfMonitors(x) (((unsigned)(x) & 0x1) << 0) #define G_037268_StrobeResetPerfMonitors(x) (((x) >> 0) & 0x1) #define C_037268_StrobeResetPerfMonitors 0xFFFFFFFE #define S_037268_StrobeStartAccumulation(x) (((unsigned)(x) & 0x1) << 1) #define G_037268_StrobeStartAccumulation(x) (((x) >> 1) & 0x1) #define C_037268_StrobeStartAccumulation 0xFFFFFFFD #define S_037268_StrobeRearmAccum(x) (((unsigned)(x) & 0x1) << 2) #define G_037268_StrobeRearmAccum(x) (((x) >> 2) & 0x1) #define C_037268_StrobeRearmAccum 0xFFFFFFFB #define S_037268_StrobeResetSpmBlock(x) (((unsigned)(x) & 0x1) << 3) /* >= gfx103 */ #define G_037268_StrobeResetSpmBlock(x) (((x) >> 3) & 0x1) #define C_037268_StrobeResetSpmBlock 0xFFFFFFF7 #define S_037268_StrobeSpmDoneInt(x) (((unsigned)(x) & 0x1) << 3) /* gfx10 */ #define G_037268_StrobeSpmDoneInt(x) (((x) >> 3) & 0x1) #define C_037268_StrobeSpmDoneInt 0xFFFFFFF7 #define S_037268_StrobeAccumDoneInt(x) (((unsigned)(x) & 0x1) << 4) /* gfx10 */ #define G_037268_StrobeAccumDoneInt(x) (((x) >> 4) & 0x1) #define C_037268_StrobeAccumDoneInt 0xFFFFFFEF #define S_037268_StrobeStartSpm_GFX103(x) (((unsigned)(x) & 0xF) << 4) /* >= gfx103 */ #define G_037268_StrobeStartSpm_GFX103(x) (((x) >> 4) & 0xF) #define C_037268_StrobeStartSpm_GFX103 0xFFFFFF0F #define S_037268_StrobeResetAccum(x) (((unsigned)(x) & 0x1) << 5) /* gfx10 */ #define G_037268_StrobeResetAccum(x) (((x) >> 5) & 0x1) #define C_037268_StrobeResetAccum 0xFFFFFFDF #define S_037268_StrobeStartSpm_GFX10(x) (((unsigned)(x) & 0xF) << 6) /* gfx10 */ #define G_037268_StrobeStartSpm_GFX10(x) (((x) >> 6) & 0xF) #define C_037268_StrobeStartSpm_GFX10 0xFFFFFC3F #define S_037268_StrobeRearmSwaAccum(x) (((unsigned)(x) & 0x1) << 8) /* >= gfx103 */ #define G_037268_StrobeRearmSwaAccum(x) (((x) >> 8) & 0x1) #define C_037268_StrobeRearmSwaAccum 0xFFFFFEFF #define S_037268_StrobeStartSwa(x) (((unsigned)(x) & 0x1) << 9) /* >= gfx103 */ #define G_037268_StrobeStartSwa(x) (((x) >> 9) & 0x1) #define C_037268_StrobeStartSwa 0xFFFFFDFF #define S_037268_StrobePerfmonSampleWires(x) (((unsigned)(x) & 0x1) << 10) /* >= gfx103 */ #define G_037268_StrobePerfmonSampleWires(x) (((x) >> 10) & 0x1) #define C_037268_StrobePerfmonSampleWires 0xFFFFFBFF #define R_037268_RLC_SPM_SX_PERFMON_SAMPLE_DELAY 0x037268 /* gfx7, gfx8, gfx81, gfx9 */ #define S_037268_PERFMON_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_037268_PERFMON_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_037268_PERFMON_SAMPLE_DELAY 0xFFFFFF00 #define R_03726C_RLC_SPM_ACCUM_MODE 0x03726C /* >= gfx10 */ #define S_03726C_EnableAccum(x) (((unsigned)(x) & 0x1) << 0) #define G_03726C_EnableAccum(x) (((x) >> 0) & 0x1) #define C_03726C_EnableAccum 0xFFFFFFFE #define S_03726C_AutoAccumEn_GFX10(x) (((unsigned)(x) & 0x1) << 1) /* gfx10 */ #define G_03726C_AutoAccumEn_GFX10(x) (((x) >> 1) & 0x1) #define C_03726C_AutoAccumEn_GFX10 0xFFFFFFFD #define S_03726C_EnableSpmWithAccumMode(x) (((unsigned)(x) & 0x1) << 1) /* >= gfx103 */ #define G_03726C_EnableSpmWithAccumMode(x) (((x) >> 1) & 0x1) #define C_03726C_EnableSpmWithAccumMode 0xFFFFFFFD #define S_03726C_AutoSpmEn_GFX10(x) (((unsigned)(x) & 0x1) << 2) /* gfx10 */ #define G_03726C_AutoSpmEn_GFX10(x) (((x) >> 2) & 0x1) #define C_03726C_AutoSpmEn_GFX10 0xFFFFFFFB #define S_03726C_EnableSPPMode(x) (((unsigned)(x) & 0x1) << 2) /* >= gfx103 */ #define G_03726C_EnableSPPMode(x) (((x) >> 2) & 0x1) #define C_03726C_EnableSPPMode 0xFFFFFFFB #define S_03726C_AutoResetPerfmonDisable_GFX103(x) (((unsigned)(x) & 0x1) << 3) /* >= gfx103 */ #define G_03726C_AutoResetPerfmonDisable_GFX103(x) (((x) >> 3) & 0x1) #define C_03726C_AutoResetPerfmonDisable_GFX103 0xFFFFFFF7 #define S_03726C_Globals_LoadOverride_GFX10(x) (((unsigned)(x) & 0x1) << 3) /* gfx10 */ #define G_03726C_Globals_LoadOverride_GFX10(x) (((x) >> 3) & 0x1) #define C_03726C_Globals_LoadOverride_GFX10 0xFFFFFFF7 #define S_03726C_SE0_LoadOverride_GFX10(x) (((unsigned)(x) & 0x1) << 4) /* gfx10 */ #define G_03726C_SE0_LoadOverride_GFX10(x) (((x) >> 4) & 0x1) #define C_03726C_SE0_LoadOverride_GFX10 0xFFFFFFEF #define S_03726C_SwaAutoResetPerfmonDisable(x) (((unsigned)(x) & 0x1) << 4) /* >= gfx103 */ #define G_03726C_SwaAutoResetPerfmonDisable(x) (((x) >> 4) & 0x1) #define C_03726C_SwaAutoResetPerfmonDisable 0xFFFFFFEF #define S_03726C_AutoAccumEn_GFX103(x) (((unsigned)(x) & 0x1) << 5) /* >= gfx103 */ #define G_03726C_AutoAccumEn_GFX103(x) (((x) >> 5) & 0x1) #define C_03726C_AutoAccumEn_GFX103 0xFFFFFFDF #define S_03726C_SE1_LoadOverride_GFX10(x) (((unsigned)(x) & 0x1) << 5) /* gfx10 */ #define G_03726C_SE1_LoadOverride_GFX10(x) (((x) >> 5) & 0x1) #define C_03726C_SE1_LoadOverride_GFX10 0xFFFFFFDF #define S_03726C_AutoResetPerfmonDisable_GFX10(x) (((unsigned)(x) & 0x1) << 6) /* gfx10 */ #define G_03726C_AutoResetPerfmonDisable_GFX10(x) (((x) >> 6) & 0x1) #define C_03726C_AutoResetPerfmonDisable_GFX10 0xFFFFFFBF #define S_03726C_SwaAutoAccumEn(x) (((unsigned)(x) & 0x1) << 6) /* >= gfx103 */ #define G_03726C_SwaAutoAccumEn(x) (((x) >> 6) & 0x1) #define C_03726C_SwaAutoAccumEn 0xFFFFFFBF #define S_03726C_AutoSpmEn_GFX103(x) (((unsigned)(x) & 0x1) << 7) /* >= gfx103 */ #define G_03726C_AutoSpmEn_GFX103(x) (((x) >> 7) & 0x1) #define C_03726C_AutoSpmEn_GFX103 0xFFFFFF7F #define S_03726C_SwaAutoSpmEn(x) (((unsigned)(x) & 0x1) << 8) /* >= gfx103 */ #define G_03726C_SwaAutoSpmEn(x) (((x) >> 8) & 0x1) #define C_03726C_SwaAutoSpmEn 0xFFFFFEFF #define S_03726C_Globals_LoadOverride_GFX103(x) (((unsigned)(x) & 0x1) << 9) /* >= gfx103 */ #define G_03726C_Globals_LoadOverride_GFX103(x) (((x) >> 9) & 0x1) #define C_03726C_Globals_LoadOverride_GFX103 0xFFFFFDFF #define S_03726C_Globals_SwaLoadOverride(x) (((unsigned)(x) & 0x1) << 10) /* >= gfx103 */ #define G_03726C_Globals_SwaLoadOverride(x) (((x) >> 10) & 0x1) #define C_03726C_Globals_SwaLoadOverride 0xFFFFFBFF #define S_03726C_SE0_LoadOverride_GFX103(x) (((unsigned)(x) & 0x1) << 11) /* >= gfx103 */ #define G_03726C_SE0_LoadOverride_GFX103(x) (((x) >> 11) & 0x1) #define C_03726C_SE0_LoadOverride_GFX103 0xFFFFF7FF #define S_03726C_SE0_SwaLoadOverride(x) (((unsigned)(x) & 0x1) << 12) /* >= gfx103 */ #define G_03726C_SE0_SwaLoadOverride(x) (((x) >> 12) & 0x1) #define C_03726C_SE0_SwaLoadOverride 0xFFFFEFFF #define S_03726C_SE1_LoadOverride_GFX103(x) (((unsigned)(x) & 0x1) << 13) /* >= gfx103 */ #define G_03726C_SE1_LoadOverride_GFX103(x) (((x) >> 13) & 0x1) #define C_03726C_SE1_LoadOverride_GFX103 0xFFFFDFFF #define S_03726C_SE1_SwaLoadOverride(x) (((unsigned)(x) & 0x1) << 14) /* >= gfx103 */ #define G_03726C_SE1_SwaLoadOverride(x) (((x) >> 14) & 0x1) #define C_03726C_SE1_SwaLoadOverride 0xFFFFBFFF #define S_03726C_SE2_LoadOverride(x) (((unsigned)(x) & 0x1) << 15) /* >= gfx103 */ #define G_03726C_SE2_LoadOverride(x) (((x) >> 15) & 0x1) #define C_03726C_SE2_LoadOverride 0xFFFF7FFF #define S_03726C_SE2_SwaLoadOverride(x) (((unsigned)(x) & 0x1) << 16) /* >= gfx103 */ #define G_03726C_SE2_SwaLoadOverride(x) (((x) >> 16) & 0x1) #define C_03726C_SE2_SwaLoadOverride 0xFFFEFFFF #define S_03726C_SE3_LoadOverride(x) (((unsigned)(x) & 0x1) << 17) /* >= gfx103 */ #define G_03726C_SE3_LoadOverride(x) (((x) >> 17) & 0x1) #define C_03726C_SE3_LoadOverride 0xFFFDFFFF #define S_03726C_SE3_SwaLoadOverride(x) (((unsigned)(x) & 0x1) << 18) /* >= gfx103 */ #define G_03726C_SE3_SwaLoadOverride(x) (((x) >> 18) & 0x1) #define C_03726C_SE3_SwaLoadOverride 0xFFFBFFFF #define R_03726C_RLC_SPM_GLOBAL_MUXSEL_ADDR 0x03726C /* gfx7, gfx8, gfx81, gfx9 */ #define R_037270_RLC_SPM_ACCUM_THRESHOLD 0x037270 /* >= gfx10 */ #define S_037270_Threshold(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_037270_Threshold(x) (((x) >> 0) & 0xFFFF) #define C_037270_Threshold 0xFFFF0000 #define R_037270_RLC_SPM_GLOBAL_MUXSEL_DATA 0x037270 /* gfx7, gfx8, gfx81, gfx9 */ #define R_037274_RLC_SPM_ACCUM_SAMPLES_REQUESTED 0x037274 /* >= gfx10 */ #define S_037274_SamplesRequested(x) (((unsigned)(x) & 0xFF) << 0) #define G_037274_SamplesRequested(x) (((x) >> 0) & 0xFF) #define C_037274_SamplesRequested 0xFFFFFF00 #define R_037274_RLC_SPM_RING_RDPTR 0x037274 /* gfx7, gfx8, gfx81, gfx9 */ #define R_037278_RLC_SPM_ACCUM_DATARAM_WRCOUNT 0x037278 /* >= gfx10 */ #define S_037278_DataRamWrCount(x) (((unsigned)(x) & 0x7FFFF) << 0) #define G_037278_DataRamWrCount(x) (((x) >> 0) & 0x7FFFF) #define C_037278_DataRamWrCount 0xFFF80000 #define R_037278_RLC_SPM_SEGMENT_THRESHOLD 0x037278 /* gfx7, gfx8, gfx81, gfx9 */ #define R_03727C_RLC_SPM_DBR0_PERFMON_SAMPLE_DELAY 0x03727C /* gfx7, gfx8 */ #define S_03727C_PERFMON_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_03727C_PERFMON_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_03727C_PERFMON_SAMPLE_DELAY 0xFFFFFF00 #define R_03727C_RLC_SPM_PERFMON_SE3TO0_SEGMENT_SIZE 0x03727C /* >= gfx10 */ #define S_03727C_SE0_NUM_LINE(x) (((unsigned)(x) & 0xFF) << 0) #define G_03727C_SE0_NUM_LINE(x) (((x) >> 0) & 0xFF) #define C_03727C_SE0_NUM_LINE 0xFFFFFF00 #define S_03727C_SE1_NUM_LINE(x) (((unsigned)(x) & 0xFF) << 8) #define G_03727C_SE1_NUM_LINE(x) (((x) >> 8) & 0xFF) #define C_03727C_SE1_NUM_LINE 0xFFFF00FF #define S_03727C_SE2_NUM_LINE(x) (((unsigned)(x) & 0xFF) << 16) #define G_03727C_SE2_NUM_LINE(x) (((x) >> 16) & 0xFF) #define C_03727C_SE2_NUM_LINE 0xFF00FFFF #define S_03727C_SE3_NUM_LINE(x) (((unsigned)(x) & 0xFF) << 24) #define G_03727C_SE3_NUM_LINE(x) (((x) >> 24) & 0xFF) #define C_03727C_SE3_NUM_LINE 0x00FFFFFF #define R_037280_RLC_SPM_DBR1_PERFMON_SAMPLE_DELAY 0x037280 /* gfx7, gfx8 */ #define R_037280_RLC_SPM_PERFMON_GLB_SEGMENT_SIZE 0x037280 /* >= gfx10 */ #define S_037280_PERFMON_SEGMENT_SIZE(x) (((unsigned)(x) & 0xFF) << 0) #define G_037280_PERFMON_SEGMENT_SIZE(x) (((x) >> 0) & 0xFF) #define C_037280_PERFMON_SEGMENT_SIZE 0xFFFFFF00 #define S_037280_GLOBAL_NUM_LINE(x) (((unsigned)(x) & 0xFF) << 8) #define G_037280_GLOBAL_NUM_LINE(x) (((x) >> 8) & 0xFF) #define C_037280_GLOBAL_NUM_LINE 0xFFFF00FF #define R_037284_RLC_SPM_CBR0_PERFMON_SAMPLE_DELAY 0x037284 /* gfx7, gfx8 */ #define S_037284_PERFMON_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_037284_PERFMON_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_037284_PERFMON_SAMPLE_DELAY 0xFFFFFF00 #define R_037284_RLC_SPM_VIRT_CTRL 0x037284 /* >= gfx10 */ #define S_037284_PauseSpmSamplingRequest(x) (((unsigned)(x) & 0x1) << 0) #define G_037284_PauseSpmSamplingRequest(x) (((x) >> 0) & 0x1) #define C_037284_PauseSpmSamplingRequest 0xFFFFFFFE #define R_037288_RLC_SPM_CBR1_PERFMON_SAMPLE_DELAY 0x037288 /* gfx7, gfx8 */ #define R_037288_RLC_SPM_PERFMON_SWA_SEGMENT_SIZE 0x037288 /* >= gfx103 */ #define S_037288_PERFMON_SEGMENT_SIZE(x) (((unsigned)(x) & 0xFF) << 0) #define G_037288_PERFMON_SEGMENT_SIZE(x) (((x) >> 0) & 0xFF) #define C_037288_PERFMON_SEGMENT_SIZE 0xFFFFFF00 #define S_037288_RESERVED1(x) (((unsigned)(x) & 0x7) << 8) #define G_037288_RESERVED1(x) (((x) >> 8) & 0x7) #define C_037288_RESERVED1 0xFFFFF8FF #define S_037288_GLOBAL_NUM_LINE(x) (((unsigned)(x) & 0x1F) << 11) #define G_037288_GLOBAL_NUM_LINE(x) (((x) >> 11) & 0x1F) #define C_037288_GLOBAL_NUM_LINE 0xFFFF07FF #define S_037288_SE0_NUM_LINE(x) (((unsigned)(x) & 0x1F) << 16) #define G_037288_SE0_NUM_LINE(x) (((x) >> 16) & 0x1F) #define C_037288_SE0_NUM_LINE 0xFFE0FFFF #define S_037288_SE1_NUM_LINE(x) (((unsigned)(x) & 0x1F) << 21) #define G_037288_SE1_NUM_LINE(x) (((x) >> 21) & 0x1F) #define C_037288_SE1_NUM_LINE 0xFC1FFFFF #define S_037288_SE2_NUM_LINE(x) (((unsigned)(x) & 0x1F) << 26) #define G_037288_SE2_NUM_LINE(x) (((x) >> 26) & 0x1F) #define C_037288_SE2_NUM_LINE 0x83FFFFFF #define R_03728C_RLC_SPM_RMI_PERFMON_SAMPLE_DELAY 0x03728C /* gfx9 */ #define S_03728C_PERFMON_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_03728C_PERFMON_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_03728C_PERFMON_SAMPLE_DELAY 0xFFFFFF00 #define R_03728C_RLC_SPM_VIRT_STATUS 0x03728C /* >= gfx10 */ #define S_03728C_SpmSamplingPaused(x) (((unsigned)(x) & 0x1) << 0) #define G_03728C_SpmSamplingPaused(x) (((x) >> 0) & 0x1) #define C_03728C_SpmSamplingPaused 0xFFFFFFFE #define R_037290_RLC_SPM_GFXCLOCK_HIGHCOUNT 0x037290 /* >= gfx103 */ #define R_037290_RLC_SPM_PERFMON_SAMPLE_DELAY_MAX 0x037290 /* gfx9 */ #define S_037290_PERFMON_MAX_SAMPLE_DELAY(x) (((unsigned)(x) & 0xFF) << 0) #define G_037290_PERFMON_MAX_SAMPLE_DELAY(x) (((x) >> 0) & 0xFF) #define C_037290_PERFMON_MAX_SAMPLE_DELAY 0xFFFFFF00 #define R_037294_RLC_SPM_GFXCLOCK_LOWCOUNT 0x037294 /* >= gfx103 */ #define R_037298_RLC_SPM_PERFMON_SWA_SE3TO0_SEGMENT_SIZE 0x037298 /* >= gfx103 */ #define S_037298_SE0_NUM_LINE(x) (((unsigned)(x) & 0xFF) << 0) #define G_037298_SE0_NUM_LINE(x) (((x) >> 0) & 0xFF) #define C_037298_SE0_NUM_LINE 0xFFFFFF00 #define S_037298_SE1_NUM_LINE(x) (((unsigned)(x) & 0xFF) << 8) #define G_037298_SE1_NUM_LINE(x) (((x) >> 8) & 0xFF) #define C_037298_SE1_NUM_LINE 0xFFFF00FF #define S_037298_SE2_NUM_LINE(x) (((unsigned)(x) & 0xFF) << 16) #define G_037298_SE2_NUM_LINE(x) (((x) >> 16) & 0xFF) #define C_037298_SE2_NUM_LINE 0xFF00FFFF #define S_037298_SE3_NUM_LINE(x) (((unsigned)(x) & 0xFF) << 24) #define G_037298_SE3_NUM_LINE(x) (((x) >> 24) & 0xFF) #define C_037298_SE3_NUM_LINE 0x00FFFFFF #define R_03729C_RLC_SPM_GLOBAL_MUXSEL_ADDR_OFFSET 0x03729C /* >= gfx103 */ #define S_03729C_OFFSET(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_03729C_OFFSET(x) (((x) >> 0) & 0xFFFF) #define C_03729C_OFFSET 0xFFFF0000 #define R_0372A0_RLC_SPM_SE_MUXSEL_ADDR_OFFSET 0x0372A0 /* >= gfx103 */ #define S_0372A0_OFFSET(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_0372A0_OFFSET(x) (((x) >> 0) & 0xFFFF) #define C_0372A0_OFFSET 0xFFFF0000 #define R_0372A4_RLC_SPM_ACCUM_SWA_DATARAM_ADDR 0x0372A4 /* >= gfx103 */ #define S_0372A4_addr(x) (((unsigned)(x) & 0x7F) << 0) #define G_0372A4_addr(x) (((x) >> 0) & 0x7F) #define C_0372A4_addr 0xFFFFFF80 #define R_0372A8_RLC_SPM_ACCUM_SWA_DATARAM_DATA 0x0372A8 /* >= gfx103 */ #define R_0372AC_RLC_SPM_ACCUM_CTRLRAM_ADDR_OFFSET 0x0372AC /* >= gfx103 */ #define S_0372AC_global_offset(x) (((unsigned)(x) & 0xFF) << 0) #define G_0372AC_global_offset(x) (((x) >> 0) & 0xFF) #define C_0372AC_global_offset 0xFFFFFF00 #define S_0372AC_spmwithaccum_se_offset(x) (((unsigned)(x) & 0xFF) << 8) #define G_0372AC_spmwithaccum_se_offset(x) (((x) >> 8) & 0xFF) #define C_0372AC_spmwithaccum_se_offset 0xFFFF00FF #define S_0372AC_spmwithaccum_global_offset(x) (((unsigned)(x) & 0xFF) << 16) #define G_0372AC_spmwithaccum_global_offset(x) (((x) >> 16) & 0xFF) #define C_0372AC_spmwithaccum_global_offset 0xFF00FFFF #define R_0372B0_RLC_SPM_PERFMON_SWA_GLB_SEGMENT_SIZE 0x0372B0 /* >= gfx103 */ #define S_0372B0_PERFMON_SEGMENT_SIZE(x) (((unsigned)(x) & 0xFF) << 0) #define G_0372B0_PERFMON_SEGMENT_SIZE(x) (((x) >> 0) & 0xFF) #define C_0372B0_PERFMON_SEGMENT_SIZE 0xFFFFFF00 #define S_0372B0_GLOBAL_NUM_LINE(x) (((unsigned)(x) & 0xFF) << 8) #define G_0372B0_GLOBAL_NUM_LINE(x) (((x) >> 8) & 0xFF) #define C_0372B0_GLOBAL_NUM_LINE 0xFFFF00FF #define R_0372B4_RLC_SPM_ACCUM_DATARAM_32BITCNTRS_REGIONS 0x0372B4 /* >= gfx103 */ #define S_0372B4_spp_addr_region(x) (((unsigned)(x) & 0xFF) << 0) #define G_0372B4_spp_addr_region(x) (((x) >> 0) & 0xFF) #define C_0372B4_spp_addr_region 0xFFFFFF00 #define S_0372B4_swa_addr_region(x) (((unsigned)(x) & 0xFF) << 8) #define G_0372B4_swa_addr_region(x) (((x) >> 8) & 0xFF) #define C_0372B4_swa_addr_region 0xFFFF00FF #define R_0372F8_RLC_PERFMON_CLK_CNTL_UCODE 0x0372F8 /* gfx9 */ #define S_0372F8_PERFMON_CLOCK_STATE(x) (((unsigned)(x) & 0x1) << 0) #define G_0372F8_PERFMON_CLOCK_STATE(x) (((x) >> 0) & 0x1) #define C_0372F8_PERFMON_CLOCK_STATE 0xFFFFFFFE #define R_0372FC_RLC_PERFMON_CLK_CNTL 0x0372FC /* gfx8, gfx81, gfx9 */ #define S_0372FC_PERFMON_CLOCK_STATE(x) (((unsigned)(x) & 0x1) << 0) #define G_0372FC_PERFMON_CLOCK_STATE(x) (((x) >> 0) & 0x1) #define C_0372FC_PERFMON_CLOCK_STATE 0xFFFFFFFE #define R_037300_RLC_PERFMON_CNTL 0x037300 /* >= gfx7 */ #define S_037300_PERFMON_STATE(x) (((unsigned)(x) & 0x7) << 0) #define G_037300_PERFMON_STATE(x) (((x) >> 0) & 0x7) #define C_037300_PERFMON_STATE 0xFFFFFFF8 #define V_037300_CP_PERFMON_STATE_DISABLE_AND_RESET 0 #define V_037300_CP_PERFMON_STATE_START_COUNTING 1 #define V_037300_CP_PERFMON_STATE_STOP_COUNTING 2 #define V_037300_CP_PERFMON_STATE_RESERVED_3 3 #define V_037300_CP_PERFMON_STATE_DISABLE_AND_RESET_PHANTOM 4 #define V_037300_CP_PERFMON_STATE_COUNT_AND_DUMP_PHANTOM 5 #define S_037300_PERFMON_SAMPLE_ENABLE(x) (((unsigned)(x) & 0x1) << 10) #define G_037300_PERFMON_SAMPLE_ENABLE(x) (((x) >> 10) & 0x1) #define C_037300_PERFMON_SAMPLE_ENABLE 0xFFFFFBFF #define R_037304_RLC_PERFCOUNTER0_SELECT 0x037304 /* >= gfx7 */ #define S_037304_PERFCOUNTER_SELECT(x) (((unsigned)(x) & 0xFF) << 0) #define G_037304_PERFCOUNTER_SELECT(x) (((x) >> 0) & 0xFF) #define C_037304_PERFCOUNTER_SELECT 0xFFFFFF00 #define R_037308_RLC_PERFCOUNTER1_SELECT 0x037308 /* >= gfx7 */ #define R_03730C_RLC_GPU_IOV_PERF_CNT_CNTL 0x03730C /* >= gfx9 */ #define S_03730C_ENABLE(x) (((unsigned)(x) & 0x1) << 0) #define G_03730C_ENABLE(x) (((x) >> 0) & 0x1) #define C_03730C_ENABLE 0xFFFFFFFE #define S_03730C_MODE_SELECT(x) (((unsigned)(x) & 0x1) << 1) #define G_03730C_MODE_SELECT(x) (((x) >> 1) & 0x1) #define C_03730C_MODE_SELECT 0xFFFFFFFD #define S_03730C_RESET(x) (((unsigned)(x) & 0x1) << 2) #define G_03730C_RESET(x) (((x) >> 2) & 0x1) #define C_03730C_RESET 0xFFFFFFFB #define R_037310_RLC_GPU_IOV_PERF_CNT_WR_ADDR 0x037310 /* >= gfx9 */ #define S_037310_VFID(x) (((unsigned)(x) & 0xF) << 0) #define G_037310_VFID(x) (((x) >> 0) & 0xF) #define C_037310_VFID 0xFFFFFFF0 #define S_037310_CNT_ID(x) (((unsigned)(x) & 0x3) << 4) #define G_037310_CNT_ID(x) (((x) >> 4) & 0x3) #define C_037310_CNT_ID 0xFFFFFFCF #define R_037314_RLC_GPU_IOV_PERF_CNT_WR_DATA 0x037314 /* >= gfx9 */ #define S_037314_DATA(x) (((unsigned)(x) & 0xF) << 0) #define G_037314_DATA(x) (((x) >> 0) & 0xF) #define C_037314_DATA 0xFFFFFFF0 #define R_037318_RLC_GPU_IOV_PERF_CNT_RD_ADDR 0x037318 /* >= gfx9 */ #define S_037318_VFID(x) (((unsigned)(x) & 0xF) << 0) #define G_037318_VFID(x) (((x) >> 0) & 0xF) #define C_037318_VFID 0xFFFFFFF0 #define S_037318_CNT_ID(x) (((unsigned)(x) & 0x3) << 4) #define G_037318_CNT_ID(x) (((x) >> 4) & 0x3) #define C_037318_CNT_ID 0xFFFFFFCF #define R_03731C_RLC_GPU_IOV_PERF_CNT_RD_DATA 0x03731C /* >= gfx9 */ #define S_03731C_DATA(x) (((unsigned)(x) & 0xF) << 0) #define G_03731C_DATA(x) (((x) >> 0) & 0xF) #define C_03731C_DATA 0xFFFFFFF0 #define R_037390_RLC_PERFMON_CLK_CNTL 0x037390 /* >= gfx10 */ #define S_037390_PERFMON_CLOCK_STATE(x) (((unsigned)(x) & 0x1) << 0) #define G_037390_PERFMON_CLOCK_STATE(x) (((x) >> 0) & 0x1) #define C_037390_PERFMON_CLOCK_STATE 0xFFFFFFFE #define R_037394_RLC_PERFMON_CLK_CNTL_UCODE 0x037394 /* gfx10 */ #define S_037394_PERFMON_CLOCK_STATE(x) (((unsigned)(x) & 0x1) << 0) #define G_037394_PERFMON_CLOCK_STATE(x) (((x) >> 0) & 0x1) #define C_037394_PERFMON_CLOCK_STATE 0xFFFFFFFE #define R_037400_RMI_PERFCOUNTER0_SELECT 0x037400 /* >= gfx9 */ #define S_037400_PERF_SEL(x) (((unsigned)(x) & 0x1FF) << 0) #define G_037400_PERF_SEL(x) (((x) >> 0) & 0x1FF) #define C_037400_PERF_SEL 0xFFFFFE00 #define S_037400_PERF_SEL1(x) (((unsigned)(x) & 0x1FF) << 10) #define G_037400_PERF_SEL1(x) (((x) >> 10) & 0x1FF) #define C_037400_PERF_SEL1 0xFFF803FF #define S_037400_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_037400_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_037400_CNTR_MODE 0xFF0FFFFF #define S_037400_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) #define G_037400_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_037400_PERF_MODE1 0xF0FFFFFF #define S_037400_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_037400_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_037400_PERF_MODE 0x0FFFFFFF #define R_037404_RMI_PERFCOUNTER0_SELECT1 0x037404 /* >= gfx9 */ #define S_037404_PERF_SEL2(x) (((unsigned)(x) & 0x1FF) << 0) #define G_037404_PERF_SEL2(x) (((x) >> 0) & 0x1FF) #define C_037404_PERF_SEL2 0xFFFFFE00 #define S_037404_PERF_SEL3(x) (((unsigned)(x) & 0x1FF) << 10) #define G_037404_PERF_SEL3(x) (((x) >> 10) & 0x1FF) #define C_037404_PERF_SEL3 0xFFF803FF #define S_037404_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 24) #define G_037404_PERF_MODE3(x) (((x) >> 24) & 0xF) #define C_037404_PERF_MODE3 0xF0FFFFFF #define S_037404_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 28) #define G_037404_PERF_MODE2(x) (((x) >> 28) & 0xF) #define C_037404_PERF_MODE2 0x0FFFFFFF #define R_037408_RMI_PERFCOUNTER1_SELECT 0x037408 /* >= gfx9 */ #define S_037408_PERF_SEL(x) (((unsigned)(x) & 0x1FF) << 0) #define G_037408_PERF_SEL(x) (((x) >> 0) & 0x1FF) #define C_037408_PERF_SEL 0xFFFFFE00 #define S_037408_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_037408_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_037408_PERF_MODE 0x0FFFFFFF #define R_03740C_RMI_PERFCOUNTER2_SELECT 0x03740C /* >= gfx9 */ #define R_037410_RMI_PERFCOUNTER2_SELECT1 0x037410 /* >= gfx9 */ #define R_037414_RMI_PERFCOUNTER3_SELECT 0x037414 /* >= gfx9 */ #define R_037418_RMI_PERF_COUNTER_CNTL 0x037418 /* >= gfx9 */ #define S_037418_TRANS_BASED_PERF_EN_SEL(x) (((unsigned)(x) & 0x3) << 0) #define G_037418_TRANS_BASED_PERF_EN_SEL(x) (((x) >> 0) & 0x3) #define C_037418_TRANS_BASED_PERF_EN_SEL 0xFFFFFFFC #define S_037418_EVENT_BASED_PERF_EN_SEL(x) (((unsigned)(x) & 0x3) << 2) #define G_037418_EVENT_BASED_PERF_EN_SEL(x) (((x) >> 2) & 0x3) #define C_037418_EVENT_BASED_PERF_EN_SEL 0xFFFFFFF3 #define S_037418_TC_PERF_EN_SEL(x) (((unsigned)(x) & 0x3) << 4) #define G_037418_TC_PERF_EN_SEL(x) (((x) >> 4) & 0x3) #define C_037418_TC_PERF_EN_SEL 0xFFFFFFCF #define S_037418_PERF_EVENT_WINDOW_MASK0(x) (((unsigned)(x) & 0x3) << 6) #define G_037418_PERF_EVENT_WINDOW_MASK0(x) (((x) >> 6) & 0x3) #define C_037418_PERF_EVENT_WINDOW_MASK0 0xFFFFFF3F #define S_037418_PERF_EVENT_WINDOW_MASK1(x) (((unsigned)(x) & 0x3) << 8) #define G_037418_PERF_EVENT_WINDOW_MASK1(x) (((x) >> 8) & 0x3) #define C_037418_PERF_EVENT_WINDOW_MASK1 0xFFFFFCFF #define S_037418_PERF_COUNTER_CID(x) (((unsigned)(x) & 0xF) << 10) #define G_037418_PERF_COUNTER_CID(x) (((x) >> 10) & 0xF) #define C_037418_PERF_COUNTER_CID 0xFFFFC3FF #define S_037418_PERF_COUNTER_VMID(x) (((unsigned)(x) & 0x1F) << 14) #define G_037418_PERF_COUNTER_VMID(x) (((x) >> 14) & 0x1F) #define C_037418_PERF_COUNTER_VMID 0xFFF83FFF #define S_037418_PERF_COUNTER_BURST_LENGTH_THRESHOLD(x) (((unsigned)(x) & 0x3F) << 19) #define G_037418_PERF_COUNTER_BURST_LENGTH_THRESHOLD(x) (((x) >> 19) & 0x3F) #define C_037418_PERF_COUNTER_BURST_LENGTH_THRESHOLD 0xFE07FFFF #define S_037418_PERF_SOFT_RESET(x) (((unsigned)(x) & 0x1) << 25) #define G_037418_PERF_SOFT_RESET(x) (((x) >> 25) & 0x1) #define C_037418_PERF_SOFT_RESET 0xFDFFFFFF #define S_037418_PERF_CNTR_SPM_SEL(x) (((unsigned)(x) & 0x1) << 26) #define G_037418_PERF_CNTR_SPM_SEL(x) (((x) >> 26) & 0x1) #define C_037418_PERF_CNTR_SPM_SEL 0xFBFFFFFF #define R_037480_GC_ATC_L2_PERFCOUNTER0_CFG 0x037480 /* gfx10 */ #define S_037480_PERF_SEL(x) (((unsigned)(x) & 0xFF) << 0) #define G_037480_PERF_SEL(x) (((x) >> 0) & 0xFF) #define C_037480_PERF_SEL 0xFFFFFF00 #define S_037480_PERF_SEL_END(x) (((unsigned)(x) & 0xFF) << 8) #define G_037480_PERF_SEL_END(x) (((x) >> 8) & 0xFF) #define C_037480_PERF_SEL_END 0xFFFF00FF #define S_037480_PERF_MODE(x) (((unsigned)(x) & 0xF) << 24) #define G_037480_PERF_MODE(x) (((x) >> 24) & 0xF) #define C_037480_PERF_MODE 0xF0FFFFFF #define S_037480_ENABLE(x) (((unsigned)(x) & 0x1) << 28) #define G_037480_ENABLE(x) (((x) >> 28) & 0x1) #define C_037480_ENABLE 0xEFFFFFFF #define S_037480_CLEAR(x) (((unsigned)(x) & 0x1) << 29) #define G_037480_CLEAR(x) (((x) >> 29) & 0x1) #define C_037480_CLEAR 0xDFFFFFFF #define R_037484_GC_ATC_L2_PERFCOUNTER1_CFG 0x037484 /* gfx10 */ #define R_037488_GC_ATC_L2_PERFCOUNTER_RSLT_CNTL 0x037488 /* gfx10 */ #define S_037488_PERF_COUNTER_SELECT(x) (((unsigned)(x) & 0xF) << 0) #define G_037488_PERF_COUNTER_SELECT(x) (((x) >> 0) & 0xF) #define C_037488_PERF_COUNTER_SELECT 0xFFFFFFF0 #define S_037488_START_TRIGGER(x) (((unsigned)(x) & 0xFF) << 8) #define G_037488_START_TRIGGER(x) (((x) >> 8) & 0xFF) #define C_037488_START_TRIGGER 0xFFFF00FF #define S_037488_STOP_TRIGGER(x) (((unsigned)(x) & 0xFF) << 16) #define G_037488_STOP_TRIGGER(x) (((x) >> 16) & 0xFF) #define C_037488_STOP_TRIGGER 0xFF00FFFF #define S_037488_ENABLE_ANY(x) (((unsigned)(x) & 0x1) << 24) #define G_037488_ENABLE_ANY(x) (((x) >> 24) & 0x1) #define C_037488_ENABLE_ANY 0xFEFFFFFF #define S_037488_CLEAR_ALL(x) (((unsigned)(x) & 0x1) << 25) #define G_037488_CLEAR_ALL(x) (((x) >> 25) & 0x1) #define C_037488_CLEAR_ALL 0xFDFFFFFF #define S_037488_STOP_ALL_ON_SATURATE(x) (((unsigned)(x) & 0x1) << 26) #define G_037488_STOP_ALL_ON_SATURATE(x) (((x) >> 26) & 0x1) #define C_037488_STOP_ALL_ON_SATURATE 0xFBFFFFFF #define R_0374B0_GCMC_VM_L2_PERFCOUNTER0_CFG 0x0374B0 /* >= gfx10 */ #define S_0374B0_PERF_SEL(x) (((unsigned)(x) & 0xFF) << 0) #define G_0374B0_PERF_SEL(x) (((x) >> 0) & 0xFF) #define C_0374B0_PERF_SEL 0xFFFFFF00 #define S_0374B0_PERF_SEL_END(x) (((unsigned)(x) & 0xFF) << 8) #define G_0374B0_PERF_SEL_END(x) (((x) >> 8) & 0xFF) #define C_0374B0_PERF_SEL_END 0xFFFF00FF #define S_0374B0_PERF_MODE(x) (((unsigned)(x) & 0xF) << 24) #define G_0374B0_PERF_MODE(x) (((x) >> 24) & 0xF) #define C_0374B0_PERF_MODE 0xF0FFFFFF #define S_0374B0_ENABLE(x) (((unsigned)(x) & 0x1) << 28) #define G_0374B0_ENABLE(x) (((x) >> 28) & 0x1) #define C_0374B0_ENABLE 0xEFFFFFFF #define S_0374B0_CLEAR(x) (((unsigned)(x) & 0x1) << 29) #define G_0374B0_CLEAR(x) (((x) >> 29) & 0x1) #define C_0374B0_CLEAR 0xDFFFFFFF #define R_0374B4_GCMC_VM_L2_PERFCOUNTER1_CFG 0x0374B4 /* >= gfx10 */ #define R_0374B8_GCMC_VM_L2_PERFCOUNTER2_CFG 0x0374B8 /* >= gfx10 */ #define R_0374BC_GCMC_VM_L2_PERFCOUNTER3_CFG 0x0374BC /* >= gfx10 */ #define R_0374C0_GCMC_VM_L2_PERFCOUNTER4_CFG 0x0374C0 /* >= gfx10 */ #define R_0374C4_GCMC_VM_L2_PERFCOUNTER5_CFG 0x0374C4 /* >= gfx10 */ #define R_0374C8_GCMC_VM_L2_PERFCOUNTER6_CFG 0x0374C8 /* >= gfx10 */ #define R_0374CC_GCMC_VM_L2_PERFCOUNTER7_CFG 0x0374CC /* >= gfx10 */ #define R_0374D0_GCMC_VM_L2_PERFCOUNTER_RSLT_CNTL 0x0374D0 /* >= gfx10 */ #define S_0374D0_PERF_COUNTER_SELECT(x) (((unsigned)(x) & 0xF) << 0) #define G_0374D0_PERF_COUNTER_SELECT(x) (((x) >> 0) & 0xF) #define C_0374D0_PERF_COUNTER_SELECT 0xFFFFFFF0 #define S_0374D0_START_TRIGGER(x) (((unsigned)(x) & 0xFF) << 8) #define G_0374D0_START_TRIGGER(x) (((x) >> 8) & 0xFF) #define C_0374D0_START_TRIGGER 0xFFFF00FF #define S_0374D0_STOP_TRIGGER(x) (((unsigned)(x) & 0xFF) << 16) #define G_0374D0_STOP_TRIGGER(x) (((x) >> 16) & 0xFF) #define C_0374D0_STOP_TRIGGER 0xFF00FFFF #define S_0374D0_ENABLE_ANY(x) (((unsigned)(x) & 0x1) << 24) #define G_0374D0_ENABLE_ANY(x) (((x) >> 24) & 0x1) #define C_0374D0_ENABLE_ANY 0xFEFFFFFF #define S_0374D0_CLEAR_ALL(x) (((unsigned)(x) & 0x1) << 25) #define G_0374D0_CLEAR_ALL(x) (((x) >> 25) & 0x1) #define C_0374D0_CLEAR_ALL 0xFDFFFFFF #define S_0374D0_STOP_ALL_ON_SATURATE(x) (((unsigned)(x) & 0x1) << 26) #define G_0374D0_STOP_ALL_ON_SATURATE(x) (((x) >> 26) & 0x1) #define C_0374D0_STOP_ALL_ON_SATURATE 0xFBFFFFFF #define R_0374D4_GCUTCL2_PERFCOUNTER0_CFG 0x0374D4 /* >= gfx103 */ #define S_0374D4_PERF_SEL(x) (((unsigned)(x) & 0xFF) << 0) #define G_0374D4_PERF_SEL(x) (((x) >> 0) & 0xFF) #define C_0374D4_PERF_SEL 0xFFFFFF00 #define S_0374D4_PERF_SEL_END(x) (((unsigned)(x) & 0xFF) << 8) #define G_0374D4_PERF_SEL_END(x) (((x) >> 8) & 0xFF) #define C_0374D4_PERF_SEL_END 0xFFFF00FF #define S_0374D4_PERF_MODE(x) (((unsigned)(x) & 0xF) << 24) #define G_0374D4_PERF_MODE(x) (((x) >> 24) & 0xF) #define C_0374D4_PERF_MODE 0xF0FFFFFF #define S_0374D4_ENABLE(x) (((unsigned)(x) & 0x1) << 28) #define G_0374D4_ENABLE(x) (((x) >> 28) & 0x1) #define C_0374D4_ENABLE 0xEFFFFFFF #define S_0374D4_CLEAR(x) (((unsigned)(x) & 0x1) << 29) #define G_0374D4_CLEAR(x) (((x) >> 29) & 0x1) #define C_0374D4_CLEAR 0xDFFFFFFF #define R_0374D8_GCUTCL2_PERFCOUNTER1_CFG 0x0374D8 /* >= gfx103 */ #define R_0374DC_GCUTCL2_PERFCOUNTER2_CFG 0x0374DC /* >= gfx103 */ #define R_0374E0_GCUTCL2_PERFCOUNTER3_CFG 0x0374E0 /* >= gfx103 */ #define R_0374E4_GCUTCL2_PERFCOUNTER_RSLT_CNTL 0x0374E4 /* >= gfx103 */ #define S_0374E4_PERF_COUNTER_SELECT(x) (((unsigned)(x) & 0xF) << 0) #define G_0374E4_PERF_COUNTER_SELECT(x) (((x) >> 0) & 0xF) #define C_0374E4_PERF_COUNTER_SELECT 0xFFFFFFF0 #define S_0374E4_START_TRIGGER(x) (((unsigned)(x) & 0xFF) << 8) #define G_0374E4_START_TRIGGER(x) (((x) >> 8) & 0xFF) #define C_0374E4_START_TRIGGER 0xFFFF00FF #define S_0374E4_STOP_TRIGGER(x) (((unsigned)(x) & 0xFF) << 16) #define G_0374E4_STOP_TRIGGER(x) (((x) >> 16) & 0xFF) #define C_0374E4_STOP_TRIGGER 0xFF00FFFF #define S_0374E4_ENABLE_ANY(x) (((unsigned)(x) & 0x1) << 24) #define G_0374E4_ENABLE_ANY(x) (((x) >> 24) & 0x1) #define C_0374E4_ENABLE_ANY 0xFEFFFFFF #define S_0374E4_CLEAR_ALL(x) (((unsigned)(x) & 0x1) << 25) #define G_0374E4_CLEAR_ALL(x) (((x) >> 25) & 0x1) #define C_0374E4_CLEAR_ALL 0xFDFFFFFF #define S_0374E4_STOP_ALL_ON_SATURATE(x) (((unsigned)(x) & 0x1) << 26) #define G_0374E4_STOP_ALL_ON_SATURATE(x) (((x) >> 26) & 0x1) #define C_0374E4_STOP_ALL_ON_SATURATE 0xFBFFFFFF #define R_0374F0_GCVML2_PERFCOUNTER2_0_SELECT 0x0374F0 /* >= gfx10 */ #define S_0374F0_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_0374F0_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_0374F0_PERF_SEL 0xFFFFFC00 #define S_0374F0_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_0374F0_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_0374F0_PERF_SEL1 0xFFF003FF #define S_0374F0_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_0374F0_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_0374F0_CNTR_MODE 0xFF0FFFFF #define S_0374F0_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) #define G_0374F0_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_0374F0_PERF_MODE1 0xF0FFFFFF #define S_0374F0_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_0374F0_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_0374F0_PERF_MODE 0x0FFFFFFF #define R_0374F4_GCVML2_PERFCOUNTER2_1_SELECT 0x0374F4 /* >= gfx10 */ #define R_0374F8_GCVML2_PERFCOUNTER2_0_SELECT1 0x0374F8 /* >= gfx10 */ #define S_0374F8_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_0374F8_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_0374F8_PERF_SEL2 0xFFFFFC00 #define S_0374F8_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_0374F8_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_0374F8_PERF_SEL3 0xFFF003FF #define S_0374F8_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 24) #define G_0374F8_PERF_MODE3(x) (((x) >> 24) & 0xF) #define C_0374F8_PERF_MODE3 0xF0FFFFFF #define S_0374F8_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 28) #define G_0374F8_PERF_MODE2(x) (((x) >> 28) & 0xF) #define C_0374F8_PERF_MODE2 0x0FFFFFFF #define R_0374FC_GCVML2_PERFCOUNTER2_1_SELECT1 0x0374FC /* >= gfx10 */ #define R_037500_ATC_L2_PERFCOUNTER0_CFG 0x037500 /* gfx9 */ #define S_037500_PERF_SEL(x) (((unsigned)(x) & 0xFF) << 0) #define G_037500_PERF_SEL(x) (((x) >> 0) & 0xFF) #define C_037500_PERF_SEL 0xFFFFFF00 #define S_037500_PERF_SEL_END(x) (((unsigned)(x) & 0xFF) << 8) #define G_037500_PERF_SEL_END(x) (((x) >> 8) & 0xFF) #define C_037500_PERF_SEL_END 0xFFFF00FF #define S_037500_PERF_MODE(x) (((unsigned)(x) & 0xF) << 24) #define G_037500_PERF_MODE(x) (((x) >> 24) & 0xF) #define C_037500_PERF_MODE 0xF0FFFFFF #define S_037500_ENABLE(x) (((unsigned)(x) & 0x1) << 28) #define G_037500_ENABLE(x) (((x) >> 28) & 0x1) #define C_037500_ENABLE 0xEFFFFFFF #define S_037500_CLEAR(x) (((unsigned)(x) & 0x1) << 29) #define G_037500_CLEAR(x) (((x) >> 29) & 0x1) #define C_037500_CLEAR 0xDFFFFFFF #define R_037500_GCVML2_PERFCOUNTER2_0_MODE 0x037500 /* >= gfx10 */ #define S_037500_COMPARE_MODE0(x) (((unsigned)(x) & 0x3) << 0) #define G_037500_COMPARE_MODE0(x) (((x) >> 0) & 0x3) #define C_037500_COMPARE_MODE0 0xFFFFFFFC #define S_037500_COMPARE_MODE1(x) (((unsigned)(x) & 0x3) << 2) #define G_037500_COMPARE_MODE1(x) (((x) >> 2) & 0x3) #define C_037500_COMPARE_MODE1 0xFFFFFFF3 #define S_037500_COMPARE_MODE2(x) (((unsigned)(x) & 0x3) << 4) #define G_037500_COMPARE_MODE2(x) (((x) >> 4) & 0x3) #define C_037500_COMPARE_MODE2 0xFFFFFFCF #define S_037500_COMPARE_MODE3(x) (((unsigned)(x) & 0x3) << 6) #define G_037500_COMPARE_MODE3(x) (((x) >> 6) & 0x3) #define C_037500_COMPARE_MODE3 0xFFFFFF3F #define S_037500_COMPARE_VALUE0(x) (((unsigned)(x) & 0xF) << 8) #define G_037500_COMPARE_VALUE0(x) (((x) >> 8) & 0xF) #define C_037500_COMPARE_VALUE0 0xFFFFF0FF #define S_037500_COMPARE_VALUE1(x) (((unsigned)(x) & 0xF) << 12) #define G_037500_COMPARE_VALUE1(x) (((x) >> 12) & 0xF) #define C_037500_COMPARE_VALUE1 0xFFFF0FFF #define S_037500_COMPARE_VALUE2(x) (((unsigned)(x) & 0xF) << 16) #define G_037500_COMPARE_VALUE2(x) (((x) >> 16) & 0xF) #define C_037500_COMPARE_VALUE2 0xFFF0FFFF #define S_037500_COMPARE_VALUE3(x) (((unsigned)(x) & 0xF) << 20) #define G_037500_COMPARE_VALUE3(x) (((x) >> 20) & 0xF) #define C_037500_COMPARE_VALUE3 0xFF0FFFFF #define R_037504_ATC_L2_PERFCOUNTER1_CFG 0x037504 /* gfx9 */ #define R_037504_GCVML2_PERFCOUNTER2_1_MODE 0x037504 /* >= gfx10 */ #define R_037508_ATC_L2_PERFCOUNTER_RSLT_CNTL 0x037508 /* gfx9 */ #define S_037508_PERF_COUNTER_SELECT(x) (((unsigned)(x) & 0xF) << 0) #define G_037508_PERF_COUNTER_SELECT(x) (((x) >> 0) & 0xF) #define C_037508_PERF_COUNTER_SELECT 0xFFFFFFF0 #define S_037508_START_TRIGGER(x) (((unsigned)(x) & 0xFF) << 8) #define G_037508_START_TRIGGER(x) (((x) >> 8) & 0xFF) #define C_037508_START_TRIGGER 0xFFFF00FF #define S_037508_STOP_TRIGGER(x) (((unsigned)(x) & 0xFF) << 16) #define G_037508_STOP_TRIGGER(x) (((x) >> 16) & 0xFF) #define C_037508_STOP_TRIGGER 0xFF00FFFF #define S_037508_ENABLE_ANY(x) (((unsigned)(x) & 0x1) << 24) #define G_037508_ENABLE_ANY(x) (((x) >> 24) & 0x1) #define C_037508_ENABLE_ANY 0xFEFFFFFF #define S_037508_CLEAR_ALL(x) (((unsigned)(x) & 0x1) << 25) #define G_037508_CLEAR_ALL(x) (((x) >> 25) & 0x1) #define C_037508_CLEAR_ALL 0xFDFFFFFF #define S_037508_STOP_ALL_ON_SATURATE(x) (((unsigned)(x) & 0x1) << 26) #define G_037508_STOP_ALL_ON_SATURATE(x) (((x) >> 26) & 0x1) #define C_037508_STOP_ALL_ON_SATURATE 0xFBFFFFFF #define R_037530_GC_ATC_L2_PERFCOUNTER2_SELECT 0x037530 /* gfx10 */ #define S_037530_PERF_SEL_GFX10(x) (((unsigned)(x) & 0x3FF) << 0) #define G_037530_PERF_SEL_GFX10(x) (((x) >> 0) & 0x3FF) #define C_037530_PERF_SEL_GFX10 0xFFFFFC00 #define S_037530_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_037530_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_037530_PERF_SEL1 0xFFF003FF #define S_037530_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_037530_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_037530_CNTR_MODE 0xFF0FFFFF #define S_037530_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) #define G_037530_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_037530_PERF_MODE1 0xF0FFFFFF #define S_037530_PERF_MODE_GFX10(x) (((unsigned)(x) & 0xF) << 28) #define G_037530_PERF_MODE_GFX10(x) (((x) >> 28) & 0xF) #define C_037530_PERF_MODE_GFX10 0x0FFFFFFF #define R_037530_MC_VM_L2_PERFCOUNTER0_CFG 0x037530 /* gfx9 */ #define S_037530_PERF_SEL_GFX9(x) (((unsigned)(x) & 0xFF) << 0) #define G_037530_PERF_SEL_GFX9(x) (((x) >> 0) & 0xFF) #define C_037530_PERF_SEL_GFX9 0xFFFFFF00 #define S_037530_PERF_SEL_END(x) (((unsigned)(x) & 0xFF) << 8) #define G_037530_PERF_SEL_END(x) (((x) >> 8) & 0xFF) #define C_037530_PERF_SEL_END 0xFFFF00FF #define S_037530_PERF_MODE_GFX9(x) (((unsigned)(x) & 0xF) << 24) #define G_037530_PERF_MODE_GFX9(x) (((x) >> 24) & 0xF) #define C_037530_PERF_MODE_GFX9 0xF0FFFFFF #define S_037530_ENABLE(x) (((unsigned)(x) & 0x1) << 28) #define G_037530_ENABLE(x) (((x) >> 28) & 0x1) #define C_037530_ENABLE 0xEFFFFFFF #define S_037530_CLEAR(x) (((unsigned)(x) & 0x1) << 29) #define G_037530_CLEAR(x) (((x) >> 29) & 0x1) #define C_037530_CLEAR 0xDFFFFFFF #define R_037534_GC_ATC_L2_PERFCOUNTER2_SELECT1 0x037534 /* gfx10 */ #define S_037534_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_037534_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_037534_PERF_SEL2 0xFFFFFC00 #define S_037534_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_037534_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_037534_PERF_SEL3 0xFFF003FF #define S_037534_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 24) #define G_037534_PERF_MODE3(x) (((x) >> 24) & 0xF) #define C_037534_PERF_MODE3 0xF0FFFFFF #define S_037534_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 28) #define G_037534_PERF_MODE2(x) (((x) >> 28) & 0xF) #define C_037534_PERF_MODE2 0x0FFFFFFF #define R_037534_MC_VM_L2_PERFCOUNTER1_CFG 0x037534 /* gfx9 */ #define R_037538_GC_ATC_L2_PERFCOUNTER2_MODE 0x037538 /* gfx10 */ #define S_037538_COMPARE_MODE0(x) (((unsigned)(x) & 0x3) << 0) #define G_037538_COMPARE_MODE0(x) (((x) >> 0) & 0x3) #define C_037538_COMPARE_MODE0 0xFFFFFFFC #define S_037538_COMPARE_MODE1(x) (((unsigned)(x) & 0x3) << 2) #define G_037538_COMPARE_MODE1(x) (((x) >> 2) & 0x3) #define C_037538_COMPARE_MODE1 0xFFFFFFF3 #define S_037538_COMPARE_MODE2(x) (((unsigned)(x) & 0x3) << 4) #define G_037538_COMPARE_MODE2(x) (((x) >> 4) & 0x3) #define C_037538_COMPARE_MODE2 0xFFFFFFCF #define S_037538_COMPARE_MODE3(x) (((unsigned)(x) & 0x3) << 6) #define G_037538_COMPARE_MODE3(x) (((x) >> 6) & 0x3) #define C_037538_COMPARE_MODE3 0xFFFFFF3F #define S_037538_COMPARE_VALUE0(x) (((unsigned)(x) & 0xF) << 8) #define G_037538_COMPARE_VALUE0(x) (((x) >> 8) & 0xF) #define C_037538_COMPARE_VALUE0 0xFFFFF0FF #define S_037538_COMPARE_VALUE1(x) (((unsigned)(x) & 0xF) << 12) #define G_037538_COMPARE_VALUE1(x) (((x) >> 12) & 0xF) #define C_037538_COMPARE_VALUE1 0xFFFF0FFF #define S_037538_COMPARE_VALUE2(x) (((unsigned)(x) & 0xF) << 16) #define G_037538_COMPARE_VALUE2(x) (((x) >> 16) & 0xF) #define C_037538_COMPARE_VALUE2 0xFFF0FFFF #define S_037538_COMPARE_VALUE3(x) (((unsigned)(x) & 0xF) << 20) #define G_037538_COMPARE_VALUE3(x) (((x) >> 20) & 0xF) #define C_037538_COMPARE_VALUE3 0xFF0FFFFF #define R_037538_MC_VM_L2_PERFCOUNTER2_CFG 0x037538 /* gfx9 */ #define R_03753C_MC_VM_L2_PERFCOUNTER3_CFG 0x03753C /* gfx9 */ #define R_037540_MC_VM_L2_PERFCOUNTER4_CFG 0x037540 /* gfx9 */ #define R_037544_MC_VM_L2_PERFCOUNTER5_CFG 0x037544 /* gfx9 */ #define R_037548_MC_VM_L2_PERFCOUNTER6_CFG 0x037548 /* gfx9 */ #define R_03754C_MC_VM_L2_PERFCOUNTER7_CFG 0x03754C /* gfx9 */ #define R_037550_MC_VM_L2_PERFCOUNTER_RSLT_CNTL 0x037550 /* gfx9 */ #define S_037550_PERF_COUNTER_SELECT(x) (((unsigned)(x) & 0xF) << 0) #define G_037550_PERF_COUNTER_SELECT(x) (((x) >> 0) & 0xF) #define C_037550_PERF_COUNTER_SELECT 0xFFFFFFF0 #define S_037550_START_TRIGGER(x) (((unsigned)(x) & 0xFF) << 8) #define G_037550_START_TRIGGER(x) (((x) >> 8) & 0xFF) #define C_037550_START_TRIGGER 0xFFFF00FF #define S_037550_STOP_TRIGGER(x) (((unsigned)(x) & 0xFF) << 16) #define G_037550_STOP_TRIGGER(x) (((x) >> 16) & 0xFF) #define C_037550_STOP_TRIGGER 0xFF00FFFF #define S_037550_ENABLE_ANY(x) (((unsigned)(x) & 0x1) << 24) #define G_037550_ENABLE_ANY(x) (((x) >> 24) & 0x1) #define C_037550_ENABLE_ANY 0xFEFFFFFF #define S_037550_CLEAR_ALL(x) (((unsigned)(x) & 0x1) << 25) #define G_037550_CLEAR_ALL(x) (((x) >> 25) & 0x1) #define C_037550_CLEAR_ALL 0xFDFFFFFF #define S_037550_STOP_ALL_ON_SATURATE(x) (((unsigned)(x) & 0x1) << 26) #define G_037550_STOP_ALL_ON_SATURATE(x) (((x) >> 26) & 0x1) #define C_037550_STOP_ALL_ON_SATURATE 0xFBFFFFFF #define R_037580_GCR_PERFCOUNTER0_SELECT 0x037580 /* >= gfx10 */ #define S_037580_PERF_SEL(x) (((unsigned)(x) & 0x1FF) << 0) #define G_037580_PERF_SEL(x) (((x) >> 0) & 0x1FF) #define C_037580_PERF_SEL 0xFFFFFE00 #define S_037580_PERF_SEL1(x) (((unsigned)(x) & 0x1FF) << 10) #define G_037580_PERF_SEL1(x) (((x) >> 10) & 0x1FF) #define C_037580_PERF_SEL1 0xFFF803FF #define S_037580_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_037580_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_037580_CNTR_MODE 0xFF0FFFFF #define S_037580_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) #define G_037580_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_037580_PERF_MODE1 0xF0FFFFFF #define S_037580_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_037580_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_037580_PERF_MODE 0x0FFFFFFF #define R_037584_GCR_PERFCOUNTER0_SELECT1 0x037584 /* >= gfx10 */ #define S_037584_PERF_SEL2(x) (((unsigned)(x) & 0x1FF) << 0) #define G_037584_PERF_SEL2(x) (((x) >> 0) & 0x1FF) #define C_037584_PERF_SEL2 0xFFFFFE00 #define S_037584_PERF_SEL3(x) (((unsigned)(x) & 0x1FF) << 10) #define G_037584_PERF_SEL3(x) (((x) >> 10) & 0x1FF) #define C_037584_PERF_SEL3 0xFFF803FF #define S_037584_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 24) #define G_037584_PERF_MODE3(x) (((x) >> 24) & 0xF) #define C_037584_PERF_MODE3 0xF0FFFFFF #define S_037584_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 28) #define G_037584_PERF_MODE2(x) (((x) >> 28) & 0xF) #define C_037584_PERF_MODE2 0x0FFFFFFF #define R_037588_GCR_PERFCOUNTER1_SELECT 0x037588 /* >= gfx10 */ #define S_037588_PERF_SEL(x) (((unsigned)(x) & 0x1FF) << 0) #define G_037588_PERF_SEL(x) (((x) >> 0) & 0x1FF) #define C_037588_PERF_SEL 0xFFFFFE00 #define S_037588_PERF_MODE(x) (((unsigned)(x) & 0xF) << 24) #define G_037588_PERF_MODE(x) (((x) >> 24) & 0xF) #define C_037588_PERF_MODE 0xF0FFFFFF #define S_037588_CNTL_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_037588_CNTL_MODE(x) (((x) >> 28) & 0xF) #define C_037588_CNTL_MODE 0x0FFFFFFF #define R_03758C_UTCL1_PERFCOUNTER0_SELECT 0x03758C /* >= gfx10 */ #define S_03758C_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_03758C_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_03758C_PERF_SEL 0xFFFFFC00 #define S_03758C_COUNTER_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_03758C_COUNTER_MODE(x) (((x) >> 28) & 0xF) #define C_03758C_COUNTER_MODE 0x0FFFFFFF #define R_037590_UTCL1_PERFCOUNTER1_SELECT 0x037590 /* >= gfx10 */ #define R_037600_PA_PH_PERFCOUNTER0_SELECT 0x037600 /* >= gfx10 */ #define S_037600_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_037600_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_037600_PERF_SEL 0xFFFFFC00 #define S_037600_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_037600_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_037600_PERF_SEL1 0xFFF003FF #define S_037600_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_037600_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_037600_CNTR_MODE 0xFF0FFFFF #define S_037600_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) #define G_037600_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_037600_PERF_MODE1 0xF0FFFFFF #define S_037600_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_037600_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_037600_PERF_MODE 0x0FFFFFFF #define R_037604_PA_PH_PERFCOUNTER0_SELECT1 0x037604 /* >= gfx10 */ #define S_037604_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_037604_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_037604_PERF_SEL2 0xFFFFFC00 #define S_037604_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_037604_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_037604_PERF_SEL3 0xFFF003FF #define S_037604_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 24) #define G_037604_PERF_MODE3(x) (((x) >> 24) & 0xF) #define C_037604_PERF_MODE3 0xF0FFFFFF #define S_037604_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 28) #define G_037604_PERF_MODE2(x) (((x) >> 28) & 0xF) #define C_037604_PERF_MODE2 0x0FFFFFFF #define R_037608_PA_PH_PERFCOUNTER1_SELECT 0x037608 /* >= gfx10 */ #define R_03760C_PA_PH_PERFCOUNTER2_SELECT 0x03760C /* >= gfx10 */ #define R_037610_PA_PH_PERFCOUNTER3_SELECT 0x037610 /* >= gfx10 */ #define R_037614_PA_PH_PERFCOUNTER4_SELECT 0x037614 /* >= gfx10 */ #define S_037614_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_037614_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_037614_PERF_SEL 0xFFFFFC00 #define R_037618_PA_PH_PERFCOUNTER5_SELECT 0x037618 /* >= gfx10 */ #define R_03761C_PA_PH_PERFCOUNTER6_SELECT 0x03761C /* >= gfx10 */ #define R_037620_PA_PH_PERFCOUNTER7_SELECT 0x037620 /* >= gfx10 */ #define R_037640_PA_PH_PERFCOUNTER1_SELECT1 0x037640 /* >= gfx10 */ #define R_037644_PA_PH_PERFCOUNTER2_SELECT1 0x037644 /* >= gfx10 */ #define R_037648_PA_PH_PERFCOUNTER3_SELECT1 0x037648 /* >= gfx10 */ #define R_037700_GL1A_PERFCOUNTER0_SELECT 0x037700 /* >= gfx10 */ #define R_037704_GL1A_PERFCOUNTER0_SELECT1 0x037704 /* >= gfx10 */ #define R_037708_GL1A_PERFCOUNTER1_SELECT 0x037708 /* >= gfx10 */ #define R_03770C_GL1A_PERFCOUNTER2_SELECT 0x03770C /* >= gfx10 */ #define R_037710_GL1A_PERFCOUNTER3_SELECT 0x037710 /* >= gfx10 */ #define R_037780_CHA_PERFCOUNTER0_SELECT 0x037780 /* >= gfx10 */ #define S_037780_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_037780_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_037780_PERF_SEL 0xFFFFFC00 #define S_037780_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_037780_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_037780_PERF_SEL1 0xFFF003FF #define S_037780_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_037780_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_037780_CNTR_MODE 0xFF0FFFFF #define S_037780_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) #define G_037780_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_037780_PERF_MODE1 0xF0FFFFFF #define S_037780_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_037780_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_037780_PERF_MODE 0x0FFFFFFF #define R_037784_CHA_PERFCOUNTER0_SELECT1 0x037784 /* >= gfx10 */ #define S_037784_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_037784_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_037784_PERF_SEL2 0xFFFFFC00 #define S_037784_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_037784_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_037784_PERF_SEL3 0xFFF003FF #define S_037784_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 24) #define G_037784_PERF_MODE2(x) (((x) >> 24) & 0xF) #define C_037784_PERF_MODE2 0xF0FFFFFF #define S_037784_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 28) #define G_037784_PERF_MODE3(x) (((x) >> 28) & 0xF) #define C_037784_PERF_MODE3 0x0FFFFFFF #define R_037788_CHA_PERFCOUNTER1_SELECT 0x037788 /* >= gfx10 */ #define S_037788_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_037788_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_037788_PERF_SEL 0xFFFFFC00 #define S_037788_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_037788_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_037788_CNTR_MODE 0xFF0FFFFF #define S_037788_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_037788_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_037788_PERF_MODE 0x0FFFFFFF #define R_03778C_CHA_PERFCOUNTER2_SELECT 0x03778C /* >= gfx10 */ #define R_037790_CHA_PERFCOUNTER3_SELECT 0x037790 /* >= gfx10 */ #define R_037800_GUS_PERFCOUNTER2_SELECT 0x037800 /* >= gfx10 */ #define S_037800_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_037800_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_037800_PERF_SEL 0xFFFFFC00 #define S_037800_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_037800_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_037800_PERF_SEL1 0xFFF003FF #define S_037800_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_037800_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_037800_CNTR_MODE 0xFF0FFFFF #define S_037800_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) #define G_037800_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_037800_PERF_MODE1 0xF0FFFFFF #define S_037800_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_037800_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_037800_PERF_MODE 0x0FFFFFFF #define R_037804_GUS_PERFCOUNTER2_SELECT1 0x037804 /* >= gfx10 */ #define S_037804_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_037804_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_037804_PERF_SEL2 0xFFFFFC00 #define S_037804_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_037804_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_037804_PERF_SEL3 0xFFF003FF #define S_037804_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 24) #define G_037804_PERF_MODE3(x) (((x) >> 24) & 0xF) #define C_037804_PERF_MODE3 0xF0FFFFFF #define S_037804_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 28) #define G_037804_PERF_MODE2(x) (((x) >> 28) & 0xF) #define C_037804_PERF_MODE2 0x0FFFFFFF #define R_037808_GUS_PERFCOUNTER2_MODE 0x037808 /* >= gfx10 */ #define S_037808_COMPARE_MODE0(x) (((unsigned)(x) & 0x3) << 0) #define G_037808_COMPARE_MODE0(x) (((x) >> 0) & 0x3) #define C_037808_COMPARE_MODE0 0xFFFFFFFC #define S_037808_COMPARE_MODE1(x) (((unsigned)(x) & 0x3) << 2) #define G_037808_COMPARE_MODE1(x) (((x) >> 2) & 0x3) #define C_037808_COMPARE_MODE1 0xFFFFFFF3 #define S_037808_COMPARE_MODE2(x) (((unsigned)(x) & 0x3) << 4) #define G_037808_COMPARE_MODE2(x) (((x) >> 4) & 0x3) #define C_037808_COMPARE_MODE2 0xFFFFFFCF #define S_037808_COMPARE_MODE3(x) (((unsigned)(x) & 0x3) << 6) #define G_037808_COMPARE_MODE3(x) (((x) >> 6) & 0x3) #define C_037808_COMPARE_MODE3 0xFFFFFF3F #define S_037808_COMPARE_VALUE0(x) (((unsigned)(x) & 0xF) << 8) #define G_037808_COMPARE_VALUE0(x) (((x) >> 8) & 0xF) #define C_037808_COMPARE_VALUE0 0xFFFFF0FF #define S_037808_COMPARE_VALUE1(x) (((unsigned)(x) & 0xF) << 12) #define G_037808_COMPARE_VALUE1(x) (((x) >> 12) & 0xF) #define C_037808_COMPARE_VALUE1 0xFFFF0FFF #define S_037808_COMPARE_VALUE2(x) (((unsigned)(x) & 0xF) << 16) #define G_037808_COMPARE_VALUE2(x) (((x) >> 16) & 0xF) #define C_037808_COMPARE_VALUE2 0xFFF0FFFF #define S_037808_COMPARE_VALUE3(x) (((unsigned)(x) & 0xF) << 20) #define G_037808_COMPARE_VALUE3(x) (((x) >> 20) & 0xF) #define C_037808_COMPARE_VALUE3 0xFF0FFFFF #define R_03780C_GUS_PERFCOUNTER0_CFG 0x03780C /* >= gfx103 */ #define S_03780C_PERF_SEL(x) (((unsigned)(x) & 0xFF) << 0) #define G_03780C_PERF_SEL(x) (((x) >> 0) & 0xFF) #define C_03780C_PERF_SEL 0xFFFFFF00 #define S_03780C_PERF_SEL_END(x) (((unsigned)(x) & 0xFF) << 8) #define G_03780C_PERF_SEL_END(x) (((x) >> 8) & 0xFF) #define C_03780C_PERF_SEL_END 0xFFFF00FF #define S_03780C_PERF_MODE(x) (((unsigned)(x) & 0xF) << 24) #define G_03780C_PERF_MODE(x) (((x) >> 24) & 0xF) #define C_03780C_PERF_MODE 0xF0FFFFFF #define S_03780C_ENABLE(x) (((unsigned)(x) & 0x1) << 28) #define G_03780C_ENABLE(x) (((x) >> 28) & 0x1) #define C_03780C_ENABLE 0xEFFFFFFF #define S_03780C_CLEAR(x) (((unsigned)(x) & 0x1) << 29) #define G_03780C_CLEAR(x) (((x) >> 29) & 0x1) #define C_03780C_CLEAR 0xDFFFFFFF #define R_037810_GUS_PERFCOUNTER1_CFG 0x037810 /* >= gfx103 */ #define R_037814_GUS_PERFCOUNTER_RSLT_CNTL 0x037814 /* >= gfx103 */ #define S_037814_PERF_COUNTER_SELECT(x) (((unsigned)(x) & 0xF) << 0) #define G_037814_PERF_COUNTER_SELECT(x) (((x) >> 0) & 0xF) #define C_037814_PERF_COUNTER_SELECT 0xFFFFFFF0 #define S_037814_START_TRIGGER(x) (((unsigned)(x) & 0xFF) << 8) #define G_037814_START_TRIGGER(x) (((x) >> 8) & 0xFF) #define C_037814_START_TRIGGER 0xFFFF00FF #define S_037814_STOP_TRIGGER(x) (((unsigned)(x) & 0xFF) << 16) #define G_037814_STOP_TRIGGER(x) (((x) >> 16) & 0xFF) #define C_037814_STOP_TRIGGER 0xFF00FFFF #define S_037814_ENABLE_ANY(x) (((unsigned)(x) & 0x1) << 24) #define G_037814_ENABLE_ANY(x) (((x) >> 24) & 0x1) #define C_037814_ENABLE_ANY 0xFEFFFFFF #define S_037814_CLEAR_ALL(x) (((unsigned)(x) & 0x1) << 25) #define G_037814_CLEAR_ALL(x) (((x) >> 25) & 0x1) #define C_037814_CLEAR_ALL 0xFDFFFFFF #define S_037814_STOP_ALL_ON_SATURATE(x) (((unsigned)(x) & 0x1) << 26) #define G_037814_STOP_ALL_ON_SATURATE(x) (((x) >> 26) & 0x1) #define C_037814_STOP_ALL_ON_SATURATE 0xFBFFFFFF #define R_037880_SDMA0_PERFCNT_PERFCOUNTER0_CFG 0x037880 /* >= gfx103 */ #define S_037880_PERF_SEL(x) (((unsigned)(x) & 0xFF) << 0) #define G_037880_PERF_SEL(x) (((x) >> 0) & 0xFF) #define C_037880_PERF_SEL 0xFFFFFF00 #define S_037880_PERF_SEL_END(x) (((unsigned)(x) & 0xFF) << 8) #define G_037880_PERF_SEL_END(x) (((x) >> 8) & 0xFF) #define C_037880_PERF_SEL_END 0xFFFF00FF #define S_037880_PERF_MODE(x) (((unsigned)(x) & 0xF) << 24) #define G_037880_PERF_MODE(x) (((x) >> 24) & 0xF) #define C_037880_PERF_MODE 0xF0FFFFFF #define S_037880_ENABLE(x) (((unsigned)(x) & 0x1) << 28) #define G_037880_ENABLE(x) (((x) >> 28) & 0x1) #define C_037880_ENABLE 0xEFFFFFFF #define S_037880_CLEAR(x) (((unsigned)(x) & 0x1) << 29) #define G_037880_CLEAR(x) (((x) >> 29) & 0x1) #define C_037880_CLEAR 0xDFFFFFFF #define R_037884_SDMA0_PERFCNT_PERFCOUNTER1_CFG 0x037884 /* >= gfx103 */ #define R_037888_SDMA0_PERFCNT_PERFCOUNTER_RSLT_CNTL 0x037888 /* >= gfx103 */ #define S_037888_PERF_COUNTER_SELECT(x) (((unsigned)(x) & 0xF) << 0) #define G_037888_PERF_COUNTER_SELECT(x) (((x) >> 0) & 0xF) #define C_037888_PERF_COUNTER_SELECT 0xFFFFFFF0 #define S_037888_START_TRIGGER(x) (((unsigned)(x) & 0xFF) << 8) #define G_037888_START_TRIGGER(x) (((x) >> 8) & 0xFF) #define C_037888_START_TRIGGER 0xFFFF00FF #define S_037888_STOP_TRIGGER(x) (((unsigned)(x) & 0xFF) << 16) #define G_037888_STOP_TRIGGER(x) (((x) >> 16) & 0xFF) #define C_037888_STOP_TRIGGER 0xFF00FFFF #define S_037888_ENABLE_ANY(x) (((unsigned)(x) & 0x1) << 24) #define G_037888_ENABLE_ANY(x) (((x) >> 24) & 0x1) #define C_037888_ENABLE_ANY 0xFEFFFFFF #define S_037888_CLEAR_ALL(x) (((unsigned)(x) & 0x1) << 25) #define G_037888_CLEAR_ALL(x) (((x) >> 25) & 0x1) #define C_037888_CLEAR_ALL 0xFDFFFFFF #define S_037888_STOP_ALL_ON_SATURATE(x) (((unsigned)(x) & 0x1) << 26) #define G_037888_STOP_ALL_ON_SATURATE(x) (((x) >> 26) & 0x1) #define C_037888_STOP_ALL_ON_SATURATE 0xFBFFFFFF #define R_03788C_SDMA0_PERFCNT_MISC_CNTL 0x03788C /* >= gfx103 */ #define S_03788C_CMD_OP(x) (((unsigned)(x) & 0xFFFF) << 0) #define G_03788C_CMD_OP(x) (((x) >> 0) & 0xFFFF) #define C_03788C_CMD_OP 0xFFFF0000 #define R_037890_SDMA0_PERFCOUNTER0_SELECT 0x037890 /* >= gfx103 */ #define S_037890_PERF_SEL(x) (((unsigned)(x) & 0x3FF) << 0) #define G_037890_PERF_SEL(x) (((x) >> 0) & 0x3FF) #define C_037890_PERF_SEL 0xFFFFFC00 #define S_037890_PERF_SEL1(x) (((unsigned)(x) & 0x3FF) << 10) #define G_037890_PERF_SEL1(x) (((x) >> 10) & 0x3FF) #define C_037890_PERF_SEL1 0xFFF003FF #define S_037890_CNTR_MODE(x) (((unsigned)(x) & 0xF) << 20) #define G_037890_CNTR_MODE(x) (((x) >> 20) & 0xF) #define C_037890_CNTR_MODE 0xFF0FFFFF #define S_037890_PERF_MODE1(x) (((unsigned)(x) & 0xF) << 24) #define G_037890_PERF_MODE1(x) (((x) >> 24) & 0xF) #define C_037890_PERF_MODE1 0xF0FFFFFF #define S_037890_PERF_MODE(x) (((unsigned)(x) & 0xF) << 28) #define G_037890_PERF_MODE(x) (((x) >> 28) & 0xF) #define C_037890_PERF_MODE 0x0FFFFFFF #define R_037894_SDMA0_PERFCOUNTER0_SELECT1 0x037894 /* >= gfx103 */ #define S_037894_PERF_SEL2(x) (((unsigned)(x) & 0x3FF) << 0) #define G_037894_PERF_SEL2(x) (((x) >> 0) & 0x3FF) #define C_037894_PERF_SEL2 0xFFFFFC00 #define S_037894_PERF_SEL3(x) (((unsigned)(x) & 0x3FF) << 10) #define G_037894_PERF_SEL3(x) (((x) >> 10) & 0x3FF) #define C_037894_PERF_SEL3 0xFFF003FF #define S_037894_PERF_MODE3(x) (((unsigned)(x) & 0xF) << 24) #define G_037894_PERF_MODE3(x) (((x) >> 24) & 0xF) #define C_037894_PERF_MODE3 0xF0FFFFFF #define S_037894_PERF_MODE2(x) (((unsigned)(x) & 0xF) << 28) #define G_037894_PERF_MODE2(x) (((x) >> 28) & 0xF) #define C_037894_PERF_MODE2 0x0FFFFFFF #define R_037898_SDMA0_PERFCOUNTER1_SELECT 0x037898 /* >= gfx103 */ #define R_03789C_SDMA0_PERFCOUNTER1_SELECT1 0x03789C /* >= gfx103 */ #define R_0378B0_SDMA1_PERFCNT_PERFCOUNTER0_CFG 0x0378B0 /* >= gfx103 */ #define R_0378B4_SDMA1_PERFCNT_PERFCOUNTER1_CFG 0x0378B4 /* >= gfx103 */ #define R_0378B8_SDMA1_PERFCNT_PERFCOUNTER_RSLT_CNTL 0x0378B8 /* >= gfx103 */ #define R_0378BC_SDMA1_PERFCNT_MISC_CNTL 0x0378BC /* >= gfx103 */ #define R_0378C0_SDMA1_PERFCOUNTER0_SELECT 0x0378C0 /* >= gfx103 */ #define R_0378C4_SDMA1_PERFCOUNTER0_SELECT1 0x0378C4 /* >= gfx103 */ #define R_0378C8_SDMA1_PERFCOUNTER1_SELECT 0x0378C8 /* >= gfx103 */ #define R_0378CC_SDMA1_PERFCOUNTER1_SELECT1 0x0378CC /* >= gfx103 */ #define R_0378E0_SDMA2_PERFCNT_PERFCOUNTER0_CFG 0x0378E0 /* >= gfx103 */ #define R_0378E4_SDMA2_PERFCNT_PERFCOUNTER1_CFG 0x0378E4 /* >= gfx103 */ #define R_0378E8_SDMA2_PERFCNT_PERFCOUNTER_RSLT_CNTL 0x0378E8 /* >= gfx103 */ #define R_0378EC_SDMA2_PERFCNT_MISC_CNTL 0x0378EC /* >= gfx103 */ #define R_0378F0_SDMA2_PERFCOUNTER0_SELECT 0x0378F0 /* >= gfx103 */ #define R_0378F4_SDMA2_PERFCOUNTER0_SELECT1 0x0378F4 /* >= gfx103 */ #define R_0378F8_SDMA2_PERFCOUNTER1_SELECT 0x0378F8 /* >= gfx103 */ #define R_0378FC_SDMA2_PERFCOUNTER1_SELECT1 0x0378FC /* >= gfx103 */ #define R_037910_SDMA3_PERFCNT_PERFCOUNTER0_CFG 0x037910 /* >= gfx103 */ #define R_037914_SDMA3_PERFCNT_PERFCOUNTER1_CFG 0x037914 /* >= gfx103 */ #define R_037918_SDMA3_PERFCNT_PERFCOUNTER_RSLT_CNTL 0x037918 /* >= gfx103 */ #define R_03791C_SDMA3_PERFCNT_MISC_CNTL 0x03791C /* >= gfx103 */ #define R_037920_SDMA3_PERFCOUNTER0_SELECT 0x037920 /* >= gfx103 */ #define R_037924_SDMA3_PERFCOUNTER0_SELECT1 0x037924 /* >= gfx103 */ #define R_037928_SDMA3_PERFCOUNTER1_SELECT 0x037928 /* >= gfx103 */ #define R_03792C_SDMA3_PERFCOUNTER1_SELECT1 0x03792C /* >= gfx103 */ #endif // AMDGFXREGS_H