r300g: only check for an empty shader if there are no compile errors
[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 V_0280A0_COLOR_32_32_32_FLOAT 0x00000030
203 #define S_0280A0_ARRAY_MODE(x) (((x) & 0xF) << 8)
204 #define G_0280A0_ARRAY_MODE(x) (((x) >> 8) & 0xF)
205 #define C_0280A0_ARRAY_MODE 0xFFFFF0FF
206 #define V_0280A0_ARRAY_LINEAR_GENERAL 0x00000000
207 #define V_0280A0_ARRAY_LINEAR_ALIGNED 0x00000001
208 #define V_0280A0_ARRAY_1D_TILED_THIN1 0x00000002
209 #define V_0280A0_ARRAY_2D_TILED_THIN1 0x00000004
210 #define S_0280A0_NUMBER_TYPE(x) (((x) & 0x7) << 12)
211 #define G_0280A0_NUMBER_TYPE(x) (((x) >> 12) & 0x7)
212 #define C_0280A0_NUMBER_TYPE 0xFFFF8FFF
213 #define V_0280A0_NUMBER_UNORM 0x00000000
214 #define V_0280A0_NUMBER_SNORM 0x00000001
215 #define V_0280A0_NUMBER_USCALED 0x00000002
216 #define V_0280A0_NUMBER_SSCALED 0x00000003
217 #define V_0280A0_NUMBER_UINT 0x00000004
218 #define V_0280A0_NUMBER_SINT 0x00000005
219 #define V_0280A0_NUMBER_SRGB 0x00000006
220 #define V_0280A0_NUMBER_FLOAT 0x00000007
221 #define S_0280A0_READ_SIZE(x) (((x) & 0x1) << 15)
222 #define G_0280A0_READ_SIZE(x) (((x) >> 15) & 0x1)
223 #define C_0280A0_READ_SIZE 0xFFFF7FFF
224 #define S_0280A0_COMP_SWAP(x) (((x) & 0x3) << 16)
225 #define G_0280A0_COMP_SWAP(x) (((x) >> 16) & 0x3)
226 #define C_0280A0_COMP_SWAP 0xFFFCFFFF
227 #define V_0280A0_SWAP_STD 0x00000000
228 #define V_0280A0_SWAP_ALT 0x00000001
229 #define V_0280A0_SWAP_STD_REV 0x00000002
230 #define V_0280A0_SWAP_ALT_REV 0x00000003
231 #define S_0280A0_TILE_MODE(x) (((x) & 0x3) << 18)
232 #define G_0280A0_TILE_MODE(x) (((x) >> 18) & 0x3)
233 #define C_0280A0_TILE_MODE 0xFFF3FFFF
234 #define S_0280A0_BLEND_CLAMP(x) (((x) & 0x1) << 20)
235 #define G_0280A0_BLEND_CLAMP(x) (((x) >> 20) & 0x1)
236 #define C_0280A0_BLEND_CLAMP 0xFFEFFFFF
237 #define S_0280A0_CLEAR_COLOR(x) (((x) & 0x1) << 21)
238 #define G_0280A0_CLEAR_COLOR(x) (((x) >> 21) & 0x1)
239 #define C_0280A0_CLEAR_COLOR 0xFFDFFFFF
240 #define S_0280A0_BLEND_BYPASS(x) (((x) & 0x1) << 22)
241 #define G_0280A0_BLEND_BYPASS(x) (((x) >> 22) & 0x1)
242 #define C_0280A0_BLEND_BYPASS 0xFFBFFFFF
243 #define S_0280A0_BLEND_FLOAT32(x) (((x) & 0x1) << 23)
244 #define G_0280A0_BLEND_FLOAT32(x) (((x) >> 23) & 0x1)
245 #define C_0280A0_BLEND_FLOAT32 0xFF7FFFFF
246 #define S_0280A0_SIMPLE_FLOAT(x) (((x) & 0x1) << 24)
247 #define G_0280A0_SIMPLE_FLOAT(x) (((x) >> 24) & 0x1)
248 #define C_0280A0_SIMPLE_FLOAT 0xFEFFFFFF
249 #define S_0280A0_ROUND_MODE(x) (((x) & 0x1) << 25)
250 #define G_0280A0_ROUND_MODE(x) (((x) >> 25) & 0x1)
251 #define C_0280A0_ROUND_MODE 0xFDFFFFFF
252 #define S_0280A0_TILE_COMPACT(x) (((x) & 0x1) << 26)
253 #define G_0280A0_TILE_COMPACT(x) (((x) >> 26) & 0x1)
254 #define C_0280A0_TILE_COMPACT 0xFBFFFFFF
255 #define S_0280A0_SOURCE_FORMAT(x) (((x) & 0x1) << 27)
256 #define G_0280A0_SOURCE_FORMAT(x) (((x) >> 27) & 0x1)
257 #define C_0280A0_SOURCE_FORMAT 0xF7FFFFFF
258 #define R_028060_CB_COLOR0_SIZE 0x028060
259 #define S_028060_PITCH_TILE_MAX(x) (((x) & 0x3FF) << 0)
260 #define G_028060_PITCH_TILE_MAX(x) (((x) >> 0) & 0x3FF)
261 #define C_028060_PITCH_TILE_MAX 0xFFFFFC00
262 #define S_028060_SLICE_TILE_MAX(x) (((x) & 0xFFFFF) << 10)
263 #define G_028060_SLICE_TILE_MAX(x) (((x) >> 10) & 0xFFFFF)
264 #define C_028060_SLICE_TILE_MAX 0xC00003FF
265 #define R_028410_SX_ALPHA_TEST_CONTROL 0x028410
266 #define S_028410_ALPHA_FUNC(x) (((x) & 0x7) << 0)
267 #define G_028410_ALPHA_FUNC(x) (((x) >> 0) & 0x7)
268 #define C_028410_ALPHA_FUNC 0xFFFFFFF8
269 #define S_028410_ALPHA_TEST_ENABLE(x) (((x) & 0x1) << 3)
270 #define G_028410_ALPHA_TEST_ENABLE(x) (((x) >> 3) & 0x1)
271 #define C_028410_ALPHA_TEST_ENABLE 0xFFFFFFF7
272 #define S_028410_ALPHA_TEST_BYPASS(x) (((x) & 0x1) << 8)
273 #define G_028410_ALPHA_TEST_BYPASS(x) (((x) >> 8) & 0x1)
274 #define C_028410_ALPHA_TEST_BYPASS 0xFFFFFEFF
275 #define R_028800_DB_DEPTH_CONTROL 0x028800
276 #define S_028800_STENCIL_ENABLE(x) (((x) & 0x1) << 0)
277 #define G_028800_STENCIL_ENABLE(x) (((x) >> 0) & 0x1)
278 #define C_028800_STENCIL_ENABLE 0xFFFFFFFE
279 #define S_028800_Z_ENABLE(x) (((x) & 0x1) << 1)
280 #define G_028800_Z_ENABLE(x) (((x) >> 1) & 0x1)
281 #define C_028800_Z_ENABLE 0xFFFFFFFD
282 #define S_028800_Z_WRITE_ENABLE(x) (((x) & 0x1) << 2)
283 #define G_028800_Z_WRITE_ENABLE(x) (((x) >> 2) & 0x1)
284 #define C_028800_Z_WRITE_ENABLE 0xFFFFFFFB
285 #define S_028800_ZFUNC(x) (((x) & 0x7) << 4)
286 #define G_028800_ZFUNC(x) (((x) >> 4) & 0x7)
287 #define C_028800_ZFUNC 0xFFFFFF8F
288 #define S_028800_BACKFACE_ENABLE(x) (((x) & 0x1) << 7)
289 #define G_028800_BACKFACE_ENABLE(x) (((x) >> 7) & 0x1)
290 #define C_028800_BACKFACE_ENABLE 0xFFFFFF7F
291 #define S_028800_STENCILFUNC(x) (((x) & 0x7) << 8)
292 #define G_028800_STENCILFUNC(x) (((x) >> 8) & 0x7)
293 #define C_028800_STENCILFUNC 0xFFFFF8FF
294 #define V_028800_STENCILFUNC_NEVER 0x00000000
295 #define V_028800_STENCILFUNC_LESS 0x00000001
296 #define V_028800_STENCILFUNC_EQUAL 0x00000002
297 #define V_028800_STENCILFUNC_LEQUAL 0x00000003
298 #define V_028800_STENCILFUNC_GREATER 0x00000004
299 #define V_028800_STENCILFUNC_NOTEQUAL 0x00000005
300 #define V_028800_STENCILFUNC_GEQUAL 0x00000006
301 #define V_028800_STENCILFUNC_ALWAYS 0x00000007
302 #define S_028800_STENCILFAIL(x) (((x) & 0x7) << 11)
303 #define G_028800_STENCILFAIL(x) (((x) >> 11) & 0x7)
304 #define C_028800_STENCILFAIL 0xFFFFC7FF
305 #define V_028800_STENCIL_KEEP 0x00000000
306 #define V_028800_STENCIL_ZERO 0x00000001
307 #define V_028800_STENCIL_REPLACE 0x00000002
308 #define V_028800_STENCIL_INCR 0x00000003
309 #define V_028800_STENCIL_DECR 0x00000004
310 #define V_028800_STENCIL_INVERT 0x00000005
311 #define V_028800_STENCIL_INCR_WRAP 0x00000006
312 #define V_028800_STENCIL_DECR_WRAP 0x00000007
313 #define S_028800_STENCILZPASS(x) (((x) & 0x7) << 14)
314 #define G_028800_STENCILZPASS(x) (((x) >> 14) & 0x7)
315 #define C_028800_STENCILZPASS 0xFFFE3FFF
316 #define S_028800_STENCILZFAIL(x) (((x) & 0x7) << 17)
317 #define G_028800_STENCILZFAIL(x) (((x) >> 17) & 0x7)
318 #define C_028800_STENCILZFAIL 0xFFF1FFFF
319 #define S_028800_STENCILFUNC_BF(x) (((x) & 0x7) << 20)
320 #define G_028800_STENCILFUNC_BF(x) (((x) >> 20) & 0x7)
321 #define C_028800_STENCILFUNC_BF 0xFF8FFFFF
322 #define S_028800_STENCILFAIL_BF(x) (((x) & 0x7) << 23)
323 #define G_028800_STENCILFAIL_BF(x) (((x) >> 23) & 0x7)
324 #define C_028800_STENCILFAIL_BF 0xFC7FFFFF
325 #define S_028800_STENCILZPASS_BF(x) (((x) & 0x7) << 26)
326 #define G_028800_STENCILZPASS_BF(x) (((x) >> 26) & 0x7)
327 #define C_028800_STENCILZPASS_BF 0xE3FFFFFF
328 #define S_028800_STENCILZFAIL_BF(x) (((x) & 0x7) << 29)
329 #define G_028800_STENCILZFAIL_BF(x) (((x) >> 29) & 0x7)
330 #define C_028800_STENCILZFAIL_BF 0x1FFFFFFF
331 #define R_028808_CB_COLOR_CONTROL 0x028808
332 #define S_028808_FOG_ENABLE(x) (((x) & 0x1) << 0)
333 #define G_028808_FOG_ENABLE(x) (((x) >> 0) & 0x1)
334 #define C_028808_FOG_ENABLE 0xFFFFFFFE
335 #define S_028808_MULTIWRITE_ENABLE(x) (((x) & 0x1) << 1)
336 #define G_028808_MULTIWRITE_ENABLE(x) (((x) >> 1) & 0x1)
337 #define C_028808_MULTIWRITE_ENABLE 0xFFFFFFFD
338 #define S_028808_DITHER_ENABLE(x) (((x) & 0x1) << 2)
339 #define G_028808_DITHER_ENABLE(x) (((x) >> 2) & 0x1)
340 #define C_028808_DITHER_ENABLE 0xFFFFFFFB
341 #define S_028808_DEGAMMA_ENABLE(x) (((x) & 0x1) << 3)
342 #define G_028808_DEGAMMA_ENABLE(x) (((x) >> 3) & 0x1)
343 #define C_028808_DEGAMMA_ENABLE 0xFFFFFFF7
344 #define S_028808_SPECIAL_OP(x) (((x) & 0x7) << 4)
345 #define G_028808_SPECIAL_OP(x) (((x) >> 4) & 0x7)
346 #define C_028808_SPECIAL_OP 0xFFFFFF8F
347 #define S_028808_PER_MRT_BLEND(x) (((x) & 0x1) << 7)
348 #define G_028808_PER_MRT_BLEND(x) (((x) >> 7) & 0x1)
349 #define C_028808_PER_MRT_BLEND 0xFFFFFF7F
350 #define S_028808_TARGET_BLEND_ENABLE(x) (((x) & 0xFF) << 8)
351 #define G_028808_TARGET_BLEND_ENABLE(x) (((x) >> 8) & 0xFF)
352 #define C_028808_TARGET_BLEND_ENABLE 0xFFFF00FF
353 #define S_028808_ROP3(x) (((x) & 0xFF) << 16)
354 #define G_028808_ROP3(x) (((x) >> 16) & 0xFF)
355 #define C_028808_ROP3 0xFF00FFFF
356 #define R_028810_PA_CL_CLIP_CNTL 0x028810
357 #define S_028810_UCP_ENA_0(x) (((x) & 0x1) << 0)
358 #define G_028810_UCP_ENA_0(x) (((x) >> 0) & 0x1)
359 #define C_028810_UCP_ENA_0 0xFFFFFFFE
360 #define S_028810_UCP_ENA_1(x) (((x) & 0x1) << 1)
361 #define G_028810_UCP_ENA_1(x) (((x) >> 1) & 0x1)
362 #define C_028810_UCP_ENA_1 0xFFFFFFFD
363 #define S_028810_UCP_ENA_2(x) (((x) & 0x1) << 2)
364 #define G_028810_UCP_ENA_2(x) (((x) >> 2) & 0x1)
365 #define C_028810_UCP_ENA_2 0xFFFFFFFB
366 #define S_028810_UCP_ENA_3(x) (((x) & 0x1) << 3)
367 #define G_028810_UCP_ENA_3(x) (((x) >> 3) & 0x1)
368 #define C_028810_UCP_ENA_3 0xFFFFFFF7
369 #define S_028810_UCP_ENA_4(x) (((x) & 0x1) << 4)
370 #define G_028810_UCP_ENA_4(x) (((x) >> 4) & 0x1)
371 #define C_028810_UCP_ENA_4 0xFFFFFFEF
372 #define S_028810_UCP_ENA_5(x) (((x) & 0x1) << 5)
373 #define G_028810_UCP_ENA_5(x) (((x) >> 5) & 0x1)
374 #define C_028810_UCP_ENA_5 0xFFFFFFDF
375 #define S_028810_PS_UCP_Y_SCALE_NEG(x) (((x) & 0x1) << 13)
376 #define G_028810_PS_UCP_Y_SCALE_NEG(x) (((x) >> 13) & 0x1)
377 #define C_028810_PS_UCP_Y_SCALE_NEG 0xFFFFDFFF
378 #define S_028810_PS_UCP_MODE(x) (((x) & 0x3) << 14)
379 #define G_028810_PS_UCP_MODE(x) (((x) >> 14) & 0x3)
380 #define C_028810_PS_UCP_MODE 0xFFFF3FFF
381 #define S_028810_CLIP_DISABLE(x) (((x) & 0x1) << 16)
382 #define G_028810_CLIP_DISABLE(x) (((x) >> 16) & 0x1)
383 #define C_028810_CLIP_DISABLE 0xFFFEFFFF
384 #define S_028810_UCP_CULL_ONLY_ENA(x) (((x) & 0x1) << 17)
385 #define G_028810_UCP_CULL_ONLY_ENA(x) (((x) >> 17) & 0x1)
386 #define C_028810_UCP_CULL_ONLY_ENA 0xFFFDFFFF
387 #define S_028810_BOUNDARY_EDGE_FLAG_ENA(x) (((x) & 0x1) << 18)
388 #define G_028810_BOUNDARY_EDGE_FLAG_ENA(x) (((x) >> 18) & 0x1)
389 #define C_028810_BOUNDARY_EDGE_FLAG_ENA 0xFFFBFFFF
390 #define S_028810_DX_CLIP_SPACE_DEF(x) (((x) & 0x1) << 19)
391 #define G_028810_DX_CLIP_SPACE_DEF(x) (((x) >> 19) & 0x1)
392 #define C_028810_DX_CLIP_SPACE_DEF 0xFFF7FFFF
393 #define S_028810_DIS_CLIP_ERR_DETECT(x) (((x) & 0x1) << 20)
394 #define G_028810_DIS_CLIP_ERR_DETECT(x) (((x) >> 20) & 0x1)
395 #define C_028810_DIS_CLIP_ERR_DETECT 0xFFEFFFFF
396 #define S_028810_VTX_KILL_OR(x) (((x) & 0x1) << 21)
397 #define G_028810_VTX_KILL_OR(x) (((x) >> 21) & 0x1)
398 #define C_028810_VTX_KILL_OR 0xFFDFFFFF
399 #define S_028810_DX_LINEAR_ATTR_CLIP_ENA(x) (((x) & 0x1) << 24)
400 #define G_028810_DX_LINEAR_ATTR_CLIP_ENA(x) (((x) >> 24) & 0x1)
401 #define C_028810_DX_LINEAR_ATTR_CLIP_ENA 0xFEFFFFFF
402 #define S_028810_VTE_VPORT_PROVOKE_DISABLE(x) (((x) & 0x1) << 25)
403 #define G_028810_VTE_VPORT_PROVOKE_DISABLE(x) (((x) >> 25) & 0x1)
404 #define C_028810_VTE_VPORT_PROVOKE_DISABLE 0xFDFFFFFF
405 #define S_028810_ZCLIP_NEAR_DISABLE(x) (((x) & 0x1) << 26)
406 #define G_028810_ZCLIP_NEAR_DISABLE(x) (((x) >> 26) & 0x1)
407 #define C_028810_ZCLIP_NEAR_DISABLE 0xFBFFFFFF
408 #define S_028810_ZCLIP_FAR_DISABLE(x) (((x) & 0x1) << 27)
409 #define G_028810_ZCLIP_FAR_DISABLE(x) (((x) >> 27) & 0x1)
410 #define C_028810_ZCLIP_FAR_DISABLE 0xF7FFFFFF
411 #define R_028010_DB_DEPTH_INFO 0x028010
412 #define S_028010_FORMAT(x) (((x) & 0x7) << 0)
413 #define G_028010_FORMAT(x) (((x) >> 0) & 0x7)
414 #define C_028010_FORMAT 0xFFFFFFF8
415 #define V_028010_DEPTH_INVALID 0x00000000
416 #define V_028010_DEPTH_16 0x00000001
417 #define V_028010_DEPTH_X8_24 0x00000002
418 #define V_028010_DEPTH_8_24 0x00000003
419 #define V_028010_DEPTH_X8_24_FLOAT 0x00000004
420 #define V_028010_DEPTH_8_24_FLOAT 0x00000005
421 #define V_028010_DEPTH_32_FLOAT 0x00000006
422 #define V_028010_DEPTH_X24_8_32_FLOAT 0x00000007
423 #define S_028010_READ_SIZE(x) (((x) & 0x1) << 3)
424 #define G_028010_READ_SIZE(x) (((x) >> 3) & 0x1)
425 #define C_028010_READ_SIZE 0xFFFFFFF7
426 #define S_028010_ARRAY_MODE(x) (((x) & 0xF) << 15)
427 #define G_028010_ARRAY_MODE(x) (((x) >> 15) & 0xF)
428 #define C_028010_ARRAY_MODE 0xFFF87FFF
429 #define S_028010_TILE_SURFACE_ENABLE(x) (((x) & 0x1) << 25)
430 #define G_028010_TILE_SURFACE_ENABLE(x) (((x) >> 25) & 0x1)
431 #define C_028010_TILE_SURFACE_ENABLE 0xFDFFFFFF
432 #define S_028010_TILE_COMPACT(x) (((x) & 0x1) << 26)
433 #define G_028010_TILE_COMPACT(x) (((x) >> 26) & 0x1)
434 #define C_028010_TILE_COMPACT 0xFBFFFFFF
435 #define S_028010_ZRANGE_PRECISION(x) (((x) & 0x1) << 31)
436 #define G_028010_ZRANGE_PRECISION(x) (((x) >> 31) & 0x1)
437 #define C_028010_ZRANGE_PRECISION 0x7FFFFFFF
438 #define R_028430_DB_STENCILREFMASK 0x028430
439 #define S_028430_STENCILREF(x) (((x) & 0xFF) << 0)
440 #define G_028430_STENCILREF(x) (((x) >> 0) & 0xFF)
441 #define C_028430_STENCILREF 0xFFFFFF00
442 #define S_028430_STENCILMASK(x) (((x) & 0xFF) << 8)
443 #define G_028430_STENCILMASK(x) (((x) >> 8) & 0xFF)
444 #define C_028430_STENCILMASK 0xFFFF00FF
445 #define S_028430_STENCILWRITEMASK(x) (((x) & 0xFF) << 16)
446 #define G_028430_STENCILWRITEMASK(x) (((x) >> 16) & 0xFF)
447 #define C_028430_STENCILWRITEMASK 0xFF00FFFF
448 #define R_028434_DB_STENCILREFMASK_BF 0x028434
449 #define S_028434_STENCILREF_BF(x) (((x) & 0xFF) << 0)
450 #define G_028434_STENCILREF_BF(x) (((x) >> 0) & 0xFF)
451 #define C_028434_STENCILREF_BF 0xFFFFFF00
452 #define S_028434_STENCILMASK_BF(x) (((x) & 0xFF) << 8)
453 #define G_028434_STENCILMASK_BF(x) (((x) >> 8) & 0xFF)
454 #define C_028434_STENCILMASK_BF 0xFFFF00FF
455 #define S_028434_STENCILWRITEMASK_BF(x) (((x) & 0xFF) << 16)
456 #define G_028434_STENCILWRITEMASK_BF(x) (((x) >> 16) & 0xFF)
457 #define C_028434_STENCILWRITEMASK_BF 0xFF00FFFF
458 #define R_028804_CB_BLEND_CONTROL 0x028804
459 #define S_028804_COLOR_SRCBLEND(x) (((x) & 0x1F) << 0)
460 #define G_028804_COLOR_SRCBLEND(x) (((x) >> 0) & 0x1F)
461 #define C_028804_COLOR_SRCBLEND 0xFFFFFFE0
462 #define V_028804_BLEND_ZERO 0x00000000
463 #define V_028804_BLEND_ONE 0x00000001
464 #define V_028804_BLEND_SRC_COLOR 0x00000002
465 #define V_028804_BLEND_ONE_MINUS_SRC_COLOR 0x00000003
466 #define V_028804_BLEND_SRC_ALPHA 0x00000004
467 #define V_028804_BLEND_ONE_MINUS_SRC_ALPHA 0x00000005
468 #define V_028804_BLEND_DST_ALPHA 0x00000006
469 #define V_028804_BLEND_ONE_MINUS_DST_ALPHA 0x00000007
470 #define V_028804_BLEND_DST_COLOR 0x00000008
471 #define V_028804_BLEND_ONE_MINUS_DST_COLOR 0x00000009
472 #define V_028804_BLEND_SRC_ALPHA_SATURATE 0x0000000A
473 #define V_028804_BLEND_BOTH_SRC_ALPHA 0x0000000B
474 #define V_028804_BLEND_BOTH_INV_SRC_ALPHA 0x0000000C
475 #define V_028804_BLEND_CONST_COLOR 0x0000000D
476 #define V_028804_BLEND_ONE_MINUS_CONST_COLOR 0x0000000E
477 #define V_028804_BLEND_SRC1_COLOR 0x0000000F
478 #define V_028804_BLEND_INV_SRC1_COLOR 0x00000010
479 #define V_028804_BLEND_SRC1_ALPHA 0x00000011
480 #define V_028804_BLEND_INV_SRC1_ALPHA 0x00000012
481 #define V_028804_BLEND_CONST_ALPHA 0x00000013
482 #define V_028804_BLEND_ONE_MINUS_CONST_ALPHA 0x00000014
483 #define S_028804_COLOR_COMB_FCN(x) (((x) & 0x7) << 5)
484 #define G_028804_COLOR_COMB_FCN(x) (((x) >> 5) & 0x7)
485 #define C_028804_COLOR_COMB_FCN 0xFFFFFF1F
486 #define V_028804_COMB_DST_PLUS_SRC 0x00000000
487 #define V_028804_COMB_SRC_MINUS_DST 0x00000001
488 #define V_028804_COMB_MIN_DST_SRC 0x00000002
489 #define V_028804_COMB_MAX_DST_SRC 0x00000003
490 #define V_028804_COMB_DST_MINUS_SRC 0x00000004
491 #define S_028804_COLOR_DESTBLEND(x) (((x) & 0x1F) << 8)
492 #define G_028804_COLOR_DESTBLEND(x) (((x) >> 8) & 0x1F)
493 #define C_028804_COLOR_DESTBLEND 0xFFFFE0FF
494 #define S_028804_OPACITY_WEIGHT(x) (((x) & 0x1) << 13)
495 #define G_028804_OPACITY_WEIGHT(x) (((x) >> 13) & 0x1)
496 #define C_028804_OPACITY_WEIGHT 0xFFFFDFFF
497 #define S_028804_ALPHA_SRCBLEND(x) (((x) & 0x1F) << 16)
498 #define G_028804_ALPHA_SRCBLEND(x) (((x) >> 16) & 0x1F)
499 #define C_028804_ALPHA_SRCBLEND 0xFFE0FFFF
500 #define S_028804_ALPHA_COMB_FCN(x) (((x) & 0x7) << 21)
501 #define G_028804_ALPHA_COMB_FCN(x) (((x) >> 21) & 0x7)
502 #define C_028804_ALPHA_COMB_FCN 0xFF1FFFFF
503 #define S_028804_ALPHA_DESTBLEND(x) (((x) & 0x1F) << 24)
504 #define G_028804_ALPHA_DESTBLEND(x) (((x) >> 24) & 0x1F)
505 #define C_028804_ALPHA_DESTBLEND 0xE0FFFFFF
506 #define S_028804_SEPARATE_ALPHA_BLEND(x) (((x) & 0x1) << 29)
507 #define G_028804_SEPARATE_ALPHA_BLEND(x) (((x) >> 29) & 0x1)
508 #define C_028804_SEPARATE_ALPHA_BLEND 0xDFFFFFFF
509 #define R_028814_PA_SU_SC_MODE_CNTL 0x028814
510 #define S_028814_CULL_FRONT(x) (((x) & 0x1) << 0)
511 #define G_028814_CULL_FRONT(x) (((x) >> 0) & 0x1)
512 #define C_028814_CULL_FRONT 0xFFFFFFFE
513 #define S_028814_CULL_BACK(x) (((x) & 0x1) << 1)
514 #define G_028814_CULL_BACK(x) (((x) >> 1) & 0x1)
515 #define C_028814_CULL_BACK 0xFFFFFFFD
516 #define S_028814_FACE(x) (((x) & 0x1) << 2)
517 #define G_028814_FACE(x) (((x) >> 2) & 0x1)
518 #define C_028814_FACE 0xFFFFFFFB
519 #define S_028814_POLY_MODE(x) (((x) & 0x3) << 3)
520 #define G_028814_POLY_MODE(x) (((x) >> 3) & 0x3)
521 #define C_028814_POLY_MODE 0xFFFFFFE7
522 #define S_028814_POLYMODE_FRONT_PTYPE(x) (((x) & 0x7) << 5)
523 #define G_028814_POLYMODE_FRONT_PTYPE(x) (((x) >> 5) & 0x7)
524 #define C_028814_POLYMODE_FRONT_PTYPE 0xFFFFFF1F
525 #define S_028814_POLYMODE_BACK_PTYPE(x) (((x) & 0x7) << 8)
526 #define G_028814_POLYMODE_BACK_PTYPE(x) (((x) >> 8) & 0x7)
527 #define C_028814_POLYMODE_BACK_PTYPE 0xFFFFF8FF
528 #define S_028814_POLY_OFFSET_FRONT_ENABLE(x) (((x) & 0x1) << 11)
529 #define G_028814_POLY_OFFSET_FRONT_ENABLE(x) (((x) >> 11) & 0x1)
530 #define C_028814_POLY_OFFSET_FRONT_ENABLE 0xFFFFF7FF
531 #define S_028814_POLY_OFFSET_BACK_ENABLE(x) (((x) & 0x1) << 12)
532 #define G_028814_POLY_OFFSET_BACK_ENABLE(x) (((x) >> 12) & 0x1)
533 #define C_028814_POLY_OFFSET_BACK_ENABLE 0xFFFFEFFF
534 #define S_028814_POLY_OFFSET_PARA_ENABLE(x) (((x) & 0x1) << 13)
535 #define G_028814_POLY_OFFSET_PARA_ENABLE(x) (((x) >> 13) & 0x1)
536 #define C_028814_POLY_OFFSET_PARA_ENABLE 0xFFFFDFFF
537 #define S_028814_VTX_WINDOW_OFFSET_ENABLE(x) (((x) & 0x1) << 16)
538 #define G_028814_VTX_WINDOW_OFFSET_ENABLE(x) (((x) >> 16) & 0x1)
539 #define C_028814_VTX_WINDOW_OFFSET_ENABLE 0xFFFEFFFF
540 #define S_028814_PROVOKING_VTX_LAST(x) (((x) & 0x1) << 19)
541 #define G_028814_PROVOKING_VTX_LAST(x) (((x) >> 19) & 0x1)
542 #define C_028814_PROVOKING_VTX_LAST 0xFFF7FFFF
543 #define S_028814_PERSP_CORR_DIS(x) (((x) & 0x1) << 20)
544 #define G_028814_PERSP_CORR_DIS(x) (((x) >> 20) & 0x1)
545 #define C_028814_PERSP_CORR_DIS 0xFFEFFFFF
546 #define S_028814_MULTI_PRIM_IB_ENA(x) (((x) & 0x1) << 21)
547 #define G_028814_MULTI_PRIM_IB_ENA(x) (((x) >> 21) & 0x1)
548 #define C_028814_MULTI_PRIM_IB_ENA 0xFFDFFFFF
549 #define R_028000_DB_DEPTH_SIZE 0x028000
550 #define S_028000_PITCH_TILE_MAX(x) (((x) & 0x3FF) << 0)
551 #define G_028000_PITCH_TILE_MAX(x) (((x) >> 0) & 0x3FF)
552 #define C_028000_PITCH_TILE_MAX 0xFFFFFC00
553 #define S_028000_SLICE_TILE_MAX(x) (((x) & 0xFFFFF) << 10)
554 #define G_028000_SLICE_TILE_MAX(x) (((x) >> 10) & 0xFFFFF)
555 #define C_028000_SLICE_TILE_MAX 0xC00003FF
556 #define R_028004_DB_DEPTH_VIEW 0x028004
557 #define S_028004_SLICE_START(x) (((x) & 0x7FF) << 0)
558 #define G_028004_SLICE_START(x) (((x) >> 0) & 0x7FF)
559 #define C_028004_SLICE_START 0xFFFFF800
560 #define S_028004_SLICE_MAX(x) (((x) & 0x7FF) << 13)
561 #define G_028004_SLICE_MAX(x) (((x) >> 13) & 0x7FF)
562 #define C_028004_SLICE_MAX 0xFF001FFF
563 #define R_028D24_DB_HTILE_SURFACE 0x028D24
564 #define S_028D24_HTILE_WIDTH(x) (((x) & 0x1) << 0)
565 #define G_028D24_HTILE_WIDTH(x) (((x) >> 0) & 0x1)
566 #define C_028D24_HTILE_WIDTH 0xFFFFFFFE
567 #define S_028D24_HTILE_HEIGHT(x) (((x) & 0x1) << 1)
568 #define G_028D24_HTILE_HEIGHT(x) (((x) >> 1) & 0x1)
569 #define C_028D24_HTILE_HEIGHT 0xFFFFFFFD
570 #define S_028D24_LINEAR(x) (((x) & 0x1) << 2)
571 #define G_028D24_LINEAR(x) (((x) >> 2) & 0x1)
572 #define C_028D24_LINEAR 0xFFFFFFFB
573 #define S_028D24_FULL_CACHE(x) (((x) & 0x1) << 3)
574 #define G_028D24_FULL_CACHE(x) (((x) >> 3) & 0x1)
575 #define C_028D24_FULL_CACHE 0xFFFFFFF7
576 #define S_028D24_HTILE_USES_PRELOAD_WIN(x) (((x) & 0x1) << 4)
577 #define G_028D24_HTILE_USES_PRELOAD_WIN(x) (((x) >> 4) & 0x1)
578 #define C_028D24_HTILE_USES_PRELOAD_WIN 0xFFFFFFEF
579 #define S_028D24_PRELOAD(x) (((x) & 0x1) << 5)
580 #define G_028D24_PRELOAD(x) (((x) >> 5) & 0x1)
581 #define C_028D24_PRELOAD 0xFFFFFFDF
582 #define S_028D24_PREFETCH_WIDTH(x) (((x) & 0x3F) << 6)
583 #define G_028D24_PREFETCH_WIDTH(x) (((x) >> 6) & 0x3F)
584 #define C_028D24_PREFETCH_WIDTH 0xFFFFF03F
585 #define S_028D24_PREFETCH_HEIGHT(x) (((x) & 0x3F) << 12)
586 #define G_028D24_PREFETCH_HEIGHT(x) (((x) >> 12) & 0x3F)
587 #define C_028D24_PREFETCH_HEIGHT 0xFFFC0FFF
588 #define R_028D34_DB_PREFETCH_LIMIT 0x028D34
589 #define S_028D34_DEPTH_HEIGHT_TILE_MAX(x) (((x) & 0x3FF) << 0)
590 #define G_028D34_DEPTH_HEIGHT_TILE_MAX(x) (((x) >> 0) & 0x3FF)
591 #define C_028D34_DEPTH_HEIGHT_TILE_MAX 0xFFFFFC00
592 #define R_028D0C_DB_RENDER_CONTROL 0x028D0C
593 #define S_028D0C_STENCIL_COMPRESS_DISABLE(x) (((x) & 0x1) << 5)
594 #define S_028D0C_DEPTH_COMPRESS_DISABLE(x) (((x) & 0x1) << 6)
595 #define S_028D0C_R700_PERFECT_ZPASS_COUNTS(x) (((x) & 0x1) << 15)
596 #define R_028D10_DB_RENDER_OVERRIDE 0x028D10
597 #define V_028D10_FORCE_OFF 0
598 #define V_028D10_FORCE_ENABLE 1
599 #define V_028D10_FORCE_DISABLE 2
600 #define S_028D10_FORCE_HIZ_ENABLE(x) (((x) & 0x3) << 0)
601 #define G_028D10_FORCE_HIZ_ENABLE(x) (((x) >> 0) & 0x3)
602 #define C_028D10_FORCE_HIZ_ENABLE 0xFFFFFFFC
603 #define S_028D10_FORCE_HIS_ENABLE0(x) (((x) & 0x3) << 2)
604 #define G_028D10_FORCE_HIS_ENABLE0(x) (((x) >> 2) & 0x3)
605 #define C_028D10_FORCE_HIS_ENABLE0 0xFFFFFFF3
606 #define S_028D10_FORCE_HIS_ENABLE1(x) (((x) & 0x3) << 4)
607 #define G_028D10_FORCE_HIS_ENABLE1(x) (((x) >> 4) & 0x3)
608 #define C_028D10_FORCE_HIS_ENABLE1 0xFFFFFFCF
609 #define S_028D10_FORCE_SHADER_Z_ORDER(x) (((x) & 0x1) << 6)
610 #define G_028D10_FORCE_SHADER_Z_ORDER(x) (((x) >> 6) & 0x1)
611 #define C_028D10_FORCE_SHADER_Z_ORDER 0xFFFFFFBF
612 #define S_028D10_FAST_Z_DISABLE(x) (((x) & 0x1) << 7)
613 #define G_028D10_FAST_Z_DISABLE(x) (((x) >> 7) & 0x1)
614 #define C_028D10_FAST_Z_DISABLE 0xFFFFFF7F
615 #define S_028D10_FAST_STENCIL_DISABLE(x) (((x) & 0x1) << 8)
616 #define G_028D10_FAST_STENCIL_DISABLE(x) (((x) >> 8) & 0x1)
617 #define C_028D10_FAST_STENCIL_DISABLE 0xFFFFFEFF
618 #define S_028D10_NOOP_CULL_DISABLE(x) (((x) & 0x1) << 9)
619 #define G_028D10_NOOP_CULL_DISABLE(x) (((x) >> 9) & 0x1)
620 #define C_028D10_NOOP_CULL_DISABLE 0xFFFFFDFF
621 #define S_028D10_FORCE_COLOR_KILL(x) (((x) & 0x1) << 10)
622 #define G_028D10_FORCE_COLOR_KILL(x) (((x) >> 10) & 0x1)
623 #define C_028D10_FORCE_COLOR_KILL 0xFFFFFBFF
624 #define S_028D10_FORCE_Z_READ(x) (((x) & 0x1) << 11)
625 #define G_028D10_FORCE_Z_READ(x) (((x) >> 11) & 0x1)
626 #define C_028D10_FORCE_Z_READ 0xFFFFF7FF
627 #define S_028D10_FORCE_STENCIL_READ(x) (((x) & 0x1) << 12)
628 #define G_028D10_FORCE_STENCIL_READ(x) (((x) >> 12) & 0x1)
629 #define C_028D10_FORCE_STENCIL_READ 0xFFFFEFFF
630 #define S_028D10_FORCE_FULL_Z_RANGE(x) (((x) & 0x3) << 13)
631 #define G_028D10_FORCE_FULL_Z_RANGE(x) (((x) >> 13) & 0x3)
632 #define C_028D10_FORCE_FULL_Z_RANGE 0xFFFF9FFF
633 #define S_028D10_FORCE_QC_SMASK_CONFLICT(x) (((x) & 0x1) << 15)
634 #define G_028D10_FORCE_QC_SMASK_CONFLICT(x) (((x) >> 15) & 0x1)
635 #define C_028D10_FORCE_QC_SMASK_CONFLICT 0xFFFF7FFF
636 #define S_028D10_DISABLE_VIEWPORT_CLAMP(x) (((x) & 0x1) << 16)
637 #define G_028D10_DISABLE_VIEWPORT_CLAMP(x) (((x) >> 16) & 0x1)
638 #define C_028D10_DISABLE_VIEWPORT_CLAMP 0xFFFEFFFF
639 #define S_028D10_IGNORE_SC_ZRANGE(x) (((x) & 0x1) << 17)
640 #define G_028D10_IGNORE_SC_ZRANGE(x) (((x) >> 17) & 0x1)
641 #define C_028D10_IGNORE_SC_ZRANGE 0xFFFDFFFF
642 #define R_028DF8_PA_SU_POLY_OFFSET_DB_FMT_CNTL 0x028DF8
643 #define S_028DF8_POLY_OFFSET_NEG_NUM_DB_BITS(x) (((x) & 0xFF) << 0)
644 #define G_028DF8_POLY_OFFSET_NEG_NUM_DB_BITS(x) (((x) >> 0) & 0xFF)
645 #define C_028DF8_POLY_OFFSET_NEG_NUM_DB_BITS 0xFFFFFF00
646 #define S_028DF8_POLY_OFFSET_DB_IS_FLOAT_FMT(x) (((x) & 0x1) << 8)
647 #define G_028DF8_POLY_OFFSET_DB_IS_FLOAT_FMT(x) (((x) >> 8) & 0x1)
648 #define C_028DF8_POLY_OFFSET_DB_IS_FLOAT_FMT 0xFFFFFEFF
649 #define R_028E00_PA_SU_POLY_OFFSET_FRONT_SCALE 0x028E00
650 #define S_028E00_SCALE(x) (((x) & 0xFFFFFFFF) << 0)
651 #define G_028E00_SCALE(x) (((x) >> 0) & 0xFFFFFFFF)
652 #define C_028E00_SCALE 0x00000000
653 #define R_028E04_PA_SU_POLY_OFFSET_FRONT_OFFSET 0x028E04
654 #define S_028E04_OFFSET(x) (((x) & 0xFFFFFFFF) << 0)
655 #define G_028E04_OFFSET(x) (((x) >> 0) & 0xFFFFFFFF)
656 #define C_028E04_OFFSET 0x00000000
657 #define R_028E08_PA_SU_POLY_OFFSET_BACK_SCALE 0x028E08
658 #define S_028E08_SCALE(x) (((x) & 0xFFFFFFFF) << 0)
659 #define G_028E08_SCALE(x) (((x) >> 0) & 0xFFFFFFFF)
660 #define C_028E08_SCALE 0x00000000
661 #define R_028E0C_PA_SU_POLY_OFFSET_BACK_OFFSET 0x028E0C
662 #define S_028E0C_OFFSET(x) (((x) & 0xFFFFFFFF) << 0)
663 #define G_028E0C_OFFSET(x) (((x) >> 0) & 0xFFFFFFFF)
664 #define C_028E0C_OFFSET 0x00000000
665 #define R_028A00_PA_SU_POINT_SIZE 0x028A00
666 #define S_028A00_HEIGHT(x) (((x) & 0xFFFF) << 0)
667 #define G_028A00_HEIGHT(x) (((x) >> 0) & 0xFFFF)
668 #define C_028A00_HEIGHT 0xFFFF0000
669 #define S_028A00_WIDTH(x) (((x) & 0xFFFF) << 16)
670 #define G_028A00_WIDTH(x) (((x) >> 16) & 0xFFFF)
671 #define C_028A00_WIDTH 0x0000FFFF
672 #define R_028A40_VGT_GS_MODE 0x028A40
673 #define S_028A40_MODE(x) (((x) & 0x3) << 0)
674 #define G_028A40_MODE(x) (((x) >> 0) & 0x3)
675 #define C_028A40_MODE 0xFFFFFFFC
676 #define S_028A40_ES_PASSTHRU(x) (((x) & 0x1) << 2)
677 #define G_028A40_ES_PASSTHRU(x) (((x) >> 2) & 0x1)
678 #define C_028A40_ES_PASSTHRU 0xFFFFFFFB
679 #define S_028A40_CUT_MODE(x) (((x) & 0x3) << 3)
680 #define G_028A40_CUT_MODE(x) (((x) >> 3) & 0x3)
681 #define C_028A40_CUT_MODE 0xFFFFFFE7
682 #define R_008040_WAIT_UNTIL 0x008040
683 #define S_008040_WAIT_CP_DMA_IDLE(x) (((x) & 0x1) << 8)
684 #define G_008040_WAIT_CP_DMA_IDLE(x) (((x) >> 8) & 0x1)
685 #define C_008040_WAIT_CP_DMA_IDLE 0xFFFFFEFF
686 #define S_008040_WAIT_CMDFIFO(x) (((x) & 0x1) << 10)
687 #define G_008040_WAIT_CMDFIFO(x) (((x) >> 10) & 0x1)
688 #define C_008040_WAIT_CMDFIFO 0xFFFFFBFF
689 #define S_008040_WAIT_2D_IDLE(x) (((x) & 0x1) << 14)
690 #define G_008040_WAIT_2D_IDLE(x) (((x) >> 14) & 0x1)
691 #define C_008040_WAIT_2D_IDLE 0xFFFFBFFF
692 #define S_008040_WAIT_3D_IDLE(x) (((x) & 0x1) << 15)
693 #define G_008040_WAIT_3D_IDLE(x) (((x) >> 15) & 0x1)
694 #define C_008040_WAIT_3D_IDLE 0xFFFF7FFF
695 #define S_008040_WAIT_2D_IDLECLEAN(x) (((x) & 0x1) << 16)
696 #define G_008040_WAIT_2D_IDLECLEAN(x) (((x) >> 16) & 0x1)
697 #define C_008040_WAIT_2D_IDLECLEAN 0xFFFEFFFF
698 #define S_008040_WAIT_3D_IDLECLEAN(x) (((x) & 0x1) << 17)
699 #define G_008040_WAIT_3D_IDLECLEAN(x) (((x) >> 17) & 0x1)
700 #define C_008040_WAIT_3D_IDLECLEAN 0xFFFDFFFF
701 #define S_008040_WAIT_EXTERN_SIG(x) (((x) & 0x1) << 19)
702 #define G_008040_WAIT_EXTERN_SIG(x) (((x) >> 19) & 0x1)
703 #define C_008040_WAIT_EXTERN_SIG 0xFFF7FFFF
704 #define S_008040_CMDFIFO_ENTRIES(x) (((x) & 0x1F) << 20)
705 #define G_008040_CMDFIFO_ENTRIES(x) (((x) >> 20) & 0x1F)
706 #define C_008040_CMDFIFO_ENTRIES 0xFE0FFFFF
707 #define R_0286CC_SPI_PS_IN_CONTROL_0 0x0286CC
708 #define S_0286CC_NUM_INTERP(x) (((x) & 0x3F) << 0)
709 #define G_0286CC_NUM_INTERP(x) (((x) >> 0) & 0x3F)
710 #define C_0286CC_NUM_INTERP 0xFFFFFFC0
711 #define S_0286CC_POSITION_ENA(x) (((x) & 0x1) << 8)
712 #define G_0286CC_POSITION_ENA(x) (((x) >> 8) & 0x1)
713 #define C_0286CC_POSITION_ENA 0xFFFFFEFF
714 #define S_0286CC_POSITION_CENTROID(x) (((x) & 0x1) << 9)
715 #define G_0286CC_POSITION_CENTROID(x) (((x) >> 9) & 0x1)
716 #define C_0286CC_POSITION_CENTROID 0xFFFFFDFF
717 #define S_0286CC_POSITION_ADDR(x) (((x) & 0x1F) << 10)
718 #define G_0286CC_POSITION_ADDR(x) (((x) >> 10) & 0x1F)
719 #define C_0286CC_POSITION_ADDR 0xFFFF83FF
720 #define S_0286CC_PARAM_GEN(x) (((x) & 0xF) << 15)
721 #define G_0286CC_PARAM_GEN(x) (((x) >> 15) & 0xF)
722 #define C_0286CC_PARAM_GEN 0xFFF87FFF
723 #define S_0286CC_PARAM_GEN_ADDR(x) (((x) & 0x7F) << 19)
724 #define G_0286CC_PARAM_GEN_ADDR(x) (((x) >> 19) & 0x7F)
725 #define C_0286CC_PARAM_GEN_ADDR 0xFC07FFFF
726 #define S_0286CC_BARYC_SAMPLE_CNTL(x) (((x) & 0x3) << 26)
727 #define G_0286CC_BARYC_SAMPLE_CNTL(x) (((x) >> 26) & 0x3)
728 #define C_0286CC_BARYC_SAMPLE_CNTL 0xF3FFFFFF
729 #define S_0286CC_PERSP_GRADIENT_ENA(x) (((x) & 0x1) << 28)
730 #define G_0286CC_PERSP_GRADIENT_ENA(x) (((x) >> 28) & 0x1)
731 #define C_0286CC_PERSP_GRADIENT_ENA 0xEFFFFFFF
732 #define S_0286CC_LINEAR_GRADIENT_ENA(x) (((x) & 0x1) << 29)
733 #define G_0286CC_LINEAR_GRADIENT_ENA(x) (((x) >> 29) & 0x1)
734 #define C_0286CC_LINEAR_GRADIENT_ENA 0xDFFFFFFF
735 #define S_0286CC_POSITION_SAMPLE(x) (((x) & 0x1) << 30)
736 #define G_0286CC_POSITION_SAMPLE(x) (((x) >> 30) & 0x1)
737 #define C_0286CC_POSITION_SAMPLE 0xBFFFFFFF
738 #define S_0286CC_BARYC_AT_SAMPLE_ENA(x) (((x) & 0x1) << 31)
739 #define G_0286CC_BARYC_AT_SAMPLE_ENA(x) (((x) >> 31) & 0x1)
740 #define C_0286CC_BARYC_AT_SAMPLE_ENA 0x7FFFFFFF
741 #define R_0286D0_SPI_PS_IN_CONTROL_1 0x0286D0
742 #define S_0286D0_GEN_INDEX_PIX(x) (((x) & 0x1) << 0)
743 #define G_0286D0_GEN_INDEX_PIX(x) (((x) >> 0) & 0x1)
744 #define C_0286D0_GEN_INDEX_PIX 0xFFFFFFFE
745 #define S_0286D0_GEN_INDEX_PIX_ADDR(x) (((x) & 0x7F) << 1)
746 #define G_0286D0_GEN_INDEX_PIX_ADDR(x) (((x) >> 1) & 0x7F)
747 #define C_0286D0_GEN_INDEX_PIX_ADDR 0xFFFFFF01
748 #define S_0286D0_FRONT_FACE_ENA(x) (((x) & 0x1) << 8)
749 #define G_0286D0_FRONT_FACE_ENA(x) (((x) >> 8) & 0x1)
750 #define C_0286D0_FRONT_FACE_ENA 0xFFFFFEFF
751 #define S_0286D0_FRONT_FACE_CHAN(x) (((x) & 0x3) << 9)
752 #define G_0286D0_FRONT_FACE_CHAN(x) (((x) >> 9) & 0x3)
753 #define C_0286D0_FRONT_FACE_CHAN 0xFFFFF9FF
754 #define S_0286D0_FRONT_FACE_ALL_BITS(x) (((x) & 0x1) << 11)
755 #define G_0286D0_FRONT_FACE_ALL_BITS(x) (((x) >> 11) & 0x1)
756 #define C_0286D0_FRONT_FACE_ALL_BITS 0xFFFFF7FF
757 #define S_0286D0_FRONT_FACE_ADDR(x) (((x) & 0x1F) << 12)
758 #define G_0286D0_FRONT_FACE_ADDR(x) (((x) >> 12) & 0x1F)
759 #define C_0286D0_FRONT_FACE_ADDR 0xFFFE0FFF
760 #define S_0286D0_FOG_ADDR(x) (((x) & 0x7F) << 17)
761 #define G_0286D0_FOG_ADDR(x) (((x) >> 17) & 0x7F)
762 #define C_0286D0_FOG_ADDR 0xFF01FFFF
763 #define S_0286D0_FIXED_PT_POSITION_ENA(x) (((x) & 0x1) << 24)
764 #define G_0286D0_FIXED_PT_POSITION_ENA(x) (((x) >> 24) & 0x1)
765 #define C_0286D0_FIXED_PT_POSITION_ENA 0xFEFFFFFF
766 #define S_0286D0_FIXED_PT_POSITION_ADDR(x) (((x) & 0x1F) << 25)
767 #define G_0286D0_FIXED_PT_POSITION_ADDR(x) (((x) >> 25) & 0x1F)
768 #define C_0286D0_FIXED_PT_POSITION_ADDR 0xC1FFFFFF
769 #define R_0286C4_SPI_VS_OUT_CONFIG 0x0286C4
770 #define S_0286C4_VS_PER_COMPONENT(x) (((x) & 0x1) << 0)
771 #define G_0286C4_VS_PER_COMPONENT(x) (((x) >> 0) & 0x1)
772 #define C_0286C4_VS_PER_COMPONENT 0xFFFFFFFE
773 #define S_0286C4_VS_EXPORT_COUNT(x) (((x) & 0x1F) << 1)
774 #define G_0286C4_VS_EXPORT_COUNT(x) (((x) >> 1) & 0x1F)
775 #define C_0286C4_VS_EXPORT_COUNT 0xFFFFFFC1
776 #define S_0286C4_VS_EXPORTS_FOG(x) (((x) & 0x1) << 8)
777 #define G_0286C4_VS_EXPORTS_FOG(x) (((x) >> 8) & 0x1)
778 #define C_0286C4_VS_EXPORTS_FOG 0xFFFFFEFF
779 #define S_0286C4_VS_OUT_FOG_VEC_ADDR(x) (((x) & 0x1F) << 9)
780 #define G_0286C4_VS_OUT_FOG_VEC_ADDR(x) (((x) >> 9) & 0x1F)
781 #define C_0286C4_VS_OUT_FOG_VEC_ADDR 0xFFFFC1FF
782 #define R_028240_PA_SC_GENERIC_SCISSOR_TL 0x028240
783 #define S_028240_TL_X(x) (((x) & 0x3FFF) << 0)
784 #define G_028240_TL_X(x) (((x) >> 0) & 0x3FFF)
785 #define C_028240_TL_X 0xFFFFC000
786 #define S_028240_TL_Y(x) (((x) & 0x3FFF) << 16)
787 #define G_028240_TL_Y(x) (((x) >> 16) & 0x3FFF)
788 #define C_028240_TL_Y 0xC000FFFF
789 #define S_028240_WINDOW_OFFSET_DISABLE(x) (((x) & 0x1) << 31)
790 #define G_028240_WINDOW_OFFSET_DISABLE(x) (((x) >> 31) & 0x1)
791 #define C_028240_WINDOW_OFFSET_DISABLE 0x7FFFFFFF
792 #define R_028244_PA_SC_GENERIC_SCISSOR_BR 0x028244
793 #define S_028244_BR_X(x) (((x) & 0x3FFF) << 0)
794 #define G_028244_BR_X(x) (((x) >> 0) & 0x3FFF)
795 #define C_028244_BR_X 0xFFFFC000
796 #define S_028244_BR_Y(x) (((x) & 0x3FFF) << 16)
797 #define G_028244_BR_Y(x) (((x) >> 16) & 0x3FFF)
798 #define C_028244_BR_Y 0xC000FFFF
799 #define R_028030_PA_SC_SCREEN_SCISSOR_TL 0x028030
800 #define S_028030_TL_X(x) (((x) & 0x7FFF) << 0)
801 #define G_028030_TL_X(x) (((x) >> 0) & 0x7FFF)
802 #define C_028030_TL_X 0xFFFF8000
803 #define S_028030_TL_Y(x) (((x) & 0x7FFF) << 16)
804 #define G_028030_TL_Y(x) (((x) >> 16) & 0x7FFF)
805 #define C_028030_TL_Y 0x8000FFFF
806 #define R_028034_PA_SC_SCREEN_SCISSOR_BR 0x028034
807 #define S_028034_BR_X(x) (((x) & 0x7FFF) << 0)
808 #define G_028034_BR_X(x) (((x) >> 0) & 0x7FFF)
809 #define C_028034_BR_X 0xFFFF8000
810 #define S_028034_BR_Y(x) (((x) & 0x7FFF) << 16)
811 #define G_028034_BR_Y(x) (((x) >> 16) & 0x7FFF)
812 #define C_028034_BR_Y 0x8000FFFF
813 #define R_028204_PA_SC_WINDOW_SCISSOR_TL 0x028204
814 #define S_028204_TL_X(x) (((x) & 0x3FFF) << 0)
815 #define G_028204_TL_X(x) (((x) >> 0) & 0x3FFF)
816 #define C_028204_TL_X 0xFFFFC000
817 #define S_028204_TL_Y(x) (((x) & 0x3FFF) << 16)
818 #define G_028204_TL_Y(x) (((x) >> 16) & 0x3FFF)
819 #define C_028204_TL_Y 0xC000FFFF
820 #define S_028204_WINDOW_OFFSET_DISABLE(x) (((x) & 0x1) << 31)
821 #define G_028204_WINDOW_OFFSET_DISABLE(x) (((x) >> 31) & 0x1)
822 #define C_028204_WINDOW_OFFSET_DISABLE 0x7FFFFFFF
823 #define R_028208_PA_SC_WINDOW_SCISSOR_BR 0x028208
824 #define S_028208_BR_X(x) (((x) & 0x3FFF) << 0)
825 #define G_028208_BR_X(x) (((x) >> 0) & 0x3FFF)
826 #define C_028208_BR_X 0xFFFFC000
827 #define S_028208_BR_Y(x) (((x) & 0x3FFF) << 16)
828 #define G_028208_BR_Y(x) (((x) >> 16) & 0x3FFF)
829 #define C_028208_BR_Y 0xC000FFFF
830 #define R_0287F0_VGT_DRAW_INITIATOR 0x0287F0
831 #define S_0287F0_SOURCE_SELECT(x) (((x) & 0x3) << 0)
832 #define G_0287F0_SOURCE_SELECT(x) (((x) >> 0) & 0x3)
833 #define C_0287F0_SOURCE_SELECT 0xFFFFFFFC
834 #define S_0287F0_MAJOR_MODE(x) (((x) & 0x3) << 2)
835 #define G_0287F0_MAJOR_MODE(x) (((x) >> 2) & 0x3)
836 #define C_0287F0_MAJOR_MODE 0xFFFFFFF3
837 #define S_0287F0_SPRITE_EN(x) (((x) & 0x1) << 4)
838 #define G_0287F0_SPRITE_EN(x) (((x) >> 4) & 0x1)
839 #define C_0287F0_SPRITE_EN 0xFFFFFFEF
840 #define S_0287F0_NOT_EOP(x) (((x) & 0x1) << 5)
841 #define G_0287F0_NOT_EOP(x) (((x) >> 5) & 0x1)
842 #define C_0287F0_NOT_EOP 0xFFFFFFDF
843 #define S_0287F0_USE_OPAQUE(x) (((x) & 0x1) << 6)
844 #define G_0287F0_USE_OPAQUE(x) (((x) >> 6) & 0x1)
845 #define C_0287F0_USE_OPAQUE 0xFFFFFFBF
846 #define R_038000_SQ_TEX_RESOURCE_WORD0_0 0x038000
847 #define S_038000_DIM(x) (((x) & 0x7) << 0)
848 #define G_038000_DIM(x) (((x) >> 0) & 0x7)
849 #define C_038000_DIM 0xFFFFFFF8
850 #define V_038000_SQ_TEX_DIM_1D 0x00000000
851 #define V_038000_SQ_TEX_DIM_2D 0x00000001
852 #define V_038000_SQ_TEX_DIM_3D 0x00000002
853 #define V_038000_SQ_TEX_DIM_CUBEMAP 0x00000003
854 #define V_038000_SQ_TEX_DIM_1D_ARRAY 0x00000004
855 #define V_038000_SQ_TEX_DIM_2D_ARRAY 0x00000005
856 #define V_038000_SQ_TEX_DIM_2D_MSAA 0x00000006
857 #define V_038000_SQ_TEX_DIM_2D_ARRAY_MSAA 0x00000007
858 #define S_038000_TILE_MODE(x) (((x) & 0xF) << 3)
859 #define G_038000_TILE_MODE(x) (((x) >> 3) & 0xF)
860 #define C_038000_TILE_MODE 0xFFFFFF87
861 #define S_038000_TILE_TYPE(x) (((x) & 0x1) << 7)
862 #define G_038000_TILE_TYPE(x) (((x) >> 7) & 0x1)
863 #define C_038000_TILE_TYPE 0xFFFFFF7F
864 #define S_038000_PITCH(x) (((x) & 0x7FF) << 8)
865 #define G_038000_PITCH(x) (((x) >> 8) & 0x7FF)
866 #define C_038000_PITCH 0xFFF800FF
867 #define S_038000_TEX_WIDTH(x) (((x) & 0x1FFF) << 19)
868 #define G_038000_TEX_WIDTH(x) (((x) >> 19) & 0x1FFF)
869 #define C_038000_TEX_WIDTH 0x0007FFFF
870 #define R_038004_SQ_TEX_RESOURCE_WORD1_0 0x038004
871 #define S_038004_TEX_HEIGHT(x) (((x) & 0x1FFF) << 0)
872 #define G_038004_TEX_HEIGHT(x) (((x) >> 0) & 0x1FFF)
873 #define C_038004_TEX_HEIGHT 0xFFFFE000
874 #define S_038004_TEX_DEPTH(x) (((x) & 0x1FFF) << 13)
875 #define G_038004_TEX_DEPTH(x) (((x) >> 13) & 0x1FFF)
876 #define C_038004_TEX_DEPTH 0xFC001FFF
877 #define S_038004_DATA_FORMAT(x) (((x) & 0x3F) << 26)
878 #define G_038004_DATA_FORMAT(x) (((x) >> 26) & 0x3F)
879 #define C_038004_DATA_FORMAT 0x03FFFFFF
880 #define R_038008_SQ_TEX_RESOURCE_WORD2_0 0x038008
881 #define S_038008_BASE_ADDRESS(x) (((x) & 0xFFFFFFFF) << 0)
882 #define G_038008_BASE_ADDRESS(x) (((x) >> 0) & 0xFFFFFFFF)
883 #define C_038008_BASE_ADDRESS 0x00000000
884 #define R_03800C_SQ_TEX_RESOURCE_WORD3_0 0x03800C
885 #define S_03800C_MIP_ADDRESS(x) (((x) & 0xFFFFFFFF) << 0)
886 #define G_03800C_MIP_ADDRESS(x) (((x) >> 0) & 0xFFFFFFFF)
887 #define C_03800C_MIP_ADDRESS 0x00000000
888 #define R_038010_SQ_TEX_RESOURCE_WORD4_0 0x038010
889 #define S_038010_FORMAT_COMP_X(x) (((x) & 0x3) << 0)
890 #define G_038010_FORMAT_COMP_X(x) (((x) >> 0) & 0x3)
891 #define C_038010_FORMAT_COMP_X 0xFFFFFFFC
892 #define V_038010_SQ_FORMAT_COMP_UNSIGNED 0x00000000
893 #define V_038010_SQ_FORMAT_COMP_SIGNED 0x00000001
894 #define V_038010_SQ_FORMAT_COMP_UNSIGNED_BIASED 0x00000002
895 #define S_038010_FORMAT_COMP_Y(x) (((x) & 0x3) << 2)
896 #define G_038010_FORMAT_COMP_Y(x) (((x) >> 2) & 0x3)
897 #define C_038010_FORMAT_COMP_Y 0xFFFFFFF3
898 #define S_038010_FORMAT_COMP_Z(x) (((x) & 0x3) << 4)
899 #define G_038010_FORMAT_COMP_Z(x) (((x) >> 4) & 0x3)
900 #define C_038010_FORMAT_COMP_Z 0xFFFFFFCF
901 #define S_038010_FORMAT_COMP_W(x) (((x) & 0x3) << 6)
902 #define G_038010_FORMAT_COMP_W(x) (((x) >> 6) & 0x3)
903 #define C_038010_FORMAT_COMP_W 0xFFFFFF3F
904 #define S_038010_NUM_FORMAT_ALL(x) (((x) & 0x3) << 8)
905 #define G_038010_NUM_FORMAT_ALL(x) (((x) >> 8) & 0x3)
906 #define C_038010_NUM_FORMAT_ALL 0xFFFFFCFF
907 #define V_038010_SQ_NUM_FORMAT_NORM 0x00000000
908 #define V_038010_SQ_NUM_FORMAT_INT 0x00000001
909 #define V_038010_SQ_NUM_FORMAT_SCALED 0x00000002
910 #define S_038010_SRF_MODE_ALL(x) (((x) & 0x1) << 10)
911 #define G_038010_SRF_MODE_ALL(x) (((x) >> 10) & 0x1)
912 #define C_038010_SRF_MODE_ALL 0xFFFFFBFF
913 #define V_038010_SFR_MODE_ZERO_CLAMP_MINUS_ONE 0x00000000
914 #define V_038010_SFR_MODE_NO_ZERO 0x00000001
915 #define S_038010_FORCE_DEGAMMA(x) (((x) & 0x1) << 11)
916 #define G_038010_FORCE_DEGAMMA(x) (((x) >> 11) & 0x1)
917 #define C_038010_FORCE_DEGAMMA 0xFFFFF7FF
918 #define S_038010_ENDIAN_SWAP(x) (((x) & 0x3) << 12)
919 #define G_038010_ENDIAN_SWAP(x) (((x) >> 12) & 0x3)
920 #define C_038010_ENDIAN_SWAP 0xFFFFCFFF
921 #define S_038010_REQUEST_SIZE(x) (((x) & 0x3) << 14)
922 #define G_038010_REQUEST_SIZE(x) (((x) >> 14) & 0x3)
923 #define C_038010_REQUEST_SIZE 0xFFFF3FFF
924 #define S_038010_DST_SEL_X(x) (((x) & 0x7) << 16)
925 #define G_038010_DST_SEL_X(x) (((x) >> 16) & 0x7)
926 #define C_038010_DST_SEL_X 0xFFF8FFFF
927 #define V_038010_SQ_SEL_X 0x00000000
928 #define V_038010_SQ_SEL_Y 0x00000001
929 #define V_038010_SQ_SEL_Z 0x00000002
930 #define V_038010_SQ_SEL_W 0x00000003
931 #define V_038010_SQ_SEL_0 0x00000004
932 #define V_038010_SQ_SEL_1 0x00000005
933 #define S_038010_DST_SEL_Y(x) (((x) & 0x7) << 19)
934 #define G_038010_DST_SEL_Y(x) (((x) >> 19) & 0x7)
935 #define C_038010_DST_SEL_Y 0xFFC7FFFF
936 #define S_038010_DST_SEL_Z(x) (((x) & 0x7) << 22)
937 #define G_038010_DST_SEL_Z(x) (((x) >> 22) & 0x7)
938 #define C_038010_DST_SEL_Z 0xFE3FFFFF
939 #define S_038010_DST_SEL_W(x) (((x) & 0x7) << 25)
940 #define G_038010_DST_SEL_W(x) (((x) >> 25) & 0x7)
941 #define C_038010_DST_SEL_W 0xF1FFFFFF
942 #define S_038010_BASE_LEVEL(x) (((x) & 0xF) << 28)
943 #define G_038010_BASE_LEVEL(x) (((x) >> 28) & 0xF)
944 #define C_038010_BASE_LEVEL 0x0FFFFFFF
945 #define R_038014_SQ_TEX_RESOURCE_WORD5_0 0x038014
946 #define S_038014_LAST_LEVEL(x) (((x) & 0xF) << 0)
947 #define G_038014_LAST_LEVEL(x) (((x) >> 0) & 0xF)
948 #define C_038014_LAST_LEVEL 0xFFFFFFF0
949 #define S_038014_BASE_ARRAY(x) (((x) & 0x1FFF) << 4)
950 #define G_038014_BASE_ARRAY(x) (((x) >> 4) & 0x1FFF)
951 #define C_038014_BASE_ARRAY 0xFFFE000F
952 #define S_038014_LAST_ARRAY(x) (((x) & 0x1FFF) << 17)
953 #define G_038014_LAST_ARRAY(x) (((x) >> 17) & 0x1FFF)
954 #define C_038014_LAST_ARRAY 0xC001FFFF
955 #define R_038018_SQ_TEX_RESOURCE_WORD6_0 0x038018
956 #define S_038018_MPEG_CLAMP(x) (((x) & 0x3) << 0)
957 #define G_038018_MPEG_CLAMP(x) (((x) >> 0) & 0x3)
958 #define C_038018_MPEG_CLAMP 0xFFFFFFFC
959 #define S_038018_PERF_MODULATION(x) (((x) & 0x7) << 5)
960 #define G_038018_PERF_MODULATION(x) (((x) >> 5) & 0x7)
961 #define C_038018_PERF_MODULATION 0xFFFFFF1F
962 #define S_038018_INTERLACED(x) (((x) & 0x1) << 8)
963 #define G_038018_INTERLACED(x) (((x) >> 8) & 0x1)
964 #define C_038018_INTERLACED 0xFFFFFEFF
965 #define S_038018_TYPE(x) (((x) & 0x3) << 30)
966 #define G_038018_TYPE(x) (((x) >> 30) & 0x3)
967 #define C_038018_TYPE 0x3FFFFFFF
968 #define V_038010_SQ_TEX_VTX_INVALID_TEXTURE 0x00000000
969 #define V_038010_SQ_TEX_VTX_INVALID_BUFFER 0x00000001
970 #define V_038010_SQ_TEX_VTX_VALID_TEXTURE 0x00000002
971 #define V_038010_SQ_TEX_VTX_VALID_BUFFER 0x00000003
972 #define R_038008_SQ_VTX_CONSTANT_WORD2_0 0x038008
973 #define S_038008_BASE_ADDRESS_HI(x) (((x) & 0xFF) << 0)
974 #define G_038008_BASE_ADDRESS_HI(x) (((x) >> 0) & 0xFF)
975 #define C_038008_BASE_ADDRESS_HI 0xFFFFFF00
976 #define S_038008_STRIDE(x) (((x) & 0x7FF) << 8)
977 #define G_038008_STRIDE(x) (((x) >> 8) & 0x7FF)
978 #define C_038008_STRIDE 0xFFF800FF
979 #define S_038008_CLAMP_X(x) (((x) & 0x1) << 19)
980 #define G_038008_CLAMP_X(x) (((x) >> 19) & 0x1)
981 #define C_038008_CLAMP_X 0xFFF7FFFF
982 #define S_038008_DATA_FORMAT(x) (((x) & 0x3F) << 20)
983 #define G_038008_DATA_FORMAT(x) (((x) >> 20) & 0x3F)
984 #define C_038008_DATA_FORMAT 0xFC0FFFFF
985 #define V_038008_COLOR_INVALID 0x00000000
986 #define V_038008_COLOR_8 0x00000001
987 #define V_038008_COLOR_4_4 0x00000002
988 #define V_038008_COLOR_3_3_2 0x00000003
989 #define V_038008_COLOR_16 0x00000005
990 #define V_038008_COLOR_16_FLOAT 0x00000006
991 #define V_038008_COLOR_8_8 0x00000007
992 #define V_038008_COLOR_5_6_5 0x00000008
993 #define V_038008_COLOR_6_5_5 0x00000009
994 #define V_038008_COLOR_1_5_5_5 0x0000000A
995 #define V_038008_COLOR_4_4_4_4 0x0000000B
996 #define V_038008_COLOR_5_5_5_1 0x0000000C
997 #define V_038008_COLOR_32 0x0000000D
998 #define V_038008_COLOR_32_FLOAT 0x0000000E
999 #define V_038008_COLOR_16_16 0x0000000F
1000 #define V_038008_COLOR_16_16_FLOAT 0x00000010
1001 #define V_038008_COLOR_8_24 0x00000011
1002 #define V_038008_COLOR_8_24_FLOAT 0x00000012
1003 #define V_038008_COLOR_24_8 0x00000013
1004 #define V_038008_COLOR_24_8_FLOAT 0x00000014
1005 #define V_038008_COLOR_10_11_11 0x00000015
1006 #define V_038008_COLOR_10_11_11_FLOAT 0x00000016
1007 #define V_038008_COLOR_11_11_10 0x00000017
1008 #define V_038008_COLOR_11_11_10_FLOAT 0x00000018
1009 #define V_038008_COLOR_2_10_10_10 0x00000019
1010 #define V_038008_COLOR_8_8_8_8 0x0000001A
1011 #define V_038008_COLOR_10_10_10_2 0x0000001B
1012 #define V_038008_COLOR_X24_8_32_FLOAT 0x0000001C
1013 #define V_038008_COLOR_32_32 0x0000001D
1014 #define V_038008_COLOR_32_32_FLOAT 0x0000001E
1015 #define V_038008_COLOR_16_16_16_16 0x0000001F
1016 #define V_038008_COLOR_16_16_16_16_FLOAT 0x00000020
1017 #define V_038008_COLOR_32_32_32_32 0x00000022
1018 #define V_038008_COLOR_32_32_32_32_FLOAT 0x00000023
1019 #define S_038008_NUM_FORMAT_ALL(x) (((x) & 0x3) << 26)
1020 #define G_038008_NUM_FORMAT_ALL(x) (((x) >> 26) & 0x3)
1021 #define C_038008_NUM_FORMAT_ALL 0xF3FFFFFF
1022 #define S_038008_FORMAT_COMP_ALL(x) (((x) & 0x1) << 28)
1023 #define G_038008_FORMAT_COMP_ALL(x) (((x) >> 28) & 0x1)
1024 #define C_038008_FORMAT_COMP_ALL 0xEFFFFFFF
1025 #define S_038008_SRF_MODE_ALL(x) (((x) & 0x1) << 29)
1026 #define G_038008_SRF_MODE_ALL(x) (((x) >> 29) & 0x1)
1027 #define C_038008_SRF_MODE_ALL 0xDFFFFFFF
1028 #define S_038008_ENDIAN_SWAP(x) (((x) & 0x3) << 30)
1029 #define G_038008_ENDIAN_SWAP(x) (((x) >> 30) & 0x3)
1030 #define C_038008_ENDIAN_SWAP 0x3FFFFFFF
1031 #define R_03C000_SQ_TEX_SAMPLER_WORD0_0 0x03C000
1032 #define S_03C000_CLAMP_X(x) (((x) & 0x7) << 0)
1033 #define G_03C000_CLAMP_X(x) (((x) >> 0) & 0x7)
1034 #define C_03C000_CLAMP_X 0xFFFFFFF8
1035 #define V_03C000_SQ_TEX_WRAP 0x00000000
1036 #define V_03C000_SQ_TEX_MIRROR 0x00000001
1037 #define V_03C000_SQ_TEX_CLAMP_LAST_TEXEL 0x00000002
1038 #define V_03C000_SQ_TEX_MIRROR_ONCE_LAST_TEXEL 0x00000003
1039 #define V_03C000_SQ_TEX_CLAMP_HALF_BORDER 0x00000004
1040 #define V_03C000_SQ_TEX_MIRROR_ONCE_HALF_BORDER 0x00000005
1041 #define V_03C000_SQ_TEX_CLAMP_BORDER 0x00000006
1042 #define V_03C000_SQ_TEX_MIRROR_ONCE_BORDER 0x00000007
1043 #define S_03C000_CLAMP_Y(x) (((x) & 0x7) << 3)
1044 #define G_03C000_CLAMP_Y(x) (((x) >> 3) & 0x7)
1045 #define C_03C000_CLAMP_Y 0xFFFFFFC7
1046 #define S_03C000_CLAMP_Z(x) (((x) & 0x7) << 6)
1047 #define G_03C000_CLAMP_Z(x) (((x) >> 6) & 0x7)
1048 #define C_03C000_CLAMP_Z 0xFFFFFE3F
1049 #define S_03C000_XY_MAG_FILTER(x) (((x) & 0x7) << 9)
1050 #define G_03C000_XY_MAG_FILTER(x) (((x) >> 9) & 0x7)
1051 #define C_03C000_XY_MAG_FILTER 0xFFFFF1FF
1052 #define V_03C000_SQ_TEX_XY_FILTER_POINT 0x00000000
1053 #define V_03C000_SQ_TEX_XY_FILTER_BILINEAR 0x00000001
1054 #define V_03C000_SQ_TEX_XY_FILTER_BICUBIC 0x00000002
1055 #define S_03C000_XY_MIN_FILTER(x) (((x) & 0x7) << 12)
1056 #define G_03C000_XY_MIN_FILTER(x) (((x) >> 12) & 0x7)
1057 #define C_03C000_XY_MIN_FILTER 0xFFFF8FFF
1058 #define S_03C000_Z_FILTER(x) (((x) & 0x3) << 15)
1059 #define G_03C000_Z_FILTER(x) (((x) >> 15) & 0x3)
1060 #define C_03C000_Z_FILTER 0xFFFE7FFF
1061 #define V_03C000_SQ_TEX_Z_FILTER_NONE 0x00000000
1062 #define V_03C000_SQ_TEX_Z_FILTER_POINT 0x00000001
1063 #define V_03C000_SQ_TEX_Z_FILTER_LINEAR 0x00000002
1064 #define S_03C000_MIP_FILTER(x) (((x) & 0x3) << 17)
1065 #define G_03C000_MIP_FILTER(x) (((x) >> 17) & 0x3)
1066 #define C_03C000_MIP_FILTER 0xFFF9FFFF
1067 #define S_03C000_BORDER_COLOR_TYPE(x) (((x) & 0x3) << 22)
1068 #define G_03C000_BORDER_COLOR_TYPE(x) (((x) >> 22) & 0x3)
1069 #define C_03C000_BORDER_COLOR_TYPE 0xFF3FFFFF
1070 #define V_03C000_SQ_TEX_BORDER_COLOR_TRANS_BLACK 0x00000000
1071 #define V_03C000_SQ_TEX_BORDER_COLOR_OPAQUE_BLACK 0x00000001
1072 #define V_03C000_SQ_TEX_BORDER_COLOR_OPAQUE_WHITE 0x00000002
1073 #define V_03C000_SQ_TEX_BORDER_COLOR_REGISTER 0x00000003
1074 #define S_03C000_POINT_SAMPLING_CLAMP(x) (((x) & 0x1) << 24)
1075 #define G_03C000_POINT_SAMPLING_CLAMP(x) (((x) >> 24) & 0x1)
1076 #define C_03C000_POINT_SAMPLING_CLAMP 0xFEFFFFFF
1077 #define S_03C000_TEX_ARRAY_OVERRIDE(x) (((x) & 0x1) << 25)
1078 #define G_03C000_TEX_ARRAY_OVERRIDE(x) (((x) >> 25) & 0x1)
1079 #define C_03C000_TEX_ARRAY_OVERRIDE 0xFDFFFFFF
1080 #define S_03C000_DEPTH_COMPARE_FUNCTION(x) (((x) & 0x7) << 26)
1081 #define G_03C000_DEPTH_COMPARE_FUNCTION(x) (((x) >> 26) & 0x7)
1082 #define C_03C000_DEPTH_COMPARE_FUNCTION 0xE3FFFFFF
1083 #define V_03C000_SQ_TEX_DEPTH_COMPARE_NEVER 0x00000000
1084 #define V_03C000_SQ_TEX_DEPTH_COMPARE_LESS 0x00000001
1085 #define V_03C000_SQ_TEX_DEPTH_COMPARE_EQUAL 0x00000002
1086 #define V_03C000_SQ_TEX_DEPTH_COMPARE_LESSEQUAL 0x00000003
1087 #define V_03C000_SQ_TEX_DEPTH_COMPARE_GREATER 0x00000004
1088 #define V_03C000_SQ_TEX_DEPTH_COMPARE_NOTEQUAL 0x00000005
1089 #define V_03C000_SQ_TEX_DEPTH_COMPARE_GREATEREQUAL 0x00000006
1090 #define V_03C000_SQ_TEX_DEPTH_COMPARE_ALWAYS 0x00000007
1091 #define S_03C000_CHROMA_KEY(x) (((x) & 0x3) << 29)
1092 #define G_03C000_CHROMA_KEY(x) (((x) >> 29) & 0x3)
1093 #define C_03C000_CHROMA_KEY 0x9FFFFFFF
1094 #define V_03C000_SQ_TEX_CHROMA_KEY_DISABLE 0x00000000
1095 #define V_03C000_SQ_TEX_CHROMA_KEY_KILL 0x00000001
1096 #define V_03C000_SQ_TEX_CHROMA_KEY_BLEND 0x00000002
1097 #define S_03C000_LOD_USES_MINOR_AXIS(x) (((x) & 0x1) << 31)
1098 #define G_03C000_LOD_USES_MINOR_AXIS(x) (((x) >> 31) & 0x1)
1099 #define C_03C000_LOD_USES_MINOR_AXIS 0x7FFFFFFF
1100 #define R_03C004_SQ_TEX_SAMPLER_WORD1_0 0x03C004
1101 #define S_03C004_MIN_LOD(x) (((x) & 0x3FF) << 0)
1102 #define G_03C004_MIN_LOD(x) (((x) >> 0) & 0x3FF)
1103 #define C_03C004_MIN_LOD 0xFFFFFC00
1104 #define S_03C004_MAX_LOD(x) (((x) & 0x3FF) << 10)
1105 #define G_03C004_MAX_LOD(x) (((x) >> 10) & 0x3FF)
1106 #define C_03C004_MAX_LOD 0xFFF003FF
1107 #define S_03C004_LOD_BIAS(x) (((x) & 0xFFF) << 20)
1108 #define G_03C004_LOD_BIAS(x) (((x) >> 20) & 0xFFF)
1109 #define C_03C004_LOD_BIAS 0x000FFFFF
1110 #define R_03C008_SQ_TEX_SAMPLER_WORD2_0 0x03C008
1111 #define S_03C008_LOD_BIAS_SEC(x) (((x) & 0xFFF) << 0)
1112 #define G_03C008_LOD_BIAS_SEC(x) (((x) >> 0) & 0xFFF)
1113 #define C_03C008_LOD_BIAS_SEC 0xFFFFF000
1114 #define S_03C008_MC_COORD_TRUNCATE(x) (((x) & 0x1) << 12)
1115 #define G_03C008_MC_COORD_TRUNCATE(x) (((x) >> 12) & 0x1)
1116 #define C_03C008_MC_COORD_TRUNCATE 0xFFFFEFFF
1117 #define S_03C008_FORCE_DEGAMMA(x) (((x) & 0x1) << 13)
1118 #define G_03C008_FORCE_DEGAMMA(x) (((x) >> 13) & 0x1)
1119 #define C_03C008_FORCE_DEGAMMA 0xFFFFDFFF
1120 #define S_03C008_HIGH_PRECISION_FILTER(x) (((x) & 0x1) << 14)
1121 #define G_03C008_HIGH_PRECISION_FILTER(x) (((x) >> 14) & 0x1)
1122 #define C_03C008_HIGH_PRECISION_FILTER 0xFFFFBFFF
1123 #define S_03C008_PERF_MIP(x) (((x) & 0x7) << 15)
1124 #define G_03C008_PERF_MIP(x) (((x) >> 15) & 0x7)
1125 #define C_03C008_PERF_MIP 0xFFFC7FFF
1126 #define S_03C008_PERF_Z(x) (((x) & 0x3) << 18)
1127 #define G_03C008_PERF_Z(x) (((x) >> 18) & 0x3)
1128 #define C_03C008_PERF_Z 0xFFF3FFFF
1129 #define S_03C008_FETCH_4(x) (((x) & 0x1) << 26)
1130 #define G_03C008_FETCH_4(x) (((x) >> 26) & 0x1)
1131 #define C_03C008_FETCH_4 0xFBFFFFFF
1132 #define S_03C008_SAMPLE_IS_PCF(x) (((x) & 0x1) << 27)
1133 #define G_03C008_SAMPLE_IS_PCF(x) (((x) >> 27) & 0x1)
1134 #define C_03C008_SAMPLE_IS_PCF 0xF7FFFFFF
1135 #define S_03C008_TYPE(x) (((x) & 0x1) << 31)
1136 #define G_03C008_TYPE(x) (((x) >> 31) & 0x1)
1137 #define C_03C008_TYPE 0x7FFFFFFF
1138 #define R_008958_VGT_PRIMITIVE_TYPE 0x008958
1139 #define S_008958_PRIM_TYPE(x) (((x) & 0x3F) << 0)
1140 #define G_008958_PRIM_TYPE(x) (((x) >> 0) & 0x3F)
1141 #define C_008958_PRIM_TYPE 0xFFFFFFC0
1142 #define V_008958_DI_PT_NONE 0x00000000
1143 #define V_008958_DI_PT_POINTLIST 0x00000001
1144 #define V_008958_DI_PT_LINELIST 0x00000002
1145 #define V_008958_DI_PT_LINESTRIP 0x00000003
1146 #define V_008958_DI_PT_TRILIST 0x00000004
1147 #define V_008958_DI_PT_TRIFAN 0x00000005
1148 #define V_008958_DI_PT_TRISTRIP 0x00000006
1149 #define V_008958_DI_PT_UNUSED_0 0x00000007
1150 #define V_008958_DI_PT_UNUSED_1 0x00000008
1151 #define V_008958_DI_PT_UNUSED_2 0x00000009
1152 #define V_008958_DI_PT_LINELIST_ADJ 0x0000000A
1153 #define V_008958_DI_PT_LINESTRIP_ADJ 0x0000000B
1154 #define V_008958_DI_PT_TRILIST_ADJ 0x0000000C
1155 #define V_008958_DI_PT_TRISTRIP_ADJ 0x0000000D
1156 #define V_008958_DI_PT_UNUSED_3 0x0000000E
1157 #define V_008958_DI_PT_UNUSED_4 0x0000000F
1158 #define V_008958_DI_PT_TRI_WITH_WFLAGS 0x00000010
1159 #define V_008958_DI_PT_RECTLIST 0x00000011
1160 #define V_008958_DI_PT_LINELOOP 0x00000012
1161 #define V_008958_DI_PT_QUADLIST 0x00000013
1162 #define V_008958_DI_PT_QUADSTRIP 0x00000014
1163 #define V_008958_DI_PT_POLYGON 0x00000015
1164 #define V_008958_DI_PT_2D_COPY_RECT_LIST_V0 0x00000016
1165 #define V_008958_DI_PT_2D_COPY_RECT_LIST_V1 0x00000017
1166 #define V_008958_DI_PT_2D_COPY_RECT_LIST_V2 0x00000018
1167 #define V_008958_DI_PT_2D_COPY_RECT_LIST_V3 0x00000019
1168 #define V_008958_DI_PT_2D_FILL_RECT_LIST 0x0000001A
1169 #define V_008958_DI_PT_2D_LINE_STRIP 0x0000001B
1170 #define V_008958_DI_PT_2D_TRI_STRIP 0x0000001C
1171 #define R_02881C_PA_CL_VS_OUT_CNTL 0x02881C
1172 #define S_02881C_CLIP_DIST_ENA_0(x) (((x) & 0x1) << 0)
1173 #define G_02881C_CLIP_DIST_ENA_0(x) (((x) >> 0) & 0x1)
1174 #define C_02881C_CLIP_DIST_ENA_0 0xFFFFFFFE
1175 #define S_02881C_CLIP_DIST_ENA_1(x) (((x) & 0x1) << 1)
1176 #define G_02881C_CLIP_DIST_ENA_1(x) (((x) >> 1) & 0x1)
1177 #define C_02881C_CLIP_DIST_ENA_1 0xFFFFFFFD
1178 #define S_02881C_CLIP_DIST_ENA_2(x) (((x) & 0x1) << 2)
1179 #define G_02881C_CLIP_DIST_ENA_2(x) (((x) >> 2) & 0x1)
1180 #define C_02881C_CLIP_DIST_ENA_2 0xFFFFFFFB
1181 #define S_02881C_CLIP_DIST_ENA_3(x) (((x) & 0x1) << 3)
1182 #define G_02881C_CLIP_DIST_ENA_3(x) (((x) >> 3) & 0x1)
1183 #define C_02881C_CLIP_DIST_ENA_3 0xFFFFFFF7
1184 #define S_02881C_CLIP_DIST_ENA_4(x) (((x) & 0x1) << 4)
1185 #define G_02881C_CLIP_DIST_ENA_4(x) (((x) >> 4) & 0x1)
1186 #define C_02881C_CLIP_DIST_ENA_4 0xFFFFFFEF
1187 #define S_02881C_CLIP_DIST_ENA_5(x) (((x) & 0x1) << 5)
1188 #define G_02881C_CLIP_DIST_ENA_5(x) (((x) >> 5) & 0x1)
1189 #define C_02881C_CLIP_DIST_ENA_5 0xFFFFFFDF
1190 #define S_02881C_CLIP_DIST_ENA_6(x) (((x) & 0x1) << 6)
1191 #define G_02881C_CLIP_DIST_ENA_6(x) (((x) >> 6) & 0x1)
1192 #define C_02881C_CLIP_DIST_ENA_6 0xFFFFFFBF
1193 #define S_02881C_CLIP_DIST_ENA_7(x) (((x) & 0x1) << 7)
1194 #define G_02881C_CLIP_DIST_ENA_7(x) (((x) >> 7) & 0x1)
1195 #define C_02881C_CLIP_DIST_ENA_7 0xFFFFFF7F
1196 #define S_02881C_CULL_DIST_ENA_0(x) (((x) & 0x1) << 8)
1197 #define G_02881C_CULL_DIST_ENA_0(x) (((x) >> 8) & 0x1)
1198 #define C_02881C_CULL_DIST_ENA_0 0xFFFFFEFF
1199 #define S_02881C_CULL_DIST_ENA_1(x) (((x) & 0x1) << 9)
1200 #define G_02881C_CULL_DIST_ENA_1(x) (((x) >> 9) & 0x1)
1201 #define C_02881C_CULL_DIST_ENA_1 0xFFFFFDFF
1202 #define S_02881C_CULL_DIST_ENA_2(x) (((x) & 0x1) << 10)
1203 #define G_02881C_CULL_DIST_ENA_2(x) (((x) >> 10) & 0x1)
1204 #define C_02881C_CULL_DIST_ENA_2 0xFFFFFBFF
1205 #define S_02881C_CULL_DIST_ENA_3(x) (((x) & 0x1) << 11)
1206 #define G_02881C_CULL_DIST_ENA_3(x) (((x) >> 11) & 0x1)
1207 #define C_02881C_CULL_DIST_ENA_3 0xFFFFF7FF
1208 #define S_02881C_CULL_DIST_ENA_4(x) (((x) & 0x1) << 12)
1209 #define G_02881C_CULL_DIST_ENA_4(x) (((x) >> 12) & 0x1)
1210 #define C_02881C_CULL_DIST_ENA_4 0xFFFFEFFF
1211 #define S_02881C_CULL_DIST_ENA_5(x) (((x) & 0x1) << 13)
1212 #define G_02881C_CULL_DIST_ENA_5(x) (((x) >> 13) & 0x1)
1213 #define C_02881C_CULL_DIST_ENA_5 0xFFFFDFFF
1214 #define S_02881C_CULL_DIST_ENA_6(x) (((x) & 0x1) << 14)
1215 #define G_02881C_CULL_DIST_ENA_6(x) (((x) >> 14) & 0x1)
1216 #define C_02881C_CULL_DIST_ENA_6 0xFFFFBFFF
1217 #define S_02881C_CULL_DIST_ENA_7(x) (((x) & 0x1) << 15)
1218 #define G_02881C_CULL_DIST_ENA_7(x) (((x) >> 15) & 0x1)
1219 #define C_02881C_CULL_DIST_ENA_7 0xFFFF7FFF
1220 #define S_02881C_USE_VTX_POINT_SIZE(x) (((x) & 0x1) << 16)
1221 #define G_02881C_USE_VTX_POINT_SIZE(x) (((x) >> 16) & 0x1)
1222 #define C_02881C_USE_VTX_POINT_SIZE 0xFFFEFFFF
1223 #define S_02881C_USE_VTX_EDGE_FLAG(x) (((x) & 0x1) << 17)
1224 #define G_02881C_USE_VTX_EDGE_FLAG(x) (((x) >> 17) & 0x1)
1225 #define C_02881C_USE_VTX_EDGE_FLAG 0xFFFDFFFF
1226 #define S_02881C_USE_VTX_RENDER_TARGET_INDX(x) (((x) & 0x1) << 18)
1227 #define G_02881C_USE_VTX_RENDER_TARGET_INDX(x) (((x) >> 18) & 0x1)
1228 #define C_02881C_USE_VTX_RENDER_TARGET_INDX 0xFFFBFFFF
1229 #define S_02881C_USE_VTX_VIEWPORT_INDX(x) (((x) & 0x1) << 19)
1230 #define G_02881C_USE_VTX_VIEWPORT_INDX(x) (((x) >> 19) & 0x1)
1231 #define C_02881C_USE_VTX_VIEWPORT_INDX 0xFFF7FFFF
1232 #define S_02881C_USE_VTX_KILL_FLAG(x) (((x) & 0x1) << 20)
1233 #define G_02881C_USE_VTX_KILL_FLAG(x) (((x) >> 20) & 0x1)
1234 #define C_02881C_USE_VTX_KILL_FLAG 0xFFEFFFFF
1235 #define S_02881C_VS_OUT_MISC_VEC_ENA(x) (((x) & 0x1) << 21)
1236 #define G_02881C_VS_OUT_MISC_VEC_ENA(x) (((x) >> 21) & 0x1)
1237 #define C_02881C_VS_OUT_MISC_VEC_ENA 0xFFDFFFFF
1238 #define S_02881C_VS_OUT_CCDIST0_VEC_ENA(x) (((x) & 0x1) << 22)
1239 #define G_02881C_VS_OUT_CCDIST0_VEC_ENA(x) (((x) >> 22) & 0x1)
1240 #define C_02881C_VS_OUT_CCDIST0_VEC_ENA 0xFFBFFFFF
1241 #define S_02881C_VS_OUT_CCDIST1_VEC_ENA(x) (((x) & 0x1) << 23)
1242 #define G_02881C_VS_OUT_CCDIST1_VEC_ENA(x) (((x) >> 23) & 0x1)
1243 #define C_02881C_VS_OUT_CCDIST1_VEC_ENA 0xFF7FFFFF
1244 #define R_028868_SQ_PGM_RESOURCES_VS 0x028868
1245 #define S_028868_NUM_GPRS(x) (((x) & 0xFF) << 0)
1246 #define G_028868_NUM_GPRS(x) (((x) >> 0) & 0xFF)
1247 #define C_028868_NUM_GPRS 0xFFFFFF00
1248 #define S_028868_STACK_SIZE(x) (((x) & 0xFF) << 8)
1249 #define G_028868_STACK_SIZE(x) (((x) >> 8) & 0xFF)
1250 #define C_028868_STACK_SIZE 0xFFFF00FF
1251 #define S_028868_DX10_CLAMP(x) (((x) & 0x1) << 21)
1252 #define G_028868_DX10_CLAMP(x) (((x) >> 21) & 0x1)
1253 #define C_028868_DX10_CLAMP 0xFFDFFFFF
1254 #define S_028868_FETCH_CACHE_LINES(x) (((x) & 0x7) << 24)
1255 #define G_028868_FETCH_CACHE_LINES(x) (((x) >> 24) & 0x7)
1256 #define C_028868_FETCH_CACHE_LINES 0xF8FFFFFF
1257 #define S_028868_UNCACHED_FIRST_INST(x) (((x) & 0x1) << 28)
1258 #define G_028868_UNCACHED_FIRST_INST(x) (((x) >> 28) & 0x1)
1259 #define C_028868_UNCACHED_FIRST_INST 0xEFFFFFFF
1260 #define R_028850_SQ_PGM_RESOURCES_PS 0x028850
1261 #define S_028850_NUM_GPRS(x) (((x) & 0xFF) << 0)
1262 #define G_028850_NUM_GPRS(x) (((x) >> 0) & 0xFF)
1263 #define C_028850_NUM_GPRS 0xFFFFFF00
1264 #define S_028850_STACK_SIZE(x) (((x) & 0xFF) << 8)
1265 #define G_028850_STACK_SIZE(x) (((x) >> 8) & 0xFF)
1266 #define C_028850_STACK_SIZE 0xFFFF00FF
1267 #define S_028850_DX10_CLAMP(x) (((x) & 0x1) << 21)
1268 #define G_028850_DX10_CLAMP(x) (((x) >> 21) & 0x1)
1269 #define C_028850_DX10_CLAMP 0xFFDFFFFF
1270 #define S_028850_FETCH_CACHE_LINES(x) (((x) & 0x7) << 24)
1271 #define G_028850_FETCH_CACHE_LINES(x) (((x) >> 24) & 0x7)
1272 #define C_028850_FETCH_CACHE_LINES 0xF8FFFFFF
1273 #define S_028850_UNCACHED_FIRST_INST(x) (((x) & 0x1) << 28)
1274 #define G_028850_UNCACHED_FIRST_INST(x) (((x) >> 28) & 0x1)
1275 #define C_028850_UNCACHED_FIRST_INST 0xEFFFFFFF
1276 #define S_028850_CLAMP_CONSTS(x) (((x) & 0x1) << 31)
1277 #define G_028850_CLAMP_CONSTS(x) (((x) >> 31) & 0x1)
1278 #define C_028850_CLAMP_CONSTS 0x7FFFFFFF
1279 #define R_028644_SPI_PS_INPUT_CNTL_0 0x028644
1280 #define S_028644_SEMANTIC(x) (((x) & 0xFF) << 0)
1281 #define G_028644_SEMANTIC(x) (((x) >> 0) & 0xFF)
1282 #define C_028644_SEMANTIC 0xFFFFFF00
1283 #define S_028644_DEFAULT_VAL(x) (((x) & 0x3) << 8)
1284 #define G_028644_DEFAULT_VAL(x) (((x) >> 8) & 0x3)
1285 #define C_028644_DEFAULT_VAL 0xFFFFFCFF
1286 #define S_028644_FLAT_SHADE(x) (((x) & 0x1) << 10)
1287 #define G_028644_FLAT_SHADE(x) (((x) >> 10) & 0x1)
1288 #define C_028644_FLAT_SHADE 0xFFFFFBFF
1289 #define S_028644_SEL_CENTROID(x) (((x) & 0x1) << 11)
1290 #define G_028644_SEL_CENTROID(x) (((x) >> 11) & 0x1)
1291 #define C_028644_SEL_CENTROID 0xFFFFF7FF
1292 #define S_028644_SEL_LINEAR(x) (((x) & 0x1) << 12)
1293 #define G_028644_SEL_LINEAR(x) (((x) >> 12) & 0x1)
1294 #define C_028644_SEL_LINEAR 0xFFFFEFFF
1295 #define S_028644_CYL_WRAP(x) (((x) & 0xF) << 13)
1296 #define G_028644_CYL_WRAP(x) (((x) >> 13) & 0xF)
1297 #define C_028644_CYL_WRAP 0xFFFE1FFF
1298 #define S_028644_PT_SPRITE_TEX(x) (((x) & 0x1) << 17)
1299 #define G_028644_PT_SPRITE_TEX(x) (((x) >> 17) & 0x1)
1300 #define C_028644_PT_SPRITE_TEX 0xFFFDFFFF
1301 #define S_028644_SEL_SAMPLE(x) (((x) & 0x1) << 18)
1302 #define G_028644_SEL_SAMPLE(x) (((x) >> 18) & 0x1)
1303 #define C_028644_SEL_SAMPLE 0xFFFBFFFF
1304 #define R_0286D4_SPI_INTERP_CONTROL_0 0x0286D4
1305 #define S_0286D4_FLAT_SHADE_ENA(x) (((x) & 0x1) << 0)
1306 #define G_0286D4_FLAT_SHADE_ENA(x) (((x) >> 0) & 0x1)
1307 #define C_0286D4_FLAT_SHADE_ENA 0xFFFFFFFE
1308 #define S_0286D4_PNT_SPRITE_ENA(x) (((x) & 0x1) << 1)
1309 #define G_0286D4_PNT_SPRITE_ENA(x) (((x) >> 1) & 0x1)
1310 #define C_0286D4_PNT_SPRITE_ENA 0xFFFFFFFD
1311 #define S_0286D4_PNT_SPRITE_OVRD_X(x) (((x) & 0x7) << 2)
1312 #define G_0286D4_PNT_SPRITE_OVRD_X(x) (((x) >> 2) & 0x7)
1313 #define C_0286D4_PNT_SPRITE_OVRD_X 0xFFFFFFE3
1314 #define S_0286D4_PNT_SPRITE_OVRD_Y(x) (((x) & 0x7) << 5)
1315 #define G_0286D4_PNT_SPRITE_OVRD_Y(x) (((x) >> 5) & 0x7)
1316 #define C_0286D4_PNT_SPRITE_OVRD_Y 0xFFFFFF1F
1317 #define S_0286D4_PNT_SPRITE_OVRD_Z(x) (((x) & 0x7) << 8)
1318 #define G_0286D4_PNT_SPRITE_OVRD_Z(x) (((x) >> 8) & 0x7)
1319 #define C_0286D4_PNT_SPRITE_OVRD_Z 0xFFFFF8FF
1320 #define S_0286D4_PNT_SPRITE_OVRD_W(x) (((x) & 0x7) << 11)
1321 #define G_0286D4_PNT_SPRITE_OVRD_W(x) (((x) >> 11) & 0x7)
1322 #define C_0286D4_PNT_SPRITE_OVRD_W 0xFFFFC7FF
1323 #define S_0286D4_PNT_SPRITE_TOP_1(x) (((x) & 0x1) << 14)
1324 #define G_0286D4_PNT_SPRITE_TOP_1(x) (((x) >> 14) & 0x1)
1325 #define C_0286D4_PNT_SPRITE_TOP_1 0xFFFFBFFF
1326
1327 #define SQ_TEX_INST_LD 0x03
1328 #define SQ_TEX_INST_GET_GRADIENTS_H 0x7
1329 #define SQ_TEX_INST_GET_GRADIENTS_V 0x8
1330
1331 #define SQ_TEX_INST_SAMPLE 0x10
1332 #define SQ_TEX_INST_SAMPLE_L 0x11
1333 #define SQ_TEX_INST_SAMPLE_C 0x18
1334 #endif