/* * Copyright 2009 Advanced Micro Devices, Inc. * Copyright 2012 Red Hat 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. * * Authors: * Alex Deucher * Jerome Glisse */ #ifndef R6XXD_H #define R6XXD_H /***************************************************************************** * PM4 */ #define PKT3(it, n) ((3 << 30) | ((((n) - 1) & 0x3fff) << 16) | (((it) & 0xff) << 8)) #define PKT0(reg, n) ((0 << 30) | ((((n) - 1) & 0x3fff) << 16) | (((reg) >> 2) & 0xffff)) #define PKTx_TYPE(v) (((v) >> 30) & 3) #define PKTx_COUNT(v) ((((v) >> 16) & 0x3fff) + 1) #define PKT3_IT(v) (((v) >> 8) & 0xff) #define PKT0_REG(v) (((v) & 0xffff) << 2) /* packet3 commands */ #define IT_NOP 0x10 #define IT_INDIRECT_BUFFER_END 0x17 #define IT_SET_PREDICATION 0x20 #define IT_REG_RMW 0x21 #define IT_COND_EXEC 0x22 #define IT_PRED_EXEC 0x23 #define IT_START_3D_CMDBUF 0x24 #define IT_DRAW_INDEX_2 0x27 #define IT_CONTEXT_CONTROL 0x28 #define IT_DRAW_INDEX_IMMD_BE 0x29 #define IT_INDEX_TYPE 0x2a #define IT_DRAW_INDEX 0x2b #define IT_DRAW_INDEX_AUTO 0x2d #define IT_DRAW_INDEX_IMMD 0x2e #define IT_NUM_INSTANCES 0x2f #define IT_STRMOUT_BUFFER_UPDATE 0x34 #define IT_INDIRECT_BUFFER_MP 0x38 #define IT_MEM_SEMAPHORE 0x39 #define IT_MPEG_INDEX 0x3a #define IT_WAIT_REG_MEM 0x3c #define IT_MEM_WRITE 0x3d #define IT_INDIRECT_BUFFER 0x32 #define IT_CP_INTERRUPT 0x40 #define IT_SURFACE_SYNC 0x43 #define IT_ME_INITIALIZE 0x44 #define IT_COND_WRITE 0x45 #define IT_EVENT_WRITE 0x46 #define IT_EVENT_WRITE_EOP 0x47 #define IT_ONE_REG_WRITE 0x57 #define IT_SET_CONFIG_REG 0x68 #define IT_SET_CONTEXT_REG 0x69 #define IT_SET_ALU_CONST 0x6a #define IT_SET_BOOL_CONST 0x6b #define IT_SET_LOOP_CONST 0x6c #define IT_SET_RESOURCE 0x6d #define IT_SET_SAMPLER 0x6e #define IT_SET_CTL_CONST 0x6f #define IT_SURFACE_BASE_UPDATE 0x73 /***************************************************************************** * REG RANGE */ #define SET_CONFIG_REG__OFFSET 0x00008000 #define SET_CONFIG_REG__END 0x0000ac00 #define SET_CONTEXT_REG__OFFSET 0x00028000 #define SET_CONTEXT_REG__END 0x00029000 #define SET_ALU_CONST__OFFSET 0x00030000 #define SET_ALU_CONST__END 0x00032000 #define SET_RESOURCE__OFFSET 0x00038000 #define SET_RESOURCE__END 0x0003c000 #define SET_SAMPLER__OFFSET 0x0003c000 #define SET_SAMPLER__END 0x0003cff0 #define SET_CTL_CONST__OFFSET 0x0003cff0 #define SET_CTL_CONST__END 0x0003e200 #define SET_LOOP_CONST__OFFSET 0x0003e200 #define SET_LOOP_CONST__END 0x0003e380 #define SET_BOOL_CONST__OFFSET 0x0003e380 #define SET_BOOL_CONST__END 0x0003e38c /***************************************************************************** * GENERAL [0x00000000 0x00008000] */ #define CP_RB_BASE 0x0000c100 #define CP_RB_CNTL 0x0000c104 #define CP_RB_CNTL__RB_BUFSZ(x) (((x) & 0x0000003f) << 0) #define CP_RB_WPTR 0x0000c114 #define CP_RB_WPTR__RB_WPTR(x) (((x) & 0x000fffff) << 0) #define CP_RB_RPTR_WR 0x0000c108 #define CP_RB_RPTR_WR__RB_RPTR_WR(x) (((x) & 0x000fffff) << 0) #define CP_INT_STATUS 0x0000c128 #define CP_INT_STATUS__DISABLE_CNTX_SWITCH_INT_STAT(x) (((x) & 0x00000001) << 0) #define CP_INT_STATUS__ENABLE_CNTX_SWITCH_INT_STAT(x) (((x) & 0x00000001) << 1) #define CP_INT_STATUS__SEM_SIGNAL_INT_STAT(x) (((x) & 0x00000001) << 18) #define CP_INT_STATUS__CNTX_BUSY_INT_STAT(x) (((x) & 0x00000001) << 19) #define CP_INT_STATUS__CNTX_EMPTY_INT_STAT(x) (((x) & 0x00000001) << 20) #define CP_INT_STATUS__WAITMEM_SEM_INT_STAT(x) (((x) & 0x00000001) << 21) #define CP_INT_STATUS__PRIV_INSTR_INT_STAT(x) (((x) & 0x00000001) << 22) #define CP_INT_STATUS__PRIV_REG_INT_STAT(x) (((x) & 0x00000001) << 23) #define CP_INT_STATUS__OPCODE_ERROR_INT_STAT(x) (((x) & 0x00000001) << 24) #define CP_INT_STATUS__SCRATCH_INT_STAT(x) (((x) & 0x00000001) << 25) #define CP_INT_STATUS__TIME_STAMP_INT_STAT(x) (((x) & 0x00000001) << 26) #define CP_INT_STATUS__RESERVED_BIT_ERROR_INT_STAT(x) (((x) & 0x00000001) << 27) #define CP_INT_STATUS__DMA_INT_STAT(x) (((x) & 0x00000001) << 28) #define CP_INT_STATUS__IB2_INT_STAT(x) (((x) & 0x00000001) << 29) #define CP_INT_STATUS__IB1_INT_STAT(x) (((x) & 0x00000001) << 30) #define CP_INT_STATUS__RB_INT_STAT(x) (((x) & 0x00000001) << 31) #define SRBM_STATUS 0x00000e50 #define SRBM_STATUS__RLC_RQ_PENDING(x) (((x) & 0x00000001) << 3) #define SRBM_STATUS__RCU_RQ_PENDING(x) (((x) & 0x00000001) << 4) #define SRBM_STATUS__GRBM_RQ_PENDING(x) (((x) & 0x00000001) << 5) #define SRBM_STATUS__HI_RQ_PENDING(x) (((x) & 0x00000001) << 6) #define SRBM_STATUS__IO_EXTERN_SIGNAL(x) (((x) & 0x00000001) << 7) #define SRBM_STATUS__VMC_BUSY(x) (((x) & 0x00000001) << 8) #define SRBM_STATUS__MCB_BUSY(x) (((x) & 0x00000001) << 9) #define SRBM_STATUS__MCDZ_BUSY(x) (((x) & 0x00000001) << 10) #define SRBM_STATUS__MCDY_BUSY(x) (((x) & 0x00000001) << 11) #define SRBM_STATUS__MCDX_BUSY(x) (((x) & 0x00000001) << 12) #define SRBM_STATUS__MCDW_BUSY(x) (((x) & 0x00000001) << 13) #define SRBM_STATUS__SEM_BUSY(x) (((x) & 0x00000001) << 14) #define SRBM_STATUS__SRBM_STATUS__RLC_BUSY(x) (((x) & 0x00000001) << 15) #define SRBM_STATUS__PDMA_BUSY(x) (((x) & 0x00000001) << 16) #define SRBM_STATUS__IH_BUSY(x) (((x) & 0x00000001) << 17) #define SRBM_STATUS__CSC_BUSY(x) (((x) & 0x00000001) << 20) #define SRBM_STATUS__CMC7_BUSY(x) (((x) & 0x00000001) << 21) #define SRBM_STATUS__CMC6_BUSY(x) (((x) & 0x00000001) << 22) #define SRBM_STATUS__CMC5_BUSY(x) (((x) & 0x00000001) << 23) #define SRBM_STATUS__CMC4_BUSY(x) (((x) & 0x00000001) << 24) #define SRBM_STATUS__CMC3_BUSY(x) (((x) & 0x00000001) << 25) #define SRBM_STATUS__CMC2_BUSY(x) (((x) & 0x00000001) << 26) #define SRBM_STATUS__CMC1_BUSY(x) (((x) & 0x00000001) << 27) #define SRBM_STATUS__CMC0_BUSY(x) (((x) & 0x00000001) << 28) #define SRBM_STATUS__BIF_BUSY(x) (((x) & 0x00000001) << 29) #define SRBM_STATUS__IDCT_BUSY(x) (((x) & 0x00000001) << 30) #define SRBM_READ_ERROR 0x00000e98 #define SRBM_READ_ERROR__READ_ADDRESS(x) (((x) & 0x0000ffff) << 2) #define SRBM_READ_ERROR__READ_REQUESTER_HI(x) (((x) & 0x00000001) << 24) #define SRBM_READ_ERROR__READ_REQUESTER_GRBM(x) (((x) & 0x00000001) << 25) #define SRBM_READ_ERROR__READ_REQUESTER_RCU(x) (((x) & 0x00000001) << 26) #define SRBM_READ_ERROR__READ_REQUESTER_RLC(x) (((x) & 0x00000001) << 27) #define SRBM_READ_ERROR__READ_ERROR(x) (((x) & 0x00000001) << 31) #define SRBM_INT_STATUS 0x00000ea4 #define SRBM_INT_STATUS__RDERR_INT_STAT(x) (((x) & 0x00000001) << 0) #define SRBM_INT_STATUS__GFX_CNTX_SWITCH_INT_STAT(x) (((x) & 0x00000001) << 1) #define SRBM_INT_ACK 0x00000ea8 #define SRBM_INT_ACK__RDERR_INT_ACK(x) (((x) & 0x00000001) << 0) #define SRBM_INT_ACK__GFX_CNTX_SWITCH_INT_ACK(x) (((x) & 0x00000001) << 1) #define R6XX_MC_VM_FB_LOCATION 0x00002180 #define VENDOR_DEVICE_ID 0x00004000 #define HDP_MEM_COHERENCY_FLUSH_CNTL 0x00005480 #define D1GRPH_PRIMARY_SURFACE_ADDRESS 0x00006110 #define D1GRPH_PITCH 0x00006120 #define D1GRPH_Y_END 0x00006138 /***************************************************************************** * CONFIG REG [0x00008000 0x0000ac00] */ #define GRBM_STATUS 0x00008010 #define GRBM_STATUS__CMDFIFO_AVAIL(x) (((x) & 0x0000001f) << 0) #define GRBM_STATUS__SRBM_RQ_PENDING(x) (((x) & 0x00000001) << 5) #define GRBM_STATUS__CP_RQ_PENDING(x) (((x) & 0x00000001) << 6) #define GRBM_STATUS__CF_RQ_PENDING(x) (((x) & 0x00000001) << 7) #define GRBM_STATUS__PF_RQ_PENDING(x) (((x) & 0x00000001) << 8) #define GRBM_STATUS__GRBM_EE_BUSY(x) (((x) & 0x00000001) << 10) #define GRBM_STATUS__GRBM_STATUS__VC_BUSY(x) (((x) & 0x00000001) << 11) #define GRBM_STATUS__DB03_CLEAN(x) (((x) & 0x00000001) << 12) #define GRBM_STATUS__CB03_CLEAN(x) (((x) & 0x00000001) << 13) #define GRBM_STATUS__VGT_BUSY_NO_DMA(x) (((x) & 0x00000001) << 16) #define GRBM_STATUS__GRBM_STATUS__VGT_BUSY(x) (((x) & 0x00000001) << 17) #define GRBM_STATUS__TA03_BUSY(x) (((x) & 0x00000001) << 18) #define GRBM_STATUS__GRBM_STATUS__TC_BUSY(x) (((x) & 0x00000001) << 19) #define GRBM_STATUS__SX_BUSY(x) (((x) & 0x00000001) << 20) #define GRBM_STATUS__SH_BUSY(x) (((x) & 0x00000001) << 21) #define GRBM_STATUS__SPI03_BUSY(x) (((x) & 0x00000001) << 22) #define GRBM_STATUS__SMX_BUSY(x) (((x) & 0x00000001) << 23) #define GRBM_STATUS__SC_BUSY(x) (((x) & 0x00000001) << 24) #define GRBM_STATUS__PA_BUSY(x) (((x) & 0x00000001) << 25) #define GRBM_STATUS__DB03_BUSY(x) (((x) & 0x00000001) << 26) #define GRBM_STATUS__CR_BUSY(x) (((x) & 0x00000001) << 27) #define GRBM_STATUS__CP_COHERENCY_BUSY(x) (((x) & 0x00000001) << 28) #define GRBM_STATUS__GRBM_STATUS__CP_BUSY(x) (((x) & 0x00000001) << 29) #define GRBM_STATUS__CB03_BUSY(x) (((x) & 0x00000001) << 30) #define GRBM_STATUS__GUI_ACTIVE(x) (((x) & 0x00000001) << 31) #define GRBM_STATUS2 0x00008014 #define GRBM_STATUS2__CR_CLEAN(x) (((x) & 0x00000001) << 0) #define GRBM_STATUS2__SMX_CLEAN(x) (((x) & 0x00000001) << 1) #define GRBM_STATUS2__SPI0_BUSY(x) (((x) & 0x00000001) << 8) #define GRBM_STATUS2__SPI1_BUSY(x) (((x) & 0x00000001) << 9) #define GRBM_STATUS2__SPI2_BUSY(x) (((x) & 0x00000001) << 10) #define GRBM_STATUS2__SPI3_BUSY(x) (((x) & 0x00000001) << 11) #define GRBM_STATUS2__TA0_BUSY(x) (((x) & 0x00000001) << 12) #define GRBM_STATUS2__TA1_BUSY(x) (((x) & 0x00000001) << 13) #define GRBM_STATUS2__TA2_BUSY(x) (((x) & 0x00000001) << 14) #define GRBM_STATUS2__TA3_BUSY(x) (((x) & 0x00000001) << 15) #define GRBM_STATUS2__DB0_BUSY(x) (((x) & 0x00000001) << 16) #define GRBM_STATUS2__DB1_BUSY(x) (((x) & 0x00000001) << 17) #define GRBM_STATUS2__DB2_BUSY(x) (((x) & 0x00000001) << 18) #define GRBM_STATUS2__DB3_BUSY(x) (((x) & 0x00000001) << 19) #define GRBM_STATUS2__CB0_BUSY(x) (((x) & 0x00000001) << 20) #define GRBM_STATUS2__CB1_BUSY(x) (((x) & 0x00000001) << 21) #define GRBM_STATUS2__CB2_BUSY(x) (((x) & 0x00000001) << 22) #define GRBM_STATUS2__CB3_BUSY(x) (((x) & 0x00000001) << 23) #define GRBM_SOFT_RESET 0x00008020 #define GRBM_SOFT_RESET__SOFT_RESET_CP(x) (((x) & 0x00000001) << 0) #define GRBM_SOFT_RESET__SOFT_RESET_CB(x) (((x) & 0x00000001) << 1) #define GRBM_SOFT_RESET__SOFT_RESET_CR(x) (((x) & 0x00000001) << 2) #define GRBM_SOFT_RESET__SOFT_RESET_DB(x) (((x) & 0x00000001) << 3) #define GRBM_SOFT_RESET__SOFT_RESET_PA(x) (((x) & 0x00000001) << 5) #define GRBM_SOFT_RESET__SOFT_RESET_SC(x) (((x) & 0x00000001) << 6) #define GRBM_SOFT_RESET__SOFT_RESET_SMX(x) (((x) & 0x00000001) << 7) #define GRBM_SOFT_RESET__SOFT_RESET_SPI(x) (((x) & 0x00000001) << 8) #define GRBM_SOFT_RESET__SOFT_RESET_SH(x) (((x) & 0x00000001) << 9) #define GRBM_SOFT_RESET__SOFT_RESET_SX(x) (((x) & 0x00000001) << 10) #define GRBM_SOFT_RESET__SOFT_RESET_TC(x) (((x) & 0x00000001) << 11) #define GRBM_SOFT_RESET__SOFT_RESET_TA(x) (((x) & 0x00000001) << 12) #define GRBM_SOFT_RESET__SOFT_RESET_VC(x) (((x) & 0x00000001) << 13) #define GRBM_SOFT_RESET__SOFT_RESET_VGT(x) (((x) & 0x00000001) << 14) #define GRBM_SOFT_RESET__SOFT_RESET_GRBM_GCA(x) (((x) & 0x00000001) << 15) #define WAIT_UNTIL 0x00008040 #define WAIT_UNTIL__WAIT_CP_DMA_IDLE(x) (((x) & 0x00000001) << 8) #define WAIT_UNTIL__WAIT_CMDFIFO(x) (((x) & 0x00000001) << 10) #define WAIT_UNTIL__WAIT_2D_IDLE(x) (((x) & 0x00000001) << 14) #define WAIT_UNTIL__WAIT_3D_IDLE(x) (((x) & 0x00000001) << 15) #define WAIT_UNTIL__WAIT_2D_IDLECLEAN(x) (((x) & 0x00000001) << 16) #define WAIT_UNTIL__WAIT_3D_IDLECLEAN(x) (((x) & 0x00000001) << 17) #define WAIT_UNTIL__WAIT_EXTERN_SIG(x) (((x) & 0x00000001) << 19) #define WAIT_UNTIL__CMDFIFO_ENTRIES(x) (((x) & 0x0000001f) << 20) #define GRBM_READ_ERROR 0x00008058 #define GRBM_READ_ERROR__READ_ADDRESS(x) (((x) & 0x0000ffff) << 2) #define GRBM_READ_ERROR__READ_REQUESTER_SRBM(x) (((x) & 0x00000001) << 28) #define GRBM_READ_ERROR__READ_REQUESTER_CP(x) (((x) & 0x00000001) << 29) #define GRBM_READ_ERROR__READ_REQUESTER_WU_POLL(x) (((x) & 0x00000001) << 30) #define GRBM_READ_ERROR__READ_ERROR(x) (((x) & 0x00000001) << 31) #define SCRATCH_REG0 0x00008500 #define SCRATCH_REG1 0x00008504 #define SCRATCH_REG2 0x00008508 #define SCRATCH_REG3 0x0000850c #define SCRATCH_REG4 0x00008510 #define SCRATCH_REG5 0x00008514 #define SCRATCH_REG6 0x00008518 #define SCRATCH_REG7 0x0000851c #define SCRATCH_UMSK 0x00008540 #define SCRATCH_ADDR 0x00008544 #define CP_COHER_CNTL 0x000085f0 #define CP_COHER_CNTL__DEST_BASE_0_ENA(x) (((x) & 0x00000001) << 0) #define CP_COHER_CNTL__DEST_BASE_1_ENA(x) (((x) & 0x00000001) << 1) #define CP_COHER_CNTL__SO0_DEST_BASE_ENA(x) (((x) & 0x00000001) << 2) #define CP_COHER_CNTL__SO1_DEST_BASE_ENA(x) (((x) & 0x00000001) << 3) #define CP_COHER_CNTL__SO2_DEST_BASE_ENA(x) (((x) & 0x00000001) << 4) #define CP_COHER_CNTL__SO3_DEST_BASE_ENA(x) (((x) & 0x00000001) << 5) #define CP_COHER_CNTL__CB0_DEST_BASE_ENA(x) (((x) & 0x00000001) << 6) #define CP_COHER_CNTL__CB1_DEST_BASE_ENA(x) (((x) & 0x00000001) << 7) #define CP_COHER_CNTL__CB2_DEST_BASE_ENA(x) (((x) & 0x00000001) << 8) #define CP_COHER_CNTL__CB3_DEST_BASE_ENA(x) (((x) & 0x00000001) << 9) #define CP_COHER_CNTL__CB4_DEST_BASE_ENA(x) (((x) & 0x00000001) << 10) #define CP_COHER_CNTL__CB5_DEST_BASE_ENA(x) (((x) & 0x00000001) << 11) #define CP_COHER_CNTL__CB6_DEST_BASE_ENA(x) (((x) & 0x00000001) << 12) #define CP_COHER_CNTL__CB7_DEST_BASE_ENA(x) (((x) & 0x00000001) << 13) #define CP_COHER_CNTL__DB_DEST_BASE_ENA(x) (((x) & 0x00000001) << 14) #define CP_COHER_CNTL__CR_DEST_BASE_ENA(x) (((x) & 0x00000001) << 15) #define CP_COHER_CNTL__TC_ACTION_ENA(x) (((x) & 0x00000001) << 23) #define CP_COHER_CNTL__VC_ACTION_ENA(x) (((x) & 0x00000001) << 24) #define CP_COHER_CNTL__CB_ACTION_ENA(x) (((x) & 0x00000001) << 25) #define CP_COHER_CNTL__DB_ACTION_ENA(x) (((x) & 0x00000001) << 26) #define CP_COHER_CNTL__SH_ACTION_ENA(x) (((x) & 0x00000001) << 27) #define CP_COHER_CNTL__SMX_ACTION_ENA(x) (((x) & 0x00000001) << 28) #define CP_COHER_CNTL__CR0_ACTION_ENA(x) (((x) & 0x00000001) << 29) #define CP_COHER_CNTL__CR1_ACTION_ENA(x) (((x) & 0x00000001) << 30) #define CP_COHER_CNTL__CR2_ACTION_ENA(x) (((x) & 0x00000001) << 31) #define CP_STALLED_STAT1 0x00008674 #define CP_STALLED_STAT1__RBIU_TO_DMA_NOT_RDY_TO_RCV(x) (((x) & 0x00000001) << 0) #define CP_STALLED_STAT1__RBIU_TO_IBS_NOT_RDY_TO_RCV(x) (((x) & 0x00000001) << 1) #define CP_STALLED_STAT1__RBIU_TO_SEM_NOT_RDY_TO_RCV(x) (((x) & 0x00000001) << 2) #define CP_STALLED_STAT1__RBIU_TO_2DREGS_NOT_RDY_TO_RCV(x) (((x) & 0x00000001) << 3) #define CP_STALLED_STAT1__RBIU_TO_MEMWR_NOT_RDY_TO_RCV(x) (((x) & 0x00000001) << 4) #define CP_STALLED_STAT1__RBIU_TO_MEMRD_NOT_RDY_TO_RCV(x) (((x) & 0x00000001) << 5) #define CP_STALLED_STAT1__RBIU_TO_EOPD_NOT_RDY_TO_RCV(x) (((x) & 0x00000001) << 6) #define CP_STALLED_STAT1__RBIU_TO_RECT_NOT_RDY_TO_RCV(x) (((x) & 0x00000001) << 7) #define CP_STALLED_STAT1__RBIU_TO_STRMO_NOT_RDY_TO_RCV(x) (((x) & 0x00000001) << 8) #define CP_STALLED_STAT1__RBIU_TO_PSTAT_NOT_RDY_TO_RCV(x) (((x) & 0x00000001) << 9) #define CP_STALLED_STAT1__MIU_WAITING_ON_RDREQ_FREE(x) (((x) & 0x00000001) << 16) #define CP_STALLED_STAT1__MIU_WAITING_ON_WRREQ_FREE(x) (((x) & 0x00000001) << 17) #define CP_STALLED_STAT1__MIU_NEEDS_AVAIL_WRREQ_PHASE(x) (((x) & 0x00000001) << 18) #define CP_STALLED_STAT1__RCIU_WAITING_ON_GRBM_FREE(x) (((x) & 0x00000001) << 24) #define CP_STALLED_STAT1__RCIU_WAITING_ON_VGT_FREE(x) (((x) & 0x00000001) << 25) #define CP_STALLED_STAT1__RCIU_STALLED_ON_ME_READ(x) (((x) & 0x00000001) << 26) #define CP_STALLED_STAT1__RCIU_STALLED_ON_DMA_READ(x) (((x) & 0x00000001) << 27) #define CP_STALLED_STAT1__RCIU_HALTED_BY_REG_VIOLATION(x) (((x) & 0x00000001) << 28) #define CP_STALLED_STAT2 0x00008678 #define CP_STALLED_STAT2__PFP_TO_CSF_NOT_RDY_TO_RCV(x) (((x) & 0x00000001) << 0) #define CP_STALLED_STAT2__PFP_TO_MEQ_NOT_RDY_TO_RCV(x) (((x) & 0x00000001) << 1) #define CP_STALLED_STAT2__PFP_TO_VGT_NOT_RDY_TO_RCV(x) (((x) & 0x00000001) << 2) #define CP_STALLED_STAT2__PFP_HALTED_BY_INSTR_VIOLATION(x) (((x) & 0x00000001) << 3) #define CP_STALLED_STAT2__MULTIPASS_IB_PENDING_IN_PFP(x) (((x) & 0x00000001) << 4) #define CP_STALLED_STAT2__ME_BRUSH_WC_NOT_RDY_TO_RCV(x) (((x) & 0x00000001) << 8) #define CP_STALLED_STAT2__ME_STALLED_ON_BRUSH_LOGIC(x) (((x) & 0x00000001) << 9) #define CP_STALLED_STAT2__CR_CNTX_NOT_AVAIL_TO_ME(x) (((x) & 0x00000001) << 10) #define CP_STALLED_STAT2__GFX_CNTX_NOT_AVAIL_TO_ME(x) (((x) & 0x00000001) << 11) #define CP_STALLED_STAT2__ME_RCIU_NOT_RDY_TO_RCV(x) (((x) & 0x00000001) << 12) #define CP_STALLED_STAT2__ME_TO_CONST_NOT_RDY_TO_RCV(x) (((x) & 0x00000001) << 13) #define CP_STALLED_STAT2__ME_WAITING_DATA_FROM_PFP(x) (((x) & 0x00000001) << 14) #define CP_STALLED_STAT2__ME_WAITING_ON_PARTIAL_FLUSH(x) (((x) & 0x00000001) << 15) #define CP_STALLED_STAT2__RECT_FIFO_NEEDS_CR_RECT_DONE(x) (((x) & 0x00000001) << 16) #define CP_STALLED_STAT2__RECT_FIFO_NEEDS_WR_CONFIRM(x) (((x) & 0x00000001) << 17) #define CP_STALLED_STAT2__EOPD_FIFO_NEEDS_SC_EOP_DONE(x) (((x) & 0x00000001) << 18) #define CP_STALLED_STAT2__EOPD_FIFO_NEEDS_SMX_EOP_DONE(x) (((x) & 0x00000001) << 19) #define CP_STALLED_STAT2__EOPD_FIFO_NEEDS_WR_CONFIRM(x) (((x) & 0x00000001) << 20) #define CP_STALLED_STAT2__EOPD_FIFO_NEEDS_SIGNAL_SEM(x) (((x) & 0x00000001) << 21) #define CP_STALLED_STAT2__SO_NUMPRIM_FIFO_NEEDS_SOADDR(x) (((x) & 0x00000001) << 22) #define CP_STALLED_STAT2__SO_NUMPRIM_FIFO_NEEDS_NUMPRIM(x) (((x) & 0x00000001) << 23) #define CP_STALLED_STAT2__PIPE_STATS_FIFO_NEEDS_SAMPLE(x) (((x) & 0x00000001) << 24) #define CP_STALLED_STAT2__SURF_SYNC_NEEDS_IDLE_CNTXS(x) (((x) & 0x00000001) << 30) #define CP_STALLED_STAT2__SURF_SYNC_NEEDS_ALL_CLEAN(x) (((x) & 0x00000001) << 31) #define CP_BUSY_STAT 0x0000867c #define CP_BUSY_STAT__REG_BUS_FIFO_BUSY(x) (((x) & 0x00000001) << 0) #define CP_BUSY_STAT__RING_FETCHING_DATA(x) (((x) & 0x00000001) << 1) #define CP_BUSY_STAT__INDR1_FETCHING_DATA(x) (((x) & 0x00000001) << 2) #define CP_BUSY_STAT__INDR2_FETCHING_DATA(x) (((x) & 0x00000001) << 3) #define CP_BUSY_STAT__STATE_FETCHING_DATA(x) (((x) & 0x00000001) << 4) #define CP_BUSY_STAT__PRED_FETCHING_DATA(x) (((x) & 0x00000001) << 5) #define CP_BUSY_STAT__COHER_CNTR_NEQ_ZERO(x) (((x) & 0x00000001) << 6) #define CP_BUSY_STAT__PFP_PARSING_PACKETS(x) (((x) & 0x00000001) << 7) #define CP_BUSY_STAT__ME_PARSING_PACKETS(x) (((x) & 0x00000001) << 8) #define CP_BUSY_STAT__RCIU_PFP_BUSY(x) (((x) & 0x00000001) << 9) #define CP_BUSY_STAT__RCIU_ME_BUSY(x) (((x) & 0x00000001) << 10) #define CP_BUSY_STAT__OUTSTANDING_READ_TAGS(x) (((x) & 0x00000001) << 11) #define CP_BUSY_STAT__SEM_CMDFIFO_NOT_EMPTY(x) (((x) & 0x00000001) << 12) #define CP_BUSY_STAT__SEM_FAILED_AND_HOLDING(x) (((x) & 0x00000001) << 13) #define CP_BUSY_STAT__SEM_POLLING_FOR_PASS(x) (((x) & 0x00000001) << 14) #define CP_BUSY_STAT__X_3D_BUSY(x) (((x) & 0x00000001) << 15) #define CP_BUSY_STAT__X_2D_BUSY(x) (((x) & 0x00000001) << 16) #define CP_STAT 0x00008680 #define CP_STAT__CSF_RING_BUSY(x) (((x) & 0x00000001) << 0) #define CP_STAT__CSF_WPTR_POLL_BUSY(x) (((x) & 0x00000001) << 1) #define CP_STAT__CSF_INDIRECT1_BUSY(x) (((x) & 0x00000001) << 2) #define CP_STAT__CSF_INDIRECT2_BUSY(x) (((x) & 0x00000001) << 3) #define CP_STAT__CSF_STATE_BUSY(x) (((x) & 0x00000001) << 4) #define CP_STAT__CSF_PREDICATE_BUSY(x) (((x) & 0x00000001) << 5) #define CP_STAT__CSF_BUSY(x) (((x) & 0x00000001) << 6) #define CP_STAT__MIU_RDREQ_BUSY(x) (((x) & 0x00000001) << 7) #define CP_STAT__MIU_WRREQ_BUSY(x) (((x) & 0x00000001) << 8) #define CP_STAT__ROQ_RING_BUSY(x) (((x) & 0x00000001) << 9) #define CP_STAT__ROQ_INDIRECT1_BUSY(x) (((x) & 0x00000001) << 10) #define CP_STAT__ROQ_INDIRECT2_BUSY(x) (((x) & 0x00000001) << 11) #define CP_STAT__ROQ_STATE_BUSY(x) (((x) & 0x00000001) << 12) #define CP_STAT__ROQ_PREDICATE_BUSY(x) (((x) & 0x00000001) << 13) #define CP_STAT__ROQ_ALIGN_BUSY(x) (((x) & 0x00000001) << 14) #define CP_STAT__PFP_BUSY(x) (((x) & 0x00000001) << 15) #define CP_STAT__MEQ_BUSY(x) (((x) & 0x00000001) << 16) #define CP_STAT__ME_BUSY(x) (((x) & 0x00000001) << 17) #define CP_STAT__QUERY_BUSY(x) (((x) & 0x00000001) << 18) #define CP_STAT__SEMAPHORE_BUSY(x) (((x) & 0x00000001) << 19) #define CP_STAT__INTERRUPT_BUSY(x) (((x) & 0x00000001) << 20) #define CP_STAT__SURFACE_SYNC_BUSY(x) (((x) & 0x00000001) << 21) #define CP_STAT__DMA_BUSY(x) (((x) & 0x00000001) << 22) #define CP_STAT__RCIU_BUSY(x) (((x) & 0x00000001) << 23) #define CP_STAT__CP_STAT__CP_BUSY(x) (((x) & 0x00000001) << 31) #define CP_ME_CNTL 0x000086d8 #define CP_ME_CNTL__ME_STATMUX(x) (((x) & 0x000000ff) << 0) #define CP_ME_CNTL__ME_HALT(x) (((x) & 0x00000001) << 28) #define CP_ME_STATUS 0x000086dc #define CP_RB_RPTR 0x00008700 #define CP_RB_RPTR__RB_RPTR(x) (((x) & 0x000fffff) << 0) #define CP_RB_WPTR_DELAY 0x00008704 #define CP_RB_WPTR_DELAY__PRE_WRITE_TIMER(x) (((x) & 0x0fffffff) << 0) #define CP_RB_WPTR_DELAY__PRE_WRITE_LIMIT(x) (((x) & 0x0000000f) << 28) #define CP_ROQ_RB_STAT 0x00008780 #define CP_ROQ_RB_STAT__ROQ_RPTR_PRIMARY(x) (((x) & 0x000003ff) << 0) #define CP_ROQ_RB_STAT__ROQ_WPTR_PRIMARY(x) (((x) & 0x000003ff) << 16) #define CP_ROQ_IB1_STAT 0x00008784 #define CP_ROQ_IB1_STAT__ROQ_RPTR_INDIRECT1(x) (((x) & 0x000003ff) << 0) #define CP_ROQ_IB1_STAT__ROQ_WPTR_INDIRECT1(x) (((x) & 0x000003ff) << 16) #define CP_ROQ_IB2_STAT 0x00008788 #define CP_ROQ_IB2_STAT__ROQ_RPTR_INDIRECT2(x) (((x) & 0x000003ff) << 0) #define CP_ROQ_IB2_STAT__ROQ_WPTR_INDIRECT2(x) (((x) & 0x000003ff) << 16) #define CP_MEQ_STAT 0x00008794 #define CP_MEQ_STAT__MEQ_RPTR(x) (((x) & 0x000003ff) << 0) #define CP_MEQ_STAT__MEQ_WPTR(x) (((x) & 0x000003ff) << 16) #define CP_COHER_SIZE 0x000085f4 #define CP_COHER_BASE 0x000085f8 #define CP_COHER_STATUS 0x000085fc #define CP_COHER_STATUS__MATCHING_GFX_CNTX(x) (((x) & 0x000000ff) << 0) #define CP_COHER_STATUS__MATCHING_CR_CNTX(x) (((x) & 0x0000ffff) << 8) #define CP_COHER_STATUS__STATUS(x) (((x) & 0x00000001) << 31) #define VGT_VTX_VECT_EJECT_REG 0x000088b0 #define VGT_VTX_VECT_EJECT_REG__PRIM_COUNT(x) (((x) & 0x000003ff) << 0) #define VGT_LAST_COPY_STATE 0x000088c0 #define VGT_LAST_COPY_STATE__SRC_STATE_ID(x) (((x) & 0x00000007) << 0) #define VGT_LAST_COPY_STATE__DST_STATE_ID(x) (((x) & 0x00000007) << 16) #define VGT_CACHE_INVALIDATION 0x000088c4 #define VGT_CACHE_INVALIDATION__CACHE_INVALIDATION(x) (((x) & 0x00000003) << 0) #define VC_ONLY 0 #define TC_ONLY 1 #define VC_AND_TC 2 #define VGT_CACHE_INVALIDATION__VS_NO_EXTRA_BUFFER(x) (((x) & 0x00000001) << 5) #define VGT_GS_PER_ES 0x000088c8 #define VGT_ES_PER_GS 0x000088cc #define VGT_GS_VERTEX_REUSE 0x000088d4 #define VGT_GS_VERTEX_REUSE__VERT_REUSE(x) (((x) & 0x0000001f) << 0) #define VGT_MC_LAT_CNTL 0x000088d8 #define VGT_MC_LAT_CNTL__MC_TIME_STAMP_RES(x) (((x) & 0x00000003) << 0) #define X_0_992_MAX_LATENCY 0 #define X_0_496_MAX_LATENCY 1 #define X_0_248_MAX_LATENCY 2 #define X_0_124_MAX_LATENCY 3 #define VGT_GS_PER_VS 0x000088e8 #define VGT_GS_PER_VS__GS_PER_VS(x) (((x) & 0x0000000f) << 0) #define VGT_CNTL_STATUS 0x000088f0 #define VGT_CNTL_STATUS__VGT_OUT_INDX_BUSY(x) (((x) & 0x00000001) << 0) #define VGT_CNTL_STATUS__VGT_OUT_BUSY(x) (((x) & 0x00000001) << 1) #define VGT_CNTL_STATUS__VGT_PT_BUSY(x) (((x) & 0x00000001) << 2) #define VGT_CNTL_STATUS__VGT_TE_BUSY(x) (((x) & 0x00000001) << 3) #define VGT_CNTL_STATUS__VGT_VR_BUSY(x) (((x) & 0x00000001) << 4) #define VGT_CNTL_STATUS__VGT_GRP_BUSY(x) (((x) & 0x00000001) << 5) #define VGT_CNTL_STATUS__VGT_DMA_REQ_BUSY(x) (((x) & 0x00000001) << 6) #define VGT_CNTL_STATUS__VGT_DMA_BUSY(x) (((x) & 0x00000001) << 7) #define VGT_CNTL_STATUS__VGT_GS_BUSY(x) (((x) & 0x00000001) << 8) #define VGT_CNTL_STATUS__VGT_BUSY(x) (((x) & 0x00000001) << 9) #define CC_GC_SHADER_PIPE_CONFIG 0x00008950 #define CC_GC_SHADER_PIPE_CONFIG__INACTIVE_QD_PIPES(x) (((x) & 0x000000ff) << 8) #define R6XX_MAX_QD_PIPES 8 #define CC_GC_SHADER_PIPE_CONFIG__INACTIVE_SIMDS(x) (((x) & 0x000000ff) << 16) #define R6XX_MAX_SIMDS 8 #define GC_USER_SHADER_PIPE_CONFIG 0x00008954 #define VGT_PRIMITIVE_TYPE 0x00008958 #define VGT_PRIMITIVE_TYPE__PRIM_TYPE(x) (((x) & 0x0000003f) << 0) #define DI_PT_NONE 0 #define DI_PT_POINTLIST 1 #define DI_PT_LINELIST 2 #define DI_PT_LINESTRIP 3 #define DI_PT_TRILIST 4 #define DI_PT_TRIFAN 5 #define DI_PT_TRISTRIP 6 #define DI_PT_UNUSED_0 7 #define DI_PT_UNUSED_1 8 #define DI_PT_UNUSED_2 9 #define DI_PT_LINELIST_ADJ 10 #define DI_PT_LINESTRIP_ADJ 11 #define DI_PT_TRILIST_ADJ 12 #define DI_PT_TRISTRIP_ADJ 13 #define DI_PT_UNUSED_3 14 #define DI_PT_UNUSED_4 15 #define DI_PT_TRI_WITH_WFLAGS 16 #define DI_PT_RECTLIST 17 #define DI_PT_LINELOOP 18 #define DI_PT_QUADLIST 19 #define DI_PT_QUADSTRIP 20 #define DI_PT_POLYGON 21 #define DI_PT_2D_COPY_RECT_LIST_V0 22 #define DI_PT_2D_COPY_RECT_LIST_V1 23 #define DI_PT_2D_COPY_RECT_LIST_V2 24 #define DI_PT_2D_COPY_RECT_LIST_V3 25 #define DI_PT_2D_FILL_RECT_LIST 26 #define DI_PT_2D_LINE_STRIP 27 #define DI_PT_2D_TRI_STRIP 28 #define VGT_INDEX_TYPE 0x0000895c #define VGT_INDEX_TYPE__INDEX_TYPE(x) (((x) & 0x00000003) << 0) #define DI_INDEX_SIZE_16_BIT 0 #define DI_INDEX_SIZE_32_BIT 1 #define VGT_STRMOUT_BUFFER_FILLED_SIZE_0 0x00008960 #define VGT_STRMOUT_BUFFER_FILLED_SIZE_1 0x00008964 #define VGT_STRMOUT_BUFFER_FILLED_SIZE_2 0x00008968 #define VGT_STRMOUT_BUFFER_FILLED_SIZE_3 0x0000896c #define VGT_NUM_INDICES 0x00008970 #define VGT_NUM_INSTANCES 0x00008974 #define PA_CL_CNTL_STATUS 0x00008a10 #define PA_CL_CNTL_STATUS__CL_BUSY(x) (((x) & 0x00000001) << 31) #define PA_CL_ENHANCE 0x00008a14 #define PA_CL_ENHANCE__CLIP_VTX_REORDER_ENA(x) (((x) & 0x00000001) << 0) #define PA_CL_ENHANCE__NUM_CLIP_SEQ(x) (((x) & 0x00000003) << 1) #define PA_CL_ENHANCE__CLIPPED_PRIM_SEQ_STALL(x) (((x) & 0x00000001) << 3) #define PA_CL_ENHANCE__VE_NAN_PROC_DISABLE(x) (((x) & 0x00000001) << 4) #define PA_SU_CNTL_STATUS 0x00008a50 #define PA_SU_CNTL_STATUS__SU_BUSY(x) (((x) & 0x00000001) << 31) #define PA_SC_LINE_STIPPLE_STATE 0x00008b10 #define PA_SC_LINE_STIPPLE_STATE__CURRENT_PTR(x) (((x) & 0x0000000f) << 0) #define PA_SC_LINE_STIPPLE_STATE__CURRENT_COUNT(x) (((x) & 0x000000ff) << 8) #define PA_SC_MULTI_CHIP_CNTL 0x00008b20 #define PA_SC_MULTI_CHIP_CNTL__LOG2_NUM_CHIPS(x) (((x) & 0x00000007) << 0) #define PA_SC_MULTI_CHIP_CNTL__MULTI_CHIP_TILE_SIZE(x) (((x) & 0x00000003) << 3) #define X_16_X_16_PIXEL_TILE_PER_CHIP 0 #define X_32_X_32_PIXEL_TILE_PER_CHIP 1 #define X_64_X_64_PIXEL_TILE_PER_CHIP 2 #define X_128X128_PIXEL_TILE_PER_CHIP 3 #define PA_SC_MULTI_CHIP_CNTL__CHIP_TILE_X_LOC(x) (((x) & 0x00000007) << 5) #define PA_SC_MULTI_CHIP_CNTL__CHIP_TILE_Y_LOC(x) (((x) & 0x00000007) << 8) #define PA_SC_MULTI_CHIP_CNTL__CHIP_SUPER_TILE_B(x) (((x) & 0x00000001) << 11) #define PA_SC_AA_SAMPLE_LOCS_2S 0x00008b40 #define PA_SC_AA_SAMPLE_LOCS_2S__S0_X(x) (((x) & 0x0000000f) << 0) #define PA_SC_AA_SAMPLE_LOCS_2S__S0_Y(x) (((x) & 0x0000000f) << 4) #define PA_SC_AA_SAMPLE_LOCS_2S__S1_X(x) (((x) & 0x0000000f) << 8) #define PA_SC_AA_SAMPLE_LOCS_2S__S1_Y(x) (((x) & 0x0000000f) << 12) #define PA_SC_AA_SAMPLE_LOCS_4S 0x00008b44 #define PA_SC_AA_SAMPLE_LOCS_4S__S0_X(x) (((x) & 0x0000000f) << 0) #define PA_SC_AA_SAMPLE_LOCS_4S__S0_Y(x) (((x) & 0x0000000f) << 4) #define PA_SC_AA_SAMPLE_LOCS_4S__S1_X(x) (((x) & 0x0000000f) << 8) #define PA_SC_AA_SAMPLE_LOCS_4S__S1_Y(x) (((x) & 0x0000000f) << 12) #define PA_SC_AA_SAMPLE_LOCS_4S__S2_X(x) (((x) & 0x0000000f) << 16) #define PA_SC_AA_SAMPLE_LOCS_4S__S2_Y(x) (((x) & 0x0000000f) << 20) #define PA_SC_AA_SAMPLE_LOCS_4S__S3_X(x) (((x) & 0x0000000f) << 24) #define PA_SC_AA_SAMPLE_LOCS_4S__S3_Y(x) (((x) & 0x0000000f) << 28) #define PA_SC_AA_SAMPLE_LOCS_8S_WD0 0x00008b48 #define PA_SC_AA_SAMPLE_LOCS_8S_WD0__S0_X(x) (((x) & 0x0000000f) << 0) #define PA_SC_AA_SAMPLE_LOCS_8S_WD0__S0_Y(x) (((x) & 0x0000000f) << 4) #define PA_SC_AA_SAMPLE_LOCS_8S_WD0__S1_X(x) (((x) & 0x0000000f) << 8) #define PA_SC_AA_SAMPLE_LOCS_8S_WD0__S1_Y(x) (((x) & 0x0000000f) << 12) #define PA_SC_AA_SAMPLE_LOCS_8S_WD0__S2_X(x) (((x) & 0x0000000f) << 16) #define PA_SC_AA_SAMPLE_LOCS_8S_WD0__S2_Y(x) (((x) & 0x0000000f) << 20) #define PA_SC_AA_SAMPLE_LOCS_8S_WD0__S3_X(x) (((x) & 0x0000000f) << 24) #define PA_SC_AA_SAMPLE_LOCS_8S_WD0__S3_Y(x) (((x) & 0x0000000f) << 28) #define PA_SC_AA_SAMPLE_LOCS_8S_WD1 0x00008b4c #define PA_SC_AA_SAMPLE_LOCS_8S_WD1__S4_X(x) (((x) & 0x0000000f) << 0) #define PA_SC_AA_SAMPLE_LOCS_8S_WD1__S4_Y(x) (((x) & 0x0000000f) << 4) #define PA_SC_AA_SAMPLE_LOCS_8S_WD1__S5_X(x) (((x) & 0x0000000f) << 8) #define PA_SC_AA_SAMPLE_LOCS_8S_WD1__S5_Y(x) (((x) & 0x0000000f) << 12) #define PA_SC_AA_SAMPLE_LOCS_8S_WD1__S6_X(x) (((x) & 0x0000000f) << 16) #define PA_SC_AA_SAMPLE_LOCS_8S_WD1__S6_Y(x) (((x) & 0x0000000f) << 20) #define PA_SC_AA_SAMPLE_LOCS_8S_WD1__S7_X(x) (((x) & 0x0000000f) << 24) #define PA_SC_AA_SAMPLE_LOCS_8S_WD1__S7_Y(x) (((x) & 0x0000000f) << 28) #define PA_SC_CNTL_STATUS 0x00008be0 #define PA_SC_CNTL_STATUS__MPASS_OVERFLOW(x) (((x) & 0x00000001) << 30) #define PA_SC_ENHANCE 0x00008bf0 #define PA_SC_ENHANCE__FORCE_EOV_MAX_CLK_CNT(x) (((x) & 0x00000fff) << 0) #define PA_SC_ENHANCE__FORCE_EOV_MAX_TILE_CNT(x) (((x) & 0x00000fff) << 12) #define SQ_CONFIG 0x00008c00 #define SQ_CONFIG__VC_ENABLE(x) (((x) & 0x00000001) << 0) #define SQ_CONFIG__EXPORT_SRC_C(x) (((x) & 0x00000001) << 1) #define SQ_CONFIG__DX9_CONSTS(x) (((x) & 0x00000001) << 2) #define SQ_CONFIG__ALU_INST_PREFER_VECTOR(x) (((x) & 0x00000001) << 3) #define SQ_CONFIG__DX10_CLAMP(x) (((x) & 0x00000001) << 4) #define SQ_CONFIG__ALU_PREFER_ONE_WATERFALL(x) (((x) & 0x00000001) << 5) #define SQ_CONFIG__ALU_MAX_ONE_WATERFALL(x) (((x) & 0x00000001) << 6) #define SQ_CONFIG__CLAUSE_SEQ_PRIO(x) (((x) & 0x00000003) << 8) #define SQ_CL_PRIO_RND_ROBIN 0 #define SQ_CL_PRIO_MACRO_SEQ 1 #define SQ_CL_PRIO_NONE 2 #define SQ_CONFIG__PS_PRIO(x) (((x) & 0x00000003) << 24) #define SQ_CONFIG__VS_PRIO(x) (((x) & 0x00000003) << 26) #define SQ_CONFIG__GS_PRIO(x) (((x) & 0x00000003) << 28) #define SQ_CONFIG__ES_PRIO(x) (((x) & 0x00000003) << 30) #define SQ_GPR_RESOURCE_MGMT_1 0x00008c04 #define SQ_GPR_RESOURCE_MGMT_1__NUM_PS_GPRS(x) (((x) & 0x000000ff) << 0) #define SQ_GPR_RESOURCE_MGMT_1__NUM_VS_GPRS(x) (((x) & 0x000000ff) << 16) #define SQ_GPR_RESOURCE_MGMT_1__NUM_CLAUSE_TEMP_GPRS(x) (((x) & 0x0000000f) << 28) #define SQ_GPR_RESOURCE_MGMT_2 0x00008c08 #define SQ_GPR_RESOURCE_MGMT_2__NUM_GS_GPRS(x) (((x) & 0x000000ff) << 0) #define SQ_GPR_RESOURCE_MGMT_2__NUM_ES_GPRS(x) (((x) & 0x000000ff) << 16) #define SQ_THREAD_RESOURCE_MGMT 0x00008c0c #define SQ_THREAD_RESOURCE_MGMT__NUM_PS_THREADS(x) (((x) & 0x000000ff) << 0) #define SQ_THREAD_RESOURCE_MGMT__NUM_VS_THREADS(x) (((x) & 0x000000ff) << 8) #define SQ_THREAD_RESOURCE_MGMT__NUM_GS_THREADS(x) (((x) & 0x000000ff) << 16) #define SQ_THREAD_RESOURCE_MGMT__NUM_ES_THREADS(x) (((x) & 0x000000ff) << 24) #define SQ_STACK_RESOURCE_MGMT_1 0x00008c10 #define SQ_STACK_RESOURCE_MGMT_1__NUM_PS_STACK_ENTRIES(x) (((x) & 0x00000fff) << 0) #define SQ_STACK_RESOURCE_MGMT_1__NUM_VS_STACK_ENTRIES(x) (((x) & 0x00000fff) << 16) #define SQ_STACK_RESOURCE_MGMT_2 0x00008c14 #define SQ_STACK_RESOURCE_MGMT_2__NUM_GS_STACK_ENTRIES(x) (((x) & 0x00000fff) << 0) #define SQ_STACK_RESOURCE_MGMT_2__NUM_ES_STACK_ENTRIES(x) (((x) & 0x00000fff) << 16) #define SQ_ESGS_RING_BASE 0x00008c40 #define SQ_ESGS_RING_SIZE 0x00008c44 #define SQ_GSVS_RING_BASE 0x00008c48 #define SQ_GSVS_RING_SIZE 0x00008c4c #define SQ_ESTMP_RING_BASE 0x00008c50 #define SQ_ESTMP_RING_SIZE 0x00008c54 #define SQ_GSTMP_RING_BASE 0x00008c58 #define SQ_GSTMP_RING_SIZE 0x00008c5c #define SQ_VSTMP_RING_BASE 0x00008c60 #define SQ_VSTMP_RING_SIZE 0x00008c64 #define SQ_PSTMP_RING_BASE 0x00008c68 #define SQ_PSTMP_RING_SIZE 0x00008c6c #define SQ_FBUF_RING_BASE 0x00008c70 #define SQ_FBUF_RING_SIZE 0x00008c74 #define SQ_REDUC_RING_BASE 0x00008c78 #define SQ_REDUC_RING_SIZE 0x00008c7c #define SX_EXPORT_BUFFER_SIZES 0x0000900c #define SX_EXPORT_BUFFER_SIZES__COLOR_BUFFER_SIZE(x) (((x) & 0x000000ff) << 0) #define SX_EXPORT_BUFFER_SIZES__POSITION_BUFFER_SIZE(x) (((x) & 0x000000ff) << 8) #define SX_EXPORT_BUFFER_SIZES__SMX_BUFFER_SIZE(x) (((x) & 0x000000ff) << 16) #define SX_MEMORY_EXPORT_BASE 0x00009010 #define SX_MEMORY_EXPORT_SIZE 0x00009014 #define SPI_CONFIG_CNTL 0x00009100 #define SPI_CONFIG_CNTL__GPR_WRITE_PRIORITY(x) (((x) & 0x0000001f) << 0) #define X_PRIORITY_ORDER 0 #define X_PRIORITY_ORDER_VS 1 #define SPI_CONFIG_CNTL__DISABLE_INTERP_1(x) (((x) & 0x00000001) << 5) #define SPI_CONFIG_CNTL__DEBUG_THREAD_TYPE_SEL(x) (((x) & 0x00000003) << 6) #define SPI_CONFIG_CNTL__DEBUG_GROUP_SEL(x) (((x) & 0x0000001f) << 8) #define SPI_CONFIG_CNTL__DEBUG_GRBM_OVERRIDE(x) (((x) & 0x00000001) << 13) #define SPI_CONFIG_CNTL_1 0x0000913c #define SPI_CONFIG_CNTL_1__VTX_DONE_DELAY(x) (((x) & 0x0000000f) << 0) #define X_DELAY_10_CLKS 0 #define X_DELAY_11_CLKS 1 #define X_DELAY_12_CLKS 2 #define X_DELAY_13_CLKS 3 #define X_DELAY_14_CLKS 4 #define X_DELAY_15_CLKS 5 #define X_DELAY_16_CLKS 6 #define X_DELAY_17_CLKS 7 #define X_DELAY_2_CLKS 8 #define X_DELAY_3_CLKS 9 #define X_DELAY_4_CLKS 10 #define X_DELAY_5_CLKS 11 #define X_DELAY_6_CLKS 12 #define X_DELAY_7_CLKS 13 #define X_DELAY_8_CLKS 14 #define X_DELAY_9_CLKS 15 #define SPI_CONFIG_CNTL_1__INTERP_ONE_PRIM_PER_ROW(x) (((x) & 0x00000001) << 4) #define TD_FILTER4 0x00009400 #define TD_FILTER4__WEIGHT_1(x) (((x) & 0x000007ff) << 0) #define TD_FILTER4__WEIGHT_0(x) (((x) & 0x000007ff) << 11) #define TD_FILTER4__WEIGHT_PAIR(x) (((x) & 0x00000001) << 22) #define TD_FILTER4__PHASE(x) (((x) & 0x0000000f) << 23) #define TD_FILTER4__DIRECTION(x) (((x) & 0x00000001) << 27) #define TD_FILTER4_1 0x00009404 #define TD_FILTER4_1__WEIGHT_1(x) (((x) & 0x000007ff) << 0) #define TD_FILTER4_1__WEIGHT_0(x) (((x) & 0x000007ff) << 11) #define TD_CNTL 0x00009490 #define TD_CNTL__SYNC_PHASE_SH(x) (((x) & 0x00000003) << 0) #define TD_CNTL__SYNC_PHASE_VC_SMX(x) (((x) & 0x00000003) << 4) #define TD0_CNTL 0x00009494 #define TD0_CNTL__ID_OVERRIDE(x) (((x) & 0x00000003) << 28) #define TD0_STATUS 0x000094a4 #define TD0_STATUS__BUSY(x) (((x) & 0x00000001) << 31) #define TA_CNTL 0x00009504 #define TA_CNTL__GRADIENT_CREDIT(x) (((x) & 0x0000001f) << 0) #define TA_CNTL__WALKER_CREDIT(x) (((x) & 0x0000001f) << 8) #define TA_CNTL__ALIGNER_CREDIT(x) (((x) & 0x0000001f) << 16) #define TA_CNTL__TD_FIFO_CREDIT(x) (((x) & 0x000003ff) << 22) #define TA_CNTL_AUX 0x00009508 #define TA_CNTL_AUX__DISABLE_CUBE_WRAP(x) (((x) & 0x00000001) << 0) #define TA_CNTL_AUX__SYNC_GRADIENT(x) (((x) & 0x00000001) << 24) #define TA_CNTL_AUX__SYNC_WALKER(x) (((x) & 0x00000001) << 25) #define TA_CNTL_AUX__SYNC_ALIGNER(x) (((x) & 0x00000001) << 26) #define TA_CNTL_AUX__BILINEAR_PRECISION(x) (((x) & 0x00000001) << 31) #define TA0_CNTL 0x00009510 #define TA0_CNTL__ID_OVERRIDE(x) (((x) & 0x00000003) << 28) #define TA1_CNTL 0x00009514 #define TA1_CNTL__ID_OVERRIDE(x) (((x) & 0x00000003) << 28) #define TA2_CNTL 0x00009518 #define TA2_CNTL__ID_OVERRIDE(x) (((x) & 0x00000003) << 28) #define TA3_CNTL 0x0000951c #define TA3_CNTL__ID_OVERRIDE(x) (((x) & 0x00000003) << 28) #define TA0_STATUS 0x00009520 #define TA0_STATUS__FG_PFIFO_EMPTYB(x) (((x) & 0x00000001) << 12) #define TA0_STATUS__FG_LFIFO_EMPTYB(x) (((x) & 0x00000001) << 13) #define TA0_STATUS__FG_SFIFO_EMPTYB(x) (((x) & 0x00000001) << 14) #define TA0_STATUS__FL_PFIFO_EMPTYB(x) (((x) & 0x00000001) << 16) #define TA0_STATUS__FL_LFIFO_EMPTYB(x) (((x) & 0x00000001) << 17) #define TA0_STATUS__FL_SFIFO_EMPTYB(x) (((x) & 0x00000001) << 18) #define TA0_STATUS__FA_PFIFO_EMPTYB(x) (((x) & 0x00000001) << 20) #define TA0_STATUS__FA_LFIFO_EMPTYB(x) (((x) & 0x00000001) << 21) #define TA0_STATUS__FA_SFIFO_EMPTYB(x) (((x) & 0x00000001) << 22) #define TA0_STATUS__IN_BUSY(x) (((x) & 0x00000001) << 24) #define TA0_STATUS__FG_BUSY(x) (((x) & 0x00000001) << 25) #define TA0_STATUS__FL_BUSY(x) (((x) & 0x00000001) << 27) #define TA0_STATUS__TA_BUSY(x) (((x) & 0x00000001) << 28) #define TA0_STATUS__FA_BUSY(x) (((x) & 0x00000001) << 29) #define TA0_STATUS__AL_BUSY(x) (((x) & 0x00000001) << 30) #define TA0_STATUS__BUSY(x) (((x) & 0x00000001) << 31) #define TA1_STATUS 0x00009524 #define TA1_STATUS__FG_PFIFO_EMPTYB(x) (((x) & 0x00000001) << 12) #define TA1_STATUS__FG_LFIFO_EMPTYB(x) (((x) & 0x00000001) << 13) #define TA1_STATUS__FG_SFIFO_EMPTYB(x) (((x) & 0x00000001) << 14) #define TA1_STATUS__FL_PFIFO_EMPTYB(x) (((x) & 0x00000001) << 16) #define TA1_STATUS__FL_LFIFO_EMPTYB(x) (((x) & 0x00000001) << 17) #define TA1_STATUS__FL_SFIFO_EMPTYB(x) (((x) & 0x00000001) << 18) #define TA1_STATUS__FA_PFIFO_EMPTYB(x) (((x) & 0x00000001) << 20) #define TA1_STATUS__FA_LFIFO_EMPTYB(x) (((x) & 0x00000001) << 21) #define TA1_STATUS__FA_SFIFO_EMPTYB(x) (((x) & 0x00000001) << 22) #define TA1_STATUS__IN_BUSY(x) (((x) & 0x00000001) << 24) #define TA1_STATUS__FG_BUSY(x) (((x) & 0x00000001) << 25) #define TA1_STATUS__FL_BUSY(x) (((x) & 0x00000001) << 27) #define TA1_STATUS__TA_BUSY(x) (((x) & 0x00000001) << 28) #define TA1_STATUS__FA_BUSY(x) (((x) & 0x00000001) << 29) #define TA1_STATUS__AL_BUSY(x) (((x) & 0x00000001) << 30) #define TA1_STATUS__BUSY(x) (((x) & 0x00000001) << 31) #define TA2_STATUS 0x00009528 #define TA2_STATUS__FG_PFIFO_EMPTYB(x) (((x) & 0x00000001) << 12) #define TA2_STATUS__FG_LFIFO_EMPTYB(x) (((x) & 0x00000001) << 13) #define TA2_STATUS__FG_SFIFO_EMPTYB(x) (((x) & 0x00000001) << 14) #define TA2_STATUS__FL_PFIFO_EMPTYB(x) (((x) & 0x00000001) << 16) #define TA2_STATUS__FL_LFIFO_EMPTYB(x) (((x) & 0x00000001) << 17) #define TA2_STATUS__FL_SFIFO_EMPTYB(x) (((x) & 0x00000001) << 18) #define TA2_STATUS__FA_PFIFO_EMPTYB(x) (((x) & 0x00000001) << 20) #define TA2_STATUS__FA_LFIFO_EMPTYB(x) (((x) & 0x00000001) << 21) #define TA2_STATUS__FA_SFIFO_EMPTYB(x) (((x) & 0x00000001) << 22) #define TA2_STATUS__IN_BUSY(x) (((x) & 0x00000001) << 24) #define TA2_STATUS__FG_BUSY(x) (((x) & 0x00000001) << 25) #define TA2_STATUS__FL_BUSY(x) (((x) & 0x00000001) << 27) #define TA2_STATUS__TA_BUSY(x) (((x) & 0x00000001) << 28) #define TA2_STATUS__FA_BUSY(x) (((x) & 0x00000001) << 29) #define TA2_STATUS__AL_BUSY(x) (((x) & 0x00000001) << 30) #define TA2_STATUS__BUSY(x) (((x) & 0x00000001) << 31) #define TA3_STATUS 0x0000952c #define TA3_STATUS__FG_PFIFO_EMPTYB(x) (((x) & 0x00000001) << 12) #define TA3_STATUS__FG_LFIFO_EMPTYB(x) (((x) & 0x00000001) << 13) #define TA3_STATUS__FG_SFIFO_EMPTYB(x) (((x) & 0x00000001) << 14) #define TA3_STATUS__FL_PFIFO_EMPTYB(x) (((x) & 0x00000001) << 16) #define TA3_STATUS__FL_LFIFO_EMPTYB(x) (((x) & 0x00000001) << 17) #define TA3_STATUS__FL_SFIFO_EMPTYB(x) (((x) & 0x00000001) << 18) #define TA3_STATUS__FA_PFIFO_EMPTYB(x) (((x) & 0x00000001) << 20) #define TA3_STATUS__FA_LFIFO_EMPTYB(x) (((x) & 0x00000001) << 21) #define TA3_STATUS__FA_SFIFO_EMPTYB(x) (((x) & 0x00000001) << 22) #define TA3_STATUS__IN_BUSY(x) (((x) & 0x00000001) << 24) #define TA3_STATUS__FG_BUSY(x) (((x) & 0x00000001) << 25) #define TA3_STATUS__FL_BUSY(x) (((x) & 0x00000001) << 27) #define TA3_STATUS__TA_BUSY(x) (((x) & 0x00000001) << 28) #define TA3_STATUS__FA_BUSY(x) (((x) & 0x00000001) << 29) #define TA3_STATUS__AL_BUSY(x) (((x) & 0x00000001) << 30) #define TA3_STATUS__BUSY(x) (((x) & 0x00000001) << 31) #define TC_STATUS 0x00009600 #define TC_STATUS__TC_BUSY(x) (((x) & 0x00000001) << 0) #define TC_INVALIDATE 0x00009604 #define TC_INVALIDATE__START(x) (((x) & 0x00000001) << 0) #define TC_CNTL 0x00009608 #define TC_CNTL__FORCE_HIT(x) (((x) & 0x00000001) << 0) #define TC_CNTL__FORCE_MISS(x) (((x) & 0x00000001) << 1) #define TC_CNTL__L2_SIZE(x) (((x) & 0x0000000f) << 5) #define L2_256K 0 #define L2_224K 1 #define L2_192K 2 #define L2_160K 3 #define L2_128K 4 #define L2_96K 5 #define L2_64K 6 #define L2_32K 7 #define TC_CNTL__L2_DISABLE_LATE_HIT(x) (((x) & 0x00000001) << 9) #define TC_CNTL__DISABLE_VERT_PERF(x) (((x) & 0x00000001) << 10) #define TC_CNTL__DISABLE_INVAL_BUSY(x) (((x) & 0x00000001) << 11) #define TC_CNTL__DISABLE_INVAL_SAME_SURFACE(x) (((x) & 0x00000001) << 12) #define TC_CNTL__PARTITION_MODE(x) (((x) & 0x00000003) << 13) #define X_VERTEX 0 #define TC_CNTL__MISS_ARB_MODE(x) (((x) & 0x00000001) << 15) #define TC_CNTL__HIT_ARB_MODE(x) (((x) & 0x00000001) << 16) #define TC_CNTL__DISABLE_WRITE_DELAY(x) (((x) & 0x00000001) << 17) #define TC_CNTL__HIT_FIFO_DEPTH(x) (((x) & 0x00000001) << 18) #define VC_CNTL 0x00009700 #define VC_CNTL__L2_INVALIDATE(x) (((x) & 0x00000001) << 0) #define VC_CNTL__RESERVED(x) (((x) & 0x00000001) << 1) #define VC_CNTL__CC_FORCE_MISS(x) (((x) & 0x00000001) << 2) #define VC_CNTL__MI_CHAN_SEL(x) (((x) & 0x00000003) << 3) #define X_MC0_USES_CH_0_1 0 #define X_MC0_USES_CH_0_3 1 #define X_VC_MC0_IS_ACTIVE 2 #define X_VC_MC1_IS_DISABLED 3 #define VC_CNTL__MI_STEER_DISABLE(x) (((x) & 0x00000001) << 5) #define VC_CNTL__MI_CREDIT_CTR(x) (((x) & 0x0000000f) << 6) #define VC_CNTL__MI_CREDIT_WE(x) (((x) & 0x00000001) << 10) #define VC_CNTL__MI_REQ_STALL_THLD(x) (((x) & 0x00000007) << 11) #define X_LATENCY_EXCEEDS_399_CLOCKS 0 #define X_LATENCY_EXCEEDS_415_CLOCKS 1 #define X_LATENCY_EXCEEDS_431_CLOCKS 2 #define X_LATENCY_EXCEEDS_447_CLOCKS 3 #define X_LATENCY_EXCEEDS_463_CLOCKS 4 #define X_LATENCY_EXCEEDS_479_CLOCKS 5 #define X_LATENCY_EXCEEDS_495_CLOCKS 6 #define X_LATENCY_EXCEEDS_511_CLOCKS 7 #define VC_CNTL__MI_TIMESTAMP_RES(x) (((x) & 0x0000001f) << 14) #define X_1X_SYSTEM_CLOCK 0 #define X_2X_SYSTEM_CLOCK 1 #define X_4X_SYSTEM_CLOCK 2 #define X_8X_SYSTEM_CLOCK 3 #define X_16X_SYSTEM_CLOCK 4 #define X_32X_SYSTEM_CLOCK 5 #define X_64X_SYSTEM_CLOCK 6 #define X_128X_SYSTEM_CLOCK 7 #define X_256X_SYSTEM_CLOCK 8 #define X_512X_SYSTEM_CLOCK 9 #define X_1024X_SYSTEM_CLOCK 10 #define X_2048X_SYSTEM_CLOCK 11 #define X_4092X_SYSTEM_CLOCK 12 #define X_8192X_SYSTEM_CLOCK 13 #define X_16384X_SYSTEM_CLOCK 14 #define X_32768X_SYSTEM_CLOCK 15 #define VC_CNTL_STATUS 0x00009704 #define VC_CNTL_STATUS__RP_BUSY(x) (((x) & 0x00000001) << 0) #define VC_CNTL_STATUS__RG_BUSY(x) (((x) & 0x00000001) << 1) #define VC_CNTL_STATUS__VC_BUSY(x) (((x) & 0x00000001) << 2) #define VC_CNTL_STATUS__CLAMP_DETECT(x) (((x) & 0x00000001) << 3) #define VC_ENHANCE 0x00009714 #define VC_CONFIG 0x00009718 #define VC_CONFIG__WRITE_DIS(x) (((x) & 0x00000001) << 0) #define VC_CONFIG__GPR_DATA_PHASE_ADJ(x) (((x) & 0x00000007) << 1) #define X_LATENCY_BASE_0_CYCLES 0 #define X_LATENCY_BASE_1_CYCLES 1 #define X_LATENCY_BASE_2_CYCLES 2 #define X_LATENCY_BASE_3_CYCLES 3 #define VC_CONFIG__TD_SIMD_SYNC_ADJ(x) (((x) & 0x00000007) << 4) #define X_0_CYCLES_DELAY 0 #define X_1_CYCLES_DELAY 1 #define X_2_CYCLES_DELAY 2 #define X_3_CYCLES_DELAY 3 #define X_4_CYCLES_DELAY 4 #define X_5_CYCLES_DELAY 5 #define X_6_CYCLES_DELAY 6 #define X_7_CYCLES_DELAY 7 #define DB_DEBUG 0x00009830 #define DB_WATERMARKS 0x00009838 #define DB_WATERMARKS__DEPTH_FREE(x) (((x) & 0x0000001f) << 0) #define DB_WATERMARKS__DEPTH_FLUSH(x) (((x) & 0x0000003f) << 5) #define DB_WATERMARKS__FORCE_SUMMARIZE(x) (((x) & 0x0000000f) << 11) #define DB_WATERMARKS__DEPTH_PENDING_FREE(x) (((x) & 0x0000001f) << 15) #define DB_WATERMARKS__DEPTH_CACHELINE_FREE(x) (((x) & 0x0000001f) << 20) #define DB_WATERMARKS__EARLY_Z_PANIC_DISABLE(x) (((x) & 0x00000001) << 25) #define DB_WATERMARKS__LATE_Z_PANIC_DISABLE(x) (((x) & 0x00000001) << 26) #define DB_WATERMARKS__RE_Z_PANIC_DISABLE(x) (((x) & 0x00000001) << 27) #define DB_WATERMARKS__DB_EXTRA_DEBUG(x) (((x) & 0x0000000f) << 28) #define SMX_DC_CTL0 0x0000a020 #define SMX_DC_CTL0__WR_GATHER_STREAM0(x) (((x) & 0x00000001) << 0) #define SMX_DC_CTL0__WR_GATHER_STREAM1(x) (((x) & 0x00000001) << 1) #define SMX_DC_CTL0__WR_GATHER_STREAM2(x) (((x) & 0x00000001) << 2) #define SMX_DC_CTL0__WR_GATHER_STREAM3(x) (((x) & 0x00000001) << 3) #define SMX_DC_CTL0__WR_GATHER_SCRATCH(x) (((x) & 0x00000001) << 4) #define SMX_DC_CTL0__WR_GATHER_REDUC_BUF(x) (((x) & 0x00000001) << 5) #define SMX_DC_CTL0__WR_GATHER_RING_BUF(x) (((x) & 0x00000001) << 6) #define SMX_DC_CTL0__WR_GATHER_F_BUF(x) (((x) & 0x00000001) << 7) #define SMX_DC_CTL0__DISABLE_CACHES(x) (((x) & 0x00000001) << 8) #define SMX_DC_CTL0__AUTO_FLUSH_INVAL_EN(x) (((x) & 0x00000001) << 10) #define SMX_DC_CTL0__AUTO_FLUSH_EN(x) (((x) & 0x00000001) << 11) #define SMX_DC_CTL0__AUTO_FLUSH_CNT(x) (((x) & 0x0000ffff) << 12) #define SMX_DC_CTL0__MC_RD_STALL_FACTOR(x) (((x) & 0x00000003) << 28) #define SMX_DC_CTL0__MC_WR_STALL_FACTOR(x) (((x) & 0x00000003) << 30) #define SMX_DC_CTL1 0x0000a024 #define SMX_DC_CTL1__OP_FIFO_SKID(x) (((x) & 0x0000007f) << 0) #define SMX_DC_CTL1__CACHE_LINE_SIZE(x) (((x) & 0x00000001) << 8) #define SMX_DC_CTL1__MULTI_FLUSH_MODE(x) (((x) & 0x00000001) << 9) #define SMX_DC_CTL1__MULTI_FLUSH_REQ_ABORT_IDX_FIFO_SKID(x) (((x) & 0x0000000f) << 10) #define SMX_DC_CTL1__DISABLE_WR_GATHER_RD_HIT_FORCE_EVICT(x)(((x) & 0x00000001) << 16) #define SMX_DC_CTL1__DISABLE_WR_GATHER_RD_HIT_COMP_VLDS_CHECK(x) (((x) & 0x00000001) << 17) #define SMX_DC_CTL1__DISABLE_FLUSH_ES_ALSO_INVALS(x) (((x) & 0x00000001) << 18) #define SMX_DC_CTL1__DISABLE_FLUSH_GS_ALSO_INVALS(x) (((x) & 0x00000001) << 19) #define SMX_DC_CTL2 0x0000a028 #define SMX_DC_CTL2__INVALIDATE_CACHES(x) (((x) & 0x00000001) << 0) #define SMX_DC_CTL2__CACHES_INVALID(x) (((x) & 0x00000001) << 1) #define SMX_DC_CTL2__CACHES_DIRTY(x) (((x) & 0x00000001) << 2) #define SMX_DC_CTL2__FLUSH_ALL(x) (((x) & 0x00000001) << 4) #define SMX_DC_CTL2__FLUSH_GS_THREADS(x) (((x) & 0x00000001) << 8) #define SMX_DC_CTL2__FLUSH_ES_THREADS(x) (((x) & 0x00000001) << 9) #define SMX_DC_MC_INTF_CTL 0x0000a02c #define SMX_DC_MC_INTF_CTL__MC_RD_REQ_CRED(x) (((x) & 0x000000ff) << 0) #define SMX_DC_MC_INTF_CTL__MC_WR_REQ_CRED(x) (((x) & 0x000000ff) << 16) #define TD_PS_SAMPLER0_BORDER_RED 0x0000a400 #define TD_PS_SAMPLER0_BORDER_GREEN 0x0000a404 #define TD_PS_SAMPLER0_BORDER_BLUE 0x0000a408 #define TD_PS_SAMPLER0_BORDER_ALPHA 0x0000a40c #define TD_VS_SAMPLER0_BORDER_RED 0x0000a600 #define TD_VS_SAMPLER0_BORDER_GREEN 0x0000a604 #define TD_VS_SAMPLER0_BORDER_BLUE 0x0000a608 #define TD_VS_SAMPLER0_BORDER_ALPHA 0x0000a60c #define TD_GS_SAMPLER0_BORDER_RED 0x0000a800 #define TD_GS_SAMPLER0_BORDER_GREEN 0x0000a804 #define TD_GS_SAMPLER0_BORDER_BLUE 0x0000a808 #define TD_GS_SAMPLER0_BORDER_ALPHA 0x0000a80c #define TD_PS_SAMPLER0_CLEARTYPE_KERNEL 0x0000aa00 #define TD_PS_SAMPLER0_CLEARTYPE_KERNEL__WIDTH(x) (((x) & 0x00000007) << 0) #define TD_PS_SAMPLER0_CLEARTYPE_KERNEL__HEIGHT(x) (((x) & 0x00000007) << 3) /***************************************************************************** * CONTEXT REG [0x00028000 0x00029000] */ #define DB_DEPTH_SIZE 0x00028000 #define DB_DEPTH_SIZE__PITCH_TILE_MAX(x) (((x) & 0x000003ff) << 0) #define DB_DEPTH_SIZE__SLICE_TILE_MAX(x) (((x) & 0x000fffff) << 10) #define DB_DEPTH_VIEW 0x00028004 #define DB_DEPTH_VIEW__SLICE_START(x) (((x) & 0x000007ff) << 0) #define DB_DEPTH_VIEW__SLICE_MAX(x) (((x) & 0x000007ff) << 13) #define DB_DEPTH_BASE 0x0002800c #define DB_DEPTH_INFO 0x00028010 #define DB_DEPTH_INFO__FORMAT(x) (((x) & 0x00000007) << 0) #define DEPTH_INVALID 0 #define DEPTH_16 1 #define DEPTH_X8_24 2 #define DEPTH_8_24 3 #define DEPTH_X8_24_FLOAT 4 #define DEPTH_8_24_FLOAT 5 #define DEPTH_32_FLOAT 6 #define DEPTH_X24_8_32_FLOAT 7 #define DB_DEPTH_INFO__READ_SIZE(x) (((x) & 0x00000001) << 3) #define DB_DEPTH_INFO__ARRAY_MODE(x) (((x) & 0x0000000f) << 15) #define ARRAY_1D_TILED_THIN1 2 #define ARRAY_2D_TILED_THIN1 4 #define DB_DEPTH_INFO__TILE_SURFACE_ENABLE(x) (((x) & 0x00000001) << 25) #define DB_DEPTH_INFO__TILE_COMPACT(x) (((x) & 0x00000001) << 26) #define DB_DEPTH_INFO__ZRANGE_PRECISION(x) (((x) & 0x00000001) << 31) #define DB_HTILE_DATA_BASE 0x00028014 #define DB_STENCIL_CLEAR 0x00028028 #define DB_STENCIL_CLEAR__CLEAR(x) (((x) & 0x000000ff) << 0) #define DB_STENCIL_CLEAR__MIN(x) (((x) & 0x000000ff) << 16) #define DB_DEPTH_CLEAR 0x0002802c #define PA_SC_SCREEN_SCISSOR_TL 0x00028030 #define PA_SC_SCREEN_SCISSOR_TL__TL_X(x) (((x) & 0x00007fff) << 0) #define PA_SC_SCREEN_SCISSOR_TL__TL_Y(x) (((x) & 0x00007fff) << 16) #define PA_SC_SCREEN_SCISSOR_BR 0x00028034 #define PA_SC_SCREEN_SCISSOR_BR__BR_X(x) (((x) & 0x00007fff) << 0) #define PA_SC_SCREEN_SCISSOR_BR__BR_Y(x) (((x) & 0x00007fff) << 16) #define CB_COLOR0_BASE 0x00028040 #define CB_COLOR1_BASE 0x00028044 #define CB_COLOR2_BASE 0x00028048 #define CB_COLOR3_BASE 0x0002804c #define CB_COLOR4_BASE 0x00028050 #define CB_COLOR5_BASE 0x00028054 #define CB_COLOR6_BASE 0x00028058 #define CB_COLOR7_BASE 0x0002805c #define CB_COLOR0_SIZE 0x00028060 #define CB_COLOR0_SIZE__PITCH_TILE_MAX(x) (((x) & 0x000003ff) << 0) #define CB_COLOR0_SIZE__SLICE_TILE_MAX(x) (((x) & 0x000fffff) << 10) #define CB_COLOR1_SIZE 0x00028064 #define CB_COLOR2_SIZE 0x00028068 #define CB_COLOR3_SIZE 0x0002806c #define CB_COLOR4_SIZE 0x00028070 #define CB_COLOR5_SIZE 0x00028074 #define CB_COLOR6_SIZE 0x00028078 #define CB_COLOR7_SIZE 0x0002807c #define CB_COLOR0_VIEW 0x00028080 #define CB_COLOR0_VIEW__SLICE_START(x) (((x) & 0x000007ff) << 0) #define CB_COLOR0_VIEW__SLICE_MAX(x) (((x) & 0x000007ff) << 13) #define CB_COLOR1_VIEW 0x00028084 #define CB_COLOR2_VIEW 0x00028088 #define CB_COLOR3_VIEW 0x0002808c #define CB_COLOR4_VIEW 0x00028090 #define CB_COLOR5_VIEW 0x00028094 #define CB_COLOR6_VIEW 0x00028098 #define CB_COLOR7_VIEW 0x0002809c #define CB_COLOR0_INFO 0x000280a0 #define CB_COLOR0_INFO__ENDIAN(x) (((x) & 0x00000003) << 0) #define ENDIAN_NONE 0 #define ENDIAN_8IN16 1 #define ENDIAN_8IN32 2 #define ENDIAN_8IN64 3 #define CB_COLOR0_INFO__FORMAT(x) (((x) & 0x0000003f) << 2) #define COLOR_INVALID 0 #define COLOR_8 1 #define COLOR_4_4 2 #define COLOR_3_3_2 3 #define COLOR_16 5 #define COLOR_16_FLOAT 6 #define COLOR_8_8 7 #define COLOR_5_6_5 8 #define COLOR_6_5_5 9 #define COLOR_1_5_5_5 10 #define COLOR_4_4_4_4 11 #define COLOR_5_5_5_1 12 #define COLOR_32 13 #define COLOR_32_FLOAT 14 #define COLOR_16_16 15 #define COLOR_16_16_FLOAT 16 #define COLOR_8_24 17 #define COLOR_8_24_FLOAT 18 #define COLOR_24_8 19 #define COLOR_24_8_FLOAT 20 #define COLOR_10_11_11 21 #define COLOR_10_11_11_FLOAT 22 #define COLOR_11_11_10 23 #define COLOR_11_11_10_FLOAT 24 #define COLOR_2_10_10_10 25 #define COLOR_8_8_8_8 26 #define COLOR_10_10_10_2 27 #define COLOR_X24_8_32_FLOAT 28 #define COLOR_32_32 29 #define COLOR_32_32_FLOAT 30 #define COLOR_16_16_16_16 31 #define COLOR_16_16_16_16_FLOAT 32 #define COLOR_32_32_32_32 34 #define COLOR_32_32_32_32_FLOAT 35 #define CB_COLOR0_INFO__ARRAY_MODE(x) (((x) & 0x0000000f) << 8) #define ARRAY_LINEAR_GENERAL 0 #define ARRAY_LINEAR_ALIGNED 1 #define ARRAY_2D_TILED_THIN1 4 #define CB_COLOR0_INFO__NUMBER_TYPE(x) (((x) & 0x00000007) << 12) #define NUMBER_UNORM 0 #define NUMBER_SNORM 1 #define NUMBER_USCALED 2 #define NUMBER_SSCALED 3 #define NUMBER_UINT 4 #define NUMBER_SINT 5 #define NUMBER_SRGB 6 #define NUMBER_FLOAT 7 #define CB_COLOR0_INFO__READ_SIZE(x) (((x) & 0x00000001) << 15) #define CB_COLOR0_INFO__COMP_SWAP(x) (((x) & 0x00000003) << 16) #define SWAP_STD 0 #define SWAP_ALT 1 #define SWAP_STD_REV 2 #define SWAP_ALT_REV 3 #define CB_COLOR0_INFO__TILE_MODE(x) (((x) & 0x00000003) << 18) #define TILE_DISABLE 0 #define TILE_CLEAR_ENABLE 1 #define TILE_FRAG_ENABLE 2 #define CB_COLOR0_INFO__BLEND_CLAMP(x) (((x) & 0x00000001) << 20) #define CB_COLOR0_INFO__CLEAR_COLOR(x) (((x) & 0x00000001) << 21) #define CB_COLOR0_INFO__BLEND_BYPASS(x) (((x) & 0x00000001) << 22) #define CB_COLOR0_INFO__BLEND_FLOAT32(x) (((x) & 0x00000001) << 23) #define CB_COLOR0_INFO__SIMPLE_FLOAT(x) (((x) & 0x00000001) << 24) #define CB_COLOR0_INFO__ROUND_MODE(x) (((x) & 0x00000001) << 25) #define CB_COLOR0_INFO__TILE_COMPACT(x) (((x) & 0x00000001) << 26) #define CB_COLOR0_INFO__SOURCE_FORMAT(x) (((x) & 0x00000001) << 27) #define CB_COLOR1_INFO 0x000280a4 #define CB_COLOR2_INFO 0x000280a8 #define CB_COLOR3_INFO 0x000280ac #define CB_COLOR4_INFO 0x000280b0 #define CB_COLOR5_INFO 0x000280b4 #define CB_COLOR6_INFO 0x000280b8 #define CB_COLOR7_INFO 0x000280bc #define CB_COLOR0_TILE 0x000280c0 #define CB_COLOR1_TILE 0x000280c4 #define CB_COLOR2_TILE 0x000280c8 #define CB_COLOR3_TILE 0x000280cc #define CB_COLOR4_TILE 0x000280d0 #define CB_COLOR5_TILE 0x000280d4 #define CB_COLOR6_TILE 0x000280d8 #define CB_COLOR7_TILE 0x000280dc #define CB_COLOR0_FRAG 0x000280e0 #define CB_COLOR1_FRAG 0x000280e4 #define CB_COLOR2_FRAG 0x000280e8 #define CB_COLOR3_FRAG 0x000280ec #define CB_COLOR4_FRAG 0x000280f0 #define CB_COLOR5_FRAG 0x000280f4 #define CB_COLOR6_FRAG 0x000280f8 #define CB_COLOR7_FRAG 0x000280fc #define CB_COLOR0_MASK 0x00028100 #define CB_COLOR0_MASK__CMASK_BLOCK_MAX(x) (((x) & 0x00000fff) << 0) #define CB_COLOR0_MASK__FMASK_TILE_MAX(x) (((x) & 0x000fffff) << 12) #define CB_CLEAR_RED 0x00028120 #define CB_CLEAR_GREEN 0x00028124 #define CB_CLEAR_BLUE 0x00028128 #define CB_CLEAR_ALPHA 0x0002812c #define SQ_ALU_CONST_BUFFER_SIZE_PS_0 0x00028140 #define SQ_ALU_CONST_BUFFER_SIZE_PS_0__DATA(x) (((x) & 0x000001ff) << 0) #define SQ_ALU_CONST_BUFFER_SIZE_VS_0 0x00028180 #define SQ_ALU_CONST_BUFFER_SIZE_VS_0__DATA(x) (((x) & 0x000001ff) << 0) #define SQ_ALU_CONST_BUFFER_SIZE_GS_0 0x000281c0 #define SQ_ALU_CONST_BUFFER_SIZE_GS_0__DATA(x) (((x) & 0x000001ff) << 0) #define PA_SC_WINDOW_OFFSET 0x00028200 #define PA_SC_WINDOW_OFFSET__WINDOW_X_OFFSET(x) (((x) & 0x00007fff) << 0) #define PA_SC_WINDOW_OFFSET__WINDOW_Y_OFFSET(x) (((x) & 0x00007fff) << 16) #define PA_SC_WINDOW_SCISSOR_TL 0x00028204 #define PA_SC_WINDOW_SCISSOR_TL__TL_X(x) (((x) & 0x00003fff) << 0) #define PA_SC_WINDOW_SCISSOR_TL__TL_Y(x) (((x) & 0x00003fff) << 16) #define PA_SC_WINDOW_SCISSOR_TL__WINDOW_OFFSET_DISABLE(x) (((x) & 0x00000001) << 31) #define PA_SC_WINDOW_SCISSOR_BR 0x00028208 #define PA_SC_WINDOW_SCISSOR_BR__BR_X(x) (((x) & 0x00003fff) << 0) #define PA_SC_WINDOW_SCISSOR_BR__BR_Y(x) (((x) & 0x00003fff) << 16) #define PA_SC_CLIPRECT_RULE 0x0002820c #define PA_SC_CLIPRECT_RULE__CLIP_RULE(x) (((x) & 0x0000ffff) << 0) #define PA_SC_CLIPRECT_0_TL 0x00028210 #define PA_SC_CLIPRECT_0_TL__NUM 4 #define PA_SC_CLIPRECT_0_TL__STRIDE 8 #define PA_SC_CLIPRECT_0_TL__TL_X(x) (((x) & 0x00003fff) << 0) #define PA_SC_CLIPRECT_0_TL__TL_Y(x) (((x) & 0x00003fff) << 16) #define PA_SC_CLIPRECT_0_BR 0x00028214 #define PA_SC_CLIPRECT_0_BR__BR_X(x) (((x) & 0x00003fff) << 0) #define PA_SC_CLIPRECT_0_BR__BR_Y(x) (((x) & 0x00003fff) << 16) #define CB_TARGET_MASK 0x00028238 #define CB_TARGET_MASK__TARGET0_ENABLE(x) (((x) & 0x0000000f) << 0) #define CB_TARGET_MASK__TARGET1_ENABLE(x) (((x) & 0x0000000f) << 4) #define CB_TARGET_MASK__TARGET2_ENABLE(x) (((x) & 0x0000000f) << 8) #define CB_TARGET_MASK__TARGET3_ENABLE(x) (((x) & 0x0000000f) << 12) #define CB_TARGET_MASK__TARGET4_ENABLE(x) (((x) & 0x0000000f) << 16) #define CB_TARGET_MASK__TARGET5_ENABLE(x) (((x) & 0x0000000f) << 20) #define CB_TARGET_MASK__TARGET6_ENABLE(x) (((x) & 0x0000000f) << 24) #define CB_TARGET_MASK__TARGET7_ENABLE(x) (((x) & 0x0000000f) << 28) #define CB_SHADER_MASK 0x0002823c #define CB_SHADER_MASK__OUTPUT0_ENABLE(x) (((x) & 0x0000000f) << 0) #define CB_SHADER_MASK__OUTPUT1_ENABLE(x) (((x) & 0x0000000f) << 4) #define CB_SHADER_MASK__OUTPUT2_ENABLE(x) (((x) & 0x0000000f) << 8) #define CB_SHADER_MASK__OUTPUT3_ENABLE(x) (((x) & 0x0000000f) << 12) #define CB_SHADER_MASK__OUTPUT4_ENABLE(x) (((x) & 0x0000000f) << 16) #define CB_SHADER_MASK__OUTPUT5_ENABLE(x) (((x) & 0x0000000f) << 20) #define CB_SHADER_MASK__OUTPUT6_ENABLE(x) (((x) & 0x0000000f) << 24) #define CB_SHADER_MASK__OUTPUT7_ENABLE(x) (((x) & 0x0000000f) << 28) #define PA_SC_GENERIC_SCISSOR_TL 0x00028240 #define PA_SC_GENERIC_SCISSOR_TL__TL_X(x) (((x) & 0x00003fff) << 0) #define PA_SC_GENERIC_SCISSOR_TL__TL_Y(x) (((x) & 0x00003fff) << 16) #define PA_SC_GENERIC_SCISSOR_TL__WINDOW_OFFSET_DISABLE(x) (((x) & 0x00000001) << 31) #define PA_SC_GENERIC_SCISSOR_BR 0x00028244 #define PA_SC_GENERIC_SCISSOR_BR__BR_X(x) (((x) & 0x00003fff) << 0) #define PA_SC_GENERIC_SCISSOR_BR__BR_Y(x) (((x) & 0x00003fff) << 16) #define PA_SC_VPORT_SCISSOR_0_TL 0x00028250 #define PA_SC_VPORT_SCISSOR_0_TL__NUM 16 #define PA_SC_VPORT_SCISSOR_0_TL__STRIDE 8 #define PA_SC_VPORT_SCISSOR_0_TL__TL_X(x) (((x) & 0x00003fff) << 0) #define PA_SC_VPORT_SCISSOR_0_TL__TL_Y(x) (((x) & 0x00003fff) << 16) #define PA_SC_VPORT_SCISSOR_0_TL__WINDOW_OFFSET_DISABLE(x) (((x) & 0x00000001) << 31) #define PA_SC_VPORT_SCISSOR_0_BR 0x00028254 #define PA_SC_VPORT_SCISSOR_0_BR__BR_X(x) (((x) & 0x00003fff) << 0) #define PA_SC_VPORT_SCISSOR_0_BR__BR_Y(x) (((x) & 0x00003fff) << 16) #define PA_SC_VPORT_ZMIN_0 0x000282d0 #define PA_SC_VPORT_ZMAX_0 0x000282d4 #define SX_MISC 0x00028350 #define SX_MISC__MULTIPASS(x) (((x) & 0x00000001) << 0) #define SQ_VTX_SEMANTIC_0 0x00028380 #define SQ_VTX_SEMANTIC_0__SEMANTIC_ID(x) (((x) & 0x000000ff) << 0) #define VGT_MAX_VTX_INDX 0x00028400 #define VGT_MIN_VTX_INDX 0x00028404 #define VGT_INDX_OFFSET 0x00028408 #define VGT_MULTI_PRIM_IB_RESET_INDX 0x0002840c #define SX_ALPHA_TEST_CONTROL 0x00028410 #define SX_ALPHA_TEST_CONTROL__ALPHA_FUNC(x) (((x) & 0x00000007) << 0) #define REF_NEVER 0 #define REF_LESS 1 #define REF_EQUAL 2 #define REF_LEQUAL 3 #define REF_GREATER 4 #define REF_NOTEQUAL 5 #define REF_GEQUAL 6 #define REF_ALWAYS 7 #define SX_ALPHA_TEST_CONTROL__ALPHA_TEST_ENABLE(x) (((x) & 0x00000001) << 3) #define SX_ALPHA_TEST_CONTROL__ALPHA_TEST_BYPASS(x) (((x) & 0x00000001) << 8) #define CB_BLEND_RED 0x00028414 #define CB_BLEND_GREEN 0x00028418 #define CB_BLEND_BLUE 0x0002841c #define CB_BLEND_ALPHA 0x00028420 #define CB_FOG_RED 0x00028424 #define CB_FOG_GREEN 0x00028428 #define CB_FOG_BLUE 0x0002842c #define DB_STENCILREFMASK 0x00028430 #define DB_STENCILREFMASK__STENCILREF(x) (((x) & 0x000000ff) << 0) #define DB_STENCILREFMASK__STENCILMASK(x) (((x) & 0x000000ff) << 8) #define DB_STENCILREFMASK__STENCILWRITEMASK(x) (((x) & 0x000000ff) << 16) #define DB_STENCILREFMASK_BF 0x00028434 #define DB_STENCILREFMASK_BF__STENCILREF_BF(x) (((x) & 0x000000ff) << 0) #define DB_STENCILREFMASK_BF__STENCILMASK_BF(x) (((x) & 0x000000ff) << 8) #define DB_STENCILREFMASK_BF__STENCILWRITEMASK_BF(x) (((x) & 0x000000ff) << 16) #define SX_ALPHA_REF 0x00028438 #define PA_CL_VPORT_XSCALE_0 0x0002843c #define PA_CL_VPORT_XOFFSET_0 0x00028440 #define PA_CL_VPORT_YSCALE_0 0x00028444 #define PA_CL_VPORT_YOFFSET_0 0x00028448 #define PA_CL_VPORT_ZSCALE_0 0x0002844c #define PA_CL_VPORT_ZOFFSET_0 0x00028450 #define SPI_VS_OUT_ID_0 0x00028614 #define SPI_VS_OUT_ID_0__SEMANTIC_0(x) (((x) & 0x000000ff) << 0) #define SPI_VS_OUT_ID_0__SEMANTIC_1(x) (((x) & 0x000000ff) << 8) #define SPI_VS_OUT_ID_0__SEMANTIC_2(x) (((x) & 0x000000ff) << 16) #define SPI_VS_OUT_ID_0__SEMANTIC_3(x) (((x) & 0x000000ff) << 24) #define SPI_PS_INPUT_CNTL_0 0x00028644 #define SPI_PS_INPUT_CNTL_0__SEMANTIC(x) (((x) & 0x000000ff) << 0) #define SPI_PS_INPUT_CNTL_0__DEFAULT_VAL(x) (((x) & 0x00000003) << 8) #define X_0_0F 0 #define SPI_PS_INPUT_CNTL_0__FLAT_SHADE(x) (((x) & 0x00000001) << 10) #define SPI_PS_INPUT_CNTL_0__SEL_CENTROID(x) (((x) & 0x00000001) << 11) #define SPI_PS_INPUT_CNTL_0__SEL_LINEAR(x) (((x) & 0x00000001) << 12) #define SPI_PS_INPUT_CNTL_0__CYL_WRAP(x) (((x) & 0x0000000f) << 13) #define SPI_PS_INPUT_CNTL_0__PT_SPRITE_TEX(x) (((x) & 0x00000001) << 17) #define SPI_PS_INPUT_CNTL_0__SEL_SAMPLE(x) (((x) & 0x00000001) << 18) #define SPI_VS_OUT_CONFIG 0x000286c4 #define SPI_VS_OUT_CONFIG__VS_PER_COMPONENT(x) (((x) & 0x00000001) << 0) #define SPI_VS_OUT_CONFIG__VS_EXPORT_COUNT(x) (((x) & 0x0000001f) << 1) #define SPI_VS_OUT_CONFIG__VS_EXPORTS_FOG(x) (((x) & 0x00000001) << 8) #define SPI_VS_OUT_CONFIG__VS_OUT_FOG_VEC_ADDR(x) (((x) & 0x0000001f) << 9) #define SPI_PS_IN_CONTROL_0 0x000286cc #define SPI_PS_IN_CONTROL_0__NUM_INTERP(x) (((x) & 0x0000003f) << 0) #define SPI_PS_IN_CONTROL_0__POSITION_ENA(x) (((x) & 0x00000001) << 8) #define SPI_PS_IN_CONTROL_0__POSITION_CENTROID(x) (((x) & 0x00000001) << 9) #define SPI_PS_IN_CONTROL_0__POSITION_ADDR(x) (((x) & 0x0000001f) << 10) #define SPI_PS_IN_CONTROL_0__PARAM_GEN(x) (((x) & 0x0000000f) << 15) #define SPI_PS_IN_CONTROL_0__PARAM_GEN_ADDR(x) (((x) & 0x0000007f) << 19) #define SPI_PS_IN_CONTROL_0__BARYC_SAMPLE_CNTL(x) (((x) & 0x00000003) << 26) #define CENTROIDS_ONLY 0 #define CENTERS_ONLY 1 #define CENTROIDS_AND_CENTERS 2 #define UNDEF 3 #define SPI_PS_IN_CONTROL_0__PERSP_GRADIENT_ENA(x) (((x) & 0x00000001) << 28) #define SPI_PS_IN_CONTROL_0__LINEAR_GRADIENT_ENA(x) (((x) & 0x00000001) << 29) #define SPI_PS_IN_CONTROL_0__POSITION_SAMPLE(x) (((x) & 0x00000001) << 30) #define SPI_PS_IN_CONTROL_0__BARYC_AT_SAMPLE_ENA(x) (((x) & 0x00000001) << 31) #define SPI_PS_IN_CONTROL_1 0x000286d0 #define SPI_PS_IN_CONTROL_1__GEN_INDEX_PIX(x) (((x) & 0x00000001) << 0) #define SPI_PS_IN_CONTROL_1__GEN_INDEX_PIX_ADDR(x) (((x) & 0x0000007f) << 1) #define SPI_PS_IN_CONTROL_1__FRONT_FACE_ENA(x) (((x) & 0x00000001) << 8) #define SPI_PS_IN_CONTROL_1__FRONT_FACE_CHAN(x) (((x) & 0x00000003) << 9) #define SPI_PS_IN_CONTROL_1__FRONT_FACE_ALL_BITS(x) (((x) & 0x00000001) << 11) #define SPI_PS_IN_CONTROL_1__FRONT_FACE_ADDR(x) (((x) & 0x0000001f) << 12) #define SPI_PS_IN_CONTROL_1__FOG_ADDR(x) (((x) & 0x0000007f) << 17) #define SPI_PS_IN_CONTROL_1__FIXED_PT_POSITION_ENA(x) (((x) & 0x00000001) << 24) #define SPI_PS_IN_CONTROL_1__FIXED_PT_POSITION_ADDR(x) (((x) & 0x0000001f) << 25) #define SPI_INTERP_CONTROL_0 0x000286d4 #define SPI_INTERP_CONTROL_0__FLAT_SHADE_ENA(x) (((x) & 0x00000001) << 0) #define SPI_INTERP_CONTROL_0__PNT_SPRITE_ENA(x) (((x) & 0x00000001) << 1) #define SPI_INTERP_CONTROL_0__PNT_SPRITE_OVRD_X(x) (((x) & 0x00000007) << 2) #define SPI_PNT_SPRITE_SEL_0 0 #define SPI_PNT_SPRITE_SEL_1 1 #define SPI_PNT_SPRITE_SEL_S 2 #define SPI_PNT_SPRITE_SEL_T 3 #define SPI_PNT_SPRITE_SEL_NONE 4 #define SPI_INTERP_CONTROL_0__PNT_SPRITE_OVRD_Y(x) (((x) & 0x00000007) << 5) #define SPI_PNT_SPRITE_SEL_0 0 #define SPI_PNT_SPRITE_SEL_1 1 #define SPI_PNT_SPRITE_SEL_S 2 #define SPI_PNT_SPRITE_SEL_T 3 #define SPI_PNT_SPRITE_SEL_NONE 4 #define SPI_INTERP_CONTROL_0__PNT_SPRITE_OVRD_Z(x) (((x) & 0x00000007) << 8) #define SPI_PNT_SPRITE_SEL_0 0 #define SPI_PNT_SPRITE_SEL_1 1 #define SPI_PNT_SPRITE_SEL_S 2 #define SPI_PNT_SPRITE_SEL_T 3 #define SPI_PNT_SPRITE_SEL_NONE 4 #define SPI_INTERP_CONTROL_0__PNT_SPRITE_OVRD_W(x) (((x) & 0x00000007) << 11) #define SPI_PNT_SPRITE_SEL_0 0 #define SPI_PNT_SPRITE_SEL_1 1 #define SPI_PNT_SPRITE_SEL_S 2 #define SPI_PNT_SPRITE_SEL_T 3 #define SPI_PNT_SPRITE_SEL_NONE 4 #define SPI_INTERP_CONTROL_0__PNT_SPRITE_TOP_1(x) (((x) & 0x00000001) << 14) #define SPI_INPUT_Z 0x000286d8 #define SPI_INPUT_Z__PROVIDE_Z_TO_SPI(x) (((x) & 0x00000001) << 0) #define SPI_FOG_CNTL 0x000286dc #define SPI_FOG_CNTL__PASS_FOG_THROUGH_PS(x) (((x) & 0x00000001) << 0) #define SPI_FOG_CNTL__PIXEL_FOG_FUNC(x) (((x) & 0x00000003) << 1) #define SPI_FOG_NONE 0 #define SPI_FOG_EXP 1 #define SPI_FOG_EXP2 2 #define SPI_FOG_LINEAR 3 #define SPI_FOG_CNTL__PIXEL_FOG_SRC_SEL(x) (((x) & 0x00000001) << 3) #define SPI_FOG_CNTL__VS_FOG_CLAMP_DISABLE(x) (((x) & 0x00000001) << 4) #define SPI_FOG_FUNC_SCALE 0x000286e0 #define SPI_FOG_FUNC_BIAS 0x000286e4 #define CB_BLEND0_CONTROL 0x00028780 #define CB_BLEND0_CONTROL__COLOR_SRCBLEND(x) (((x) & 0x0000001f) << 0) #define CB_BLEND0_CONTROL__COLOR_COMB_FCN(x) (((x) & 0x00000007) << 5) #define CB_BLEND0_CONTROL__COLOR_DESTBLEND(x) (((x) & 0x0000001f) << 8) #define CB_BLEND0_CONTROL__OPACITY_WEIGHT(x) (((x) & 0x00000001) << 13) #define CB_BLEND0_CONTROL__ALPHA_SRCBLEND(x) (((x) & 0x0000001f) << 16) #define CB_BLEND0_CONTROL__ALPHA_COMB_FCN(x) (((x) & 0x00000007) << 21) #define CB_BLEND0_CONTROL__ALPHA_DESTBLEND(x) (((x) & 0x0000001f) << 24) #define CB_BLEND0_CONTROL__SEPARATE_ALPHA_BLEND(x) (((x) & 0x00000001) << 29) #define VGT_DMA_BASE_HI 0x000287e4 #define VGT_DMA_BASE_HI__BASE_ADDR(x) (((x) & 0x000000ff) << 0) #define VGT_DMA_BASE 0x000287e8 #define VGT_DRAW_INITIATOR 0x000287f0 #define VGT_DRAW_INITIATOR__SOURCE_SELECT(x) (((x) & 0x00000003) << 0) #define DI_SRC_SEL_DMA 0 #define DI_SRC_SEL_IMMEDIATE 1 #define DI_SRC_SEL_AUTO_INDEX 2 #define DI_SRC_SEL_RESERVED 3 #define VGT_DRAW_INITIATOR__MAJOR_MODE(x) (((x) & 0x00000003) << 2) #define DI_MAJOR_MODE_0 0 #define DI_MAJOR_MODE_1 1 #define VGT_DRAW_INITIATOR__SPRITE_EN(x) (((x) & 0x00000001) << 4) #define VGT_DRAW_INITIATOR__NOT_EOP(x) (((x) & 0x00000001) << 5) #define VGT_DRAW_INITIATOR__USE_OPAQUE(x) (((x) & 0x00000001) << 6) #define VGT_IMMED_DATA 0x000287f4 #define VGT_EVENT_ADDRESS_REG 0x000287f8 #define VGT_EVENT_ADDRESS_REG__ADDRESS_LOW(x) (((x) & 0x0fffffff) << 0) #define DB_DEPTH_CONTROL 0x00028800 #define DB_DEPTH_CONTROL__STENCIL_ENABLE(x) (((x) & 0x00000001) << 0) #define DB_DEPTH_CONTROL__Z_ENABLE(x) (((x) & 0x00000001) << 1) #define DB_DEPTH_CONTROL__Z_WRITE_ENABLE(x) (((x) & 0x00000001) << 2) #define DB_DEPTH_CONTROL__ZFUNC(x) (((x) & 0x00000007) << 4) #define FRAG_NEVER 0 #define FRAG_LESS 1 #define FRAG_EQUAL 2 #define FRAG_LEQUAL 3 #define FRAG_GREATER 4 #define FRAG_NOTEQUAL 5 #define FRAG_GEQUAL 6 #define FRAG_ALWAYS 7 #define DB_DEPTH_CONTROL__BACKFACE_ENABLE(x) (((x) & 0x00000001) << 7) #define DB_DEPTH_CONTROL__STENCILFUNC(x) (((x) & 0x00000007) << 8) #define REF_NEVER 0 #define REF_LESS 1 #define REF_EQUAL 2 #define REF_LEQUAL 3 #define REF_GREATER 4 #define REF_NOTEQUAL 5 #define REF_GEQUAL 6 #define REF_ALWAYS 7 #define DB_DEPTH_CONTROL__STENCILFAIL(x) (((x) & 0x00000007) << 11) #define STENCIL_KEEP 0 #define STENCIL_ZERO 1 #define STENCIL_REPLACE 2 #define STENCIL_INCR_CLAMP 3 #define STENCIL_DECR_CLAMP 4 #define STENCIL_INVERT 5 #define STENCIL_INCR_WRAP 6 #define STENCIL_DECR_WRAP 7 #define DB_DEPTH_CONTROL__STENCILZPASS(x) (((x) & 0x00000007) << 14) #define STENCIL_KEEP 0 #define STENCIL_ZERO 1 #define STENCIL_REPLACE 2 #define STENCIL_INCR_CLAMP 3 #define STENCIL_DECR_CLAMP 4 #define STENCIL_INVERT 5 #define STENCIL_INCR_WRAP 6 #define STENCIL_DECR_WRAP 7 #define DB_DEPTH_CONTROL__STENCILZFAIL(x) (((x) & 0x00000007) << 17) #define STENCIL_KEEP 0 #define STENCIL_ZERO 1 #define STENCIL_REPLACE 2 #define STENCIL_INCR_CLAMP 3 #define STENCIL_DECR_CLAMP 4 #define STENCIL_INVERT 5 #define STENCIL_INCR_WRAP 6 #define STENCIL_DECR_WRAP 7 #define DB_DEPTH_CONTROL__STENCILFUNC_BF(x) (((x) & 0x00000007) << 20) #define REF_NEVER 0 #define REF_LESS 1 #define REF_EQUAL 2 #define REF_LEQUAL 3 #define REF_GREATER 4 #define REF_NOTEQUAL 5 #define REF_GEQUAL 6 #define REF_ALWAYS 7 #define DB_DEPTH_CONTROL__STENCILFAIL_BF(x) (((x) & 0x00000007) << 23) #define STENCIL_KEEP 0 #define STENCIL_ZERO 1 #define STENCIL_REPLACE 2 #define STENCIL_INCR_CLAMP 3 #define STENCIL_DECR_CLAMP 4 #define STENCIL_INVERT 5 #define STENCIL_INCR_WRAP 6 #define STENCIL_DECR_WRAP 7 #define DB_DEPTH_CONTROL__STENCILZPASS_BF(x) (((x) & 0x00000007) << 26) #define STENCIL_KEEP 0 #define STENCIL_ZERO 1 #define STENCIL_REPLACE 2 #define STENCIL_INCR_CLAMP 3 #define STENCIL_DECR_CLAMP 4 #define STENCIL_INVERT 5 #define STENCIL_INCR_WRAP 6 #define STENCIL_DECR_WRAP 7 #define DB_DEPTH_CONTROL__STENCILZFAIL_BF(x) (((x) & 0x00000007) << 29) #define STENCIL_KEEP 0 #define STENCIL_ZERO 1 #define STENCIL_REPLACE 2 #define STENCIL_INCR_CLAMP 3 #define STENCIL_DECR_CLAMP 4 #define STENCIL_INVERT 5 #define STENCIL_INCR_WRAP 6 #define STENCIL_DECR_WRAP 7 #define CB_BLEND_CONTROL 0x00028804 #define CB_BLEND_CONTROL__COLOR_SRCBLEND(x) (((x) & 0x0000001f) << 0) #define BLEND_ZERO 0 #define BLEND_ONE 1 #define BLEND_SRC_COLOR 2 #define BLEND_ONE_MINUS_SRC_COLOR 3 #define BLEND_SRC_ALPHA 4 #define BLEND_ONE_MINUS_SRC_ALPHA 5 #define BLEND_DST_ALPHA 6 #define BLEND_ONE_MINUS_DST_ALPHA 7 #define BLEND_DST_COLOR 8 #define BLEND_ONE_MINUS_DST_COLOR 9 #define BLEND_SRC_ALPHA_SATURATE 10 #define BLEND_BOTH_SRC_ALPHA 11 #define BLEND_BOTH_INV_SRC_ALPHA 12 #define BLEND_CONSTANT_COLOR 13 #define BLEND_ONE_MINUS_CONSTANT_COLOR 14 #define BLEND_SRC1_COLOR 15 #define BLEND_INV_SRC1_COLOR 16 #define BLEND_SRC1_ALPHA 17 #define BLEND_INV_SRC1_ALPHA 18 #define BLEND_CONSTANT_ALPHA 19 #define BLEND_ONE_MINUS_CONSTANT_ALPHA 20 #define CB_BLEND_CONTROL__COLOR_COMB_FCN(x) (((x) & 0x00000007) << 5) #define COMB_DST_PLUS_SRC 0 #define COMB_SRC_MINUS_DST 1 #define COMB_MIN_DST_SRC 2 #define COMB_MAX_DST_SRC 3 #define COMB_DST_MINUS_SRC 4 #define CB_BLEND_CONTROL__COLOR_DESTBLEND(x) (((x) & 0x0000001f) << 8) #define BLEND_ZERO 0 #define BLEND_ONE 1 #define BLEND_SRC_COLOR 2 #define BLEND_ONE_MINUS_SRC_COLOR 3 #define BLEND_SRC_ALPHA 4 #define BLEND_ONE_MINUS_SRC_ALPHA 5 #define BLEND_DST_ALPHA 6 #define BLEND_ONE_MINUS_DST_ALPHA 7 #define BLEND_DST_COLOR 8 #define BLEND_ONE_MINUS_DST_COLOR 9 #define BLEND_SRC_ALPHA_SATURATE 10 #define BLEND_BOTH_SRC_ALPHA 11 #define BLEND_BOTH_INV_SRC_ALPHA 12 #define BLEND_CONSTANT_COLOR 13 #define BLEND_ONE_MINUS_CONSTANT_COLOR 14 #define BLEND_SRC1_COLOR 15 #define BLEND_INV_SRC1_COLOR 16 #define BLEND_SRC1_ALPHA 17 #define BLEND_INV_SRC1_ALPHA 18 #define BLEND_CONSTANT_ALPHA 19 #define BLEND_ONE_MINUS_CONSTANT_ALPHA 20 #define CB_BLEND_CONTROL__OPACITY_WEIGHT(x) (((x) & 0x00000001) << 13) #define CB_BLEND_CONTROL__ALPHA_SRCBLEND(x) (((x) & 0x0000001f) << 16) #define BLEND_ZERO 0 #define BLEND_ONE 1 #define BLEND_SRC_COLOR 2 #define BLEND_ONE_MINUS_SRC_COLOR 3 #define BLEND_SRC_ALPHA 4 #define BLEND_ONE_MINUS_SRC_ALPHA 5 #define BLEND_DST_ALPHA 6 #define BLEND_ONE_MINUS_DST_ALPHA 7 #define BLEND_DST_COLOR 8 #define BLEND_ONE_MINUS_DST_COLOR 9 #define BLEND_SRC_ALPHA_SATURATE 10 #define BLEND_BOTH_SRC_ALPHA 11 #define BLEND_BOTH_INV_SRC_ALPHA 12 #define BLEND_CONSTANT_COLOR 13 #define BLEND_ONE_MINUS_CONSTANT_COLOR 14 #define BLEND_SRC1_COLOR 15 #define BLEND_INV_SRC1_COLOR 16 #define BLEND_SRC1_ALPHA 17 #define BLEND_INV_SRC1_ALPHA 18 #define BLEND_CONSTANT_ALPHA 19 #define BLEND_ONE_MINUS_CONSTANT_ALPHA 20 #define CB_BLEND_CONTROL__ALPHA_COMB_FCN(x) (((x) & 0x00000007) << 21) #define COMB_DST_PLUS_SRC 0 #define COMB_SRC_MINUS_DST 1 #define COMB_MIN_DST_SRC 2 #define COMB_MAX_DST_SRC 3 #define COMB_DST_MINUS_SRC 4 #define CB_BLEND_CONTROL__ALPHA_DESTBLEND(x) (((x) & 0x0000001f) << 24) #define BLEND_ZERO 0 #define BLEND_ONE 1 #define BLEND_SRC_COLOR 2 #define BLEND_ONE_MINUS_SRC_COLOR 3 #define BLEND_SRC_ALPHA 4 #define BLEND_ONE_MINUS_SRC_ALPHA 5 #define BLEND_DST_ALPHA 6 #define BLEND_ONE_MINUS_DST_ALPHA 7 #define BLEND_DST_COLOR 8 #define BLEND_ONE_MINUS_DST_COLOR 9 #define BLEND_SRC_ALPHA_SATURATE 10 #define BLEND_BOTH_SRC_ALPHA 11 #define BLEND_BOTH_INV_SRC_ALPHA 12 #define BLEND_CONSTANT_COLOR 13 #define BLEND_ONE_MINUS_CONSTANT_COLOR 14 #define BLEND_SRC1_COLOR 15 #define BLEND_INV_SRC1_COLOR 16 #define BLEND_SRC1_ALPHA 17 #define BLEND_INV_SRC1_ALPHA 18 #define BLEND_CONSTANT_ALPHA 19 #define BLEND_ONE_MINUS_CONSTANT_ALPHA 20 #define CB_BLEND_CONTROL__SEPARATE_ALPHA_BLEND(x) (((x) & 0x00000001) << 29) #define CB_COLOR_CONTROL 0x00028808 #define CB_COLOR_CONTROL__FOG_ENABLE(x) (((x) & 0x00000001) << 0) #define CB_COLOR_CONTROL__MULTIWRITE_ENABLE(x) (((x) & 0x00000001) << 1) #define CB_COLOR_CONTROL__DITHER_ENABLE(x) (((x) & 0x00000001) << 2) #define CB_COLOR_CONTROL__DEGAMMA_ENABLE(x) (((x) & 0x00000001) << 3) #define CB_COLOR_CONTROL__SPECIAL_OP(x) (((x) & 0x00000007) << 4) #define SPECIAL_NORMAL 0 #define SPECIAL_DISABLE 1 #define SPECIAL_FAST_CLEAR 2 #define SPECIAL_FORCE_CLEAR 3 #define SPECIAL_EXPAND_COLOR 4 #define SPECIAL_EXPAND_TEXTURE 5 #define SPECIAL_EXPAND_SAMPLES 6 #define SPECIAL_RESOLVE_BOX 7 #define CB_COLOR_CONTROL__PER_MRT_BLEND(x) (((x) & 0x00000001) << 7) #define CB_COLOR_CONTROL__TARGET_BLEND_ENABLE(x) (((x) & 0x000000ff) << 8) #define CB_COLOR_CONTROL__ROP3(x) (((x) & 0x000000ff) << 16) #define ROP3_ZERO 0 #define ROP3_NOR 17 #define ROP3_AND_INVERTED 37 #define ROP3_COPY_INVERTED 51 #define ROP3_AND_REVERSE 68 #define ROP3_INVERT 85 #define ROP3_XOR 102 #define ROP3_NAND 119 #define ROP3_AND 136 #define ROP3_EQUIV 153 #define ROP3_NOOP 170 #define ROP3_OR_INVERTED 187 #define ROP3_COPY 204 #define ROP3_OR_REVERSE 221 #define ROP3_OR 238 #define ROP3_ONE 255 #define DB_SHADER_CONTROL 0x0002880c #define DB_SHADER_CONTROL__Z_EXPORT_ENABLE(x) (((x) & 0x00000001) << 0) #define DB_SHADER_CONTROL__STENCIL_REF_EXPORT_ENABLE(x) (((x) & 0x00000001) << 1) #define DB_SHADER_CONTROL__Z_ORDER(x) (((x) & 0x00000003) << 4) #define LATE_Z 0 #define EARLY_Z_THEN_LATE_Z 1 #define RE_Z 2 #define EARLY_Z_THEN_RE_Z 3 #define DB_SHADER_CONTROL__KILL_ENABLE(x) (((x) & 0x00000001) << 6) #define DB_SHADER_CONTROL__COVERAGE_TO_MASK_ENABLE(x) (((x) & 0x00000001) << 7) #define DB_SHADER_CONTROL__MASK_EXPORT_ENABLE(x) (((x) & 0x00000001) << 8) #define DB_SHADER_CONTROL__DUAL_EXPORT_ENABLE(x) (((x) & 0x00000001) << 9) #define DB_SHADER_CONTROL__EXEC_ON_HIER_FAIL(x) (((x) & 0x00000001) << 10) #define DB_SHADER_CONTROL__EXEC_ON_NOOP(x) (((x) & 0x00000001) << 11) #define PA_CL_CLIP_CNTL 0x00028810 #define PA_CL_CLIP_CNTL__UCP_ENA_0(x) (((x) & 0x00000001) << 0) #define PA_CL_CLIP_CNTL__UCP_ENA_1(x) (((x) & 0x00000001) << 1) #define PA_CL_CLIP_CNTL__UCP_ENA_2(x) (((x) & 0x00000001) << 2) #define PA_CL_CLIP_CNTL__UCP_ENA_3(x) (((x) & 0x00000001) << 3) #define PA_CL_CLIP_CNTL__UCP_ENA_4(x) (((x) & 0x00000001) << 4) #define PA_CL_CLIP_CNTL__UCP_ENA_5(x) (((x) & 0x00000001) << 5) #define PA_CL_CLIP_CNTL__PS_UCP_Y_SCALE_NEG(x) (((x) & 0x00000001) << 13) #define PA_CL_CLIP_CNTL__PS_UCP_MODE(x) (((x) & 0x00000003) << 14) #define PA_CL_CLIP_CNTL__CLIP_DISABLE(x) (((x) & 0x00000001) << 16) #define PA_CL_CLIP_CNTL__UCP_CULL_ONLY_ENA(x) (((x) & 0x00000001) << 17) #define PA_CL_CLIP_CNTL__BOUNDARY_EDGE_FLAG_ENA(x) (((x) & 0x00000001) << 18) #define PA_CL_CLIP_CNTL__DX_CLIP_SPACE_DEF(x) (((x) & 0x00000001) << 19) #define PA_CL_CLIP_CNTL__DIS_CLIP_ERR_DETECT(x) (((x) & 0x00000001) << 20) #define PA_CL_CLIP_CNTL__VTX_KILL_OR(x) (((x) & 0x00000001) << 21) #define PA_CL_CLIP_CNTL__DX_LINEAR_ATTR_CLIP_ENA(x) (((x) & 0x00000001) << 24) #define PA_CL_CLIP_CNTL__VTE_VPORT_PROVOKE_DISABLE(x) (((x) & 0x00000001) << 25) #define PA_CL_CLIP_CNTL__ZCLIP_NEAR_DISABLE(x) (((x) & 0x00000001) << 26) #define PA_CL_CLIP_CNTL__ZCLIP_FAR_DISABLE(x) (((x) & 0x00000001) << 27) #define PA_SU_SC_MODE_CNTL 0x00028814 #define PA_SU_SC_MODE_CNTL__CULL_FRONT(x) (((x) & 0x00000001) << 0) #define PA_SU_SC_MODE_CNTL__CULL_BACK(x) (((x) & 0x00000001) << 1) #define PA_SU_SC_MODE_CNTL__FACE(x) (((x) & 0x00000001) << 2) #define PA_SU_SC_MODE_CNTL__POLY_MODE(x) (((x) & 0x00000003) << 3) #define X_DISABLE_POLY_MODE 0 #define X_DUAL_MODE 1 #define PA_SU_SC_MODE_CNTL__POLYMODE_FRONT_PTYPE(x) (((x) & 0x00000007) << 5) #define X_DRAW_POINTS 0 #define X_DRAW_LINES 1 #define X_DRAW_TRIANGLES 2 #define PA_SU_SC_MODE_CNTL__POLYMODE_BACK_PTYPE(x) (((x) & 0x00000007) << 8) #define X_DRAW_POINTS 0 #define X_DRAW_LINES 1 #define X_DRAW_TRIANGLES 2 #define PA_SU_SC_MODE_CNTL__POLY_OFFSET_FRONT_ENABLE(x) (((x) & 0x00000001) << 11) #define PA_SU_SC_MODE_CNTL__POLY_OFFSET_BACK_ENABLE(x) (((x) & 0x00000001) << 12) #define PA_SU_SC_MODE_CNTL__POLY_OFFSET_PARA_ENABLE(x) (((x) & 0x00000001) << 13) #define PA_SU_SC_MODE_CNTL__VTX_WINDOW_OFFSET_ENABLE(x) (((x) & 0x00000001) << 16) #define PA_SU_SC_MODE_CNTL__PROVOKING_VTX_LAST(x) (((x) & 0x00000001) << 19) #define PA_SU_SC_MODE_CNTL__PERSP_CORR_DIS(x) (((x) & 0x00000001) << 20) #define PA_SU_SC_MODE_CNTL__MULTI_PRIM_IB_ENA(x) (((x) & 0x00000001) << 21) #define PA_CL_VTE_CNTL 0x00028818 #define PA_CL_VTE_CNTL__VPORT_X_SCALE_ENA(x) (((x) & 0x00000001) << 0) #define PA_CL_VTE_CNTL__VPORT_X_OFFSET_ENA(x) (((x) & 0x00000001) << 1) #define PA_CL_VTE_CNTL__VPORT_Y_SCALE_ENA(x) (((x) & 0x00000001) << 2) #define PA_CL_VTE_CNTL__VPORT_Y_OFFSET_ENA(x) (((x) & 0x00000001) << 3) #define PA_CL_VTE_CNTL__VPORT_Z_SCALE_ENA(x) (((x) & 0x00000001) << 4) #define PA_CL_VTE_CNTL__VPORT_Z_OFFSET_ENA(x) (((x) & 0x00000001) << 5) #define PA_CL_VTE_CNTL__VTX_XY_FMT(x) (((x) & 0x00000001) << 8) #define PA_CL_VTE_CNTL__VTX_Z_FMT(x) (((x) & 0x00000001) << 9) #define PA_CL_VTE_CNTL__VTX_W0_FMT(x) (((x) & 0x00000001) << 10) #define PA_CL_VTE_CNTL__PERFCOUNTER_REF(x) (((x) & 0x00000001) << 11) #define PA_CL_VS_OUT_CNTL 0x0002881c #define PA_CL_VS_OUT_CNTL__CLIP_DIST_ENA_0(x) (((x) & 0x00000001) << 0) #define PA_CL_VS_OUT_CNTL__CLIP_DIST_ENA_1(x) (((x) & 0x00000001) << 1) #define PA_CL_VS_OUT_CNTL__CLIP_DIST_ENA_2(x) (((x) & 0x00000001) << 2) #define PA_CL_VS_OUT_CNTL__CLIP_DIST_ENA_3(x) (((x) & 0x00000001) << 3) #define PA_CL_VS_OUT_CNTL__CLIP_DIST_ENA_4(x) (((x) & 0x00000001) << 4) #define PA_CL_VS_OUT_CNTL__CLIP_DIST_ENA_5(x) (((x) & 0x00000001) << 5) #define PA_CL_VS_OUT_CNTL__CLIP_DIST_ENA_6(x) (((x) & 0x00000001) << 6) #define PA_CL_VS_OUT_CNTL__CLIP_DIST_ENA_7(x) (((x) & 0x00000001) << 7) #define PA_CL_VS_OUT_CNTL__CULL_DIST_ENA_0(x) (((x) & 0x00000001) << 8) #define PA_CL_VS_OUT_CNTL__CULL_DIST_ENA_1(x) (((x) & 0x00000001) << 9) #define PA_CL_VS_OUT_CNTL__CULL_DIST_ENA_2(x) (((x) & 0x00000001) << 10) #define PA_CL_VS_OUT_CNTL__CULL_DIST_ENA_3(x) (((x) & 0x00000001) << 11) #define PA_CL_VS_OUT_CNTL__CULL_DIST_ENA_4(x) (((x) & 0x00000001) << 12) #define PA_CL_VS_OUT_CNTL__CULL_DIST_ENA_5(x) (((x) & 0x00000001) << 13) #define PA_CL_VS_OUT_CNTL__CULL_DIST_ENA_6(x) (((x) & 0x00000001) << 14) #define PA_CL_VS_OUT_CNTL__CULL_DIST_ENA_7(x) (((x) & 0x00000001) << 15) #define PA_CL_VS_OUT_CNTL__USE_VTX_POINT_SIZE(x) (((x) & 0x00000001) << 16) #define PA_CL_VS_OUT_CNTL__USE_VTX_EDGE_FLAG(x) (((x) & 0x00000001) << 17) #define PA_CL_VS_OUT_CNTL__USE_VTX_RENDER_TARGET_INDX(x) (((x) & 0x00000001) << 18) #define PA_CL_VS_OUT_CNTL__USE_VTX_VIEWPORT_INDX(x) (((x) & 0x00000001) << 19) #define PA_CL_VS_OUT_CNTL__USE_VTX_KILL_FLAG(x) (((x) & 0x00000001) << 20) #define PA_CL_VS_OUT_CNTL__VS_OUT_MISC_VEC_ENA(x) (((x) & 0x00000001) << 21) #define PA_CL_VS_OUT_CNTL__VS_OUT_CCDIST0_VEC_ENA(x) (((x) & 0x00000001) << 22) #define PA_CL_VS_OUT_CNTL__VS_OUT_CCDIST1_VEC_ENA(x) (((x) & 0x00000001) << 23) #define PA_CL_NANINF_CNTL 0x00028820 #define PA_CL_NANINF_CNTL__VTE_XY_INF_DISCARD(x) (((x) & 0x00000001) << 0) #define PA_CL_NANINF_CNTL__VTE_Z_INF_DISCARD(x) (((x) & 0x00000001) << 1) #define PA_CL_NANINF_CNTL__VTE_W_INF_DISCARD(x) (((x) & 0x00000001) << 2) #define PA_CL_NANINF_CNTL__VTE_0XNANINF_IS_0(x) (((x) & 0x00000001) << 3) #define PA_CL_NANINF_CNTL__VTE_XY_NAN_RETAIN(x) (((x) & 0x00000001) << 4) #define PA_CL_NANINF_CNTL__VTE_Z_NAN_RETAIN(x) (((x) & 0x00000001) << 5) #define PA_CL_NANINF_CNTL__VTE_W_NAN_RETAIN(x) (((x) & 0x00000001) << 6) #define PA_CL_NANINF_CNTL__VTE_W_RECIP_NAN_IS_0(x) (((x) & 0x00000001) << 7) #define PA_CL_NANINF_CNTL__VS_XY_NAN_TO_INF(x) (((x) & 0x00000001) << 8) #define PA_CL_NANINF_CNTL__VS_XY_INF_RETAIN(x) (((x) & 0x00000001) << 9) #define PA_CL_NANINF_CNTL__VS_Z_NAN_TO_INF(x) (((x) & 0x00000001) << 10) #define PA_CL_NANINF_CNTL__VS_Z_INF_RETAIN(x) (((x) & 0x00000001) << 11) #define PA_CL_NANINF_CNTL__VS_W_NAN_TO_INF(x) (((x) & 0x00000001) << 12) #define PA_CL_NANINF_CNTL__VS_W_INF_RETAIN(x) (((x) & 0x00000001) << 13) #define PA_CL_NANINF_CNTL__VS_CLIP_DIST_INF_DISCARD(x) (((x) & 0x00000001) << 14) #define PA_CL_NANINF_CNTL__VTE_NO_OUTPUT_NEG_0(x) (((x) & 0x00000001) << 20) #define SQ_PGM_START_PS 0x00028840 #define SQ_PGM_RESOURCES_PS 0x00028850 #define SQ_PGM_RESOURCES_PS__NUM_GPRS(x) (((x) & 0x000000ff) << 0) #define SQ_PGM_RESOURCES_PS__STACK_SIZE(x) (((x) & 0x000000ff) << 8) #define SQ_PGM_RESOURCES_PS__DX10_CLAMP(x) (((x) & 0x00000001) << 21) #define SQ_PGM_RESOURCES_PS__FETCH_CACHE_LINES(x) (((x) & 0x00000007) << 24) #define SQ_PGM_RESOURCES_PS__UNCACHED_FIRST_INST(x) (((x) & 0x00000001) << 28) #define SQ_PGM_RESOURCES_PS__CLAMP_CONSTS(x) (((x) & 0x00000001) << 31) #define SQ_PGM_EXPORTS_PS 0x00028854 #define SQ_PGM_EXPORTS_PS__EXPORT_MODE(x) (((x) & 0x0000001f) << 0) #define SQ_PGM_START_VS 0x00028858 #define SQ_PGM_RESOURCES_VS 0x00028868 #define SQ_PGM_RESOURCES_VS__NUM_GPRS(x) (((x) & 0x000000ff) << 0) #define SQ_PGM_RESOURCES_VS__STACK_SIZE(x) (((x) & 0x000000ff) << 8) #define SQ_PGM_RESOURCES_VS__DX10_CLAMP(x) (((x) & 0x00000001) << 21) #define SQ_PGM_RESOURCES_VS__FETCH_CACHE_LINES(x) (((x) & 0x00000007) << 24) #define SQ_PGM_RESOURCES_VS__UNCACHED_FIRST_INST(x) (((x) & 0x00000001) << 28) #define SQ_PGM_START_GS 0x0002886c #define SQ_PGM_RESOURCES_GS 0x0002887c #define SQ_PGM_RESOURCES_GS__NUM_GPRS(x) (((x) & 0x000000ff) << 0) #define SQ_PGM_RESOURCES_GS__STACK_SIZE(x) (((x) & 0x000000ff) << 8) #define SQ_PGM_RESOURCES_GS__DX10_CLAMP(x) (((x) & 0x00000001) << 21) #define SQ_PGM_RESOURCES_GS__FETCH_CACHE_LINES(x) (((x) & 0x00000007) << 24) #define SQ_PGM_RESOURCES_GS__UNCACHED_FIRST_INST(x) (((x) & 0x00000001) << 28) #define SQ_PGM_START_ES 0x00028880 #define SQ_PGM_RESOURCES_ES 0x00028890 #define SQ_PGM_RESOURCES_ES__NUM_GPRS(x) (((x) & 0x000000ff) << 0) #define SQ_PGM_RESOURCES_ES__STACK_SIZE(x) (((x) & 0x000000ff) << 8) #define SQ_PGM_RESOURCES_ES__DX10_CLAMP(x) (((x) & 0x00000001) << 21) #define SQ_PGM_RESOURCES_ES__FETCH_CACHE_LINES(x) (((x) & 0x00000007) << 24) #define SQ_PGM_RESOURCES_ES__UNCACHED_FIRST_INST(x) (((x) & 0x00000001) << 28) #define SQ_PGM_START_FS 0x00028894 #define SQ_PGM_RESOURCES_FS 0x000288a4 #define SQ_PGM_RESOURCES_FS__NUM_GPRS(x) (((x) & 0x000000ff) << 0) #define SQ_PGM_RESOURCES_FS__STACK_SIZE(x) (((x) & 0x000000ff) << 8) #define SQ_PGM_RESOURCES_FS__DX10_CLAMP(x) (((x) & 0x00000001) << 21) #define SQ_ESGS_RING_ITEMSIZE 0x000288a8 #define SQ_ESGS_RING_ITEMSIZE__ITEMSIZE(x) (((x) & 0x00007fff) << 0) #define SQ_GSVS_RING_ITEMSIZE 0x000288ac #define SQ_GSVS_RING_ITEMSIZE__ITEMSIZE(x) (((x) & 0x00007fff) << 0) #define SQ_ESTMP_RING_ITEMSIZE 0x000288b0 #define SQ_ESTMP_RING_ITEMSIZE__ITEMSIZE(x) (((x) & 0x00007fff) << 0) #define SQ_GSTMP_RING_ITEMSIZE 0x000288b4 #define SQ_GSTMP_RING_ITEMSIZE__ITEMSIZE(x) (((x) & 0x00007fff) << 0) #define SQ_VSTMP_RING_ITEMSIZE 0x000288b8 #define SQ_VSTMP_RING_ITEMSIZE__ITEMSIZE(x) (((x) & 0x00007fff) << 0) #define SQ_PSTMP_RING_ITEMSIZE 0x000288bc #define SQ_PSTMP_RING_ITEMSIZE__ITEMSIZE(x) (((x) & 0x00007fff) << 0) #define SQ_FBUF_RING_ITEMSIZE 0x000288c0 #define SQ_FBUF_RING_ITEMSIZE__ITEMSIZE(x) (((x) & 0x00007fff) << 0) #define SQ_REDUC_RING_ITEMSIZE 0x000288c4 #define SQ_REDUC_RING_ITEMSIZE__ITEMSIZE(x) (((x) & 0x00007fff) << 0) #define SQ_GS_VERT_ITEMSIZE 0x000288c8 #define SQ_GS_VERT_ITEMSIZE__ITEMSIZE(x) (((x) & 0x00007fff) << 0) #define SQ_PGM_CF_OFFSET_PS 0x000288cc #define SQ_PGM_CF_OFFSET_PS__PGM_CF_OFFSET(x) (((x) & 0x000fffff) << 0) #define SQ_PGM_CF_OFFSET_VS 0x000288d0 #define SQ_PGM_CF_OFFSET_VS__PGM_CF_OFFSET(x) (((x) & 0x000fffff) << 0) #define SQ_PGM_CF_OFFSET_GS 0x000288d4 #define SQ_PGM_CF_OFFSET_GS__PGM_CF_OFFSET(x) (((x) & 0x000fffff) << 0) #define SQ_PGM_CF_OFFSET_ES 0x000288d8 #define SQ_PGM_CF_OFFSET_ES__PGM_CF_OFFSET(x) (((x) & 0x000fffff) << 0) #define SQ_PGM_CF_OFFSET_FS 0x000288dc #define SQ_PGM_CF_OFFSET_FS__PGM_CF_OFFSET(x) (((x) & 0x000fffff) << 0) #define SQ_VTX_SEMANTIC_CLEAR 0x000288e0 #define SQ_ALU_CONST_CACHE_PS_0 0x00028940 #define SQ_ALU_CONST_CACHE_PS_1 0x00028944 #define SQ_ALU_CONST_CACHE_PS_2 0x00028948 #define SQ_ALU_CONST_CACHE_PS_3 0x0002894c #define SQ_ALU_CONST_CACHE_PS_4 0x00028950 #define SQ_ALU_CONST_CACHE_PS_5 0x00028954 #define SQ_ALU_CONST_CACHE_PS_6 0x00028958 #define SQ_ALU_CONST_CACHE_PS_7 0x0002895c #define SQ_ALU_CONST_CACHE_PS_8 0x00028960 #define SQ_ALU_CONST_CACHE_PS_9 0x00028964 #define SQ_ALU_CONST_CACHE_PS_10 0x00028968 #define SQ_ALU_CONST_CACHE_PS_11 0x0002896c #define SQ_ALU_CONST_CACHE_PS_12 0x00028970 #define SQ_ALU_CONST_CACHE_PS_13 0x00028974 #define SQ_ALU_CONST_CACHE_PS_14 0x00028978 #define SQ_ALU_CONST_CACHE_PS_15 0x0002897c #define SQ_ALU_CONST_CACHE_VS_0 0x00028980 #define SQ_ALU_CONST_CACHE_VS_1 0x00028984 #define SQ_ALU_CONST_CACHE_VS_2 0x00028988 #define SQ_ALU_CONST_CACHE_VS_3 0x0002898c #define SQ_ALU_CONST_CACHE_VS_4 0x00028990 #define SQ_ALU_CONST_CACHE_VS_5 0x00028994 #define SQ_ALU_CONST_CACHE_VS_6 0x00028998 #define SQ_ALU_CONST_CACHE_VS_7 0x0002899c #define SQ_ALU_CONST_CACHE_VS_8 0x000289a0 #define SQ_ALU_CONST_CACHE_VS_9 0x000289a4 #define SQ_ALU_CONST_CACHE_VS_10 0x000289a8 #define SQ_ALU_CONST_CACHE_VS_11 0x000289ac #define SQ_ALU_CONST_CACHE_VS_12 0x000289b0 #define SQ_ALU_CONST_CACHE_VS_13 0x000289b4 #define SQ_ALU_CONST_CACHE_VS_14 0x000289b8 #define SQ_ALU_CONST_CACHE_VS_15 0x000289bc #define SQ_ALU_CONST_CACHE_GS_0 0x000289c0 #define SQ_ALU_CONST_CACHE_GS_1 0x000289c4 #define SQ_ALU_CONST_CACHE_GS_2 0x000289c8 #define SQ_ALU_CONST_CACHE_GS_3 0x000289cc #define SQ_ALU_CONST_CACHE_GS_4 0x000289d0 #define SQ_ALU_CONST_CACHE_GS_5 0x000289d4 #define SQ_ALU_CONST_CACHE_GS_6 0x000289d8 #define SQ_ALU_CONST_CACHE_GS_7 0x000289dc #define SQ_ALU_CONST_CACHE_GS_8 0x000289e0 #define SQ_ALU_CONST_CACHE_GS_9 0x000289e4 #define SQ_ALU_CONST_CACHE_GS_10 0x000289e8 #define SQ_ALU_CONST_CACHE_GS_11 0x000289ec #define SQ_ALU_CONST_CACHE_GS_12 0x000289f0 #define SQ_ALU_CONST_CACHE_GS_13 0x000289f4 #define SQ_ALU_CONST_CACHE_GS_14 0x000289f8 #define SQ_ALU_CONST_CACHE_GS_15 0x000289fc #define PA_SU_POINT_SIZE 0x00028a00 #define PA_SU_POINT_SIZE__HEIGHT(x) (((x) & 0x0000ffff) << 0) #define PA_SU_POINT_SIZE__WIDTH(x) (((x) & 0x0000ffff) << 16) #define PA_SU_POINT_MINMAX 0x00028a04 #define PA_SU_POINT_MINMAX__MIN_SIZE(x) (((x) & 0x0000ffff) << 0) #define PA_SU_POINT_MINMAX__MAX_SIZE(x) (((x) & 0x0000ffff) << 16) #define PA_SU_LINE_CNTL 0x00028a08 #define PA_SU_LINE_CNTL__WIDTH(x) (((x) & 0x0000ffff) << 0) #define PA_SC_LINE_STIPPLE 0x00028a0c #define PA_SC_LINE_STIPPLE__LINE_PATTERN(x) (((x) & 0x0000ffff) << 0) #define PA_SC_LINE_STIPPLE__REPEAT_COUNT(x) (((x) & 0x000000ff) << 16) #define PA_SC_LINE_STIPPLE__PATTERN_BIT_ORDER(x) (((x) & 0x00000001) << 28) #define PA_SC_LINE_STIPPLE__AUTO_RESET_CNTL(x) (((x) & 0x00000003) << 29) #define VGT_OUTPUT_PATH_CNTL 0x00028a10 #define VGT_OUTPUT_PATH_CNTL__PATH_SELECT(x) (((x) & 0x00000003) << 0) #define VGT_OUTPATH_VTX_REUSE 0 #define VGT_OUTPATH_TESS_EN 1 #define VGT_OUTPATH_PASSTHRU 2 #define VGT_OUTPATH_GS_BLOCK 3 #define VGT_HOS_CNTL 0x00028a14 #define VGT_HOS_CNTL__TESS_MODE(x) (((x) & 0x00000003) << 0) #define VGT_HOS_MAX_TESS_LEVEL 0x00028a18 #define VGT_HOS_MIN_TESS_LEVEL 0x00028a1c #define VGT_HOS_REUSE_DEPTH 0x00028a20 #define VGT_HOS_REUSE_DEPTH__REUSE_DEPTH(x) (((x) & 0x000000ff) << 0) #define VGT_GROUP_PRIM_TYPE 0x00028a24 #define VGT_GROUP_PRIM_TYPE__PRIM_TYPE(x) (((x) & 0x0000001f) << 0) #define VGT_GRP_3D_POINT 0 #define VGT_GRP_3D_LINE 1 #define VGT_GRP_3D_TRI 2 #define VGT_GRP_3D_RECT 3 #define VGT_GRP_3D_QUAD 4 #define VGT_GRP_2D_COPY_RECT_V0 5 #define VGT_GRP_2D_COPY_RECT_V1 6 #define VGT_GRP_2D_COPY_RECT_V2 7 #define VGT_GRP_2D_COPY_RECT_V3 8 #define VGT_GRP_2D_FILL_RECT 9 #define VGT_GRP_2D_LINE 10 #define VGT_GRP_2D_TRI 11 #define VGT_GRP_PRIM_INDEX_LINE 12 #define VGT_GRP_PRIM_INDEX_TRI 13 #define VGT_GRP_PRIM_INDEX_QUAD 14 #define VGT_GRP_3D_LINE_ADJ 15 #define VGT_GRP_3D_TRI_ADJ 16 #define VGT_GROUP_PRIM_TYPE__RETAIN_ORDER(x) (((x) & 0x00000001) << 14) #define VGT_GROUP_PRIM_TYPE__RETAIN_QUADS(x) (((x) & 0x00000001) << 15) #define VGT_GROUP_PRIM_TYPE__PRIM_ORDER(x) (((x) & 0x00000007) << 16) #define VGT_GRP_LIST 0 #define VGT_GRP_STRIP 1 #define VGT_GRP_FAN 2 #define VGT_GRP_LOOP 3 #define VGT_GRP_POLYGON 4 #define VGT_GROUP_FIRST_DECR 0x00028a28 #define VGT_GROUP_FIRST_DECR__FIRST_DECR(x) (((x) & 0x0000000f) << 0) #define VGT_GROUP_DECR 0x00028a2c #define VGT_GROUP_DECR__DECR(x) (((x) & 0x0000000f) << 0) #define VGT_GROUP_VECT_0_CNTL 0x00028a30 #define VGT_GROUP_VECT_0_CNTL__COMP_X_EN(x) (((x) & 0x00000001) << 0) #define VGT_GROUP_VECT_0_CNTL__COMP_Y_EN(x) (((x) & 0x00000001) << 1) #define VGT_GROUP_VECT_0_CNTL__COMP_Z_EN(x) (((x) & 0x00000001) << 2) #define VGT_GROUP_VECT_0_CNTL__COMP_W_EN(x) (((x) & 0x00000001) << 3) #define VGT_GROUP_VECT_0_CNTL__STRIDE(x) (((x) & 0x000000ff) << 8) #define VGT_GROUP_VECT_0_CNTL__SHIFT(x) (((x) & 0x000000ff) << 16) #define VGT_GROUP_VECT_1_CNTL 0x00028a34 #define VGT_GROUP_VECT_1_CNTL__COMP_X_EN(x) (((x) & 0x00000001) << 0) #define VGT_GROUP_VECT_1_CNTL__COMP_Y_EN(x) (((x) & 0x00000001) << 1) #define VGT_GROUP_VECT_1_CNTL__COMP_Z_EN(x) (((x) & 0x00000001) << 2) #define VGT_GROUP_VECT_1_CNTL__COMP_W_EN(x) (((x) & 0x00000001) << 3) #define VGT_GROUP_VECT_1_CNTL__STRIDE(x) (((x) & 0x000000ff) << 8) #define VGT_GROUP_VECT_1_CNTL__SHIFT(x) (((x) & 0x000000ff) << 16) #define VGT_GROUP_VECT_0_FMT_CNTL 0x00028a38 #define VGT_GROUP_VECT_0_FMT_CNTL__X_CONV(x) (((x) & 0x0000000f) << 0) #define VGT_GRP_INDEX_16 0 #define VGT_GRP_INDEX_32 1 #define VGT_GRP_UINT_16 2 #define VGT_GRP_UINT_32 3 #define VGT_GRP_SINT_16 4 #define VGT_GRP_SINT_32 5 #define VGT_GRP_FLOAT_32 6 #define VGT_GRP_AUTO_PRIM 7 #define VGT_GRP_FIX_1_23_TO_FLOAT 8 #define VGT_GROUP_VECT_0_FMT_CNTL__X_OFFSET(x) (((x) & 0x0000000f) << 4) #define VGT_GROUP_VECT_0_FMT_CNTL__Y_CONV(x) (((x) & 0x0000000f) << 8) #define VGT_GRP_INDEX_16 0 #define VGT_GRP_INDEX_32 1 #define VGT_GRP_UINT_16 2 #define VGT_GRP_UINT_32 3 #define VGT_GRP_SINT_16 4 #define VGT_GRP_SINT_32 5 #define VGT_GRP_FLOAT_32 6 #define VGT_GRP_AUTO_PRIM 7 #define VGT_GRP_FIX_1_23_TO_FLOAT 8 #define VGT_GROUP_VECT_0_FMT_CNTL__Y_OFFSET(x) (((x) & 0x0000000f) << 12) #define VGT_GROUP_VECT_0_FMT_CNTL__Z_CONV(x) (((x) & 0x0000000f) << 16) #define VGT_GRP_INDEX_16 0 #define VGT_GRP_INDEX_32 1 #define VGT_GRP_UINT_16 2 #define VGT_GRP_UINT_32 3 #define VGT_GRP_SINT_16 4 #define VGT_GRP_SINT_32 5 #define VGT_GRP_FLOAT_32 6 #define VGT_GRP_AUTO_PRIM 7 #define VGT_GRP_FIX_1_23_TO_FLOAT 8 #define VGT_GROUP_VECT_0_FMT_CNTL__Z_OFFSET(x) (((x) & 0x0000000f) << 20) #define VGT_GROUP_VECT_0_FMT_CNTL__W_CONV(x) (((x) & 0x0000000f) << 24) #define VGT_GRP_INDEX_16 0 #define VGT_GRP_INDEX_32 1 #define VGT_GRP_UINT_16 2 #define VGT_GRP_UINT_32 3 #define VGT_GRP_SINT_16 4 #define VGT_GRP_SINT_32 5 #define VGT_GRP_FLOAT_32 6 #define VGT_GRP_AUTO_PRIM 7 #define VGT_GRP_FIX_1_23_TO_FLOAT 8 #define VGT_GROUP_VECT_0_FMT_CNTL__W_OFFSET(x) (((x) & 0x0000000f) << 28) #define VGT_GROUP_VECT_1_FMT_CNTL 0x00028a3c #define VGT_GROUP_VECT_1_FMT_CNTL__X_CONV(x) (((x) & 0x0000000f) << 0) #define VGT_GRP_INDEX_16 0 #define VGT_GRP_INDEX_32 1 #define VGT_GRP_UINT_16 2 #define VGT_GRP_UINT_32 3 #define VGT_GRP_SINT_16 4 #define VGT_GRP_SINT_32 5 #define VGT_GRP_FLOAT_32 6 #define VGT_GRP_AUTO_PRIM 7 #define VGT_GRP_FIX_1_23_TO_FLOAT 8 #define VGT_GROUP_VECT_1_FMT_CNTL__X_OFFSET(x) (((x) & 0x0000000f) << 4) #define VGT_GROUP_VECT_1_FMT_CNTL__Y_CONV(x) (((x) & 0x0000000f) << 8) #define VGT_GRP_INDEX_16 0 #define VGT_GRP_INDEX_32 1 #define VGT_GRP_UINT_16 2 #define VGT_GRP_UINT_32 3 #define VGT_GRP_SINT_16 4 #define VGT_GRP_SINT_32 5 #define VGT_GRP_FLOAT_32 6 #define VGT_GRP_AUTO_PRIM 7 #define VGT_GRP_FIX_1_23_TO_FLOAT 8 #define VGT_GROUP_VECT_1_FMT_CNTL__Y_OFFSET(x) (((x) & 0x0000000f) << 12) #define VGT_GROUP_VECT_1_FMT_CNTL__Z_CONV(x) (((x) & 0x0000000f) << 16) #define VGT_GRP_INDEX_16 0 #define VGT_GRP_INDEX_32 1 #define VGT_GRP_UINT_16 2 #define VGT_GRP_UINT_32 3 #define VGT_GRP_SINT_16 4 #define VGT_GRP_SINT_32 5 #define VGT_GRP_FLOAT_32 6 #define VGT_GRP_AUTO_PRIM 7 #define VGT_GRP_FIX_1_23_TO_FLOAT 8 #define VGT_GROUP_VECT_1_FMT_CNTL__Z_OFFSET(x) (((x) & 0x0000000f) << 20) #define VGT_GROUP_VECT_1_FMT_CNTL__W_CONV(x) (((x) & 0x0000000f) << 24) #define VGT_GRP_INDEX_16 0 #define VGT_GRP_INDEX_32 1 #define VGT_GRP_UINT_16 2 #define VGT_GRP_UINT_32 3 #define VGT_GRP_SINT_16 4 #define VGT_GRP_SINT_32 5 #define VGT_GRP_FLOAT_32 6 #define VGT_GRP_AUTO_PRIM 7 #define VGT_GRP_FIX_1_23_TO_FLOAT 8 #define VGT_GROUP_VECT_1_FMT_CNTL__W_OFFSET(x) (((x) & 0x0000000f) << 28) #define VGT_GS_MODE 0x00028a40 #define VGT_GS_MODE__MODE(x) (((x) & 0x00000003) << 0) #define GS_OFF 0 #define GS_SCENARIO_A 1 #define GS_SCENARIO_B 2 #define GS_SCENARIO_G 3 #define VGT_GS_MODE__ES_PASSTHRU(x) (((x) & 0x00000001) << 2) #define VGT_GS_MODE__CUT_MODE(x) (((x) & 0x00000003) << 3) #define GS_CUT_1024 0 #define GS_CUT_512 1 #define GS_CUT_256 2 #define GS_CUT_128 3 #define PA_SC_MPASS_PS_CNTL 0x00028a48 #define PA_SC_MPASS_PS_CNTL__MPASS_PIX_VEC_PER_PASS(x) (((x) & 0x000fffff) << 0) #define PA_SC_MPASS_PS_CNTL__MPASS_PS_ENA(x) (((x) & 0x00000001) << 31) #define PA_SC_MODE_CNTL 0x00028a4c #define PA_SC_MODE_CNTL__MSAA_ENABLE(x) (((x) & 0x00000001) << 0) #define PA_SC_MODE_CNTL__CLIPRECT_ENABLE(x) (((x) & 0x00000001) << 1) #define PA_SC_MODE_CNTL__LINE_STIPPLE_ENABLE(x) (((x) & 0x00000001) << 2) #define PA_SC_MODE_CNTL__MULTI_CHIP_PRIM_DISCARD_ENAB(x) (((x) & 0x00000001) << 3) #define PA_SC_MODE_CNTL__WALK_ORDER_ENABLE(x) (((x) & 0x00000001) << 4) #define PA_SC_MODE_CNTL__HALVE_DETAIL_SAMPLE_PERF(x) (((x) & 0x00000001) << 5) #define PA_SC_MODE_CNTL__WALK_SIZE(x) (((x) & 0x00000001) << 6) #define PA_SC_MODE_CNTL__WALK_ALIGNMENT(x) (((x) & 0x00000001) << 7) #define PA_SC_MODE_CNTL__WALK_ALIGN8_PRIM_FITS_ST(x) (((x) & 0x00000001) << 8) #define PA_SC_MODE_CNTL__TILE_COVER_NO_SCISSOR(x) (((x) & 0x00000001) << 9) #define PA_SC_MODE_CNTL__KILL_PIX_POST_HI_Z(x) (((x) & 0x00000001) << 10) #define PA_SC_MODE_CNTL__KILL_PIX_POST_DETAIL_MASK(x) (((x) & 0x00000001) << 11) #define PA_SC_MODE_CNTL__MULTI_CHIP_SUPERTILE_ENABLE(x) (((x) & 0x00000001) << 12) #define PA_SC_MODE_CNTL__TILE_COVER_DISABLE(x) (((x) & 0x00000001) << 13) #define PA_SC_MODE_CNTL__FORCE_EOV_CNTDWN_ENABLE(x) (((x) & 0x00000001) << 14) #define PA_SC_MODE_CNTL__FORCE_EOV_TILE_ENABLE(x) (((x) & 0x00000001) << 15) #define PA_SC_MODE_CNTL__FORCE_EOV_REZ_ENABLE(x) (((x) & 0x00000001) << 16) #define PA_SC_MODE_CNTL__PS_ITER_SAMPLE(x) (((x) & 0x00000001) << 17) #define VGT_ENHANCE 0x00028a50 #define VGT_ENHANCE__MI_TIMESTAMP_RES(x) (((x) & 0x00000003) << 0) #define X_0_992_CLOCKS_LATENCY_RANGE_IN_STEPS_OF_32 0 #define X_0_496_CLOCKS_LATENCY_RANGE_IN_STEPS_OF_16 1 #define X_0_248_CLOCKS_LATENCY_RANGE_IN_STEPS_OF_8 2 #define X_0_124_CLOCKS_LATENCY_RANGE_IN_STEPS_OF_4 3 #define VGT_ENHANCE__MISC(x) (((x) & 0x3fffffff) << 2) #define VGT_GS_OUT_PRIM_TYPE 0x00028a6c #define VGT_GS_OUT_PRIM_TYPE__OUTPRIM_TYPE(x) (((x) & 0x0000003f) << 0) #define POINTLIST 0 #define LINESTRIP 1 #define TRISTRIP 2 #define VGT_DMA_SIZE 0x00028a74 #define VGT_DMA_INDEX_TYPE 0x00028a7c #define VGT_DMA_INDEX_TYPE__INDEX_TYPE(x) (((x) & 0x00000003) << 0) #define VGT_INDEX_16 0 #define VGT_INDEX_32 1 #define VGT_DMA_INDEX_TYPE__SWAP_MODE(x) (((x) & 0x00000003) << 2) #define VGT_DMA_SWAP_NONE 0 #define VGT_DMA_SWAP_16_BIT 1 #define VGT_DMA_SWAP_32_BIT 2 #define VGT_DMA_SWAP_WORD 3 #define VGT_PRIMITIVEID_EN 0x00028a84 #define VGT_PRIMITIVEID_EN__PRIMITIVEID_EN(x) (((x) & 0x00000001) << 0) #define VGT_DMA_NUM_INSTANCES 0x00028a88 #define VGT_EVENT_INITIATOR 0x00028a90 #define VGT_EVENT_INITIATOR__EVENT_TYPE(x) (((x) & 0x0000003f) << 0) #define CACHE_FLUSH_TS 4 #define CONTEXT_DONE 5 #define CACHE_FLUSH 6 #define VIZQUERY_START 7 #define VIZQUERY_END 8 #define SC_WAIT_WC 9 #define MPASS_PS_CP_REFETCH 10 #define MPASS_PS_RST_START 11 #define MPASS_PS_INCR_START 12 #define RST_PIX_CNT 13 #define RST_VTX_CNT 14 #define VS_PARTIAL_FLUSH 15 #define PS_PARTIAL_FLUSH 16 #define CACHE_FLUSH_AND_INV_TS_EVENT 20 #define ZPASS_DONE 21 #define CACHE_FLUSH_AND_INV_EVENT 22 #define PERFCOUNTER_START 23 #define PERFCOUNTER_STOP 24 #define PIPELINESTAT_START 25 #define PIPELINESTAT_STOP 26 #define PERFCOUNTER_SAMPLE 27 #define FLUSH_ES_OUTPUT 28 #define FLUSH_GS_OUTPUT 29 #define SAMPLE_PIPELINESTAT 30 #define SO_VGTSTREAMOUT_FLUSH 31 #define SAMPLE_STREAMOUTSTATS 32 #define RESET_VTX_CNT 33 #define BLOCK_CONTEXT_DONE 34 #define CR_CONTEXT_DONE 35 #define VGT_FLUSH 36 #define CR_DONE_TS 37 #define SQ_NON_EVENT 38 #define SC_SEND_DB_VPZ 39 #define BOTTOM_OF_PIPE_TS 40 #define DB_CACHE_FLUSH_AND_INV 42 #define VGT_EVENT_INITIATOR__ADDRESS_HI(x) (((x) & 0x000000ff) << 19) #define VGT_EVENT_INITIATOR__EXTENDED_EVENT(x) (((x) & 0x00000001) << 27) #define VGT_MULTI_PRIM_IB_RESET_EN 0x00028a94 #define VGT_MULTI_PRIM_IB_RESET_EN__RESET_EN(x) (((x) & 0x00000001) << 0) #define VGT_INSTANCE_STEP_RATE_0 0x00028aa0 #define VGT_INSTANCE_STEP_RATE_1 0x00028aa4 #define VGT_STRMOUT_EN 0x00028ab0 #define VGT_STRMOUT_EN__STREAMOUT(x) (((x) & 0x00000001) << 0) #define VGT_REUSE_OFF 0x00028ab4 #define VGT_REUSE_OFF__REUSE_OFF(x) (((x) & 0x00000001) << 0) #define VGT_VTX_CNT_EN 0x00028ab8 #define VGT_VTX_CNT_EN__VTX_CNT_EN(x) (((x) & 0x00000001) << 0) #define VGT_STRMOUT_BUFFER_SIZE_0 0x00028ad0 #define VGT_STRMOUT_VTX_STRIDE_0 0x00028ad4 #define VGT_STRMOUT_VTX_STRIDE_0__STRIDE(x) (((x) & 0x000003ff) << 0) #define VGT_STRMOUT_BUFFER_BASE_0 0x00028ad8 #define VGT_STRMOUT_BUFFER_OFFSET_0 0x00028adc #define VGT_STRMOUT_BUFFER_SIZE_1 0x00028ae0 #define VGT_STRMOUT_VTX_STRIDE_1 0x00028ae4 #define VGT_STRMOUT_VTX_STRIDE_1__STRIDE(x) (((x) & 0x000003ff) << 0) #define VGT_STRMOUT_BUFFER_BASE_1 0x00028ae8 #define VGT_STRMOUT_BUFFER_OFFSET_1 0x00028aec #define VGT_STRMOUT_BUFFER_SIZE_2 0x00028af0 #define VGT_STRMOUT_VTX_STRIDE_2 0x00028af4 #define VGT_STRMOUT_VTX_STRIDE_2__STRIDE(x) (((x) & 0x000003ff) << 0) #define VGT_STRMOUT_BUFFER_BASE_2 0x00028af8 #define VGT_STRMOUT_BUFFER_OFFSET_2 0x00028afc #define VGT_STRMOUT_BUFFER_SIZE_3 0x00028b00 #define VGT_STRMOUT_VTX_STRIDE_3 0x00028b04 #define VGT_STRMOUT_VTX_STRIDE_3__STRIDE(x) (((x) & 0x000003ff) << 0) #define VGT_STRMOUT_BUFFER_BASE_3 0x00028b08 #define VGT_STRMOUT_BUFFER_OFFSET_3 0x00028b0c #define VGT_STRMOUT_BASE_OFFSET_0 0x00028b10 #define VGT_STRMOUT_BASE_OFFSET_1 0x00028b14 #define VGT_STRMOUT_BASE_OFFSET_2 0x00028b18 #define VGT_STRMOUT_BASE_OFFSET_3 0x00028b1c #define VGT_STRMOUT_BUFFER_EN 0x00028b20 #define VGT_STRMOUT_BUFFER_EN__BUFFER_0_EN(x) (((x) & 0x00000001) << 0) #define VGT_STRMOUT_BUFFER_EN__BUFFER_1_EN(x) (((x) & 0x00000001) << 1) #define VGT_STRMOUT_BUFFER_EN__BUFFER_2_EN(x) (((x) & 0x00000001) << 2) #define VGT_STRMOUT_BUFFER_EN__BUFFER_3_EN(x) (((x) & 0x00000001) << 3) #define VGT_STRMOUT_DRAW_OPAQUE_OFFSET 0x00028b28 #define VGT_STRMOUT_DRAW_OPAQUE_BUFFER_FILLED_SIZE 0x00028b2c #define VGT_STRMOUT_DRAW_OPAQUE_VERTEX_STRIDE 0x00028b30 #define VGT_STRMOUT_BASE_OFFSET_HI_0 0x00028b44 #define VGT_STRMOUT_BASE_OFFSET_HI_0__BASE_OFFSET(x) (((x) & 0x0000003f) << 0) #define VGT_STRMOUT_BASE_OFFSET_HI_1 0x00028b48 #define VGT_STRMOUT_BASE_OFFSET_HI_1__BASE_OFFSET(x) (((x) & 0x0000003f) << 0) #define VGT_STRMOUT_BASE_OFFSET_HI_2 0x00028b4c #define VGT_STRMOUT_BASE_OFFSET_HI_2__BASE_OFFSET(x) (((x) & 0x0000003f) << 0) #define VGT_STRMOUT_BASE_OFFSET_HI_3 0x00028b50 #define VGT_STRMOUT_BASE_OFFSET_HI_3__BASE_OFFSET(x) (((x) & 0x0000003f) << 0) #define PA_SC_LINE_CNTL 0x00028c00 #define PA_SC_LINE_CNTL__BRES_CNTL(x) (((x) & 0x000000ff) << 0) #define PA_SC_LINE_CNTL__USE_BRES_CNTL(x) (((x) & 0x00000001) << 8) #define PA_SC_LINE_CNTL__EXPAND_LINE_WIDTH(x) (((x) & 0x00000001) << 9) #define PA_SC_LINE_CNTL__LAST_PIXEL(x) (((x) & 0x00000001) << 10) #define PA_SC_AA_CONFIG 0x00028c04 #define PA_SC_AA_CONFIG__MSAA_NUM_SAMPLES(x) (((x) & 0x00000003) << 0) #define PA_SC_AA_CONFIG__AA_MASK_CENTROID_DTMN(x) (((x) & 0x00000001) << 4) #define PA_SC_AA_CONFIG__MAX_SAMPLE_DIST(x) (((x) & 0x0000000f) << 13) #define PA_SU_VTX_CNTL 0x00028c08 #define PA_SU_VTX_CNTL__PIX_CENTER(x) (((x) & 0x00000001) << 0) #define PA_SU_VTX_CNTL__ROUND_MODE(x) (((x) & 0x00000003) << 1) #define X_TRUNCATE 0 #define X_ROUND 1 #define X_ROUND_TO_EVEN 2 #define X_ROUND_TO_ODD 3 #define PA_SU_VTX_CNTL__QUANT_MODE(x) (((x) & 0x00000007) << 3) #define X_1_16TH 0 #define X_1_8TH 1 #define X_1_4TH 2 #define X_1_2 3 #define X_1 4 #define X_1_256TH 5 #define PA_CL_GB_VERT_CLIP_ADJ 0x00028c0c #define PA_CL_GB_VERT_DISC_ADJ 0x00028c10 #define PA_CL_GB_HORZ_CLIP_ADJ 0x00028c14 #define PA_CL_GB_HORZ_DISC_ADJ 0x00028c18 #define PA_SC_AA_SAMPLE_LOCS_MCTX 0x00028c1c #define PA_SC_AA_SAMPLE_LOCS_MCTX__S0_X(x) (((x) & 0x0000000f) << 0) #define PA_SC_AA_SAMPLE_LOCS_MCTX__S0_Y(x) (((x) & 0x0000000f) << 4) #define PA_SC_AA_SAMPLE_LOCS_MCTX__S1_X(x) (((x) & 0x0000000f) << 8) #define PA_SC_AA_SAMPLE_LOCS_MCTX__S1_Y(x) (((x) & 0x0000000f) << 12) #define PA_SC_AA_SAMPLE_LOCS_MCTX__S2_X(x) (((x) & 0x0000000f) << 16) #define PA_SC_AA_SAMPLE_LOCS_MCTX__S2_Y(x) (((x) & 0x0000000f) << 20) #define PA_SC_AA_SAMPLE_LOCS_MCTX__S3_X(x) (((x) & 0x0000000f) << 24) #define PA_SC_AA_SAMPLE_LOCS_MCTX__S3_Y(x) (((x) & 0x0000000f) << 28) #define PA_SC_AA_SAMPLE_LOCS_8S_WD1_MCTX 0x00028c20 #define PA_SC_AA_SAMPLE_LOCS_8S_WD1_MCTX__S4_X(x) (((x) & 0x0000000f) << 0) #define PA_SC_AA_SAMPLE_LOCS_8S_WD1_MCTX__S4_Y(x) (((x) & 0x0000000f) << 4) #define PA_SC_AA_SAMPLE_LOCS_8S_WD1_MCTX__S5_X(x) (((x) & 0x0000000f) << 8) #define PA_SC_AA_SAMPLE_LOCS_8S_WD1_MCTX__S5_Y(x) (((x) & 0x0000000f) << 12) #define PA_SC_AA_SAMPLE_LOCS_8S_WD1_MCTX__S6_X(x) (((x) & 0x0000000f) << 16) #define PA_SC_AA_SAMPLE_LOCS_8S_WD1_MCTX__S6_Y(x) (((x) & 0x0000000f) << 20) #define PA_SC_AA_SAMPLE_LOCS_8S_WD1_MCTX__S7_X(x) (((x) & 0x0000000f) << 24) #define PA_SC_AA_SAMPLE_LOCS_8S_WD1_MCTX__S7_Y(x) (((x) & 0x0000000f) << 28) #define CB_CLRCMP_CONTROL 0x00028c30 #define CB_CLRCMP_CONTROL__CLRCMP_FCN_SRC(x) (((x) & 0x00000007) << 0) #define CLRCMP_DRAW_ALWAYS 0 #define CLRCMP_DRAW_NEVER 1 #define CLRCMP_DRAW_ON_NEQ 4 #define CLRCMP_DRAW_ON_EQ 5 #define CB_CLRCMP_CONTROL__CLRCMP_FCN_DST(x) (((x) & 0x00000007) << 8) #define CLRCMP_DRAW_ALWAYS 0 #define CLRCMP_DRAW_NEVER 1 #define CLRCMP_DRAW_ON_NEQ 4 #define CLRCMP_DRAW_ON_EQ 5 #define CB_CLRCMP_CONTROL__CLRCMP_FCN_SEL(x) (((x) & 0x00000003) << 24) #define CLRCMP_SEL_DST 0 #define CLRCMP_SEL_SRC 1 #define CLRCMP_SEL_AND 2 #define CB_CLRCMP_SRC 0x00028c34 #define CB_CLRCMP_DST 0x00028c38 #define CB_CLRCMP_MSK 0x00028c3c #define PA_SC_AA_MASK 0x00028c48 #define VGT_VERTEX_REUSE_BLOCK_CNTL 0x00028c58 #define VGT_VERTEX_REUSE_BLOCK_CNTL__VTX_REUSE_DEPTH(x) (((x) & 0x000000ff) << 0) #define VGT_OUT_DEALLOC_CNTL 0x00028c5c #define VGT_OUT_DEALLOC_CNTL__DEALLOC_DIST(x) (((x) & 0x0000007f) << 0) #define DB_RENDER_CONTROL 0x00028d0c #define DB_RENDER_CONTROL__DEPTH_CLEAR_ENABLE(x) (((x) & 0x00000001) << 0) #define DB_RENDER_CONTROL__STENCIL_CLEAR_ENABLE(x) (((x) & 0x00000001) << 1) #define DB_RENDER_CONTROL__DEPTH_COPY(x) (((x) & 0x00000001) << 2) #define DB_RENDER_CONTROL__STENCIL_COPY(x) (((x) & 0x00000001) << 3) #define DB_RENDER_CONTROL__RESUMMARIZE_ENABLE(x) (((x) & 0x00000001) << 4) #define DB_RENDER_CONTROL__STENCIL_COMPRESS_DISABLE(x) (((x) & 0x00000001) << 5) #define DB_RENDER_CONTROL__DEPTH_COMPRESS_DISABLE(x) (((x) & 0x00000001) << 6) #define DB_RENDER_CONTROL__COPY_CENTROID(x) (((x) & 0x00000001) << 7) #define DB_RENDER_CONTROL__COPY_SAMPLE(x) (((x) & 0x00000007) << 8) #define DB_RENDER_CONTROL__ZPASS_INCREMENT_DISABLE(x) (((x) & 0x00000001) << 11) #define DB_RENDER_OVERRIDE 0x00028d10 #define DB_RENDER_OVERRIDE__FORCE_HIZ_ENABLE(x) (((x) & 0x00000003) << 0) #define FORCE_OFF 0 #define FORCE_ENABLE 1 #define FORCE_DISABLE 2 #define FORCE_RESERVED 3 #define DB_RENDER_OVERRIDE__FORCE_HIS_ENABLE0(x) (((x) & 0x00000003) << 2) #define FORCE_OFF 0 #define FORCE_ENABLE 1 #define FORCE_DISABLE 2 #define FORCE_RESERVED 3 #define DB_RENDER_OVERRIDE__FORCE_HIS_ENABLE1(x) (((x) & 0x00000003) << 4) #define FORCE_OFF 0 #define FORCE_ENABLE 1 #define FORCE_DISABLE 2 #define FORCE_RESERVED 3 #define DB_RENDER_OVERRIDE__FORCE_SHADER_Z_ORDER(x) (((x) & 0x00000001) << 6) #define DB_RENDER_OVERRIDE__FAST_Z_DISABLE(x) (((x) & 0x00000001) << 7) #define DB_RENDER_OVERRIDE__FAST_STENCIL_DISABLE(x) (((x) & 0x00000001) << 8) #define DB_RENDER_OVERRIDE__NOOP_CULL_DISABLE(x) (((x) & 0x00000001) << 9) #define DB_RENDER_OVERRIDE__FORCE_COLOR_KILL(x) (((x) & 0x00000001) << 10) #define DB_RENDER_OVERRIDE__FORCE_Z_READ(x) (((x) & 0x00000001) << 11) #define DB_RENDER_OVERRIDE__FORCE_STENCIL_READ(x) (((x) & 0x00000001) << 12) #define DB_RENDER_OVERRIDE__FORCE_FULL_Z_RANGE(x) (((x) & 0x00000003) << 13) #define FORCE_OFF 0 #define FORCE_ENABLE 1 #define FORCE_DISABLE 2 #define FORCE_RESERVED 3 #define DB_RENDER_OVERRIDE__FORCE_QC_SMASK_CONFLICT(x) (((x) & 0x00000001) << 15) #define DB_RENDER_OVERRIDE__DISABLE_VIEWPORT_CLAMP(x) (((x) & 0x00000001) << 16) #define DB_RENDER_OVERRIDE__IGNORE_SC_ZRANGE(x) (((x) & 0x00000001) << 17) #define DB_HTILE_SURFACE 0x00028d24 #define DB_HTILE_SURFACE__HTILE_WIDTH(x) (((x) & 0x00000001) << 0) #define DB_HTILE_SURFACE__HTILE_HEIGHT(x) (((x) & 0x00000001) << 1) #define DB_HTILE_SURFACE__LINEAR(x) (((x) & 0x00000001) << 2) #define DB_HTILE_SURFACE__FULL_CACHE(x) (((x) & 0x00000001) << 3) #define DB_HTILE_SURFACE__HTILE_USES_PRELOAD_WIN(x) (((x) & 0x00000001) << 4) #define DB_HTILE_SURFACE__PRELOAD(x) (((x) & 0x00000001) << 5) #define DB_HTILE_SURFACE__PREFETCH_WIDTH(x) (((x) & 0x0000003f) << 6) #define DB_HTILE_SURFACE__PREFETCH_HEIGHT(x) (((x) & 0x0000003f) << 12) #define DB_SRESULTS_COMPARE_STATE0 0x00028d28 #define DB_SRESULTS_COMPARE_STATE0__COMPAREFUNC0(x) (((x) & 0x00000007) << 0) #define REF_NEVER 0 #define REF_LESS 1 #define REF_EQUAL 2 #define REF_LEQUAL 3 #define REF_GREATER 4 #define REF_NOTEQUAL 5 #define REF_GEQUAL 6 #define REF_ALWAYS 7 #define DB_SRESULTS_COMPARE_STATE0__COMPAREVALUE0(x) (((x) & 0x000000ff) << 4) #define DB_SRESULTS_COMPARE_STATE0__COMPAREMASK0(x) (((x) & 0x000000ff) << 12) #define DB_SRESULTS_COMPARE_STATE0__ENABLE0(x) (((x) & 0x00000001) << 24) #define DB_SRESULTS_COMPARE_STATE1 0x00028d2c #define DB_SRESULTS_COMPARE_STATE1__COMPAREFUNC1(x) (((x) & 0x00000007) << 0) #define REF_NEVER 0 #define REF_LESS 1 #define REF_EQUAL 2 #define REF_LEQUAL 3 #define REF_GREATER 4 #define REF_NOTEQUAL 5 #define REF_GEQUAL 6 #define REF_ALWAYS 7 #define DB_SRESULTS_COMPARE_STATE1__COMPAREVALUE1(x) (((x) & 0x000000ff) << 4) #define DB_SRESULTS_COMPARE_STATE1__COMPAREMASK1(x) (((x) & 0x000000ff) << 12) #define DB_SRESULTS_COMPARE_STATE1__ENABLE1(x) (((x) & 0x00000001) << 24) #define DB_PRELOAD_CONTROL 0x00028d30 #define DB_PRELOAD_CONTROL__START_X(x) (((x) & 0x000000ff) << 0) #define DB_PRELOAD_CONTROL__START_Y(x) (((x) & 0x000000ff) << 8) #define DB_PRELOAD_CONTROL__MAX_X(x) (((x) & 0x000000ff) << 16) #define DB_PRELOAD_CONTROL__MAX_Y(x) (((x) & 0x000000ff) << 24) #define DB_PREFETCH_LIMIT 0x00028d34 #define DB_PREFETCH_LIMIT__DEPTH_HEIGHT_TILE_MAX(x) (((x) & 0x000003ff) << 0) #define DB_ALPHA_TO_MASK 0x00028d44 #define DB_ALPHA_TO_MASK__ALPHA_TO_MASK_OFFSET0(x) (((x) & 0x00000003) << 8) #define DB_ALPHA_TO_MASK__ALPHA_TO_MASK_OFFSET1(x) (((x) & 0x00000003) << 10) #define DB_ALPHA_TO_MASK__ALPHA_TO_MASK_OFFSET2(x) (((x) & 0x00000003) << 12) #define DB_ALPHA_TO_MASK__ALPHA_TO_MASK_OFFSET3(x) (((x) & 0x00000003) << 14) #define PA_SU_POLY_OFFSET_DB_FMT_CNTL 0x00028df8 #define PA_SU_POLY_OFFSET_DB_FMT_CNTL__NEG_NUM_DB_BITS(x) (((x) & 0x000000ff) << 0) #define PA_SU_POLY_OFFSET_DB_FMT_CNTL__DB_IS_FLOAT_FMT(x) (((x) & 0x00000001) << 8) #define PA_SU_POLY_OFFSET_CLAMP 0x00028dfc #define PA_SU_POLY_OFFSET_FRONT_SCALE 0x00028e00 #define PA_SU_POLY_OFFSET_FRONT_OFFSET 0x00028e04 #define PA_SU_POLY_OFFSET_BACK_SCALE 0x00028e08 #define PA_SU_POLY_OFFSET_BACK_OFFSET 0x00028e0c #define PA_CL_POINT_X_RAD 0x00028e10 #define PA_CL_POINT_Y_RAD 0x00028e14 #define PA_CL_POINT_SIZE 0x00028e18 #define PA_CL_POINT_CULL_RAD 0x00028e1c #define PA_CL_UCP_0_X 0x00028e20 #define PA_CL_UCP_0_Y 0x00028e24 #define PA_CL_UCP_0_Z 0x00028e28 /***************************************************************************** * SET_ALU_CONST [0x00030000 0x00032000] */ #define SQ_ALU_CONSTANT0_0 0x00030000 #define SQ_ALU_CONSTANT1_0 0x00030004 #define SQ_ALU_CONSTANT2_0 0x00030008 #define SQ_ALU_CONSTANT3_0 0x0003000c /***************************************************************************** * SET_RESOURCE [0x00038000 0x0003c000] */ /* TEX */ #define SQ_TEX_RESOURCE_WORD0_0 0x00038000 #define SQ_TEX_RESOURCE_WORD0_0__DIM(x) (((x) & 0x00000007) << 0) #define SQ_TEX_DIM_1D 0 #define SQ_TEX_DIM_2D 1 #define SQ_TEX_DIM_3D 2 #define SQ_TEX_DIM_CUBEMAP 3 #define SQ_TEX_DIM_1D_ARRAY 4 #define SQ_TEX_DIM_2D_ARRAY 5 #define SQ_TEX_DIM_2D_MSAA 6 #define SQ_TEX_DIM_2D_ARRAY_MSAA 7 #define SQ_TEX_RESOURCE_WORD0_0__TILE_MODE(x) (((x) & 0x0000000f) << 3) #define SQ_TEX_RESOURCE_WORD0_0__TILE_TYPE(x) (((x) & 0x00000001) << 7) #define SQ_TEX_RESOURCE_WORD0_0__PITCH(x) (((x) & 0x000007ff) << 8) #define SQ_TEX_RESOURCE_WORD0_0__TEX_WIDTH(x) (((x) & 0x00001fff) << 19) #define SQ_TEX_RESOURCE_WORD1_0 0x00038004 #define SQ_TEX_RESOURCE_WORD1_0__TEX_HEIGHT(x) (((x) & 0x00001fff) << 0) #define SQ_TEX_RESOURCE_WORD1_0__TEX_DEPTH(x) (((x) & 0x00001fff) << 13) #define SQ_TEX_RESOURCE_WORD1_0__DATA_FORMAT(x) (((x) & 0x0000003f) << 26) #define SQ_TEX_RESOURCE_WORD2_0 0x00038008 #define SQ_TEX_RESOURCE_WORD3_0 0x0003800c #define SQ_TEX_RESOURCE_WORD4_0 0x00038010 #define SQ_TEX_RESOURCE_WORD4_0__FORMAT_COMP_X(x) (((x) & 0x00000003) << 0) #define SQ_FORMAT_COMP_UNSIGNED 0 #define SQ_FORMAT_COMP_SIGNED 1 #define SQ_FORMAT_COMP_UNSIGNED_BIASED 2 #define SQ_TEX_RESOURCE_WORD4_0__FORMAT_COMP_Y(x) (((x) & 0x00000003) << 2) #define SQ_FORMAT_COMP_UNSIGNED 0 #define SQ_FORMAT_COMP_SIGNED 1 #define SQ_FORMAT_COMP_UNSIGNED_BIASED 2 #define SQ_TEX_RESOURCE_WORD4_0__FORMAT_COMP_Z(x) (((x) & 0x00000003) << 4) #define SQ_FORMAT_COMP_UNSIGNED 0 #define SQ_FORMAT_COMP_SIGNED 1 #define SQ_FORMAT_COMP_UNSIGNED_BIASED 2 #define SQ_TEX_RESOURCE_WORD4_0__FORMAT_COMP_W(x) (((x) & 0x00000003) << 6) #define SQ_FORMAT_COMP_UNSIGNED 0 #define SQ_FORMAT_COMP_SIGNED 1 #define SQ_FORMAT_COMP_UNSIGNED_BIASED 2 #define SQ_TEX_RESOURCE_WORD4_0__NUM_FORMAT_ALL(x) (((x) & 0x00000003) << 8) #define SQ_NUM_FORMAT_NORM 0 #define SQ_NUM_FORMAT_INT 1 #define SQ_NUM_FORMAT_SCALED 2 #define SQ_TEX_RESOURCE_WORD4_0__SRF_MODE_ALL(x) (((x) & 0x00000001) << 10) #define SQ_TEX_RESOURCE_WORD4_0__FORCE_DEGAMMA(x) (((x) & 0x00000001) << 11) #define SQ_TEX_RESOURCE_WORD4_0__ENDIAN_SWAP(x) (((x) & 0x00000003) << 12) #define SQ_ENDIAN_NONE 0 #define SQ_ENDIAN_8IN16 1 #define SQ_ENDIAN_8IN32 2 #define SQ_TEX_RESOURCE_WORD4_0__REQUEST_SIZE(x) (((x) & 0x00000003) << 14) #define SQ_TEX_RESOURCE_WORD4_0__DST_SEL_X(x) (((x) & 0x00000007) << 16) #define SQ_SEL_X 0 #define SQ_SEL_Y 1 #define SQ_SEL_Z 2 #define SQ_SEL_W 3 #define SQ_SEL_0 4 #define SQ_SEL_1 5 #define SQ_TEX_RESOURCE_WORD4_0__DST_SEL_Y(x) (((x) & 0x00000007) << 19) #define SQ_SEL_X 0 #define SQ_SEL_Y 1 #define SQ_SEL_Z 2 #define SQ_SEL_W 3 #define SQ_SEL_0 4 #define SQ_SEL_1 5 #define SQ_TEX_RESOURCE_WORD4_0__DST_SEL_Z(x) (((x) & 0x00000007) << 22) #define SQ_SEL_X 0 #define SQ_SEL_Y 1 #define SQ_SEL_Z 2 #define SQ_SEL_W 3 #define SQ_SEL_0 4 #define SQ_SEL_1 5 #define SQ_TEX_RESOURCE_WORD4_0__DST_SEL_W(x) (((x) & 0x00000007) << 25) #define SQ_SEL_X 0 #define SQ_SEL_Y 1 #define SQ_SEL_Z 2 #define SQ_SEL_W 3 #define SQ_SEL_0 4 #define SQ_SEL_1 5 #define SQ_TEX_RESOURCE_WORD4_0__BASE_LEVEL(x) (((x) & 0x0000000f) << 28) #define SQ_TEX_RESOURCE_WORD5_0 0x00038014 #define SQ_TEX_RESOURCE_WORD5_0__LAST_LEVEL(x) (((x) & 0x0000000f) << 0) #define SQ_TEX_RESOURCE_WORD5_0__BASE_ARRAY(x) (((x) & 0x00001fff) << 4) #define SQ_TEX_RESOURCE_WORD5_0__LAST_ARRAY(x) (((x) & 0x00001fff) << 17) #define SQ_TEX_RESOURCE_WORD6_0 0x00038018 #define SQ_TEX_RESOURCE_WORD6_0__MPEG_CLAMP(x) (((x) & 0x00000003) << 0) #define SQ_TEX_MPEG_CLAMP_OFF 0 #define SQ_TEX_MPEG_9 1 #define SQ_TEX_MPEG_10 2 #define SQ_TEX_RESOURCE_WORD6_0__PERF_MODULATION(x) (((x) & 0x00000007) << 5) #define SQ_TEX_RESOURCE_WORD6_0__INTERLACED(x) (((x) & 0x00000001) << 8) #define SQ_TEX_RESOURCE_WORD6_0__TYPE(x) (((x) & 0x00000003) << 30) #define SQ_TEX_VTX_INVALID_TEXTURE 0 #define SQ_TEX_VTX_INVALID_BUFFER 1 #define SQ_TEX_VTX_VALID_TEXTURE 2 #define SQ_TEX_VTX_VALID_BUFFER 3 /* VTX */ #define SQ_VTX_CONSTANT_WORD0_0 0x00038000 #define SQ_VTX_CONSTANT_WORD1_0 0x00038004 #define SQ_VTX_CONSTANT_WORD2_0 0x00038008 #define SQ_VTX_CONSTANT_WORD2_0__BASE_ADDRESS_HI(x) (((x) & 0x000000ff) << 0) #define SQ_VTX_CONSTANT_WORD2_0__STRIDE(x) (((x) & 0x000007ff) << 8) #define SQ_VTX_CONSTANT_WORD2_0__CLAMP_X(x) (((x) & 0x00000001) << 19) #define SQ_VTX_CONSTANT_WORD2_0__DATA_FORMAT(x) (((x) & 0x0000003f) << 20) #define SQ_VTX_CONSTANT_WORD2_0__NUM_FORMAT_ALL(x) (((x) & 0x00000003) << 26) #define SQ_NUM_FORMAT_NORM 0 #define SQ_NUM_FORMAT_INT 1 #define SQ_NUM_FORMAT_SCALED 2 #define SQ_VTX_CONSTANT_WORD2_0__FORMAT_COMP_ALL(x) (((x) & 0x00000001) << 28) #define SQ_VTX_CONSTANT_WORD2_0__SRF_MODE_ALL(x) (((x) & 0x00000001) << 29) #define SQ_VTX_CONSTANT_WORD2_0__ENDIAN_SWAP(x) (((x) & 0x00000003) << 30) #define SQ_ENDIAN_NONE 0 #define SQ_ENDIAN_8IN16 1 #define SQ_ENDIAN_8IN32 2 #define SQ_VTX_CONSTANT_WORD3_0 0x0003800c #define SQ_VTX_CONSTANT_WORD3_0__MEM_REQUEST_SIZE(x) (((x) & 0x00000003) << 0) #define SQ_VTX_CONSTANT_WORD6_0 0x00038018 #define SQ_VTX_CONSTANT_WORD6_0__TYPE(x) (((x) & 0x00000003) << 30) #define SQ_TEX_VTX_INVALID_TEXTURE 0 #define SQ_TEX_VTX_INVALID_BUFFER 1 #define SQ_TEX_VTX_VALID_TEXTURE 2 #define SQ_TEX_VTX_VALID_BUFFER 3 /***************************************************************************** * SET_SAMPLER [0x0003c000 0x0003cff0] */ #define SQ_TEX_SAMPLER_WORD0_0 0x0003c000 #define SQ_TEX_SAMPLER_WORD0_0__CLAMP_X(x) (((x) & 0x00000007) << 0) #define SQ_TEX_WRAP 0 #define SQ_TEX_MIRROR 1 #define SQ_TEX_CLAMP_LAST_TEXEL 2 #define SQ_TEX_MIRROR_ONCE_LAST_TEXEL 3 #define SQ_TEX_CLAMP_HALF_BORDER 4 #define SQ_TEX_MIRROR_ONCE_HALF_BORDER 5 #define SQ_TEX_CLAMP_BORDER 6 #define SQ_TEX_MIRROR_ONCE_BORDER 7 #define SQ_TEX_SAMPLER_WORD0_0__CLAMP_Y(x) (((x) & 0x00000007) << 3) #define SQ_TEX_WRAP 0 #define SQ_TEX_MIRROR 1 #define SQ_TEX_CLAMP_LAST_TEXEL 2 #define SQ_TEX_MIRROR_ONCE_LAST_TEXEL 3 #define SQ_TEX_CLAMP_HALF_BORDER 4 #define SQ_TEX_MIRROR_ONCE_HALF_BORDER 5 #define SQ_TEX_CLAMP_BORDER 6 #define SQ_TEX_MIRROR_ONCE_BORDER 7 #define SQ_TEX_SAMPLER_WORD0_0__CLAMP_Z(x) (((x) & 0x00000007) << 6) #define SQ_TEX_WRAP 0 #define SQ_TEX_MIRROR 1 #define SQ_TEX_CLAMP_LAST_TEXEL 2 #define SQ_TEX_MIRROR_ONCE_LAST_TEXEL 3 #define SQ_TEX_CLAMP_HALF_BORDER 4 #define SQ_TEX_MIRROR_ONCE_HALF_BORDER 5 #define SQ_TEX_CLAMP_BORDER 6 #define SQ_TEX_MIRROR_ONCE_BORDER 7 #define SQ_TEX_SAMPLER_WORD0_0__XY_MAG_FILTER(x) (((x) & 0x00000007) << 9) #define SQ_TEX_XY_FILTER_POINT 0 #define SQ_TEX_XY_FILTER_BILINEAR 1 #define SQ_TEX_XY_FILTER_BICUBIC 2 #define SQ_TEX_SAMPLER_WORD0_0__XY_MIN_FILTER(x) (((x) & 0x00000007) << 12) #define SQ_TEX_XY_FILTER_POINT 0 #define SQ_TEX_XY_FILTER_BILINEAR 1 #define SQ_TEX_XY_FILTER_BICUBIC 2 #define SQ_TEX_SAMPLER_WORD0_0__Z_FILTER(x) (((x) & 0x00000003) << 15) #define SQ_TEX_Z_FILTER_NONE 0 #define SQ_TEX_Z_FILTER_POINT 1 #define SQ_TEX_Z_FILTER_LINEAR 2 #define SQ_TEX_SAMPLER_WORD0_0__MIP_FILTER(x) (((x) & 0x00000003) << 17) #define SQ_TEX_Z_FILTER_NONE 0 #define SQ_TEX_Z_FILTER_POINT 1 #define SQ_TEX_Z_FILTER_LINEAR 2 #define SQ_TEX_SAMPLER_WORD0_0__BORDER_COLOR_TYPE(x) (((x) & 0x00000003) << 22) #define SQ_TEX_BORDER_COLOR_TRANS_BLACK 0 #define SQ_TEX_BORDER_COLOR_OPAQUE_BLACK 1 #define SQ_TEX_BORDER_COLOR_OPAQUE_WHITE 2 #define SQ_TEX_BORDER_COLOR_REGISTER 3 #define SQ_TEX_SAMPLER_WORD0_0__POINT_SAMPLING_CLAMP(x) (((x) & 0x00000001) << 24) #define SQ_TEX_SAMPLER_WORD0_0__TEX_ARRAY_OVERRIDE(x) (((x) & 0x00000001) << 25) #define SQ_TEX_SAMPLER_WORD0_0__DEPTH_COMPARE_FUNCTION(x) (((x) & 0x00000007) << 26) #define SQ_TEX_DEPTH_COMPARE_NEVER 0 #define SQ_TEX_DEPTH_COMPARE_LESS 1 #define SQ_TEX_DEPTH_COMPARE_EQUAL 2 #define SQ_TEX_DEPTH_COMPARE_LESSEQUAL 3 #define SQ_TEX_DEPTH_COMPARE_GREATER 4 #define SQ_TEX_DEPTH_COMPARE_NOTEQUAL 5 #define SQ_TEX_DEPTH_COMPARE_GREATEREQUAL 6 #define SQ_TEX_DEPTH_COMPARE_ALWAYS 7 #define SQ_TEX_SAMPLER_WORD0_0__CHROMA_KEY(x) (((x) & 0x00000003) << 29) #define SQ_TEX_CHROMA_KEY_DISABLED 0 #define SQ_TEX_CHROMA_KEY_KILL 1 #define SQ_TEX_CHROMA_KEY_BLEND 2 #define SQ_TEX_SAMPLER_WORD0_0__LOD_USES_MINOR_AXIS(x) (((x) & 0x00000001) << 31) #define SQ_TEX_SAMPLER_WORD1_0 0x0003c004 #define SQ_TEX_SAMPLER_WORD1_0__MIN_LOD(x) (((x) & 0x000003ff) << 0) #define SQ_TEX_SAMPLER_WORD1_0__MAX_LOD(x) (((x) & 0x000003ff) << 10) #define SQ_TEX_SAMPLER_WORD1_0__LOD_BIAS(x) (((x) & 0x00000fff) << 20) #define SQ_TEX_SAMPLER_WORD2_0 0x0003c008 #define SQ_TEX_SAMPLER_WORD2_0__LOD_BIAS_SEC(x) (((x) & 0x00000fff) << 0) #define SQ_TEX_SAMPLER_WORD2_0__MC_COORD_TRUNCATE(x) (((x) & 0x00000001) << 12) #define SQ_TEX_SAMPLER_WORD2_0__FORCE_DEGAMMA(x) (((x) & 0x00000001) << 13) #define SQ_TEX_SAMPLER_WORD2_0__HIGH_PRECISION_FILTER(x) (((x) & 0x00000001) << 14) #define SQ_TEX_SAMPLER_WORD2_0__PERF_MIP(x) (((x) & 0x00000007) << 15) #define SQ_TEX_SAMPLER_WORD2_0__PERF_Z(x) (((x) & 0x00000003) << 18) #define SQ_TEX_SAMPLER_WORD2_0__FETCH_4(x) (((x) & 0x00000001) << 26) #define SQ_TEX_SAMPLER_WORD2_0__SAMPLE_IS_PCF(x) (((x) & 0x00000001) << 27) #define SQ_TEX_SAMPLER_WORD2_0__TYPE(x) (((x) & 0x00000001) << 31) /***************************************************************************** * SET_CTL_CONST [0x0003cff0 0x0003e200] */ #define SQ_VTX_BASE_VTX_LOC 0x0003cff0 #define SQ_VTX_START_INST_LOC 0x0003cff4 /***************************************************************************** * SET_LOOP_CONST [0x0003e200 0x0003e380] */ #define SQ_LOOP_CONST_DX10_0 0x0003e200 #define SQ_LOOP_CONST_0 0x0003e200 #define SQ_LOOP_CONST_0__COUNT(x) (((x) & 0x00000fff) << 0) #define SQ_LOOP_CONST_0__INIT(x) (((x) & 0x00000fff) << 12) #define SQ_LOOP_CONST_0__INC(x) (((x) & 0x000000ff) << 24) /***************************************************************************** * SET_BOOL_CONST [0x0003e380 0x0003e38c] */ #define SQ_BOOL_CONST_0 0x0003e380 /***************************************************************************** * SHADER */ /* * CF */ /* SQ_CF_WORD0 */ #define SQ_CF_WORD0 0x00000000 #define SQ_CF_WORD0__ADDR(x) (((x) & 0xffffffff) << 0) /* SQ_CF_WORD1 */ #define SQ_CF_WORD1 0x00000000 #define SQ_CF_WORD1__POP_COUNT(x) (((x) & 0x00000007) << 0) #define SQ_CF_WORD1__CF_CONST(x) (((x) & 0x0000001f) << 3) #define SQ_CF_WORD1__COND(x) (((x) & 0x00000003) << 8) #define SQ_CF_COND_ACTIVE 0 #define SQ_CF_COND_FALSE 1 #define SQ_CF_COND_BOOL 2 #define SQ_CF_COND_NOT_BOOL 3 #define SQ_CF_WORD1__COUNT(x) (((x) & 0x00000007) << 10) #define SQ_CF_WORD1__CALL_COUNT(x) (((x) & 0x0000003f) << 13) #define SQ_CF_WORD1__COUNT_3(x) (((x) & 0x00000001) << 19) #define SQ_CF_WORD1__END_OF_PROGRAM(x) (((x) & 0x00000001) << 21) #define SQ_CF_WORD1__VALID_PIXEL_MODE(x) (((x) & 0x00000001) << 22) #define SQ_CF_WORD1__CF_INST(x) (((x) & 0x0000007f) << 23) #define SQ_CF_INST_NOP 0 #define SQ_CF_INST_TEX 1 #define SQ_CF_INST_VTX 2 #define SQ_CF_INST_VTX_TC 3 #define SQ_CF_INST_LOOP_START 4 #define SQ_CF_INST_LOOP_END 5 #define SQ_CF_INST_LOOP_START_DX10 6 #define SQ_CF_INST_LOOP_START_NO_AL 7 #define SQ_CF_INST_LOOP_CONTINUE 8 #define SQ_CF_INST_LOOP_BREAK 9 #define SQ_CF_INST_JUMP 10 #define SQ_CF_INST_PUSH 11 #define SQ_CF_INST_PUSH_ELSE 12 #define SQ_CF_INST_ELSE 13 #define SQ_CF_INST_POP 14 #define SQ_CF_INST_POP_JUMP 15 #define SQ_CF_INST_POP_PUSH 16 #define SQ_CF_INST_POP_PUSH_ELSE 17 #define SQ_CF_INST_CALL 18 #define SQ_CF_INST_CALL_FS 19 #define SQ_CF_INST_RETURN 20 #define SQ_CF_INST_EMIT_VERTEX 21 #define SQ_CF_INST_EMIT_CUT_VERTEX 22 #define SQ_CF_INST_CUT_VERTEX 23 #define SQ_CF_INST_KILL 24 #define SQ_CF_WORD1__WHOLE_QUAD_MODE(x) (((x) & 0x00000001) << 30) #define SQ_CF_WORD1__BARRIER(x) (((x) & 0x00000001) << 31) /* SQ_CF_ALU_WORD0 */ #define SQ_CF_ALU_WORD0 0x00000000 #define SQ_CF_ALU_WORD0__ADDR(x) (((x) & 0x003fffff) << 0) #define SQ_CF_ALU_WORD0__KCACHE_BANK0(x) (((x) & 0x0000000f) << 22) #define SQ_CF_ALU_WORD0__KCACHE_BANK1(x) (((x) & 0x0000000f) << 26) #define SQ_CF_ALU_WORD0__KCACHE_MODE0(x) (((x) & 0x00000003) << 30) #define SQ_CF_KCACHE_NOP 0 #define SQ_CF_KCACHE_LOCK_1 1 #define SQ_CF_KCACHE_LOCK_2 2 #define SQ_CF_KCACHE_LOCK_LOOP_INDEX 3 /* SQ_CF_ALU_WORD1 */ #define SQ_CF_ALU_WORD1 0x00000000 #define SQ_CF_ALU_WORD1__KCACHE_MODE1(x) (((x) & 0x00000003) << 0) #define SQ_CF_KCACHE_NOP 0 #define SQ_CF_KCACHE_LOCK_1 1 #define SQ_CF_KCACHE_LOCK_2 2 #define SQ_CF_KCACHE_LOCK_LOOP_INDEX 3 #define SQ_CF_ALU_WORD1__KCACHE_ADDR0(x) (((x) & 0x000000ff) << 2) #define SQ_CF_ALU_WORD1__KCACHE_ADDR1(x) (((x) & 0x000000ff) << 10) #define SQ_CF_ALU_WORD1__COUNT(x) (((x) & 0x0000007f) << 18) #define SQ_CF_ALU_WORD1__ALT_CONST(x) (((x) & 0x00000001) << 25) #define SQ_CF_ALU_WORD1__CF_INST(x) (((x) & 0x0000000f) << 26) #define SQ_CF_INST_ALU 8 #define SQ_CF_INST_ALU_PUSH_BEFORE 9 #define SQ_CF_INST_ALU_POP_AFTER 10 #define SQ_CF_INST_ALU_POP2_AFTER 11 #define SQ_CF_INST_ALU_CONTINUE 13 #define SQ_CF_INST_ALU_BREAK 14 #define SQ_CF_INST_ALU_ELSE_AFTER 15 #define SQ_CF_ALU_WORD1__WHOLE_QUAD_MODE(x) (((x) & 0x00000001) << 30) #define SQ_CF_ALU_WORD1__BARRIER(x) (((x) & 0x00000001) << 31) /* SQ_CF_ALLOC_EXPORT_WORD0 */ #define SQ_CF_ALLOC_EXPORT_WORD0 0x00000000 #define SQ_CF_ALLOC_EXPORT_WORD0__ARRAY_BASE(x) (((x) & 0x00001fff) << 0) #define SQ_EXPORT_PARAM0 0 #define SQ_EXPORT_PARAM31 31 #define SQ_EXPORT_CB0 0 #define SQ_EXPORT_CB1 1 #define SQ_EXPORT_CB2 2 #define SQ_EXPORT_CB3 3 #define SQ_EXPORT_CB4 4 #define SQ_EXPORT_CB5 5 #define SQ_EXPORT_CB6 6 #define SQ_EXPORT_CB7 7 #define SQ_EXPORT_Z 61 #define SQ_EXPORT_POS0 60 #define SQ_EXPORT_POS1 61 #define SQ_EXPORT_POS2 62 #define SQ_EXPORT_POS3 63 #define SQ_CF_ALLOC_EXPORT_WORD0__TYPE(x) (((x) & 0x00000003) << 13) #define SQ_EXPORT_PIXEL 0 #define SQ_EXPORT_POS 1 #define SQ_EXPORT_PARAM 2 #define X_UNUSED_FOR_SX_EXPORTS 3 #define SQ_CF_ALLOC_EXPORT_WORD0__RW_GPR(x) (((x) & 0x0000007f) << 15) #define SQ_CF_ALLOC_EXPORT_WORD0__RW_REL(x) (((x) & 0x00000001) << 22) #define SQ_CF_ALLOC_EXPORT_WORD0__INDEX_GPR(x) (((x) & 0x0000007f) << 23) #define SQ_CF_ALLOC_EXPORT_WORD0__ELEM_SIZE(x) (((x) & 0x00000003) << 30) /* SQ_CF_ALLOC_EXPORT_WORD1 */ #define SQ_CF_ALLOC_EXPORT_WORD1 0x00000000 #define SQ_CF_ALLOC_EXPORT_WORD1__BURST_COUNT(x) (((x) & 0x0000000f) << 17) #define SQ_CF_ALLOC_EXPORT_WORD1__END_OF_PROGRAM(x) (((x) & 0x00000001) << 21) #define SQ_CF_ALLOC_EXPORT_WORD1__VALID_PIXEL_MODE(x) (((x) & 0x00000001) << 22) #define SQ_CF_ALLOC_EXPORT_WORD1__CF_INST(x) (((x) & 0x0000007f) << 23) #define SQ_CF_INST_MEM_STREAM0 32 #define SQ_CF_INST_MEM_STREAM1 33 #define SQ_CF_INST_MEM_STREAM2 34 #define SQ_CF_INST_MEM_STREAM3 35 #define SQ_CF_INST_MEM_SCRATCH 36 #define SQ_CF_INST_MEM_REDUCTION 37 #define SQ_CF_INST_MEM_RING 38 #define SQ_CF_INST_EXPORT 39 #define SQ_CF_INST_EXPORT_DONE 40 #define SQ_CF_ALLOC_EXPORT_WORD1__WHOLE_QUAD_MODE(x) (((x) & 0x00000001) << 30) #define SQ_CF_ALLOC_EXPORT_WORD1__BARRIER(x) (((x) & 0x00000001) << 31) /* SQ_CF_ALLOC_EXPORT_WORD1_BUF */ #define SQ_CF_ALLOC_EXPORT_WORD1_BUF 0x00000000 #define SQ_CF_ALLOC_EXPORT_WORD1_BUF__ARRAY_SIZE(x) (((x) & 0x00000fff) << 0) #define SQ_CF_ALLOC_EXPORT_WORD1_BUF__COMP_MASK(x) (((x) & 0x0000000f) << 12) /* SQ_CF_ALLOC_EXPORT_WORD1_SWIZ */ #define SQ_CF_ALLOC_EXPORT_WORD1_SWIZ 0x00000000 #define SQ_CF_ALLOC_EXPORT_WORD1_SWIZ__SEL_X(x) (((x) & 0x00000007) << 0) #define SQ_SEL_X 0 #define SQ_SEL_Y 1 #define SQ_SEL_Z 2 #define SQ_SEL_W 3 #define SQ_SEL_0 4 #define SQ_SEL_1 5 #define SQ_SEL_MASK 7 #define SQ_CF_ALLOC_EXPORT_WORD1_SWIZ__SEL_Y(x) (((x) & 0x00000007) << 3) #define SQ_SEL_X 0 #define SQ_SEL_Y 1 #define SQ_SEL_Z 2 #define SQ_SEL_W 3 #define SQ_SEL_0 4 #define SQ_SEL_1 5 #define SQ_SEL_MASK 7 #define SQ_CF_ALLOC_EXPORT_WORD1_SWIZ__SEL_Z(x) (((x) & 0x00000007) << 6) #define SQ_SEL_X 0 #define SQ_SEL_Y 1 #define SQ_SEL_Z 2 #define SQ_SEL_W 3 #define SQ_SEL_0 4 #define SQ_SEL_1 5 #define SQ_SEL_MASK 7 #define SQ_CF_ALLOC_EXPORT_WORD1_SWIZ__SEL_W(x) (((x) & 0x00000007) << 9) #define SQ_SEL_X 0 #define SQ_SEL_Y 1 #define SQ_SEL_Z 2 #define SQ_SEL_W 3 #define SQ_SEL_0 4 #define SQ_SEL_1 5 #define SQ_SEL_MASK 7 /* * ALU */ /* SQ_ALU_WORD0 */ #define SQ_ALU_WORD0 0x00008dfc #define SQ_ALU_WORD0__SRC0_SEL(x) (((x) & 0x000001ff) << 0) #define SQ_ALU_KCACHE0_0 128 #define SQ_ALU_KCACHE0_31 159 #define SQ_ALU_KCACHE1_0 160 #define SQ_ALU_KCACHE1_31 191 #define SQ_ALU_SRC_0 248 #define SQ_ALU_SRC_1 249 #define SQ_ALU_SRC_1_INT 250 #define SQ_ALU_SRC_M_1_INT 251 #define SQ_ALU_SRC_0_5 252 #define SQ_ALU_SRC_LITERAL 253 #define SQ_ALU_SRC_PV 254 #define SQ_ALU_SRC_PS 255 #define SQ_ALU_CFILE_0 256 #define SQ_ALU_CFILE_255 511 #define SQ_ALU_WORD0__SRC0_REL(x) (((x) & 0x00000001) << 9) #define SQ_ALU_WORD0__SRC0_CHAN(x) (((x) & 0x00000003) << 10) #define SQ_CHAN_X 0 #define SQ_CHAN_Y 1 #define SQ_CHAN_Z 2 #define SQ_CHAN_W 3 #define SQ_ALU_WORD0__SRC0_NEG(x) (((x) & 0x00000001) << 12) #define SQ_ALU_WORD0__SRC1_SEL(x) (((x) & 0x000001ff) << 13) #define SQ_ALU_KCACHE0_0 128 #define SQ_ALU_KCACHE0_31 159 #define SQ_ALU_KCACHE1_0 160 #define SQ_ALU_KCACHE1_31 191 #define SQ_ALU_SRC_0 248 #define SQ_ALU_SRC_1 249 #define SQ_ALU_SRC_1_INT 250 #define SQ_ALU_SRC_M_1_INT 251 #define SQ_ALU_SRC_0_5 252 #define SQ_ALU_SRC_LITERAL 253 #define SQ_ALU_SRC_PV 254 #define SQ_ALU_SRC_PS 255 #define SQ_ALU_CFILE_0 256 #define SQ_ALU_CFILE_255 511 #define SQ_ALU_WORD0__SRC1_REL(x) (((x) & 0x00000001) << 22) #define SQ_ALU_WORD0__SRC1_CHAN(x) (((x) & 0x00000003) << 23) #define SQ_CHAN_X 0 #define SQ_CHAN_Y 1 #define SQ_CHAN_Z 2 #define SQ_CHAN_W 3 #define SQ_ALU_WORD0__SRC1_NEG(x) (((x) & 0x00000001) << 25) #define SQ_ALU_WORD0__INDEX_MODE(x) (((x) & 0x00000007) << 26) #define SQ_INDEX_AR_X 0 #define SQ_INDEX_AR_Y 1 #define SQ_INDEX_AR_Z 2 #define SQ_INDEX_AR_W 3 #define SQ_INDEX_LOOP 4 #define SQ_ALU_WORD0__PRED_SEL(x) (((x) & 0x00000003) << 29) #define SQ_PRED_SEL_OFF 0 #define SQ_PRED_SEL_ZERO 2 #define SQ_PRED_SEL_ONE 3 #define SQ_ALU_WORD0__LAST(x) (((x) & 0x00000001) << 31) /* SQ_ALU_WORD1 */ #define SQ_ALU_WORD1 0x00000000 #define SQ_ALU_WORD1__ENCODING(x) (((x) & 0x00000007) << 15) #define SQ_ALU_WORD1__BANK_SWIZZLE(x) (((x) & 0x00000007) << 18) #define SQ_ALU_VEC_012 0 #define SQ_ALU_VEC_021 1 #define SQ_ALU_VEC_120 2 #define SQ_ALU_VEC_102 3 #define SQ_ALU_VEC_201 4 #define SQ_ALU_VEC_210 5 #define SQ_ALU_WORD1__DST_GPR(x) (((x) & 0x0000007f) << 21) #define SQ_ALU_WORD1__DST_REL(x) (((x) & 0x00000001) << 28) #define SQ_ALU_WORD1__DST_CHAN(x) (((x) & 0x00000003) << 29) #define CHAN_X 0 #define CHAN_Y 1 #define CHAN_Z 2 #define CHAN_W 3 #define SQ_ALU_WORD1__CLAMP(x) (((x) & 0x00000001) << 31) /* SQ_ALU_WORD1_OP2 */ #define SQ_ALU_WORD1_OP2 0x00008dfc #define SQ_ALU_WORD1_OP2__SRC0_ABS(x) (((x) & 0x00000001) << 0) #define SQ_ALU_WORD1_OP2__SRC1_ABS(x) (((x) & 0x00000001) << 1) #define SQ_ALU_WORD1_OP2__UPDATE_EXECUTE_MASK(x) (((x) & 0x00000001) << 2) #define SQ_ALU_WORD1_OP2__UPDATE_PRED(x) (((x) & 0x00000001) << 3) #define SQ_ALU_WORD1_OP2__WRITE_MASK(x) (((x) & 0x00000001) << 4) #define SQ_ALU_WORD1_OP2__FOG_MERGE(x) (((x) & 0x00000001) << 5) #define SQ_ALU_WORD1_OP2__OMOD(x) (((x) & 0x00000003) << 6) #define SQ_ALU_OMOD_OFF 0 #define SQ_ALU_OMOD_M2 1 #define SQ_ALU_OMOD_M4 2 #define SQ_ALU_OMOD_D2 3 #define SQ_ALU_WORD1_OP2__ALU_INST(x) (((x) & 0x000003ff) << 8) #define SQ_OP2_INST_ADD 0 #define SQ_OP2_INST_MUL 1 #define SQ_OP2_INST_MUL_IEEE 2 #define SQ_OP2_INST_MAX 3 #define SQ_OP2_INST_MIN 4 #define SQ_OP2_INST_MAX_DX10 5 #define SQ_OP2_INST_MIN_DX10 6 #define SQ_OP2_INST_SETE 8 #define SQ_OP2_INST_SETGT 9 #define SQ_OP2_INST_SETGE 10 #define SQ_OP2_INST_SETNE 11 #define SQ_OP2_INST_SETE_DX10 12 #define SQ_OP2_INST_SETGT_DX10 13 #define SQ_OP2_INST_SETGE_DX10 14 #define SQ_OP2_INST_SETNE_DX10 15 #define SQ_OP2_INST_FRACT 16 #define SQ_OP2_INST_TRUNC 17 #define SQ_OP2_INST_CEIL 18 #define SQ_OP2_INST_RNDNE 19 #define SQ_OP2_INST_FLOOR 20 #define SQ_OP2_INST_MOVA 21 #define SQ_OP2_INST_MOVA_FLOOR 22 #define SQ_OP2_INST_MOVA_INT 24 #define SQ_OP2_INST_MOV 25 #define SQ_OP2_INST_NOP 26 #define SQ_OP2_INST_PRED_SETGT_UINT 30 #define SQ_OP2_INST_PRED_SETGE_UINT 31 #define SQ_OP2_INST_PRED_SETE 32 #define SQ_OP2_INST_PRED_SETGT 33 #define SQ_OP2_INST_PRED_SETGE 34 #define SQ_OP2_INST_PRED_SETNE 35 #define SQ_OP2_INST_PRED_SET_INV 36 #define SQ_OP2_INST_PRED_SET_POP 37 #define SQ_OP2_INST_PRED_SET_CLR 38 #define SQ_OP2_INST_PRED_SET_RESTORE 39 #define SQ_OP2_INST_PRED_SETE_PUSH 40 #define SQ_OP2_INST_PRED_SETGT_PUSH 41 #define SQ_OP2_INST_PRED_SETGE_PUSH 42 #define SQ_OP2_INST_PRED_SETNE_PUSH 43 #define SQ_OP2_INST_KILLE 44 #define SQ_OP2_INST_KILLGT 45 #define SQ_OP2_INST_KILLGE 46 #define SQ_OP2_INST_KILLNE 47 #define SQ_OP2_INST_AND_INT 48 #define SQ_OP2_INST_OR_INT 49 #define SQ_OP2_INST_XOR_INT 50 #define SQ_OP2_INST_NOT_INT 51 #define SQ_OP2_INST_ADD_INT 52 #define SQ_OP2_INST_SUB_INT 53 #define SQ_OP2_INST_MAX_INT 54 #define SQ_OP2_INST_MIN_INT 55 #define SQ_OP2_INST_MAX_UINT 56 #define SQ_OP2_INST_MIN_UINT 57 #define SQ_OP2_INST_SETE_INT 58 #define SQ_OP2_INST_SETGT_INT 59 #define SQ_OP2_INST_SETGE_INT 60 #define SQ_OP2_INST_SETNE_INT 61 #define SQ_OP2_INST_SETGT_UINT 62 #define SQ_OP2_INST_SETGE_UINT 63 #define SQ_OP2_INST_KILLGT_UINT 64 #define SQ_OP2_INST_KILLGE_UINT 65 #define SQ_OP2_INST_PRED_SETE_INT 66 #define SQ_OP2_INST_PRED_SETGT_INT 67 #define SQ_OP2_INST_PRED_SETGE_INT 68 #define SQ_OP2_INST_PRED_SETNE_INT 69 #define SQ_OP2_INST_KILLE_INT 70 #define SQ_OP2_INST_KILLGT_INT 71 #define SQ_OP2_INST_KILLGE_INT 72 #define SQ_OP2_INST_KILLNE_INT 73 #define SQ_OP2_INST_PRED_SETE_PUSH_INT 74 #define SQ_OP2_INST_PRED_SETGT_PUSH_INT 75 #define SQ_OP2_INST_PRED_SETGE_PUSH_INT 76 #define SQ_OP2_INST_PRED_SETNE_PUSH_INT 77 #define SQ_OP2_INST_PRED_SETLT_PUSH_INT 78 #define SQ_OP2_INST_PRED_SETLE_PUSH_INT 79 #define SQ_OP2_INST_DOT4 80 #define SQ_OP2_INST_DOT4_IEEE 81 #define SQ_OP2_INST_CUBE 82 #define SQ_OP2_INST_MAX4 83 #define SQ_OP2_INST_MOVA_GPR_INT 96 #define SQ_OP2_INST_EXP_IEEE 97 #define SQ_OP2_INST_LOG_CLAMPED 98 #define SQ_OP2_INST_LOG_IEEE 99 #define SQ_OP2_INST_RECIP_CLAMPED 100 #define SQ_OP2_INST_RECIP_FF 101 #define SQ_OP2_INST_RECIP_IEEE 102 #define SQ_OP2_INST_RECIPSQRT_CLAMPED 103 #define SQ_OP2_INST_RECIPSQRT_FF 104 #define SQ_OP2_INST_RECIPSQRT_IEEE 105 #define SQ_OP2_INST_SQRT_IEEE 106 #define SQ_OP2_INST_FLT_TO_INT 107 #define SQ_OP2_INST_INT_TO_FLT 108 #define SQ_OP2_INST_UINT_TO_FLT 109 #define SQ_OP2_INST_SIN 110 #define SQ_OP2_INST_COS 111 #define SQ_OP2_INST_ASHR_INT 112 #define SQ_OP2_INST_LSHR_INT 113 #define SQ_OP2_INST_LSHL_INT 114 #define SQ_OP2_INST_MULLO_INT 115 #define SQ_OP2_INST_MULHI_INT 116 #define SQ_OP2_INST_MULLO_UINT 117 #define SQ_OP2_INST_MULHI_UINT 118 #define SQ_OP2_INST_RECIP_INT 119 #define SQ_OP2_INST_RECIP_UINT 120 #define SQ_OP2_INST_FLT_TO_UINT 121 /* SQ_ALU_WORD1_OP3 */ #define SQ_ALU_WORD1_OP3 0x00000000 #define SQ_ALU_WORD1_OP3__SRC2_SEL(x) (((x) & 0x000001ff) << 0) #define SQ_ALU_KCACHE0_0 128 #define SQ_ALU_KCACHE0_31 159 #define SQ_ALU_KCACHE1_0 160 #define SQ_ALU_KCACHE1_31 191 #define SQ_ALU_SRC_0 248 #define SQ_ALU_SRC_1 249 #define SQ_ALU_SRC_1_INT 250 #define SQ_ALU_SRC_M_1_INT 251 #define SQ_ALU_SRC_0_5 252 #define SQ_ALU_SRC_LITERAL 253 #define SQ_ALU_SRC_PV 254 #define SQ_ALU_SRC_PS 255 #define SQ_ALU_CFILE_0 256 #define SQ_ALU_CFILE_255 511 #define SQ_ALU_WORD1_OP3__SRC2_REL(x) (((x) & 0x00000001) << 9) #define SQ_ALU_WORD1_OP3__SRC2_CHAN(x) (((x) & 0x00000003) << 10) #define SQ_CHAN_X 0 #define SQ_CHAN_Y 1 #define SQ_CHAN_Z 2 #define SQ_CHAN_W 3 #define SQ_ALU_WORD1_OP3__SRC2_NEG(x) (((x) & 0x00000001) << 12) #define SQ_ALU_WORD1_OP3__ALU_INST(x) (((x) & 0x0000001f) << 13) #define SQ_OP3_INST_MUL_LIT 12 #define SQ_OP3_INST_MUL_LIT_M2 13 #define SQ_OP3_INST_MUL_LIT_M4 14 #define SQ_OP3_INST_MUL_LIT_D2 15 #define SQ_OP3_INST_MULADD 16 #define SQ_OP3_INST_MULADD_M2 17 #define SQ_OP3_INST_MULADD_M4 18 #define SQ_OP3_INST_MULADD_D2 19 #define SQ_OP3_INST_MULADD_IEEE 20 #define SQ_OP3_INST_MULADD_IEEE_M2 21 #define SQ_OP3_INST_MULADD_IEEE_M4 22 #define SQ_OP3_INST_MULADD_IEEE_D2 23 #define SQ_OP3_INST_CNDE 24 #define SQ_OP3_INST_CNDGT 25 #define SQ_OP3_INST_CNDGE 26 #define SQ_OP3_INST_CNDE_INT 28 #define SQ_OP3_INST_CNDGT_INT 29 #define SQ_OP3_INST_CNDGE_INT 30 /* * VTX */ /* SQ_VTX_WORD0 */ #define SQ_VTX_WORD0 0x00008dfc #define SQ_VTX_WORD0__VTX_INST(x) (((x) & 0x0000001f) << 0) #define SQ_VTX_INST_FETCH 0 #define SQ_VTX_INST_SEMANTIC 1 #define SQ_VTX_WORD0__FETCH_TYPE(x) (((x) & 0x00000003) << 5) #define SQ_VTX_FETCH_VERTEX_DATA 0 #define SQ_VTX_FETCH_INSTANCE_DATA 1 #define SQ_VTX_FETCH_NO_INDEX_OFFSET 2 #define SQ_VTX_WORD0__FETCH_WHOLE_QUAD(x) (((x) & 0x00000001) << 7) #define SQ_VTX_WORD0__BUFFER_ID(x) (((x) & 0x000000ff) << 8) #define SQ_VTX_WORD0__SRC_GPR(x) (((x) & 0x0000007f) << 16) #define SQ_VTX_WORD0__SRC_REL(x) (((x) & 0x00000001) << 23) #define SQ_VTX_WORD0__SRC_SEL_X(x) (((x) & 0x00000003) << 24) #define SQ_SEL_X 0 #define SQ_SEL_Y 1 #define SQ_SEL_Z 2 #define SQ_SEL_W 3 #define SQ_VTX_WORD0__MEGA_FETCH_COUNT(x) (((x) & 0x0000003f) << 26) /* SQ_VTX_WORD1 */ #define SQ_VTX_WORD1 0x00000000 #define SQ_VTX_WORD1__DST_SEL_X(x) (((x) & 0x00000007) << 9) #define SQ_SEL_X 0 #define SQ_SEL_Y 1 #define SQ_SEL_Z 2 #define SQ_SEL_W 3 #define SQ_SEL_0 4 #define SQ_SEL_1 5 #define SQ_SEL_MASK 7 #define SQ_VTX_WORD1__DST_SEL_Y(x) (((x) & 0x00000007) << 12) #define SQ_SEL_X 0 #define SQ_SEL_Y 1 #define SQ_SEL_Z 2 #define SQ_SEL_W 3 #define SQ_SEL_0 4 #define SQ_SEL_1 5 #define SQ_SEL_MASK 7 #define SQ_VTX_WORD1__DST_SEL_Z(x) (((x) & 0x00000007) << 15) #define SQ_SEL_X 0 #define SQ_SEL_Y 1 #define SQ_SEL_Z 2 #define SQ_SEL_W 3 #define SQ_SEL_0 4 #define SQ_SEL_1 5 #define SQ_SEL_MASK 7 #define SQ_VTX_WORD1__DST_SEL_W(x) (((x) & 0x00000007) << 18) #define SQ_SEL_X 0 #define SQ_SEL_Y 1 #define SQ_SEL_Z 2 #define SQ_SEL_W 3 #define SQ_SEL_0 4 #define SQ_SEL_1 5 #define SQ_SEL_MASK 7 #define SQ_VTX_WORD1__USE_CONST_FIELDS(x) (((x) & 0x00000001) << 21) #define SQ_VTX_WORD1__DATA_FORMAT(x) (((x) & 0x0000003f) << 22) #define FMT_INVALID 0 #define FMT_8 1 #define FMT_4_4 2 #define FMT_3_3_2 3 #define FMT_16 5 #define FMT_16_FLOAT 6 #define FMT_8_8 7 #define FMT_5_6_5 8 #define FMT_6_5_5 9 #define FMT_1_5_5_5 10 #define FMT_4_4_4_4 11 #define FMT_5_5_5_1 12 #define FMT_32 13 #define FMT_32_FLOAT 14 #define FMT_16_16 15 #define FMT_16_16_FLOAT 16 #define FMT_8_24 17 #define FMT_8_24_FLOAT 18 #define FMT_24_8 19 #define FMT_24_8_FLOAT 20 #define FMT_10_11_11 21 #define FMT_10_11_11_FLOAT 22 #define FMT_11_11_10 23 #define FMT_11_11_10_FLOAT 24 #define FMT_2_10_10_10 25 #define FMT_8_8_8_8 26 #define FMT_10_10_10_2 27 #define FMT_X24_8_32_FLOAT 28 #define FMT_32_32 29 #define FMT_32_32_FLOAT 30 #define FMT_16_16_16_16 31 #define FMT_16_16_16_16_FLOAT 32 #define FMT_32_32_32_32 34 #define FMT_32_32_32_32_FLOAT 35 #define FMT_1 37 #define FMT_GB_GR 39 #define FMT_BG_RG 40 #define FMT_32_AS_8 41 #define FMT_32_AS_8_8 42 #define FMT_5_9_9_9_SHAREDEXP 43 #define FMT_8_8_8 44 #define FMT_16_16_16 45 #define FMT_16_16_16_FLOAT 46 #define FMT_32_32_32 47 #define FMT_32_32_32_FLOAT 48 #define SQ_VTX_WORD1__NUM_FORMAT_ALL(x) (((x) & 0x00000003) << 28) #define SQ_NUM_FORMAT_NORM 0 #define SQ_NUM_FORMAT_INT 1 #define SQ_NUM_FORMAT_SCALED 2 #define SQ_VTX_WORD1__FORMAT_COMP_ALL(x) (((x) & 0x00000001) << 30) #define SQ_VTX_WORD1__SRF_MODE_ALL(x) (((x) & 0x00000001) << 31) #define SRF_MODE_ZERO_CLAMP_MINUS_ONE 0 #define SRF_MODE_NO_ZERO 1 /* SQ_VTX_WORD1_GPR */ #define SQ_VTX_WORD1_GPR 0x00000000 #define SQ_VTX_WORD1_GPR__DST_GPR(x) (((x) & 0x0000007f) << 0) #define SQ_VTX_WORD1_GPR__DST_REL(x) (((x) & 0x00000001) << 7) /* SQ_VTX_WORD1_SEM */ #define SQ_VTX_WORD1_SEM 0x00000000 #define SQ_VTX_WORD1_SEM__SEMANTIC_ID(x) (((x) & 0x000000ff) << 0) /* SQ_VTX_WORD2 */ #define SQ_VTX_WORD2 0x00000000 #define SQ_VTX_WORD2__OFFSET(x) (((x) & 0x0000ffff) << 0) #define SQ_VTX_WORD2__ENDIAN_SWAP(x) (((x) & 0x00000003) << 16) #define SQ_ENDIAN_NONE 0 #define SQ_ENDIAN_8IN16 1 #define SQ_ENDIAN_8IN32 2 #define SQ_VTX_WORD2__CONST_BUF_NO_STRIDE(x) (((x) & 0x00000001) << 18) #define SQ_VTX_WORD2__MEGA_FETCH(x) (((x) & 0x00000001) << 19) #define SQ_VTX_WORD2__ALT_CONST(x) (((x) & 0x00000001) << 20) /* * TEX */ /* SQ_TEX_WORD0 */ #define SQ_TEX_WORD0 0x00000000 #define SQ_TEX_WORD0__TEX_INST(x) (((x) & 0x0000001f) << 0) #define SQ_TEX_INST_VTX_FETCH 0 #define SQ_TEX_INST_VTX_SEMANTIC 1 #define SQ_TEX_INST_LD 3 #define SQ_TEX_INST_GET_TEXTURE_RESINFO 4 #define SQ_TEX_INST_GET_NUMBER_OF_SAMPLES 5 #define SQ_TEX_INST_GET_LOD 6 #define SQ_TEX_INST_GET_GRADIENTS_H 7 #define SQ_TEX_INST_GET_GRADIENTS_V 8 #define SQ_TEX_INST_GET_LERP 9 #define SQ_TEX_INST_RESERVED_10 10 #define SQ_TEX_INST_SET_GRADIENTS_H 11 #define SQ_TEX_INST_SET_GRADIENTS_V 12 #define SQ_TEX_INST_PASS 13 #define X_Z_SET_INDEX_FOR_ARRAY_OF_CUBEMAPS 14 #define SQ_TEX_INST_SAMPLE 16 #define SQ_TEX_INST_SAMPLE_L 17 #define SQ_TEX_INST_SAMPLE_LB 18 #define SQ_TEX_INST_SAMPLE_LZ 19 #define SQ_TEX_INST_SAMPLE_G 20 #define SQ_TEX_INST_SAMPLE_G_L 21 #define SQ_TEX_INST_SAMPLE_G_LB 22 #define SQ_TEX_INST_SAMPLE_G_LZ 23 #define SQ_TEX_INST_SAMPLE_C 24 #define SQ_TEX_INST_SAMPLE_C_L 25 #define SQ_TEX_INST_SAMPLE_C_LB 26 #define SQ_TEX_INST_SAMPLE_C_LZ 27 #define SQ_TEX_INST_SAMPLE_C_G 28 #define SQ_TEX_INST_SAMPLE_C_G_L 29 #define SQ_TEX_INST_SAMPLE_C_G_LB 30 #define SQ_TEX_INST_SAMPLE_C_G_LZ 31 #define SQ_TEX_WORD0__BC_FRAC_MODE(x) (((x) & 0x00000001) << 5) #define SQ_TEX_WORD0__FETCH_WHOLE_QUAD(x) (((x) & 0x00000001) << 7) #define SQ_TEX_WORD0__RESOURCE_ID(x) (((x) & 0x000000ff) << 8) #define SQ_TEX_WORD0__SRC_GPR(x) (((x) & 0x0000007f) << 16) #define SQ_TEX_WORD0__SRC_REL(x) (((x) & 0x00000001) << 23) #define SQ_TEX_WORD0__ALT_CONST(x) (((x) & 0x00000001) << 24) /* SQ_TEX_WORD1 */ #define SQ_TEX_WORD1 0x00008dfc #define SQ_TEX_WORD1__DST_GPR(x) (((x) & 0x0000007f) << 0) #define SQ_TEX_WORD1__DST_REL(x) (((x) & 0x00000001) << 7) #define SQ_TEX_WORD1__DST_SEL_X(x) (((x) & 0x00000007) << 9) #define SQ_SEL_X 0 #define SQ_SEL_Y 1 #define SQ_SEL_Z 2 #define SQ_SEL_W 3 #define SQ_SEL_0 4 #define SQ_SEL_1 5 #define SQ_SEL_MASK 7 #define SQ_TEX_WORD1__DST_SEL_Y(x) (((x) & 0x00000007) << 12) #define SQ_SEL_X 0 #define SQ_SEL_Y 1 #define SQ_SEL_Z 2 #define SQ_SEL_W 3 #define SQ_SEL_0 4 #define SQ_SEL_1 5 #define SQ_SEL_MASK 7 #define SQ_TEX_WORD1__DST_SEL_Z(x) (((x) & 0x00000007) << 15) #define SQ_SEL_X 0 #define SQ_SEL_Y 1 #define SQ_SEL_Z 2 #define SQ_SEL_W 3 #define SQ_SEL_0 4 #define SQ_SEL_1 5 #define SQ_SEL_MASK 7 #define SQ_TEX_WORD1__DST_SEL_W(x) (((x) & 0x00000007) << 18) #define SQ_SEL_X 0 #define SQ_SEL_Y 1 #define SQ_SEL_Z 2 #define SQ_SEL_W 3 #define SQ_SEL_0 4 #define SQ_SEL_1 5 #define SQ_SEL_MASK 7 #define SQ_TEX_WORD1__LOD_BIAS(x) (((x) & 0x0000007f) << 21) #define SQ_TEX_WORD1__COORD_TYPE_X(x) (((x) & 0x00000001) << 28) #define SQ_TEX_WORD1__COORD_TYPE_Y(x) (((x) & 0x00000001) << 29) #define SQ_TEX_WORD1__COORD_TYPE_Z(x) (((x) & 0x00000001) << 30) #define SQ_TEX_WORD1__COORD_TYPE_W(x) (((x) & 0x00000001) << 31) /* SQ_TEX_WORD2 */ #define SQ_TEX_WORD2 0x00008dfc #define SQ_TEX_WORD2__OFFSET_X(x) (((x) & 0x0000001f) << 0) #define SQ_TEX_WORD2__OFFSET_Y(x) (((x) & 0x0000001f) << 5) #define SQ_TEX_WORD2__OFFSET_Z(x) (((x) & 0x0000001f) << 10) #define SQ_TEX_WORD2__SAMPLER_ID(x) (((x) & 0x0000001f) << 15) #define SQ_TEX_WORD2__SRC_SEL_X(x) (((x) & 0x00000007) << 20) #define SQ_SEL_X 0 #define SQ_SEL_Y 1 #define SQ_SEL_Z 2 #define SQ_SEL_W 3 #define SQ_SEL_0 4 #define SQ_SEL_1 5 #define SQ_TEX_WORD2__SRC_SEL_Y(x) (((x) & 0x00000007) << 23) #define SQ_SEL_X 0 #define SQ_SEL_Y 1 #define SQ_SEL_Z 2 #define SQ_SEL_W 3 #define SQ_SEL_0 4 #define SQ_SEL_1 5 #define SQ_TEX_WORD2__SRC_SEL_Z(x) (((x) & 0x00000007) << 26) #define SQ_SEL_X 0 #define SQ_SEL_Y 1 #define SQ_SEL_Z 2 #define SQ_SEL_W 3 #define SQ_SEL_0 4 #define SQ_SEL_1 5 #define SQ_TEX_WORD2__SRC_SEL_W(x) (((x) & 0x00000007) << 29) #define SQ_SEL_X 0 #define SQ_SEL_Y 1 #define SQ_SEL_Z 2 #define SQ_SEL_W 3 #define SQ_SEL_0 4 #define SQ_SEL_1 5 #endif