r600g: make r600_db_format static.
[mesa.git] / src / gallium / drivers / r600 / r600d.h
1 /*
2 * Copyright 2010 Jerome Glisse <glisse@freedesktop.org>
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * on the rights to use, copy, modify, merge, publish, distribute, sub
8 * license, and/or sell copies of the Software, and to permit persons to whom
9 * the Software is furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice (including the next
12 * paragraph) shall be included in all copies or substantial portions of the
13 * Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
18 * THE AUTHOR(S) AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
19 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
20 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
21 * USE OR OTHER DEALINGS IN THE SOFTWARE.
22 *
23 * Authors:
24 * Jerome Glisse
25 */
26 #ifndef R600D_H
27 #define R600D_H
28
29 #define R600_TEXEL_PITCH_ALIGNMENT_MASK 0x7
30
31 #define PKT3_NOP 0x10
32 #define PKT3_INDIRECT_BUFFER_END 0x17
33 #define PKT3_SET_PREDICATION 0x20
34 #define PKT3_REG_RMW 0x21
35 #define PKT3_COND_EXEC 0x22
36 #define PKT3_PRED_EXEC 0x23
37 #define PKT3_START_3D_CMDBUF 0x24
38 #define PKT3_DRAW_INDEX_2 0x27
39 #define PKT3_CONTEXT_CONTROL 0x28
40 #define PKT3_DRAW_INDEX_IMMD_BE 0x29
41 #define PKT3_INDEX_TYPE 0x2A
42 #define PKT3_DRAW_INDEX 0x2B
43 #define PKT3_DRAW_INDEX_AUTO 0x2D
44 #define PKT3_DRAW_INDEX_IMMD 0x2E
45 #define PKT3_NUM_INSTANCES 0x2F
46 #define PKT3_STRMOUT_BUFFER_UPDATE 0x34
47 #define PKT3_INDIRECT_BUFFER_MP 0x38
48 #define PKT3_MEM_SEMAPHORE 0x39
49 #define PKT3_MPEG_INDEX 0x3A
50 #define PKT3_WAIT_REG_MEM 0x3C
51 #define PKT3_MEM_WRITE 0x3D
52 #define PKT3_INDIRECT_BUFFER 0x32
53 #define PKT3_CP_INTERRUPT 0x40
54 #define PKT3_SURFACE_SYNC 0x43
55 #define PKT3_ME_INITIALIZE 0x44
56 #define PKT3_COND_WRITE 0x45
57 #define PKT3_EVENT_WRITE 0x46
58 #define PKT3_EVENT_WRITE_EOP 0x47
59 #define PKT3_ONE_REG_WRITE 0x57
60 #define PKT3_SET_CONFIG_REG 0x68
61 #define PKT3_SET_CONTEXT_REG 0x69
62 #define PKT3_SET_ALU_CONST 0x6A
63 #define PKT3_SET_BOOL_CONST 0x6B
64 #define PKT3_SET_LOOP_CONST 0x6C
65 #define PKT3_SET_RESOURCE 0x6D
66 #define PKT3_SET_SAMPLER 0x6E
67 #define PKT3_SET_CTL_CONST 0x6F
68 #define PKT3_SURFACE_BASE_UPDATE 0x73
69
70 #define PKT_TYPE_S(x) (((x) & 0x3) << 30)
71 #define PKT_TYPE_G(x) (((x) >> 30) & 0x3)
72 #define PKT_TYPE_C 0x3FFFFFFF
73 #define PKT_COUNT_S(x) (((x) & 0x3FFF) << 16)
74 #define PKT_COUNT_G(x) (((x) >> 16) & 0x3FFF)
75 #define PKT_COUNT_C 0xC000FFFF
76 #define PKT0_BASE_INDEX_S(x) (((x) & 0xFFFF) << 0)
77 #define PKT0_BASE_INDEX_G(x) (((x) >> 0) & 0xFFFF)
78 #define PKT0_BASE_INDEX_C 0xFFFF0000
79 #define PKT3_IT_OPCODE_S(x) (((x) & 0xFF) << 8)
80 #define PKT3_IT_OPCODE_G(x) (((x) >> 8) & 0xFF)
81 #define PKT3_IT_OPCODE_C 0xFFFF00FF
82 #define PKT0(index, count) (PKT_TYPE_S(0) | PKT0_BASE_INDEX_S(index) | PKT_COUNT_S(count))
83 #define PKT3(op, count) (PKT_TYPE_S(3) | PKT3_IT_OPCODE_S(op) | PKT_COUNT_S(count))
84
85 /* Registers */
86 #define R_008C00_SQ_CONFIG 0x00008C00
87 #define S_008C00_VC_ENABLE(x) (((x) & 0x1) << 0)
88 #define G_008C00_VC_ENABLE(x) (((x) >> 0) & 0x1)
89 #define C_008C00_VC_ENABLE(x) 0xFFFFFFFE
90 #define S_008C00_EXPORT_SRC_C(x) (((x) & 0x1) << 1)
91 #define G_008C00_EXPORT_SRC_C(x) (((x) >> 1) & 0x1)
92 #define C_008C00_EXPORT_SRC_C(x) 0xFFFFFFFD
93 #define S_008C00_DX9_CONSTS(x) (((x) & 0x1) << 2)
94 #define G_008C00_DX9_CONSTS(x) (((x) >> 2) & 0x1)
95 #define C_008C00_DX9_CONSTS(x) 0xFFFFFFFB
96 #define S_008C00_ALU_INST_PREFER_VECTOR(x) (((x) & 0x1) << 3)
97 #define G_008C00_ALU_INST_PREFER_VECTOR(x) (((x) >> 3) & 0x1)
98 #define C_008C00_ALU_INST_PREFER_VECTOR(x) 0xFFFFFFF7
99 #define S_008C00_DX10_CLAMP(x) (((x) & 0x1) << 4)
100 #define G_008C00_DX10_CLAMP(x) (((x) >> 4) & 0x1)
101 #define C_008C00_DX10_CLAMP(x) 0xFFFFFFEF
102 #define S_008C00_CLAUSE_SEQ_PRIO(x) (((x) & 0x3) << 8)
103 #define G_008C00_CLAUSE_SEQ_PRIO(x) (((x) >> 8) & 0x3)
104 #define C_008C00_CLAUSE_SEQ_PRIO(x) 0xFFFFFCFF
105 #define S_008C00_PS_PRIO(x) (((x) & 0x3) << 24)
106 #define G_008C00_PS_PRIO(x) (((x) >> 24) & 0x3)
107 #define C_008C00_PS_PRIO(x) 0xFCFFFFFF
108 #define S_008C00_VS_PRIO(x) (((x) & 0x3) << 26)
109 #define G_008C00_VS_PRIO(x) (((x) >> 26) & 0x3)
110 #define C_008C00_VS_PRIO(x) 0xF3FFFFFF
111 #define S_008C00_GS_PRIO(x) (((x) & 0x3) << 28)
112 #define G_008C00_GS_PRIO(x) (((x) >> 28) & 0x3)
113 #define C_008C00_GS_PRIO(x) 0xCFFFFFFF
114 #define S_008C00_ES_PRIO(x) (((x) & 0x3) << 30)
115 #define G_008C00_ES_PRIO(x) (((x) >> 30) & 0x3)
116 #define C_008C00_ES_PRIO(x) 0x3FFFFFFF
117 #define R_008C04_SQ_GPR_RESOURCE_MGMT_1 0x00008C04
118 #define S_008C04_NUM_PS_GPRS(x) (((x) & 0xFF) << 0)
119 #define G_008C04_NUM_PS_GPRS(x) (((x) >> 0) & 0xFF)
120 #define C_008C04_NUM_PS_GPRS(x) 0xFFFFFF00
121 #define S_008C04_NUM_VS_GPRS(x) (((x) & 0xFF) << 16)
122 #define G_008C04_NUM_VS_GPRS(x) (((x) >> 16) & 0xFF)
123 #define C_008C04_NUM_VS_GPRS(x) 0xFF00FFFF
124 #define S_008C04_NUM_CLAUSE_TEMP_GPRS(x) (((x) & 0xF) << 28)
125 #define G_008C04_NUM_CLAUSE_TEMP_GPRS(x) (((x) >> 28) & 0xF)
126 #define C_008C04_NUM_CLAUSE_TEMP_GPRS(x) 0x0FFFFFFF
127 #define R_008C08_SQ_GPR_RESOURCE_MGMT_2 0x00008C08
128 #define S_008C08_NUM_GS_GPRS(x) (((x) & 0xFF) << 0)
129 #define G_008C08_NUM_GS_GPRS(x) (((x) >> 0) & 0xFF)
130 #define C_008C08_NUM_GS_GPRS(x) 0xFFFFFF00
131 #define S_008C08_NUM_ES_GPRS(x) (((x) & 0xFF) << 16)
132 #define G_008C08_NUM_ES_GPRS(x) (((x) >> 16) & 0xFF)
133 #define C_008C08_NUM_ES_GPRS(x) 0xFF00FFFF
134 #define R_008C0C_SQ_THREAD_RESOURCE_MGMT 0x00008C0C
135 #define S_008C0C_NUM_PS_THREADS(x) (((x) & 0xFF) << 0)
136 #define G_008C0C_NUM_PS_THREADS(x) (((x) >> 0) & 0xFF)
137 #define C_008C0C_NUM_PS_THREADS(x) 0xFFFFFF00
138 #define S_008C0C_NUM_VS_THREADS(x) (((x) & 0xFF) << 8)
139 #define G_008C0C_NUM_VS_THREADS(x) (((x) >> 8) & 0xFF)
140 #define C_008C0C_NUM_VS_THREADS(x) 0xFFFF00FF
141 #define S_008C0C_NUM_GS_THREADS(x) (((x) & 0xFF) << 16)
142 #define G_008C0C_NUM_GS_THREADS(x) (((x) >> 16) & 0xFF)
143 #define C_008C0C_NUM_GS_THREADS(x) 0xFF00FFFF
144 #define S_008C0C_NUM_ES_THREADS(x) (((x) & 0xFF) << 24)
145 #define G_008C0C_NUM_ES_THREADS(x) (((x) >> 24) & 0xFF)
146 #define C_008C0C_NUM_ES_THREADS(x) 0x00FFFFFF
147 #define R_008C10_SQ_STACK_RESOURCE_MGMT_1 0x00008C10
148 #define S_008C10_NUM_PS_STACK_ENTRIES(x) (((x) & 0xFFF) << 0)
149 #define G_008C10_NUM_PS_STACK_ENTRIES(x) (((x) >> 0) & 0xFFF)
150 #define C_008C10_NUM_PS_STACK_ENTRIES(x) 0xFFFFF000
151 #define S_008C10_NUM_VS_STACK_ENTRIES(x) (((x) & 0xFFF) << 16)
152 #define G_008C10_NUM_VS_STACK_ENTRIES(x) (((x) >> 16) & 0xFFF)
153 #define C_008C10_NUM_VS_STACK_ENTRIES(x) 0xF000FFFF
154 #define R_008C14_SQ_STACK_RESOURCE_MGMT_2 0x00008C14
155 #define S_008C14_NUM_GS_STACK_ENTRIES(x) (((x) & 0xFFF) << 0)
156 #define G_008C14_NUM_GS_STACK_ENTRIES(x) (((x) >> 0) & 0xFFF)
157 #define C_008C14_NUM_GS_STACK_ENTRIES(x) 0xFFFFF000
158 #define S_008C14_NUM_ES_STACK_ENTRIES(x) (((x) & 0xFFF) << 16)
159 #define G_008C14_NUM_ES_STACK_ENTRIES(x) (((x) >> 16) & 0xFFF)
160 #define C_008C14_NUM_ES_STACK_ENTRIES(x) 0xF000FFFF
161 #define R_0280A0_CB_COLOR0_INFO 0x0280A0
162 #define S_0280A0_ENDIAN(x) (((x) & 0x3) << 0)
163 #define G_0280A0_ENDIAN(x) (((x) >> 0) & 0x3)
164 #define C_0280A0_ENDIAN 0xFFFFFFFC
165 #define S_0280A0_FORMAT(x) (((x) & 0x3F) << 2)
166 #define G_0280A0_FORMAT(x) (((x) >> 2) & 0x3F)
167 #define C_0280A0_FORMAT 0xFFFFFF03
168 #define V_0280A0_COLOR_INVALID 0x00000000
169 #define V_0280A0_COLOR_8 0x00000001
170 #define V_0280A0_COLOR_4_4 0x00000002
171 #define V_0280A0_COLOR_3_3_2 0x00000003
172 #define V_0280A0_COLOR_16 0x00000005
173 #define V_0280A0_COLOR_16_FLOAT 0x00000006
174 #define V_0280A0_COLOR_8_8 0x00000007
175 #define V_0280A0_COLOR_5_6_5 0x00000008
176 #define V_0280A0_COLOR_6_5_5 0x00000009
177 #define V_0280A0_COLOR_1_5_5_5 0x0000000A
178 #define V_0280A0_COLOR_4_4_4_4 0x0000000B
179 #define V_0280A0_COLOR_5_5_5_1 0x0000000C
180 #define V_0280A0_COLOR_32 0x0000000D
181 #define V_0280A0_COLOR_32_FLOAT 0x0000000E
182 #define V_0280A0_COLOR_16_16 0x0000000F
183 #define V_0280A0_COLOR_16_16_FLOAT 0x00000010
184 #define V_0280A0_COLOR_8_24 0x00000011
185 #define V_0280A0_COLOR_8_24_FLOAT 0x00000012
186 #define V_0280A0_COLOR_24_8 0x00000013
187 #define V_0280A0_COLOR_24_8_FLOAT 0x00000014
188 #define V_0280A0_COLOR_10_11_11 0x00000015
189 #define V_0280A0_COLOR_10_11_11_FLOAT 0x00000016
190 #define V_0280A0_COLOR_11_11_10 0x00000017
191 #define V_0280A0_COLOR_11_11_10_FLOAT 0x00000018
192 #define V_0280A0_COLOR_2_10_10_10 0x00000019
193 #define V_0280A0_COLOR_8_8_8_8 0x0000001A
194 #define V_0280A0_COLOR_10_10_10_2 0x0000001B
195 #define V_0280A0_COLOR_X24_8_32_FLOAT 0x0000001C
196 #define V_0280A0_COLOR_32_32 0x0000001D
197 #define V_0280A0_COLOR_32_32_FLOAT 0x0000001E
198 #define V_0280A0_COLOR_16_16_16_16 0x0000001F
199 #define V_0280A0_COLOR_16_16_16_16_FLOAT 0x00000020
200 #define V_0280A0_COLOR_32_32_32_32 0x00000022
201 #define V_0280A0_COLOR_32_32_32_32_FLOAT 0x00000023
202 #define S_0280A0_ARRAY_MODE(x) (((x) & 0xF) << 8)
203 #define G_0280A0_ARRAY_MODE(x) (((x) >> 8) & 0xF)
204 #define C_0280A0_ARRAY_MODE 0xFFFFF0FF
205 #define V_0280A0_ARRAY_LINEAR_GENERAL 0x00000000
206 #define V_0280A0_ARRAY_LINEAR_ALIGNED 0x00000001
207 #define V_0280A0_ARRAY_1D_TILED_THIN1 0x00000002
208 #define V_0280A0_ARRAY_2D_TILED_THIN1 0x00000004
209 #define S_0280A0_NUMBER_TYPE(x) (((x) & 0x7) << 12)
210 #define G_0280A0_NUMBER_TYPE(x) (((x) >> 12) & 0x7)
211 #define C_0280A0_NUMBER_TYPE 0xFFFF8FFF
212 #define S_0280A0_READ_SIZE(x) (((x) & 0x1) << 15)
213 #define G_0280A0_READ_SIZE(x) (((x) >> 15) & 0x1)
214 #define C_0280A0_READ_SIZE 0xFFFF7FFF
215 #define S_0280A0_COMP_SWAP(x) (((x) & 0x3) << 16)
216 #define G_0280A0_COMP_SWAP(x) (((x) >> 16) & 0x3)
217 #define C_0280A0_COMP_SWAP 0xFFFCFFFF
218 #define S_0280A0_TILE_MODE(x) (((x) & 0x3) << 18)
219 #define G_0280A0_TILE_MODE(x) (((x) >> 18) & 0x3)
220 #define C_0280A0_TILE_MODE 0xFFF3FFFF
221 #define S_0280A0_BLEND_CLAMP(x) (((x) & 0x1) << 20)
222 #define G_0280A0_BLEND_CLAMP(x) (((x) >> 20) & 0x1)
223 #define C_0280A0_BLEND_CLAMP 0xFFEFFFFF
224 #define S_0280A0_CLEAR_COLOR(x) (((x) & 0x1) << 21)
225 #define G_0280A0_CLEAR_COLOR(x) (((x) >> 21) & 0x1)
226 #define C_0280A0_CLEAR_COLOR 0xFFDFFFFF
227 #define S_0280A0_BLEND_BYPASS(x) (((x) & 0x1) << 22)
228 #define G_0280A0_BLEND_BYPASS(x) (((x) >> 22) & 0x1)
229 #define C_0280A0_BLEND_BYPASS 0xFFBFFFFF
230 #define S_0280A0_BLEND_FLOAT32(x) (((x) & 0x1) << 23)
231 #define G_0280A0_BLEND_FLOAT32(x) (((x) >> 23) & 0x1)
232 #define C_0280A0_BLEND_FLOAT32 0xFF7FFFFF
233 #define S_0280A0_SIMPLE_FLOAT(x) (((x) & 0x1) << 24)
234 #define G_0280A0_SIMPLE_FLOAT(x) (((x) >> 24) & 0x1)
235 #define C_0280A0_SIMPLE_FLOAT 0xFEFFFFFF
236 #define S_0280A0_ROUND_MODE(x) (((x) & 0x1) << 25)
237 #define G_0280A0_ROUND_MODE(x) (((x) >> 25) & 0x1)
238 #define C_0280A0_ROUND_MODE 0xFDFFFFFF
239 #define S_0280A0_TILE_COMPACT(x) (((x) & 0x1) << 26)
240 #define G_0280A0_TILE_COMPACT(x) (((x) >> 26) & 0x1)
241 #define C_0280A0_TILE_COMPACT 0xFBFFFFFF
242 #define S_0280A0_SOURCE_FORMAT(x) (((x) & 0x1) << 27)
243 #define G_0280A0_SOURCE_FORMAT(x) (((x) >> 27) & 0x1)
244 #define C_0280A0_SOURCE_FORMAT 0xF7FFFFFF
245 #define R_028060_CB_COLOR0_SIZE 0x028060
246 #define S_028060_PITCH_TILE_MAX(x) (((x) & 0x3FF) << 0)
247 #define G_028060_PITCH_TILE_MAX(x) (((x) >> 0) & 0x3FF)
248 #define C_028060_PITCH_TILE_MAX 0xFFFFFC00
249 #define S_028060_SLICE_TILE_MAX(x) (((x) & 0xFFFFF) << 10)
250 #define G_028060_SLICE_TILE_MAX(x) (((x) >> 10) & 0xFFFFF)
251 #define C_028060_SLICE_TILE_MAX 0xC00003FF
252 #define R_028800_DB_DEPTH_CONTROL 0x028800
253 #define S_028800_STENCIL_ENABLE(x) (((x) & 0x1) << 0)
254 #define G_028800_STENCIL_ENABLE(x) (((x) >> 0) & 0x1)
255 #define C_028800_STENCIL_ENABLE 0xFFFFFFFE
256 #define S_028800_Z_ENABLE(x) (((x) & 0x1) << 1)
257 #define G_028800_Z_ENABLE(x) (((x) >> 1) & 0x1)
258 #define C_028800_Z_ENABLE 0xFFFFFFFD
259 #define S_028800_Z_WRITE_ENABLE(x) (((x) & 0x1) << 2)
260 #define G_028800_Z_WRITE_ENABLE(x) (((x) >> 2) & 0x1)
261 #define C_028800_Z_WRITE_ENABLE 0xFFFFFFFB
262 #define S_028800_ZFUNC(x) (((x) & 0x7) << 4)
263 #define G_028800_ZFUNC(x) (((x) >> 4) & 0x7)
264 #define C_028800_ZFUNC 0xFFFFFF8F
265 #define S_028800_BACKFACE_ENABLE(x) (((x) & 0x1) << 7)
266 #define G_028800_BACKFACE_ENABLE(x) (((x) >> 7) & 0x1)
267 #define C_028800_BACKFACE_ENABLE 0xFFFFFF7F
268 #define S_028800_STENCILFUNC(x) (((x) & 0x7) << 8)
269 #define G_028800_STENCILFUNC(x) (((x) >> 8) & 0x7)
270 #define C_028800_STENCILFUNC 0xFFFFF8FF
271 #define S_028800_STENCILFAIL(x) (((x) & 0x7) << 11)
272 #define G_028800_STENCILFAIL(x) (((x) >> 11) & 0x7)
273 #define C_028800_STENCILFAIL 0xFFFFC7FF
274 #define S_028800_STENCILZPASS(x) (((x) & 0x7) << 14)
275 #define G_028800_STENCILZPASS(x) (((x) >> 14) & 0x7)
276 #define C_028800_STENCILZPASS 0xFFFE3FFF
277 #define S_028800_STENCILZFAIL(x) (((x) & 0x7) << 17)
278 #define G_028800_STENCILZFAIL(x) (((x) >> 17) & 0x7)
279 #define C_028800_STENCILZFAIL 0xFFF1FFFF
280 #define S_028800_STENCILFUNC_BF(x) (((x) & 0x7) << 20)
281 #define G_028800_STENCILFUNC_BF(x) (((x) >> 20) & 0x7)
282 #define C_028800_STENCILFUNC_BF 0xFF8FFFFF
283 #define S_028800_STENCILFAIL_BF(x) (((x) & 0x7) << 23)
284 #define G_028800_STENCILFAIL_BF(x) (((x) >> 23) & 0x7)
285 #define C_028800_STENCILFAIL_BF 0xFC7FFFFF
286 #define S_028800_STENCILZPASS_BF(x) (((x) & 0x7) << 26)
287 #define G_028800_STENCILZPASS_BF(x) (((x) >> 26) & 0x7)
288 #define C_028800_STENCILZPASS_BF 0xE3FFFFFF
289 #define S_028800_STENCILZFAIL_BF(x) (((x) & 0x7) << 29)
290 #define G_028800_STENCILZFAIL_BF(x) (((x) >> 29) & 0x7)
291 #define C_028800_STENCILZFAIL_BF 0x1FFFFFFF
292 #define R_028010_DB_DEPTH_INFO 0x028010
293 #define S_028010_FORMAT(x) (((x) & 0x7) << 0)
294 #define G_028010_FORMAT(x) (((x) >> 0) & 0x7)
295 #define C_028010_FORMAT 0xFFFFFFF8
296 #define V_028010_DEPTH_INVALID 0x00000000
297 #define V_028010_DEPTH_16 0x00000001
298 #define V_028010_DEPTH_X8_24 0x00000002
299 #define V_028010_DEPTH_8_24 0x00000003
300 #define V_028010_DEPTH_X8_24_FLOAT 0x00000004
301 #define V_028010_DEPTH_8_24_FLOAT 0x00000005
302 #define V_028010_DEPTH_32_FLOAT 0x00000006
303 #define V_028010_DEPTH_X24_8_32_FLOAT 0x00000007
304 #define S_028010_READ_SIZE(x) (((x) & 0x1) << 3)
305 #define G_028010_READ_SIZE(x) (((x) >> 3) & 0x1)
306 #define C_028010_READ_SIZE 0xFFFFFFF7
307 #define S_028010_ARRAY_MODE(x) (((x) & 0xF) << 15)
308 #define G_028010_ARRAY_MODE(x) (((x) >> 15) & 0xF)
309 #define C_028010_ARRAY_MODE 0xFFF87FFF
310 #define S_028010_TILE_SURFACE_ENABLE(x) (((x) & 0x1) << 25)
311 #define G_028010_TILE_SURFACE_ENABLE(x) (((x) >> 25) & 0x1)
312 #define C_028010_TILE_SURFACE_ENABLE 0xFDFFFFFF
313 #define S_028010_TILE_COMPACT(x) (((x) & 0x1) << 26)
314 #define G_028010_TILE_COMPACT(x) (((x) >> 26) & 0x1)
315 #define C_028010_TILE_COMPACT 0xFBFFFFFF
316 #define S_028010_ZRANGE_PRECISION(x) (((x) & 0x1) << 31)
317 #define G_028010_ZRANGE_PRECISION(x) (((x) >> 31) & 0x1)
318 #define C_028010_ZRANGE_PRECISION 0x7FFFFFFF
319 #define R_028814_PA_SU_SC_MODE_CNTL 0x028814
320 #define S_028814_CULL_FRONT(x) (((x) & 0x1) << 0)
321 #define G_028814_CULL_FRONT(x) (((x) >> 0) & 0x1)
322 #define C_028814_CULL_FRONT 0xFFFFFFFE
323 #define S_028814_CULL_BACK(x) (((x) & 0x1) << 1)
324 #define G_028814_CULL_BACK(x) (((x) >> 1) & 0x1)
325 #define C_028814_CULL_BACK 0xFFFFFFFD
326 #define S_028814_FACE(x) (((x) & 0x1) << 2)
327 #define G_028814_FACE(x) (((x) >> 2) & 0x1)
328 #define C_028814_FACE 0xFFFFFFFB
329 #define S_028814_POLY_MODE(x) (((x) & 0x3) << 3)
330 #define G_028814_POLY_MODE(x) (((x) >> 3) & 0x3)
331 #define C_028814_POLY_MODE 0xFFFFFFE7
332 #define S_028814_POLYMODE_FRONT_PTYPE(x) (((x) & 0x7) << 5)
333 #define G_028814_POLYMODE_FRONT_PTYPE(x) (((x) >> 5) & 0x7)
334 #define C_028814_POLYMODE_FRONT_PTYPE 0xFFFFFF1F
335 #define S_028814_POLYMODE_BACK_PTYPE(x) (((x) & 0x7) << 8)
336 #define G_028814_POLYMODE_BACK_PTYPE(x) (((x) >> 8) & 0x7)
337 #define C_028814_POLYMODE_BACK_PTYPE 0xFFFFF8FF
338 #define S_028814_POLY_OFFSET_FRONT_ENABLE(x) (((x) & 0x1) << 11)
339 #define G_028814_POLY_OFFSET_FRONT_ENABLE(x) (((x) >> 11) & 0x1)
340 #define C_028814_POLY_OFFSET_FRONT_ENABLE 0xFFFFF7FF
341 #define S_028814_POLY_OFFSET_BACK_ENABLE(x) (((x) & 0x1) << 12)
342 #define G_028814_POLY_OFFSET_BACK_ENABLE(x) (((x) >> 12) & 0x1)
343 #define C_028814_POLY_OFFSET_BACK_ENABLE 0xFFFFEFFF
344 #define S_028814_POLY_OFFSET_PARA_ENABLE(x) (((x) & 0x1) << 13)
345 #define G_028814_POLY_OFFSET_PARA_ENABLE(x) (((x) >> 13) & 0x1)
346 #define C_028814_POLY_OFFSET_PARA_ENABLE 0xFFFFDFFF
347 #define S_028814_VTX_WINDOW_OFFSET_ENABLE(x) (((x) & 0x1) << 16)
348 #define G_028814_VTX_WINDOW_OFFSET_ENABLE(x) (((x) >> 16) & 0x1)
349 #define C_028814_VTX_WINDOW_OFFSET_ENABLE 0xFFFEFFFF
350 #define S_028814_PROVOKING_VTX_LAST(x) (((x) & 0x1) << 19)
351 #define G_028814_PROVOKING_VTX_LAST(x) (((x) >> 19) & 0x1)
352 #define C_028814_PROVOKING_VTX_LAST 0xFFF7FFFF
353 #define S_028814_PERSP_CORR_DIS(x) (((x) & 0x1) << 20)
354 #define G_028814_PERSP_CORR_DIS(x) (((x) >> 20) & 0x1)
355 #define C_028814_PERSP_CORR_DIS 0xFFEFFFFF
356 #define S_028814_MULTI_PRIM_IB_ENA(x) (((x) & 0x1) << 21)
357 #define G_028814_MULTI_PRIM_IB_ENA(x) (((x) >> 21) & 0x1)
358 #define C_028814_MULTI_PRIM_IB_ENA 0xFFDFFFFF
359 #define R_028000_DB_DEPTH_SIZE 0x028000
360 #define S_028000_PITCH_TILE_MAX(x) (((x) & 0x3FF) << 0)
361 #define G_028000_PITCH_TILE_MAX(x) (((x) >> 0) & 0x3FF)
362 #define C_028000_PITCH_TILE_MAX 0xFFFFFC00
363 #define S_028000_SLICE_TILE_MAX(x) (((x) & 0xFFFFF) << 10)
364 #define G_028000_SLICE_TILE_MAX(x) (((x) >> 10) & 0xFFFFF)
365 #define C_028000_SLICE_TILE_MAX 0xC00003FF
366 #define R_028004_DB_DEPTH_VIEW 0x028004
367 #define S_028004_SLICE_START(x) (((x) & 0x7FF) << 0)
368 #define G_028004_SLICE_START(x) (((x) >> 0) & 0x7FF)
369 #define C_028004_SLICE_START 0xFFFFF800
370 #define S_028004_SLICE_MAX(x) (((x) & 0x7FF) << 13)
371 #define G_028004_SLICE_MAX(x) (((x) >> 13) & 0x7FF)
372 #define C_028004_SLICE_MAX 0xFF001FFF
373 #define R_028D24_DB_HTILE_SURFACE 0x028D24
374 #define S_028D24_HTILE_WIDTH(x) (((x) & 0x1) << 0)
375 #define G_028D24_HTILE_WIDTH(x) (((x) >> 0) & 0x1)
376 #define C_028D24_HTILE_WIDTH 0xFFFFFFFE
377 #define S_028D24_HTILE_HEIGHT(x) (((x) & 0x1) << 1)
378 #define G_028D24_HTILE_HEIGHT(x) (((x) >> 1) & 0x1)
379 #define C_028D24_HTILE_HEIGHT 0xFFFFFFFD
380 #define S_028D24_LINEAR(x) (((x) & 0x1) << 2)
381 #define G_028D24_LINEAR(x) (((x) >> 2) & 0x1)
382 #define C_028D24_LINEAR 0xFFFFFFFB
383 #define S_028D24_FULL_CACHE(x) (((x) & 0x1) << 3)
384 #define G_028D24_FULL_CACHE(x) (((x) >> 3) & 0x1)
385 #define C_028D24_FULL_CACHE 0xFFFFFFF7
386 #define S_028D24_HTILE_USES_PRELOAD_WIN(x) (((x) & 0x1) << 4)
387 #define G_028D24_HTILE_USES_PRELOAD_WIN(x) (((x) >> 4) & 0x1)
388 #define C_028D24_HTILE_USES_PRELOAD_WIN 0xFFFFFFEF
389 #define S_028D24_PRELOAD(x) (((x) & 0x1) << 5)
390 #define G_028D24_PRELOAD(x) (((x) >> 5) & 0x1)
391 #define C_028D24_PRELOAD 0xFFFFFFDF
392 #define S_028D24_PREFETCH_WIDTH(x) (((x) & 0x3F) << 6)
393 #define G_028D24_PREFETCH_WIDTH(x) (((x) >> 6) & 0x3F)
394 #define C_028D24_PREFETCH_WIDTH 0xFFFFF03F
395 #define S_028D24_PREFETCH_HEIGHT(x) (((x) & 0x3F) << 12)
396 #define G_028D24_PREFETCH_HEIGHT(x) (((x) >> 12) & 0x3F)
397 #define C_028D24_PREFETCH_HEIGHT 0xFFFC0FFF
398 #define R_028D34_DB_PREFETCH_LIMIT 0x028D34
399 #define S_028D34_DEPTH_HEIGHT_TILE_MAX(x) (((x) & 0x3FF) << 0)
400 #define G_028D34_DEPTH_HEIGHT_TILE_MAX(x) (((x) >> 0) & 0x3FF)
401 #define C_028D34_DEPTH_HEIGHT_TILE_MAX 0xFFFFFC00
402 #define R_028D10_DB_RENDER_OVERRIDE 0x028D10
403 #define S_028D10_FORCE_HIZ_ENABLE(x) (((x) & 0x3) << 0)
404 #define G_028D10_FORCE_HIZ_ENABLE(x) (((x) >> 0) & 0x3)
405 #define C_028D10_FORCE_HIZ_ENABLE 0xFFFFFFFC
406 #define S_028D10_FORCE_HIS_ENABLE0(x) (((x) & 0x3) << 2)
407 #define G_028D10_FORCE_HIS_ENABLE0(x) (((x) >> 2) & 0x3)
408 #define C_028D10_FORCE_HIS_ENABLE0 0xFFFFFFF3
409 #define S_028D10_FORCE_HIS_ENABLE1(x) (((x) & 0x3) << 4)
410 #define G_028D10_FORCE_HIS_ENABLE1(x) (((x) >> 4) & 0x3)
411 #define C_028D10_FORCE_HIS_ENABLE1 0xFFFFFFCF
412 #define S_028D10_FORCE_SHADER_Z_ORDER(x) (((x) & 0x1) << 6)
413 #define G_028D10_FORCE_SHADER_Z_ORDER(x) (((x) >> 6) & 0x1)
414 #define C_028D10_FORCE_SHADER_Z_ORDER 0xFFFFFFBF
415 #define S_028D10_FAST_Z_DISABLE(x) (((x) & 0x1) << 7)
416 #define G_028D10_FAST_Z_DISABLE(x) (((x) >> 7) & 0x1)
417 #define C_028D10_FAST_Z_DISABLE 0xFFFFFF7F
418 #define S_028D10_FAST_STENCIL_DISABLE(x) (((x) & 0x1) << 8)
419 #define G_028D10_FAST_STENCIL_DISABLE(x) (((x) >> 8) & 0x1)
420 #define C_028D10_FAST_STENCIL_DISABLE 0xFFFFFEFF
421 #define S_028D10_NOOP_CULL_DISABLE(x) (((x) & 0x1) << 9)
422 #define G_028D10_NOOP_CULL_DISABLE(x) (((x) >> 9) & 0x1)
423 #define C_028D10_NOOP_CULL_DISABLE 0xFFFFFDFF
424 #define S_028D10_FORCE_COLOR_KILL(x) (((x) & 0x1) << 10)
425 #define G_028D10_FORCE_COLOR_KILL(x) (((x) >> 10) & 0x1)
426 #define C_028D10_FORCE_COLOR_KILL 0xFFFFFBFF
427 #define S_028D10_FORCE_Z_READ(x) (((x) & 0x1) << 11)
428 #define G_028D10_FORCE_Z_READ(x) (((x) >> 11) & 0x1)
429 #define C_028D10_FORCE_Z_READ 0xFFFFF7FF
430 #define S_028D10_FORCE_STENCIL_READ(x) (((x) & 0x1) << 12)
431 #define G_028D10_FORCE_STENCIL_READ(x) (((x) >> 12) & 0x1)
432 #define C_028D10_FORCE_STENCIL_READ 0xFFFFEFFF
433 #define S_028D10_FORCE_FULL_Z_RANGE(x) (((x) & 0x3) << 13)
434 #define G_028D10_FORCE_FULL_Z_RANGE(x) (((x) >> 13) & 0x3)
435 #define C_028D10_FORCE_FULL_Z_RANGE 0xFFFF9FFF
436 #define S_028D10_FORCE_QC_SMASK_CONFLICT(x) (((x) & 0x1) << 15)
437 #define G_028D10_FORCE_QC_SMASK_CONFLICT(x) (((x) >> 15) & 0x1)
438 #define C_028D10_FORCE_QC_SMASK_CONFLICT 0xFFFF7FFF
439 #define S_028D10_DISABLE_VIEWPORT_CLAMP(x) (((x) & 0x1) << 16)
440 #define G_028D10_DISABLE_VIEWPORT_CLAMP(x) (((x) >> 16) & 0x1)
441 #define C_028D10_DISABLE_VIEWPORT_CLAMP 0xFFFEFFFF
442 #define S_028D10_IGNORE_SC_ZRANGE(x) (((x) & 0x1) << 17)
443 #define G_028D10_IGNORE_SC_ZRANGE(x) (((x) >> 17) & 0x1)
444 #define C_028D10_IGNORE_SC_ZRANGE 0xFFFDFFFF
445 #define R_028A40_VGT_GS_MODE 0x028A40
446 #define S_028A40_MODE(x) (((x) & 0x3) << 0)
447 #define G_028A40_MODE(x) (((x) >> 0) & 0x3)
448 #define C_028A40_MODE 0xFFFFFFFC
449 #define S_028A40_ES_PASSTHRU(x) (((x) & 0x1) << 2)
450 #define G_028A40_ES_PASSTHRU(x) (((x) >> 2) & 0x1)
451 #define C_028A40_ES_PASSTHRU 0xFFFFFFFB
452 #define S_028A40_CUT_MODE(x) (((x) & 0x3) << 3)
453 #define G_028A40_CUT_MODE(x) (((x) >> 3) & 0x3)
454 #define C_028A40_CUT_MODE 0xFFFFFFE7
455 #define R_008040_WAIT_UNTIL 0x008040
456 #define S_008040_WAIT_CP_DMA_IDLE(x) (((x) & 0x1) << 8)
457 #define G_008040_WAIT_CP_DMA_IDLE(x) (((x) >> 8) & 0x1)
458 #define C_008040_WAIT_CP_DMA_IDLE 0xFFFFFEFF
459 #define S_008040_WAIT_CMDFIFO(x) (((x) & 0x1) << 10)
460 #define G_008040_WAIT_CMDFIFO(x) (((x) >> 10) & 0x1)
461 #define C_008040_WAIT_CMDFIFO 0xFFFFFBFF
462 #define S_008040_WAIT_2D_IDLE(x) (((x) & 0x1) << 14)
463 #define G_008040_WAIT_2D_IDLE(x) (((x) >> 14) & 0x1)
464 #define C_008040_WAIT_2D_IDLE 0xFFFFBFFF
465 #define S_008040_WAIT_3D_IDLE(x) (((x) & 0x1) << 15)
466 #define G_008040_WAIT_3D_IDLE(x) (((x) >> 15) & 0x1)
467 #define C_008040_WAIT_3D_IDLE 0xFFFF7FFF
468 #define S_008040_WAIT_2D_IDLECLEAN(x) (((x) & 0x1) << 16)
469 #define G_008040_WAIT_2D_IDLECLEAN(x) (((x) >> 16) & 0x1)
470 #define C_008040_WAIT_2D_IDLECLEAN 0xFFFEFFFF
471 #define S_008040_WAIT_3D_IDLECLEAN(x) (((x) & 0x1) << 17)
472 #define G_008040_WAIT_3D_IDLECLEAN(x) (((x) >> 17) & 0x1)
473 #define C_008040_WAIT_3D_IDLECLEAN 0xFFFDFFFF
474 #define S_008040_WAIT_EXTERN_SIG(x) (((x) & 0x1) << 19)
475 #define G_008040_WAIT_EXTERN_SIG(x) (((x) >> 19) & 0x1)
476 #define C_008040_WAIT_EXTERN_SIG 0xFFF7FFFF
477 #define S_008040_CMDFIFO_ENTRIES(x) (((x) & 0x1F) << 20)
478 #define G_008040_CMDFIFO_ENTRIES(x) (((x) >> 20) & 0x1F)
479 #define C_008040_CMDFIFO_ENTRIES 0xFE0FFFFF
480 #define R_0286CC_SPI_PS_IN_CONTROL_0 0x0286CC
481 #define S_0286CC_NUM_INTERP(x) (((x) & 0x3F) << 0)
482 #define G_0286CC_NUM_INTERP(x) (((x) >> 0) & 0x3F)
483 #define C_0286CC_NUM_INTERP 0xFFFFFFC0
484 #define S_0286CC_POSITION_ENA(x) (((x) & 0x1) << 8)
485 #define G_0286CC_POSITION_ENA(x) (((x) >> 8) & 0x1)
486 #define C_0286CC_POSITION_ENA 0xFFFFFEFF
487 #define S_0286CC_POSITION_CENTROID(x) (((x) & 0x1) << 9)
488 #define G_0286CC_POSITION_CENTROID(x) (((x) >> 9) & 0x1)
489 #define C_0286CC_POSITION_CENTROID 0xFFFFFDFF
490 #define S_0286CC_POSITION_ADDR(x) (((x) & 0x1F) << 10)
491 #define G_0286CC_POSITION_ADDR(x) (((x) >> 10) & 0x1F)
492 #define C_0286CC_POSITION_ADDR 0xFFFF83FF
493 #define S_0286CC_PARAM_GEN(x) (((x) & 0xF) << 15)
494 #define G_0286CC_PARAM_GEN(x) (((x) >> 15) & 0xF)
495 #define C_0286CC_PARAM_GEN 0xFFF87FFF
496 #define S_0286CC_PARAM_GEN_ADDR(x) (((x) & 0x7F) << 19)
497 #define G_0286CC_PARAM_GEN_ADDR(x) (((x) >> 19) & 0x7F)
498 #define C_0286CC_PARAM_GEN_ADDR 0xFC07FFFF
499 #define S_0286CC_BARYC_SAMPLE_CNTL(x) (((x) & 0x3) << 26)
500 #define G_0286CC_BARYC_SAMPLE_CNTL(x) (((x) >> 26) & 0x3)
501 #define C_0286CC_BARYC_SAMPLE_CNTL 0xF3FFFFFF
502 #define S_0286CC_PERSP_GRADIENT_ENA(x) (((x) & 0x1) << 28)
503 #define G_0286CC_PERSP_GRADIENT_ENA(x) (((x) >> 28) & 0x1)
504 #define C_0286CC_PERSP_GRADIENT_ENA 0xEFFFFFFF
505 #define S_0286CC_LINEAR_GRADIENT_ENA(x) (((x) & 0x1) << 29)
506 #define G_0286CC_LINEAR_GRADIENT_ENA(x) (((x) >> 29) & 0x1)
507 #define C_0286CC_LINEAR_GRADIENT_ENA 0xDFFFFFFF
508 #define S_0286CC_POSITION_SAMPLE(x) (((x) & 0x1) << 30)
509 #define G_0286CC_POSITION_SAMPLE(x) (((x) >> 30) & 0x1)
510 #define C_0286CC_POSITION_SAMPLE 0xBFFFFFFF
511 #define S_0286CC_BARYC_AT_SAMPLE_ENA(x) (((x) & 0x1) << 31)
512 #define G_0286CC_BARYC_AT_SAMPLE_ENA(x) (((x) >> 31) & 0x1)
513 #define C_0286CC_BARYC_AT_SAMPLE_ENA 0x7FFFFFFF
514 #define R_0286D0_SPI_PS_IN_CONTROL_1 0x0286D0
515 #define S_0286D0_GEN_INDEX_PIX(x) (((x) & 0x1) << 0)
516 #define G_0286D0_GEN_INDEX_PIX(x) (((x) >> 0) & 0x1)
517 #define C_0286D0_GEN_INDEX_PIX 0xFFFFFFFE
518 #define S_0286D0_GEN_INDEX_PIX_ADDR(x) (((x) & 0x7F) << 1)
519 #define G_0286D0_GEN_INDEX_PIX_ADDR(x) (((x) >> 1) & 0x7F)
520 #define C_0286D0_GEN_INDEX_PIX_ADDR 0xFFFFFF01
521 #define S_0286D0_FRONT_FACE_ENA(x) (((x) & 0x1) << 8)
522 #define G_0286D0_FRONT_FACE_ENA(x) (((x) >> 8) & 0x1)
523 #define C_0286D0_FRONT_FACE_ENA 0xFFFFFEFF
524 #define S_0286D0_FRONT_FACE_CHAN(x) (((x) & 0x3) << 9)
525 #define G_0286D0_FRONT_FACE_CHAN(x) (((x) >> 9) & 0x3)
526 #define C_0286D0_FRONT_FACE_CHAN 0xFFFFF9FF
527 #define S_0286D0_FRONT_FACE_ALL_BITS(x) (((x) & 0x1) << 11)
528 #define G_0286D0_FRONT_FACE_ALL_BITS(x) (((x) >> 11) & 0x1)
529 #define C_0286D0_FRONT_FACE_ALL_BITS 0xFFFFF7FF
530 #define S_0286D0_FRONT_FACE_ADDR(x) (((x) & 0x1F) << 12)
531 #define G_0286D0_FRONT_FACE_ADDR(x) (((x) >> 12) & 0x1F)
532 #define C_0286D0_FRONT_FACE_ADDR 0xFFFE0FFF
533 #define S_0286D0_FOG_ADDR(x) (((x) & 0x7F) << 17)
534 #define G_0286D0_FOG_ADDR(x) (((x) >> 17) & 0x7F)
535 #define C_0286D0_FOG_ADDR 0xFF01FFFF
536 #define S_0286D0_FIXED_PT_POSITION_ENA(x) (((x) & 0x1) << 24)
537 #define G_0286D0_FIXED_PT_POSITION_ENA(x) (((x) >> 24) & 0x1)
538 #define C_0286D0_FIXED_PT_POSITION_ENA 0xFEFFFFFF
539 #define S_0286D0_FIXED_PT_POSITION_ADDR(x) (((x) & 0x1F) << 25)
540 #define G_0286D0_FIXED_PT_POSITION_ADDR(x) (((x) >> 25) & 0x1F)
541 #define C_0286D0_FIXED_PT_POSITION_ADDR 0xC1FFFFFF
542 #define R_0286C4_SPI_VS_OUT_CONFIG 0x0286C4
543 #define S_0286C4_VS_PER_COMPONENT(x) (((x) & 0x1) << 0)
544 #define G_0286C4_VS_PER_COMPONENT(x) (((x) >> 0) & 0x1)
545 #define C_0286C4_VS_PER_COMPONENT 0xFFFFFFFE
546 #define S_0286C4_VS_EXPORT_COUNT(x) (((x) & 0x1F) << 1)
547 #define G_0286C4_VS_EXPORT_COUNT(x) (((x) >> 1) & 0x1F)
548 #define C_0286C4_VS_EXPORT_COUNT 0xFFFFFFC1
549 #define S_0286C4_VS_EXPORTS_FOG(x) (((x) & 0x1) << 8)
550 #define G_0286C4_VS_EXPORTS_FOG(x) (((x) >> 8) & 0x1)
551 #define C_0286C4_VS_EXPORTS_FOG 0xFFFFFEFF
552 #define S_0286C4_VS_OUT_FOG_VEC_ADDR(x) (((x) & 0x1F) << 9)
553 #define G_0286C4_VS_OUT_FOG_VEC_ADDR(x) (((x) >> 9) & 0x1F)
554 #define C_0286C4_VS_OUT_FOG_VEC_ADDR 0xFFFFC1FF
555 #define R_028240_PA_SC_GENERIC_SCISSOR_TL 0x028240
556 #define S_028240_TL_X(x) (((x) & 0x3FFF) << 0)
557 #define G_028240_TL_X(x) (((x) >> 0) & 0x3FFF)
558 #define C_028240_TL_X 0xFFFFC000
559 #define S_028240_TL_Y(x) (((x) & 0x3FFF) << 16)
560 #define G_028240_TL_Y(x) (((x) >> 16) & 0x3FFF)
561 #define C_028240_TL_Y 0xC000FFFF
562 #define S_028240_WINDOW_OFFSET_DISABLE(x) (((x) & 0x1) << 31)
563 #define G_028240_WINDOW_OFFSET_DISABLE(x) (((x) >> 31) & 0x1)
564 #define C_028240_WINDOW_OFFSET_DISABLE 0x7FFFFFFF
565 #define R_028244_PA_SC_GENERIC_SCISSOR_BR 0x028244
566 #define S_028244_BR_X(x) (((x) & 0x3FFF) << 0)
567 #define G_028244_BR_X(x) (((x) >> 0) & 0x3FFF)
568 #define C_028244_BR_X 0xFFFFC000
569 #define S_028244_BR_Y(x) (((x) & 0x3FFF) << 16)
570 #define G_028244_BR_Y(x) (((x) >> 16) & 0x3FFF)
571 #define C_028244_BR_Y 0xC000FFFF
572 #define R_028030_PA_SC_SCREEN_SCISSOR_TL 0x028030
573 #define S_028030_TL_X(x) (((x) & 0x7FFF) << 0)
574 #define G_028030_TL_X(x) (((x) >> 0) & 0x7FFF)
575 #define C_028030_TL_X 0xFFFF8000
576 #define S_028030_TL_Y(x) (((x) & 0x7FFF) << 16)
577 #define G_028030_TL_Y(x) (((x) >> 16) & 0x7FFF)
578 #define C_028030_TL_Y 0x8000FFFF
579 #define R_028034_PA_SC_SCREEN_SCISSOR_BR 0x028034
580 #define S_028034_BR_X(x) (((x) & 0x7FFF) << 0)
581 #define G_028034_BR_X(x) (((x) >> 0) & 0x7FFF)
582 #define C_028034_BR_X 0xFFFF8000
583 #define S_028034_BR_Y(x) (((x) & 0x7FFF) << 16)
584 #define G_028034_BR_Y(x) (((x) >> 16) & 0x7FFF)
585 #define C_028034_BR_Y 0x8000FFFF
586 #define R_028204_PA_SC_WINDOW_SCISSOR_TL 0x028204
587 #define S_028204_TL_X(x) (((x) & 0x3FFF) << 0)
588 #define G_028204_TL_X(x) (((x) >> 0) & 0x3FFF)
589 #define C_028204_TL_X 0xFFFFC000
590 #define S_028204_TL_Y(x) (((x) & 0x3FFF) << 16)
591 #define G_028204_TL_Y(x) (((x) >> 16) & 0x3FFF)
592 #define C_028204_TL_Y 0xC000FFFF
593 #define S_028204_WINDOW_OFFSET_DISABLE(x) (((x) & 0x1) << 31)
594 #define G_028204_WINDOW_OFFSET_DISABLE(x) (((x) >> 31) & 0x1)
595 #define C_028204_WINDOW_OFFSET_DISABLE 0x7FFFFFFF
596 #define R_028208_PA_SC_WINDOW_SCISSOR_BR 0x028208
597 #define S_028208_BR_X(x) (((x) & 0x3FFF) << 0)
598 #define G_028208_BR_X(x) (((x) >> 0) & 0x3FFF)
599 #define C_028208_BR_X 0xFFFFC000
600 #define S_028208_BR_Y(x) (((x) & 0x3FFF) << 16)
601 #define G_028208_BR_Y(x) (((x) >> 16) & 0x3FFF)
602 #define C_028208_BR_Y 0xC000FFFF
603 #define R_0287F0_VGT_DRAW_INITIATOR 0x0287F0
604 #define S_0287F0_SOURCE_SELECT(x) (((x) & 0x3) << 0)
605 #define G_0287F0_SOURCE_SELECT(x) (((x) >> 0) & 0x3)
606 #define C_0287F0_SOURCE_SELECT 0xFFFFFFFC
607 #define S_0287F0_MAJOR_MODE(x) (((x) & 0x3) << 2)
608 #define G_0287F0_MAJOR_MODE(x) (((x) >> 2) & 0x3)
609 #define C_0287F0_MAJOR_MODE 0xFFFFFFF3
610 #define S_0287F0_SPRITE_EN(x) (((x) & 0x1) << 4)
611 #define G_0287F0_SPRITE_EN(x) (((x) >> 4) & 0x1)
612 #define C_0287F0_SPRITE_EN 0xFFFFFFEF
613 #define S_0287F0_NOT_EOP(x) (((x) & 0x1) << 5)
614 #define G_0287F0_NOT_EOP(x) (((x) >> 5) & 0x1)
615 #define C_0287F0_NOT_EOP 0xFFFFFFDF
616 #define S_0287F0_USE_OPAQUE(x) (((x) & 0x1) << 6)
617 #define G_0287F0_USE_OPAQUE(x) (((x) >> 6) & 0x1)
618 #define C_0287F0_USE_OPAQUE 0xFFFFFFBF
619 #define R_038000_SQ_TEX_RESOURCE_WORD0_0 0x038000
620 #define S_038000_DIM(x) (((x) & 0x7) << 0)
621 #define G_038000_DIM(x) (((x) >> 0) & 0x7)
622 #define C_038000_DIM 0xFFFFFFF8
623 #define V_038000_SQ_TEX_DIM_1D 0x00000000
624 #define V_038000_SQ_TEX_DIM_2D 0x00000001
625 #define V_038000_SQ_TEX_DIM_3D 0x00000002
626 #define V_038000_SQ_TEX_DIM_CUBEMAP 0x00000003
627 #define V_038000_SQ_TEX_DIM_1D_ARRAY 0x00000004
628 #define V_038000_SQ_TEX_DIM_2D_ARRAY 0x00000005
629 #define V_038000_SQ_TEX_DIM_2D_MSAA 0x00000006
630 #define V_038000_SQ_TEX_DIM_2D_ARRAY_MSAA 0x00000007
631 #define S_038000_TILE_MODE(x) (((x) & 0xF) << 3)
632 #define G_038000_TILE_MODE(x) (((x) >> 3) & 0xF)
633 #define C_038000_TILE_MODE 0xFFFFFF87
634 #define S_038000_TILE_TYPE(x) (((x) & 0x1) << 7)
635 #define G_038000_TILE_TYPE(x) (((x) >> 7) & 0x1)
636 #define C_038000_TILE_TYPE 0xFFFFFF7F
637 #define S_038000_PITCH(x) (((x) & 0x7FF) << 8)
638 #define G_038000_PITCH(x) (((x) >> 8) & 0x7FF)
639 #define C_038000_PITCH 0xFFF800FF
640 #define S_038000_TEX_WIDTH(x) (((x) & 0x1FFF) << 19)
641 #define G_038000_TEX_WIDTH(x) (((x) >> 19) & 0x1FFF)
642 #define C_038000_TEX_WIDTH 0x0007FFFF
643 #define R_038004_SQ_TEX_RESOURCE_WORD1_0 0x038004
644 #define S_038004_TEX_HEIGHT(x) (((x) & 0x1FFF) << 0)
645 #define G_038004_TEX_HEIGHT(x) (((x) >> 0) & 0x1FFF)
646 #define C_038004_TEX_HEIGHT 0xFFFFE000
647 #define S_038004_TEX_DEPTH(x) (((x) & 0x1FFF) << 13)
648 #define G_038004_TEX_DEPTH(x) (((x) >> 13) & 0x1FFF)
649 #define C_038004_TEX_DEPTH 0xFC001FFF
650 #define S_038004_DATA_FORMAT(x) (((x) & 0x3F) << 26)
651 #define G_038004_DATA_FORMAT(x) (((x) >> 26) & 0x3F)
652 #define C_038004_DATA_FORMAT 0x03FFFFFF
653 #define R_038008_SQ_TEX_RESOURCE_WORD2_0 0x038008
654 #define S_038008_BASE_ADDRESS(x) (((x) & 0xFFFFFFFF) << 0)
655 #define G_038008_BASE_ADDRESS(x) (((x) >> 0) & 0xFFFFFFFF)
656 #define C_038008_BASE_ADDRESS 0x00000000
657 #define R_03800C_SQ_TEX_RESOURCE_WORD3_0 0x03800C
658 #define S_03800C_MIP_ADDRESS(x) (((x) & 0xFFFFFFFF) << 0)
659 #define G_03800C_MIP_ADDRESS(x) (((x) >> 0) & 0xFFFFFFFF)
660 #define C_03800C_MIP_ADDRESS 0x00000000
661 #define R_038010_SQ_TEX_RESOURCE_WORD4_0 0x038010
662 #define S_038010_FORMAT_COMP_X(x) (((x) & 0x3) << 0)
663 #define G_038010_FORMAT_COMP_X(x) (((x) >> 0) & 0x3)
664 #define C_038010_FORMAT_COMP_X 0xFFFFFFFC
665 #define V_038010_SQ_FORMAT_COMP_UNSIGNED 0x00000000
666 #define V_038010_SQ_FORMAT_COMP_SIGNED 0x00000001
667 #define V_038010_SQ_FORMAT_COMP_UNSIGNED_BIASED 0x00000002
668 #define S_038010_FORMAT_COMP_Y(x) (((x) & 0x3) << 2)
669 #define G_038010_FORMAT_COMP_Y(x) (((x) >> 2) & 0x3)
670 #define C_038010_FORMAT_COMP_Y 0xFFFFFFF3
671 #define S_038010_FORMAT_COMP_Z(x) (((x) & 0x3) << 4)
672 #define G_038010_FORMAT_COMP_Z(x) (((x) >> 4) & 0x3)
673 #define C_038010_FORMAT_COMP_Z 0xFFFFFFCF
674 #define S_038010_FORMAT_COMP_W(x) (((x) & 0x3) << 6)
675 #define G_038010_FORMAT_COMP_W(x) (((x) >> 6) & 0x3)
676 #define C_038010_FORMAT_COMP_W 0xFFFFFF3F
677 #define S_038010_NUM_FORMAT_ALL(x) (((x) & 0x3) << 8)
678 #define G_038010_NUM_FORMAT_ALL(x) (((x) >> 8) & 0x3)
679 #define C_038010_NUM_FORMAT_ALL 0xFFFFFCFF
680 #define V_038010_SQ_NUM_FORMAT_NORM 0x00000000
681 #define V_038010_SQ_NUM_FORMAT_INT 0x00000001
682 #define V_038010_SQ_NUM_FORMAT_SCALED 0x00000002
683 #define S_038010_SRF_MODE_ALL(x) (((x) & 0x1) << 10)
684 #define G_038010_SRF_MODE_ALL(x) (((x) >> 10) & 0x1)
685 #define C_038010_SRF_MODE_ALL 0xFFFFFBFF
686 #define V_038010_SFR_MODE_ZERO_CLAMP_MINUS_ONE 0x00000000
687 #define V_038010_SFR_MODE_NO_ZERO 0x00000001
688 #define S_038010_FORCE_DEGAMMA(x) (((x) & 0x1) << 11)
689 #define G_038010_FORCE_DEGAMMA(x) (((x) >> 11) & 0x1)
690 #define C_038010_FORCE_DEGAMMA 0xFFFFF7FF
691 #define S_038010_ENDIAN_SWAP(x) (((x) & 0x3) << 12)
692 #define G_038010_ENDIAN_SWAP(x) (((x) >> 12) & 0x3)
693 #define C_038010_ENDIAN_SWAP 0xFFFFCFFF
694 #define S_038010_REQUEST_SIZE(x) (((x) & 0x3) << 14)
695 #define G_038010_REQUEST_SIZE(x) (((x) >> 14) & 0x3)
696 #define C_038010_REQUEST_SIZE 0xFFFF3FFF
697 #define S_038010_DST_SEL_X(x) (((x) & 0x7) << 16)
698 #define G_038010_DST_SEL_X(x) (((x) >> 16) & 0x7)
699 #define C_038010_DST_SEL_X 0xFFF8FFFF
700 #define V_038010_SQ_SEL_X 0x00000000
701 #define V_038010_SQ_SEL_Y 0x00000001
702 #define V_038010_SQ_SEL_Z 0x00000002
703 #define V_038010_SQ_SEL_W 0x00000003
704 #define V_038010_SQ_SEL_0 0x00000004
705 #define V_038010_SQ_SEL_1 0x00000005
706 #define S_038010_DST_SEL_Y(x) (((x) & 0x7) << 19)
707 #define G_038010_DST_SEL_Y(x) (((x) >> 19) & 0x7)
708 #define C_038010_DST_SEL_Y 0xFFC7FFFF
709 #define S_038010_DST_SEL_Z(x) (((x) & 0x7) << 22)
710 #define G_038010_DST_SEL_Z(x) (((x) >> 22) & 0x7)
711 #define C_038010_DST_SEL_Z 0xFE3FFFFF
712 #define S_038010_DST_SEL_W(x) (((x) & 0x7) << 25)
713 #define G_038010_DST_SEL_W(x) (((x) >> 25) & 0x7)
714 #define C_038010_DST_SEL_W 0xF1FFFFFF
715 #define S_038010_BASE_LEVEL(x) (((x) & 0xF) << 28)
716 #define G_038010_BASE_LEVEL(x) (((x) >> 28) & 0xF)
717 #define C_038010_BASE_LEVEL 0x0FFFFFFF
718 #define R_038014_SQ_TEX_RESOURCE_WORD5_0 0x038014
719 #define S_038014_LAST_LEVEL(x) (((x) & 0xF) << 0)
720 #define G_038014_LAST_LEVEL(x) (((x) >> 0) & 0xF)
721 #define C_038014_LAST_LEVEL 0xFFFFFFF0
722 #define S_038014_BASE_ARRAY(x) (((x) & 0x1FFF) << 4)
723 #define G_038014_BASE_ARRAY(x) (((x) >> 4) & 0x1FFF)
724 #define C_038014_BASE_ARRAY 0xFFFE000F
725 #define S_038014_LAST_ARRAY(x) (((x) & 0x1FFF) << 17)
726 #define G_038014_LAST_ARRAY(x) (((x) >> 17) & 0x1FFF)
727 #define C_038014_LAST_ARRAY 0xC001FFFF
728 #define R_038018_SQ_TEX_RESOURCE_WORD6_0 0x038018
729 #define S_038018_MPEG_CLAMP(x) (((x) & 0x3) << 0)
730 #define G_038018_MPEG_CLAMP(x) (((x) >> 0) & 0x3)
731 #define C_038018_MPEG_CLAMP 0xFFFFFFFC
732 #define S_038018_PERF_MODULATION(x) (((x) & 0x7) << 5)
733 #define G_038018_PERF_MODULATION(x) (((x) >> 5) & 0x7)
734 #define C_038018_PERF_MODULATION 0xFFFFFF1F
735 #define S_038018_INTERLACED(x) (((x) & 0x1) << 8)
736 #define G_038018_INTERLACED(x) (((x) >> 8) & 0x1)
737 #define C_038018_INTERLACED 0xFFFFFEFF
738 #define S_038018_TYPE(x) (((x) & 0x3) << 30)
739 #define G_038018_TYPE(x) (((x) >> 30) & 0x3)
740 #define C_038018_TYPE 0x3FFFFFFF
741 #define V_038010_SQ_TEX_VTX_INVALID_TEXTURE 0x00000000
742 #define V_038010_SQ_TEX_VTX_INVALID_BUFFER 0x00000001
743 #define V_038010_SQ_TEX_VTX_VALID_TEXTURE 0x00000002
744 #define V_038010_SQ_TEX_VTX_VALID_BUFFER 0x00000003
745 #define R_038008_SQ_VTX_CONSTANT_WORD2_0 0x038008
746 #define S_038008_BASE_ADDRESS_HI(x) (((x) & 0xFF) << 0)
747 #define G_038008_BASE_ADDRESS_HI(x) (((x) >> 0) & 0xFF)
748 #define C_038008_BASE_ADDRESS_HI 0xFFFFFF00
749 #define S_038008_STRIDE(x) (((x) & 0x7FF) << 8)
750 #define G_038008_STRIDE(x) (((x) >> 8) & 0x7FF)
751 #define C_038008_STRIDE 0xFFF800FF
752 #define S_038008_CLAMP_X(x) (((x) & 0x1) << 19)
753 #define G_038008_CLAMP_X(x) (((x) >> 19) & 0x1)
754 #define C_038008_CLAMP_X 0xFFF7FFFF
755 #define S_038008_DATA_FORMAT(x) (((x) & 0x3F) << 20)
756 #define G_038008_DATA_FORMAT(x) (((x) >> 20) & 0x3F)
757 #define C_038008_DATA_FORMAT 0xFC0FFFFF
758 #define V_038008_COLOR_INVALID 0x00000000
759 #define V_038008_COLOR_8 0x00000001
760 #define V_038008_COLOR_4_4 0x00000002
761 #define V_038008_COLOR_3_3_2 0x00000003
762 #define V_038008_COLOR_16 0x00000005
763 #define V_038008_COLOR_16_FLOAT 0x00000006
764 #define V_038008_COLOR_8_8 0x00000007
765 #define V_038008_COLOR_5_6_5 0x00000008
766 #define V_038008_COLOR_6_5_5 0x00000009
767 #define V_038008_COLOR_1_5_5_5 0x0000000A
768 #define V_038008_COLOR_4_4_4_4 0x0000000B
769 #define V_038008_COLOR_5_5_5_1 0x0000000C
770 #define V_038008_COLOR_32 0x0000000D
771 #define V_038008_COLOR_32_FLOAT 0x0000000E
772 #define V_038008_COLOR_16_16 0x0000000F
773 #define V_038008_COLOR_16_16_FLOAT 0x00000010
774 #define V_038008_COLOR_8_24 0x00000011
775 #define V_038008_COLOR_8_24_FLOAT 0x00000012
776 #define V_038008_COLOR_24_8 0x00000013
777 #define V_038008_COLOR_24_8_FLOAT 0x00000014
778 #define V_038008_COLOR_10_11_11 0x00000015
779 #define V_038008_COLOR_10_11_11_FLOAT 0x00000016
780 #define V_038008_COLOR_11_11_10 0x00000017
781 #define V_038008_COLOR_11_11_10_FLOAT 0x00000018
782 #define V_038008_COLOR_2_10_10_10 0x00000019
783 #define V_038008_COLOR_8_8_8_8 0x0000001A
784 #define V_038008_COLOR_10_10_10_2 0x0000001B
785 #define V_038008_COLOR_X24_8_32_FLOAT 0x0000001C
786 #define V_038008_COLOR_32_32 0x0000001D
787 #define V_038008_COLOR_32_32_FLOAT 0x0000001E
788 #define V_038008_COLOR_16_16_16_16 0x0000001F
789 #define V_038008_COLOR_16_16_16_16_FLOAT 0x00000020
790 #define V_038008_COLOR_32_32_32_32 0x00000022
791 #define V_038008_COLOR_32_32_32_32_FLOAT 0x00000023
792 #define S_038008_NUM_FORMAT_ALL(x) (((x) & 0x3) << 26)
793 #define G_038008_NUM_FORMAT_ALL(x) (((x) >> 26) & 0x3)
794 #define C_038008_NUM_FORMAT_ALL 0xF3FFFFFF
795 #define S_038008_FORMAT_COMP_ALL(x) (((x) & 0x1) << 28)
796 #define G_038008_FORMAT_COMP_ALL(x) (((x) >> 28) & 0x1)
797 #define C_038008_FORMAT_COMP_ALL 0xEFFFFFFF
798 #define S_038008_SRF_MODE_ALL(x) (((x) & 0x1) << 29)
799 #define G_038008_SRF_MODE_ALL(x) (((x) >> 29) & 0x1)
800 #define C_038008_SRF_MODE_ALL 0xDFFFFFFF
801 #define S_038008_ENDIAN_SWAP(x) (((x) & 0x3) << 30)
802 #define G_038008_ENDIAN_SWAP(x) (((x) >> 30) & 0x3)
803 #define C_038008_ENDIAN_SWAP 0x3FFFFFFF
804 #define R_03C000_SQ_TEX_SAMPLER_WORD0_0 0x03C000
805 #define S_03C000_CLAMP_X(x) (((x) & 0x7) << 0)
806 #define G_03C000_CLAMP_X(x) (((x) >> 0) & 0x7)
807 #define C_03C000_CLAMP_X 0xFFFFFFF8
808 #define V_03C000_SQ_TEX_WRAP 0x00000000
809 #define V_03C000_SQ_TEX_MIRROR 0x00000001
810 #define V_03C000_SQ_TEX_CLAMP_LAST_TEXEL 0x00000002
811 #define V_03C000_SQ_TEX_MIRROR_ONCE_LAST_TEXEL 0x00000003
812 #define V_03C000_SQ_TEX_CLAMP_HALF_BORDER 0x00000004
813 #define V_03C000_SQ_TEX_MIRROR_ONCE_HALF_BORDER 0x00000005
814 #define V_03C000_SQ_TEX_CLAMP_BORDER 0x00000006
815 #define V_03C000_SQ_TEX_MIRROR_ONCE_BORDER 0x00000007
816 #define S_03C000_CLAMP_Y(x) (((x) & 0x7) << 3)
817 #define G_03C000_CLAMP_Y(x) (((x) >> 3) & 0x7)
818 #define C_03C000_CLAMP_Y 0xFFFFFFC7
819 #define S_03C000_CLAMP_Z(x) (((x) & 0x7) << 6)
820 #define G_03C000_CLAMP_Z(x) (((x) >> 6) & 0x7)
821 #define C_03C000_CLAMP_Z 0xFFFFFE3F
822 #define S_03C000_XY_MAG_FILTER(x) (((x) & 0x7) << 9)
823 #define G_03C000_XY_MAG_FILTER(x) (((x) >> 9) & 0x7)
824 #define C_03C000_XY_MAG_FILTER 0xFFFFF1FF
825 #define V_03C000_SQ_TEX_XY_FILTER_POINT 0x00000000
826 #define V_03C000_SQ_TEX_XY_FILTER_BILINEAR 0x00000001
827 #define V_03C000_SQ_TEX_XY_FILTER_BICUBIC 0x00000002
828 #define S_03C000_XY_MIN_FILTER(x) (((x) & 0x7) << 12)
829 #define G_03C000_XY_MIN_FILTER(x) (((x) >> 12) & 0x7)
830 #define C_03C000_XY_MIN_FILTER 0xFFFF8FFF
831 #define S_03C000_Z_FILTER(x) (((x) & 0x3) << 15)
832 #define G_03C000_Z_FILTER(x) (((x) >> 15) & 0x3)
833 #define C_03C000_Z_FILTER 0xFFFE7FFF
834 #define V_03C000_SQ_TEX_Z_FILTER_NONE 0x00000000
835 #define V_03C000_SQ_TEX_Z_FILTER_POINT 0x00000001
836 #define V_03C000_SQ_TEX_Z_FILTER_LINEAR 0x00000002
837 #define S_03C000_MIP_FILTER(x) (((x) & 0x3) << 17)
838 #define G_03C000_MIP_FILTER(x) (((x) >> 17) & 0x3)
839 #define C_03C000_MIP_FILTER 0xFFF9FFFF
840 #define S_03C000_BORDER_COLOR_TYPE(x) (((x) & 0x3) << 22)
841 #define G_03C000_BORDER_COLOR_TYPE(x) (((x) >> 22) & 0x3)
842 #define C_03C000_BORDER_COLOR_TYPE 0xFF3FFFFF
843 #define V_03C000_SQ_TEX_BORDER_COLOR_TRANS_BLACK 0x00000000
844 #define V_03C000_SQ_TEX_BORDER_COLOR_OPAQUE_BLACK 0x00000001
845 #define V_03C000_SQ_TEX_BORDER_COLOR_OPAQUE_WHITE 0x00000002
846 #define V_03C000_SQ_TEX_BORDER_COLOR_REGISTER 0x00000003
847 #define S_03C000_POINT_SAMPLING_CLAMP(x) (((x) & 0x1) << 24)
848 #define G_03C000_POINT_SAMPLING_CLAMP(x) (((x) >> 24) & 0x1)
849 #define C_03C000_POINT_SAMPLING_CLAMP 0xFEFFFFFF
850 #define S_03C000_TEX_ARRAY_OVERRIDE(x) (((x) & 0x1) << 25)
851 #define G_03C000_TEX_ARRAY_OVERRIDE(x) (((x) >> 25) & 0x1)
852 #define C_03C000_TEX_ARRAY_OVERRIDE 0xFDFFFFFF
853 #define S_03C000_DEPTH_COMPARE_FUNCTION(x) (((x) & 0x7) << 26)
854 #define G_03C000_DEPTH_COMPARE_FUNCTION(x) (((x) >> 26) & 0x7)
855 #define C_03C000_DEPTH_COMPARE_FUNCTION 0xE3FFFFFF
856 #define V_03C000_SQ_TEX_DEPTH_COMPARE_NEVER 0x00000000
857 #define V_03C000_SQ_TEX_DEPTH_COMPARE_LESS 0x00000001
858 #define V_03C000_SQ_TEX_DEPTH_COMPARE_EQUAL 0x00000002
859 #define V_03C000_SQ_TEX_DEPTH_COMPARE_LESSEQUAL 0x00000003
860 #define V_03C000_SQ_TEX_DEPTH_COMPARE_GREATER 0x00000004
861 #define V_03C000_SQ_TEX_DEPTH_COMPARE_NOTEQUAL 0x00000005
862 #define V_03C000_SQ_TEX_DEPTH_COMPARE_GREATEREQUAL 0x00000006
863 #define V_03C000_SQ_TEX_DEPTH_COMPARE_ALWAYS 0x00000007
864 #define S_03C000_CHROMA_KEY(x) (((x) & 0x3) << 29)
865 #define G_03C000_CHROMA_KEY(x) (((x) >> 29) & 0x3)
866 #define C_03C000_CHROMA_KEY 0x9FFFFFFF
867 #define V_03C000_SQ_TEX_CHROMA_KEY_DISABLE 0x00000000
868 #define V_03C000_SQ_TEX_CHROMA_KEY_KILL 0x00000001
869 #define V_03C000_SQ_TEX_CHROMA_KEY_BLEND 0x00000002
870 #define S_03C000_LOD_USES_MINOR_AXIS(x) (((x) & 0x1) << 31)
871 #define G_03C000_LOD_USES_MINOR_AXIS(x) (((x) >> 31) & 0x1)
872 #define C_03C000_LOD_USES_MINOR_AXIS 0x7FFFFFFF
873 #define R_03C004_SQ_TEX_SAMPLER_WORD1_0 0x03C004
874 #define S_03C004_MIN_LOD(x) (((x) & 0x3FF) << 0)
875 #define G_03C004_MIN_LOD(x) (((x) >> 0) & 0x3FF)
876 #define C_03C004_MIN_LOD 0xFFFFFC00
877 #define S_03C004_MAX_LOD(x) (((x) & 0x3FF) << 10)
878 #define G_03C004_MAX_LOD(x) (((x) >> 10) & 0x3FF)
879 #define C_03C004_MAX_LOD 0xFFF003FF
880 #define S_03C004_LOD_BIAS(x) (((x) & 0xFFF) << 20)
881 #define G_03C004_LOD_BIAS(x) (((x) >> 20) & 0xFFF)
882 #define C_03C004_LOD_BIAS 0x000FFFFF
883 #define R_03C008_SQ_TEX_SAMPLER_WORD2_0 0x03C008
884 #define S_03C008_LOD_BIAS_SEC(x) (((x) & 0xFFF) << 0)
885 #define G_03C008_LOD_BIAS_SEC(x) (((x) >> 0) & 0xFFF)
886 #define C_03C008_LOD_BIAS_SEC 0xFFFFF000
887 #define S_03C008_MC_COORD_TRUNCATE(x) (((x) & 0x1) << 12)
888 #define G_03C008_MC_COORD_TRUNCATE(x) (((x) >> 12) & 0x1)
889 #define C_03C008_MC_COORD_TRUNCATE 0xFFFFEFFF
890 #define S_03C008_FORCE_DEGAMMA(x) (((x) & 0x1) << 13)
891 #define G_03C008_FORCE_DEGAMMA(x) (((x) >> 13) & 0x1)
892 #define C_03C008_FORCE_DEGAMMA 0xFFFFDFFF
893 #define S_03C008_HIGH_PRECISION_FILTER(x) (((x) & 0x1) << 14)
894 #define G_03C008_HIGH_PRECISION_FILTER(x) (((x) >> 14) & 0x1)
895 #define C_03C008_HIGH_PRECISION_FILTER 0xFFFFBFFF
896 #define S_03C008_PERF_MIP(x) (((x) & 0x7) << 15)
897 #define G_03C008_PERF_MIP(x) (((x) >> 15) & 0x7)
898 #define C_03C008_PERF_MIP 0xFFFC7FFF
899 #define S_03C008_PERF_Z(x) (((x) & 0x3) << 18)
900 #define G_03C008_PERF_Z(x) (((x) >> 18) & 0x3)
901 #define C_03C008_PERF_Z 0xFFF3FFFF
902 #define S_03C008_FETCH_4(x) (((x) & 0x1) << 26)
903 #define G_03C008_FETCH_4(x) (((x) >> 26) & 0x1)
904 #define C_03C008_FETCH_4 0xFBFFFFFF
905 #define S_03C008_SAMPLE_IS_PCF(x) (((x) & 0x1) << 27)
906 #define G_03C008_SAMPLE_IS_PCF(x) (((x) >> 27) & 0x1)
907 #define C_03C008_SAMPLE_IS_PCF 0xF7FFFFFF
908 #define S_03C008_TYPE(x) (((x) & 0x1) << 31)
909 #define G_03C008_TYPE(x) (((x) >> 31) & 0x1)
910 #define C_03C008_TYPE 0x7FFFFFFF
911 #define R_008958_VGT_PRIMITIVE_TYPE 0x008958
912 #define S_008958_PRIM_TYPE(x) (((x) & 0x3F) << 0)
913 #define G_008958_PRIM_TYPE(x) (((x) >> 0) & 0x3F)
914 #define C_008958_PRIM_TYPE 0xFFFFFFC0
915 #define V_008958_DI_PT_NONE 0x00000000
916 #define V_008958_DI_PT_POINTLIST 0x00000001
917 #define V_008958_DI_PT_LINELIST 0x00000002
918 #define V_008958_DI_PT_LINESTRIP 0x00000003
919 #define V_008958_DI_PT_TRILIST 0x00000004
920 #define V_008958_DI_PT_TRIFAN 0x00000005
921 #define V_008958_DI_PT_TRISTRIP 0x00000006
922 #define V_008958_DI_PT_UNUSED_0 0x00000007
923 #define V_008958_DI_PT_UNUSED_1 0x00000008
924 #define V_008958_DI_PT_UNUSED_2 0x00000009
925 #define V_008958_DI_PT_LINELIST_ADJ 0x0000000A
926 #define V_008958_DI_PT_LINESTRIP_ADJ 0x0000000B
927 #define V_008958_DI_PT_TRILIST_ADJ 0x0000000C
928 #define V_008958_DI_PT_TRISTRIP_ADJ 0x0000000D
929 #define V_008958_DI_PT_UNUSED_3 0x0000000E
930 #define V_008958_DI_PT_UNUSED_4 0x0000000F
931 #define V_008958_DI_PT_TRI_WITH_WFLAGS 0x00000010
932 #define V_008958_DI_PT_RECTLIST 0x00000011
933 #define V_008958_DI_PT_LINELOOP 0x00000012
934 #define V_008958_DI_PT_QUADLIST 0x00000013
935 #define V_008958_DI_PT_QUADSTRIP 0x00000014
936 #define V_008958_DI_PT_POLYGON 0x00000015
937 #define V_008958_DI_PT_2D_COPY_RECT_LIST_V0 0x00000016
938 #define V_008958_DI_PT_2D_COPY_RECT_LIST_V1 0x00000017
939 #define V_008958_DI_PT_2D_COPY_RECT_LIST_V2 0x00000018
940 #define V_008958_DI_PT_2D_COPY_RECT_LIST_V3 0x00000019
941 #define V_008958_DI_PT_2D_FILL_RECT_LIST 0x0000001A
942 #define V_008958_DI_PT_2D_LINE_STRIP 0x0000001B
943 #define V_008958_DI_PT_2D_TRI_STRIP 0x0000001C
944 #define R_028868_SQ_PGM_RESOURCES_VS 0x028868
945 #define S_028868_NUM_GPRS(x) (((x) & 0xFF) << 0)
946 #define G_028868_NUM_GPRS(x) (((x) >> 0) & 0xFF)
947 #define C_028868_NUM_GPRS 0xFFFFFF00
948 #define S_028868_STACK_SIZE(x) (((x) & 0xFF) << 8)
949 #define G_028868_STACK_SIZE(x) (((x) >> 8) & 0xFF)
950 #define C_028868_STACK_SIZE 0xFFFF00FF
951 #define S_028868_DX10_CLAMP(x) (((x) & 0x1) << 21)
952 #define G_028868_DX10_CLAMP(x) (((x) >> 21) & 0x1)
953 #define C_028868_DX10_CLAMP 0xFFDFFFFF
954 #define S_028868_FETCH_CACHE_LINES(x) (((x) & 0x7) << 24)
955 #define G_028868_FETCH_CACHE_LINES(x) (((x) >> 24) & 0x7)
956 #define C_028868_FETCH_CACHE_LINES 0xF8FFFFFF
957 #define S_028868_UNCACHED_FIRST_INST(x) (((x) & 0x1) << 28)
958 #define G_028868_UNCACHED_FIRST_INST(x) (((x) >> 28) & 0x1)
959 #define C_028868_UNCACHED_FIRST_INST 0xEFFFFFFF
960 #define R_028850_SQ_PGM_RESOURCES_PS 0x028850
961 #define S_028850_NUM_GPRS(x) (((x) & 0xFF) << 0)
962 #define G_028850_NUM_GPRS(x) (((x) >> 0) & 0xFF)
963 #define C_028850_NUM_GPRS 0xFFFFFF00
964 #define S_028850_STACK_SIZE(x) (((x) & 0xFF) << 8)
965 #define G_028850_STACK_SIZE(x) (((x) >> 8) & 0xFF)
966 #define C_028850_STACK_SIZE 0xFFFF00FF
967 #define S_028850_DX10_CLAMP(x) (((x) & 0x1) << 21)
968 #define G_028850_DX10_CLAMP(x) (((x) >> 21) & 0x1)
969 #define C_028850_DX10_CLAMP 0xFFDFFFFF
970 #define S_028850_FETCH_CACHE_LINES(x) (((x) & 0x7) << 24)
971 #define G_028850_FETCH_CACHE_LINES(x) (((x) >> 24) & 0x7)
972 #define C_028850_FETCH_CACHE_LINES 0xF8FFFFFF
973 #define S_028850_UNCACHED_FIRST_INST(x) (((x) & 0x1) << 28)
974 #define G_028850_UNCACHED_FIRST_INST(x) (((x) >> 28) & 0x1)
975 #define C_028850_UNCACHED_FIRST_INST 0xEFFFFFFF
976 #define S_028850_CLAMP_CONSTS(x) (((x) & 0x1) << 31)
977 #define G_028850_CLAMP_CONSTS(x) (((x) >> 31) & 0x1)
978 #define C_028850_CLAMP_CONSTS 0x7FFFFFFF
979 #define R_028644_SPI_PS_INPUT_CNTL_0 0x028644
980 #define S_028644_SEMANTIC(x) (((x) & 0xFF) << 0)
981 #define G_028644_SEMANTIC(x) (((x) >> 0) & 0xFF)
982 #define C_028644_SEMANTIC 0xFFFFFF00
983 #define S_028644_DEFAULT_VAL(x) (((x) & 0x3) << 8)
984 #define G_028644_DEFAULT_VAL(x) (((x) >> 8) & 0x3)
985 #define C_028644_DEFAULT_VAL 0xFFFFFCFF
986 #define S_028644_FLAT_SHADE(x) (((x) & 0x1) << 10)
987 #define G_028644_FLAT_SHADE(x) (((x) >> 10) & 0x1)
988 #define C_028644_FLAT_SHADE 0xFFFFFBFF
989 #define S_028644_SEL_CENTROID(x) (((x) & 0x1) << 11)
990 #define G_028644_SEL_CENTROID(x) (((x) >> 11) & 0x1)
991 #define C_028644_SEL_CENTROID 0xFFFFF7FF
992 #define S_028644_SEL_LINEAR(x) (((x) & 0x1) << 12)
993 #define G_028644_SEL_LINEAR(x) (((x) >> 12) & 0x1)
994 #define C_028644_SEL_LINEAR 0xFFFFEFFF
995 #define S_028644_CYL_WRAP(x) (((x) & 0xF) << 13)
996 #define G_028644_CYL_WRAP(x) (((x) >> 13) & 0xF)
997 #define C_028644_CYL_WRAP 0xFFFE1FFF
998 #define S_028644_PT_SPRITE_TEX(x) (((x) & 0x1) << 17)
999 #define G_028644_PT_SPRITE_TEX(x) (((x) >> 17) & 0x1)
1000 #define C_028644_PT_SPRITE_TEX 0xFFFDFFFF
1001 #define S_028644_SEL_SAMPLE(x) (((x) & 0x1) << 18)
1002 #define G_028644_SEL_SAMPLE(x) (((x) >> 18) & 0x1)
1003 #define C_028644_SEL_SAMPLE 0xFFFBFFFF
1004 #define R_0286D4_SPI_INTERP_CONTROL_0 0x0286D4
1005 #define S_0286D4_FLAT_SHADE_ENA(x) (((x) & 0x1) << 0)
1006 #define G_0286D4_FLAT_SHADE_ENA(x) (((x) >> 0) & 0x1)
1007 #define C_0286D4_FLAT_SHADE_ENA 0xFFFFFFFE
1008 #define S_0286D4_PNT_SPRITE_ENA(x) (((x) & 0x1) << 1)
1009 #define G_0286D4_PNT_SPRITE_ENA(x) (((x) >> 1) & 0x1)
1010 #define C_0286D4_PNT_SPRITE_ENA 0xFFFFFFFD
1011 #define S_0286D4_PNT_SPRITE_OVRD_X(x) (((x) & 0x7) << 2)
1012 #define G_0286D4_PNT_SPRITE_OVRD_X(x) (((x) >> 2) & 0x7)
1013 #define C_0286D4_PNT_SPRITE_OVRD_X 0xFFFFFFE3
1014 #define S_0286D4_PNT_SPRITE_OVRD_Y(x) (((x) & 0x7) << 5)
1015 #define G_0286D4_PNT_SPRITE_OVRD_Y(x) (((x) >> 5) & 0x7)
1016 #define C_0286D4_PNT_SPRITE_OVRD_Y 0xFFFFFF1F
1017 #define S_0286D4_PNT_SPRITE_OVRD_Z(x) (((x) & 0x7) << 8)
1018 #define G_0286D4_PNT_SPRITE_OVRD_Z(x) (((x) >> 8) & 0x7)
1019 #define C_0286D4_PNT_SPRITE_OVRD_Z 0xFFFFF8FF
1020 #define S_0286D4_PNT_SPRITE_OVRD_W(x) (((x) & 0x7) << 11)
1021 #define G_0286D4_PNT_SPRITE_OVRD_W(x) (((x) >> 11) & 0x7)
1022 #define C_0286D4_PNT_SPRITE_OVRD_W 0xFFFFC7FF
1023 #define S_0286D4_PNT_SPRITE_TOP_1(x) (((x) & 0x1) << 14)
1024 #define G_0286D4_PNT_SPRITE_TOP_1(x) (((x) >> 14) & 0x1)
1025 #define C_0286D4_PNT_SPRITE_TOP_1 0xFFFFBFFF
1026
1027 #endif