i965g: Move bootstrap code to targets
[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 PKT3_NOP 0x10
30 #define PKT3_INDIRECT_BUFFER_END 0x17
31 #define PKT3_SET_PREDICATION 0x20
32 #define PKT3_REG_RMW 0x21
33 #define PKT3_COND_EXEC 0x22
34 #define PKT3_PRED_EXEC 0x23
35 #define PKT3_START_3D_CMDBUF 0x24
36 #define PKT3_DRAW_INDEX_2 0x27
37 #define PKT3_CONTEXT_CONTROL 0x28
38 #define PKT3_DRAW_INDEX_IMMD_BE 0x29
39 #define PKT3_INDEX_TYPE 0x2A
40 #define PKT3_DRAW_INDEX 0x2B
41 #define PKT3_DRAW_INDEX_AUTO 0x2D
42 #define PKT3_DRAW_INDEX_IMMD 0x2E
43 #define PKT3_NUM_INSTANCES 0x2F
44 #define PKT3_STRMOUT_BUFFER_UPDATE 0x34
45 #define PKT3_INDIRECT_BUFFER_MP 0x38
46 #define PKT3_MEM_SEMAPHORE 0x39
47 #define PKT3_MPEG_INDEX 0x3A
48 #define PKT3_WAIT_REG_MEM 0x3C
49 #define PKT3_MEM_WRITE 0x3D
50 #define PKT3_INDIRECT_BUFFER 0x32
51 #define PKT3_CP_INTERRUPT 0x40
52 #define PKT3_SURFACE_SYNC 0x43
53 #define PKT3_ME_INITIALIZE 0x44
54 #define PKT3_COND_WRITE 0x45
55 #define PKT3_EVENT_WRITE 0x46
56 #define PKT3_EVENT_WRITE_EOP 0x47
57 #define PKT3_ONE_REG_WRITE 0x57
58 #define PKT3_SET_CONFIG_REG 0x68
59 #define PKT3_SET_CONTEXT_REG 0x69
60 #define PKT3_SET_ALU_CONST 0x6A
61 #define PKT3_SET_BOOL_CONST 0x6B
62 #define PKT3_SET_LOOP_CONST 0x6C
63 #define PKT3_SET_RESOURCE 0x6D
64 #define PKT3_SET_SAMPLER 0x6E
65 #define PKT3_SET_CTL_CONST 0x6F
66 #define PKT3_SURFACE_BASE_UPDATE 0x73
67
68 #define PKT_TYPE_S(x) (((x) & 0x3) << 30)
69 #define PKT_TYPE_G(x) (((x) >> 30) & 0x3)
70 #define PKT_TYPE_C 0x3FFFFFFF
71 #define PKT_COUNT_S(x) (((x) & 0x3FFF) << 16)
72 #define PKT_COUNT_G(x) (((x) >> 16) & 0x3FFF)
73 #define PKT_COUNT_C 0xC000FFFF
74 #define PKT0_BASE_INDEX_S(x) (((x) & 0xFFFF) << 0)
75 #define PKT0_BASE_INDEX_G(x) (((x) >> 0) & 0xFFFF)
76 #define PKT0_BASE_INDEX_C 0xFFFF0000
77 #define PKT3_IT_OPCODE_S(x) (((x) & 0xFF) << 8)
78 #define PKT3_IT_OPCODE_G(x) (((x) >> 8) & 0xFF)
79 #define PKT3_IT_OPCODE_C 0xFFFF00FF
80 #define PKT0(index, count) (PKT_TYPE_S(0) | PKT0_BASE_INDEX_S(index) | PKT_COUNT_S(count))
81 #define PKT3(op, count) (PKT_TYPE_S(3) | PKT3_IT_OPCODE_S(op) | PKT_COUNT_S(count))
82
83 /* Registers */
84 #define R_0280A0_CB_COLOR0_INFO 0x0280A0
85 #define S_0280A0_ENDIAN(x) (((x) & 0x3) << 0)
86 #define G_0280A0_ENDIAN(x) (((x) >> 0) & 0x3)
87 #define C_0280A0_ENDIAN 0xFFFFFFFC
88 #define S_0280A0_FORMAT(x) (((x) & 0x3F) << 2)
89 #define G_0280A0_FORMAT(x) (((x) >> 2) & 0x3F)
90 #define C_0280A0_FORMAT 0xFFFFFF03
91 #define V_0280A0_COLOR_INVALID 0x00000000
92 #define V_0280A0_COLOR_8 0x00000001
93 #define V_0280A0_COLOR_4_4 0x00000002
94 #define V_0280A0_COLOR_3_3_2 0x00000003
95 #define V_0280A0_COLOR_16 0x00000005
96 #define V_0280A0_COLOR_16_FLOAT 0x00000006
97 #define V_0280A0_COLOR_8_8 0x00000007
98 #define V_0280A0_COLOR_5_6_5 0x00000008
99 #define V_0280A0_COLOR_6_5_5 0x00000009
100 #define V_0280A0_COLOR_1_5_5_5 0x0000000A
101 #define V_0280A0_COLOR_4_4_4_4 0x0000000B
102 #define V_0280A0_COLOR_5_5_5_1 0x0000000C
103 #define V_0280A0_COLOR_32 0x0000000D
104 #define V_0280A0_COLOR_32_FLOAT 0x0000000E
105 #define V_0280A0_COLOR_16_16 0x0000000F
106 #define V_0280A0_COLOR_16_16_FLOAT 0x00000010
107 #define V_0280A0_COLOR_8_24 0x00000011
108 #define V_0280A0_COLOR_8_24_FLOAT 0x00000012
109 #define V_0280A0_COLOR_24_8 0x00000013
110 #define V_0280A0_COLOR_24_8_FLOAT 0x00000014
111 #define V_0280A0_COLOR_10_11_11 0x00000015
112 #define V_0280A0_COLOR_10_11_11_FLOAT 0x00000016
113 #define V_0280A0_COLOR_11_11_10 0x00000017
114 #define V_0280A0_COLOR_11_11_10_FLOAT 0x00000018
115 #define V_0280A0_COLOR_2_10_10_10 0x00000019
116 #define V_0280A0_COLOR_8_8_8_8 0x0000001A
117 #define V_0280A0_COLOR_10_10_10_2 0x0000001B
118 #define V_0280A0_COLOR_X24_8_32_FLOAT 0x0000001C
119 #define V_0280A0_COLOR_32_32 0x0000001D
120 #define V_0280A0_COLOR_32_32_FLOAT 0x0000001E
121 #define V_0280A0_COLOR_16_16_16_16 0x0000001F
122 #define V_0280A0_COLOR_16_16_16_16_FLOAT 0x00000020
123 #define V_0280A0_COLOR_32_32_32_32 0x00000022
124 #define V_0280A0_COLOR_32_32_32_32_FLOAT 0x00000023
125 #define S_0280A0_ARRAY_MODE(x) (((x) & 0xF) << 8)
126 #define G_0280A0_ARRAY_MODE(x) (((x) >> 8) & 0xF)
127 #define C_0280A0_ARRAY_MODE 0xFFFFF0FF
128 #define V_0280A0_ARRAY_LINEAR_GENERAL 0x00000000
129 #define V_0280A0_ARRAY_LINEAR_ALIGNED 0x00000001
130 #define V_0280A0_ARRAY_1D_TILED_THIN1 0x00000002
131 #define V_0280A0_ARRAY_2D_TILED_THIN1 0x00000004
132 #define S_0280A0_NUMBER_TYPE(x) (((x) & 0x7) << 12)
133 #define G_0280A0_NUMBER_TYPE(x) (((x) >> 12) & 0x7)
134 #define C_0280A0_NUMBER_TYPE 0xFFFF8FFF
135 #define S_0280A0_READ_SIZE(x) (((x) & 0x1) << 15)
136 #define G_0280A0_READ_SIZE(x) (((x) >> 15) & 0x1)
137 #define C_0280A0_READ_SIZE 0xFFFF7FFF
138 #define S_0280A0_COMP_SWAP(x) (((x) & 0x3) << 16)
139 #define G_0280A0_COMP_SWAP(x) (((x) >> 16) & 0x3)
140 #define C_0280A0_COMP_SWAP 0xFFFCFFFF
141 #define S_0280A0_TILE_MODE(x) (((x) & 0x3) << 18)
142 #define G_0280A0_TILE_MODE(x) (((x) >> 18) & 0x3)
143 #define C_0280A0_TILE_MODE 0xFFF3FFFF
144 #define S_0280A0_BLEND_CLAMP(x) (((x) & 0x1) << 20)
145 #define G_0280A0_BLEND_CLAMP(x) (((x) >> 20) & 0x1)
146 #define C_0280A0_BLEND_CLAMP 0xFFEFFFFF
147 #define S_0280A0_CLEAR_COLOR(x) (((x) & 0x1) << 21)
148 #define G_0280A0_CLEAR_COLOR(x) (((x) >> 21) & 0x1)
149 #define C_0280A0_CLEAR_COLOR 0xFFDFFFFF
150 #define S_0280A0_BLEND_BYPASS(x) (((x) & 0x1) << 22)
151 #define G_0280A0_BLEND_BYPASS(x) (((x) >> 22) & 0x1)
152 #define C_0280A0_BLEND_BYPASS 0xFFBFFFFF
153 #define S_0280A0_BLEND_FLOAT32(x) (((x) & 0x1) << 23)
154 #define G_0280A0_BLEND_FLOAT32(x) (((x) >> 23) & 0x1)
155 #define C_0280A0_BLEND_FLOAT32 0xFF7FFFFF
156 #define S_0280A0_SIMPLE_FLOAT(x) (((x) & 0x1) << 24)
157 #define G_0280A0_SIMPLE_FLOAT(x) (((x) >> 24) & 0x1)
158 #define C_0280A0_SIMPLE_FLOAT 0xFEFFFFFF
159 #define S_0280A0_ROUND_MODE(x) (((x) & 0x1) << 25)
160 #define G_0280A0_ROUND_MODE(x) (((x) >> 25) & 0x1)
161 #define C_0280A0_ROUND_MODE 0xFDFFFFFF
162 #define S_0280A0_TILE_COMPACT(x) (((x) & 0x1) << 26)
163 #define G_0280A0_TILE_COMPACT(x) (((x) >> 26) & 0x1)
164 #define C_0280A0_TILE_COMPACT 0xFBFFFFFF
165 #define S_0280A0_SOURCE_FORMAT(x) (((x) & 0x1) << 27)
166 #define G_0280A0_SOURCE_FORMAT(x) (((x) >> 27) & 0x1)
167 #define C_0280A0_SOURCE_FORMAT 0xF7FFFFFF
168 #define R_028060_CB_COLOR0_SIZE 0x028060
169 #define S_028060_PITCH_TILE_MAX(x) (((x) & 0x3FF) << 0)
170 #define G_028060_PITCH_TILE_MAX(x) (((x) >> 0) & 0x3FF)
171 #define C_028060_PITCH_TILE_MAX 0xFFFFFC00
172 #define S_028060_SLICE_TILE_MAX(x) (((x) & 0xFFFFF) << 10)
173 #define G_028060_SLICE_TILE_MAX(x) (((x) >> 10) & 0xFFFFF)
174 #define C_028060_SLICE_TILE_MAX 0xC00003FF
175 #define R_028800_DB_DEPTH_CONTROL 0x028800
176 #define S_028800_STENCIL_ENABLE(x) (((x) & 0x1) << 0)
177 #define G_028800_STENCIL_ENABLE(x) (((x) >> 0) & 0x1)
178 #define C_028800_STENCIL_ENABLE 0xFFFFFFFE
179 #define S_028800_Z_ENABLE(x) (((x) & 0x1) << 1)
180 #define G_028800_Z_ENABLE(x) (((x) >> 1) & 0x1)
181 #define C_028800_Z_ENABLE 0xFFFFFFFD
182 #define S_028800_Z_WRITE_ENABLE(x) (((x) & 0x1) << 2)
183 #define G_028800_Z_WRITE_ENABLE(x) (((x) >> 2) & 0x1)
184 #define C_028800_Z_WRITE_ENABLE 0xFFFFFFFB
185 #define S_028800_ZFUNC(x) (((x) & 0x7) << 4)
186 #define G_028800_ZFUNC(x) (((x) >> 4) & 0x7)
187 #define C_028800_ZFUNC 0xFFFFFF8F
188 #define S_028800_BACKFACE_ENABLE(x) (((x) & 0x1) << 7)
189 #define G_028800_BACKFACE_ENABLE(x) (((x) >> 7) & 0x1)
190 #define C_028800_BACKFACE_ENABLE 0xFFFFFF7F
191 #define S_028800_STENCILFUNC(x) (((x) & 0x7) << 8)
192 #define G_028800_STENCILFUNC(x) (((x) >> 8) & 0x7)
193 #define C_028800_STENCILFUNC 0xFFFFF8FF
194 #define S_028800_STENCILFAIL(x) (((x) & 0x7) << 11)
195 #define G_028800_STENCILFAIL(x) (((x) >> 11) & 0x7)
196 #define C_028800_STENCILFAIL 0xFFFFC7FF
197 #define S_028800_STENCILZPASS(x) (((x) & 0x7) << 14)
198 #define G_028800_STENCILZPASS(x) (((x) >> 14) & 0x7)
199 #define C_028800_STENCILZPASS 0xFFFE3FFF
200 #define S_028800_STENCILZFAIL(x) (((x) & 0x7) << 17)
201 #define G_028800_STENCILZFAIL(x) (((x) >> 17) & 0x7)
202 #define C_028800_STENCILZFAIL 0xFFF1FFFF
203 #define S_028800_STENCILFUNC_BF(x) (((x) & 0x7) << 20)
204 #define G_028800_STENCILFUNC_BF(x) (((x) >> 20) & 0x7)
205 #define C_028800_STENCILFUNC_BF 0xFF8FFFFF
206 #define S_028800_STENCILFAIL_BF(x) (((x) & 0x7) << 23)
207 #define G_028800_STENCILFAIL_BF(x) (((x) >> 23) & 0x7)
208 #define C_028800_STENCILFAIL_BF 0xFC7FFFFF
209 #define S_028800_STENCILZPASS_BF(x) (((x) & 0x7) << 26)
210 #define G_028800_STENCILZPASS_BF(x) (((x) >> 26) & 0x7)
211 #define C_028800_STENCILZPASS_BF 0xE3FFFFFF
212 #define S_028800_STENCILZFAIL_BF(x) (((x) & 0x7) << 29)
213 #define G_028800_STENCILZFAIL_BF(x) (((x) >> 29) & 0x7)
214 #define C_028800_STENCILZFAIL_BF 0x1FFFFFFF
215 #define R_028010_DB_DEPTH_INFO 0x028010
216 #define S_028010_FORMAT(x) (((x) & 0x7) << 0)
217 #define G_028010_FORMAT(x) (((x) >> 0) & 0x7)
218 #define C_028010_FORMAT 0xFFFFFFF8
219 #define V_028010_DEPTH_INVALID 0x00000000
220 #define V_028010_DEPTH_16 0x00000001
221 #define V_028010_DEPTH_X8_24 0x00000002
222 #define V_028010_DEPTH_8_24 0x00000003
223 #define V_028010_DEPTH_X8_24_FLOAT 0x00000004
224 #define V_028010_DEPTH_8_24_FLOAT 0x00000005
225 #define V_028010_DEPTH_32_FLOAT 0x00000006
226 #define V_028010_DEPTH_X24_8_32_FLOAT 0x00000007
227 #define S_028010_READ_SIZE(x) (((x) & 0x1) << 3)
228 #define G_028010_READ_SIZE(x) (((x) >> 3) & 0x1)
229 #define C_028010_READ_SIZE 0xFFFFFFF7
230 #define S_028010_ARRAY_MODE(x) (((x) & 0xF) << 15)
231 #define G_028010_ARRAY_MODE(x) (((x) >> 15) & 0xF)
232 #define C_028010_ARRAY_MODE 0xFFF87FFF
233 #define S_028010_TILE_SURFACE_ENABLE(x) (((x) & 0x1) << 25)
234 #define G_028010_TILE_SURFACE_ENABLE(x) (((x) >> 25) & 0x1)
235 #define C_028010_TILE_SURFACE_ENABLE 0xFDFFFFFF
236 #define S_028010_TILE_COMPACT(x) (((x) & 0x1) << 26)
237 #define G_028010_TILE_COMPACT(x) (((x) >> 26) & 0x1)
238 #define C_028010_TILE_COMPACT 0xFBFFFFFF
239 #define S_028010_ZRANGE_PRECISION(x) (((x) & 0x1) << 31)
240 #define G_028010_ZRANGE_PRECISION(x) (((x) >> 31) & 0x1)
241 #define C_028010_ZRANGE_PRECISION 0x7FFFFFFF
242 #define R_028000_DB_DEPTH_SIZE 0x028000
243 #define S_028000_PITCH_TILE_MAX(x) (((x) & 0x3FF) << 0)
244 #define G_028000_PITCH_TILE_MAX(x) (((x) >> 0) & 0x3FF)
245 #define C_028000_PITCH_TILE_MAX 0xFFFFFC00
246 #define S_028000_SLICE_TILE_MAX(x) (((x) & 0xFFFFF) << 10)
247 #define G_028000_SLICE_TILE_MAX(x) (((x) >> 10) & 0xFFFFF)
248 #define C_028000_SLICE_TILE_MAX 0xC00003FF
249 #define R_028004_DB_DEPTH_VIEW 0x028004
250 #define S_028004_SLICE_START(x) (((x) & 0x7FF) << 0)
251 #define G_028004_SLICE_START(x) (((x) >> 0) & 0x7FF)
252 #define C_028004_SLICE_START 0xFFFFF800
253 #define S_028004_SLICE_MAX(x) (((x) & 0x7FF) << 13)
254 #define G_028004_SLICE_MAX(x) (((x) >> 13) & 0x7FF)
255 #define C_028004_SLICE_MAX 0xFF001FFF
256 #define R_028D24_DB_HTILE_SURFACE 0x028D24
257 #define S_028D24_HTILE_WIDTH(x) (((x) & 0x1) << 0)
258 #define G_028D24_HTILE_WIDTH(x) (((x) >> 0) & 0x1)
259 #define C_028D24_HTILE_WIDTH 0xFFFFFFFE
260 #define S_028D24_HTILE_HEIGHT(x) (((x) & 0x1) << 1)
261 #define G_028D24_HTILE_HEIGHT(x) (((x) >> 1) & 0x1)
262 #define C_028D24_HTILE_HEIGHT 0xFFFFFFFD
263 #define S_028D24_LINEAR(x) (((x) & 0x1) << 2)
264 #define G_028D24_LINEAR(x) (((x) >> 2) & 0x1)
265 #define C_028D24_LINEAR 0xFFFFFFFB
266 #define S_028D24_FULL_CACHE(x) (((x) & 0x1) << 3)
267 #define G_028D24_FULL_CACHE(x) (((x) >> 3) & 0x1)
268 #define C_028D24_FULL_CACHE 0xFFFFFFF7
269 #define S_028D24_HTILE_USES_PRELOAD_WIN(x) (((x) & 0x1) << 4)
270 #define G_028D24_HTILE_USES_PRELOAD_WIN(x) (((x) >> 4) & 0x1)
271 #define C_028D24_HTILE_USES_PRELOAD_WIN 0xFFFFFFEF
272 #define S_028D24_PRELOAD(x) (((x) & 0x1) << 5)
273 #define G_028D24_PRELOAD(x) (((x) >> 5) & 0x1)
274 #define C_028D24_PRELOAD 0xFFFFFFDF
275 #define S_028D24_PREFETCH_WIDTH(x) (((x) & 0x3F) << 6)
276 #define G_028D24_PREFETCH_WIDTH(x) (((x) >> 6) & 0x3F)
277 #define C_028D24_PREFETCH_WIDTH 0xFFFFF03F
278 #define S_028D24_PREFETCH_HEIGHT(x) (((x) & 0x3F) << 12)
279 #define G_028D24_PREFETCH_HEIGHT(x) (((x) >> 12) & 0x3F)
280 #define C_028D24_PREFETCH_HEIGHT 0xFFFC0FFF
281 #define R_028D34_DB_PREFETCH_LIMIT 0x028D34
282 #define S_028D34_DEPTH_HEIGHT_TILE_MAX(x) (((x) & 0x3FF) << 0)
283 #define G_028D34_DEPTH_HEIGHT_TILE_MAX(x) (((x) >> 0) & 0x3FF)
284 #define C_028D34_DEPTH_HEIGHT_TILE_MAX 0xFFFFFC00
285 #define R_028D10_DB_RENDER_OVERRIDE 0x028D10
286 #define S_028D10_FORCE_HIZ_ENABLE(x) (((x) & 0x3) << 0)
287 #define G_028D10_FORCE_HIZ_ENABLE(x) (((x) >> 0) & 0x3)
288 #define C_028D10_FORCE_HIZ_ENABLE 0xFFFFFFFC
289 #define S_028D10_FORCE_HIS_ENABLE0(x) (((x) & 0x3) << 2)
290 #define G_028D10_FORCE_HIS_ENABLE0(x) (((x) >> 2) & 0x3)
291 #define C_028D10_FORCE_HIS_ENABLE0 0xFFFFFFF3
292 #define S_028D10_FORCE_HIS_ENABLE1(x) (((x) & 0x3) << 4)
293 #define G_028D10_FORCE_HIS_ENABLE1(x) (((x) >> 4) & 0x3)
294 #define C_028D10_FORCE_HIS_ENABLE1 0xFFFFFFCF
295 #define S_028D10_FORCE_SHADER_Z_ORDER(x) (((x) & 0x1) << 6)
296 #define G_028D10_FORCE_SHADER_Z_ORDER(x) (((x) >> 6) & 0x1)
297 #define C_028D10_FORCE_SHADER_Z_ORDER 0xFFFFFFBF
298 #define S_028D10_FAST_Z_DISABLE(x) (((x) & 0x1) << 7)
299 #define G_028D10_FAST_Z_DISABLE(x) (((x) >> 7) & 0x1)
300 #define C_028D10_FAST_Z_DISABLE 0xFFFFFF7F
301 #define S_028D10_FAST_STENCIL_DISABLE(x) (((x) & 0x1) << 8)
302 #define G_028D10_FAST_STENCIL_DISABLE(x) (((x) >> 8) & 0x1)
303 #define C_028D10_FAST_STENCIL_DISABLE 0xFFFFFEFF
304 #define S_028D10_NOOP_CULL_DISABLE(x) (((x) & 0x1) << 9)
305 #define G_028D10_NOOP_CULL_DISABLE(x) (((x) >> 9) & 0x1)
306 #define C_028D10_NOOP_CULL_DISABLE 0xFFFFFDFF
307 #define S_028D10_FORCE_COLOR_KILL(x) (((x) & 0x1) << 10)
308 #define G_028D10_FORCE_COLOR_KILL(x) (((x) >> 10) & 0x1)
309 #define C_028D10_FORCE_COLOR_KILL 0xFFFFFBFF
310 #define S_028D10_FORCE_Z_READ(x) (((x) & 0x1) << 11)
311 #define G_028D10_FORCE_Z_READ(x) (((x) >> 11) & 0x1)
312 #define C_028D10_FORCE_Z_READ 0xFFFFF7FF
313 #define S_028D10_FORCE_STENCIL_READ(x) (((x) & 0x1) << 12)
314 #define G_028D10_FORCE_STENCIL_READ(x) (((x) >> 12) & 0x1)
315 #define C_028D10_FORCE_STENCIL_READ 0xFFFFEFFF
316 #define S_028D10_FORCE_FULL_Z_RANGE(x) (((x) & 0x3) << 13)
317 #define G_028D10_FORCE_FULL_Z_RANGE(x) (((x) >> 13) & 0x3)
318 #define C_028D10_FORCE_FULL_Z_RANGE 0xFFFF9FFF
319 #define S_028D10_FORCE_QC_SMASK_CONFLICT(x) (((x) & 0x1) << 15)
320 #define G_028D10_FORCE_QC_SMASK_CONFLICT(x) (((x) >> 15) & 0x1)
321 #define C_028D10_FORCE_QC_SMASK_CONFLICT 0xFFFF7FFF
322 #define S_028D10_DISABLE_VIEWPORT_CLAMP(x) (((x) & 0x1) << 16)
323 #define G_028D10_DISABLE_VIEWPORT_CLAMP(x) (((x) >> 16) & 0x1)
324 #define C_028D10_DISABLE_VIEWPORT_CLAMP 0xFFFEFFFF
325 #define S_028D10_IGNORE_SC_ZRANGE(x) (((x) & 0x1) << 17)
326 #define G_028D10_IGNORE_SC_ZRANGE(x) (((x) >> 17) & 0x1)
327 #define C_028D10_IGNORE_SC_ZRANGE 0xFFFDFFFF
328 #define R_028A40_VGT_GS_MODE 0x028A40
329 #define S_028A40_MODE(x) (((x) & 0x3) << 0)
330 #define G_028A40_MODE(x) (((x) >> 0) & 0x3)
331 #define C_028A40_MODE 0xFFFFFFFC
332 #define S_028A40_ES_PASSTHRU(x) (((x) & 0x1) << 2)
333 #define G_028A40_ES_PASSTHRU(x) (((x) >> 2) & 0x1)
334 #define C_028A40_ES_PASSTHRU 0xFFFFFFFB
335 #define S_028A40_CUT_MODE(x) (((x) & 0x3) << 3)
336 #define G_028A40_CUT_MODE(x) (((x) >> 3) & 0x3)
337 #define C_028A40_CUT_MODE 0xFFFFFFE7
338 #define R_008040_WAIT_UNTIL 0x008040
339 #define S_008040_WAIT_CP_DMA_IDLE(x) (((x) & 0x1) << 8)
340 #define G_008040_WAIT_CP_DMA_IDLE(x) (((x) >> 8) & 0x1)
341 #define C_008040_WAIT_CP_DMA_IDLE 0xFFFFFEFF
342 #define S_008040_WAIT_CMDFIFO(x) (((x) & 0x1) << 10)
343 #define G_008040_WAIT_CMDFIFO(x) (((x) >> 10) & 0x1)
344 #define C_008040_WAIT_CMDFIFO 0xFFFFFBFF
345 #define S_008040_WAIT_2D_IDLE(x) (((x) & 0x1) << 14)
346 #define G_008040_WAIT_2D_IDLE(x) (((x) >> 14) & 0x1)
347 #define C_008040_WAIT_2D_IDLE 0xFFFFBFFF
348 #define S_008040_WAIT_3D_IDLE(x) (((x) & 0x1) << 15)
349 #define G_008040_WAIT_3D_IDLE(x) (((x) >> 15) & 0x1)
350 #define C_008040_WAIT_3D_IDLE 0xFFFF7FFF
351 #define S_008040_WAIT_2D_IDLECLEAN(x) (((x) & 0x1) << 16)
352 #define G_008040_WAIT_2D_IDLECLEAN(x) (((x) >> 16) & 0x1)
353 #define C_008040_WAIT_2D_IDLECLEAN 0xFFFEFFFF
354 #define S_008040_WAIT_3D_IDLECLEAN(x) (((x) & 0x1) << 17)
355 #define G_008040_WAIT_3D_IDLECLEAN(x) (((x) >> 17) & 0x1)
356 #define C_008040_WAIT_3D_IDLECLEAN 0xFFFDFFFF
357 #define S_008040_WAIT_EXTERN_SIG(x) (((x) & 0x1) << 19)
358 #define G_008040_WAIT_EXTERN_SIG(x) (((x) >> 19) & 0x1)
359 #define C_008040_WAIT_EXTERN_SIG 0xFFF7FFFF
360 #define S_008040_CMDFIFO_ENTRIES(x) (((x) & 0x1F) << 20)
361 #define G_008040_CMDFIFO_ENTRIES(x) (((x) >> 20) & 0x1F)
362 #define C_008040_CMDFIFO_ENTRIES 0xFE0FFFFF
363 #define R_0286CC_SPI_PS_IN_CONTROL_0 0x0286CC
364 #define S_0286CC_NUM_INTERP(x) (((x) & 0x3F) << 0)
365 #define G_0286CC_NUM_INTERP(x) (((x) >> 0) & 0x3F)
366 #define C_0286CC_NUM_INTERP 0xFFFFFFC0
367 #define S_0286CC_POSITION_ENA(x) (((x) & 0x1) << 8)
368 #define G_0286CC_POSITION_ENA(x) (((x) >> 8) & 0x1)
369 #define C_0286CC_POSITION_ENA 0xFFFFFEFF
370 #define S_0286CC_POSITION_CENTROID(x) (((x) & 0x1) << 9)
371 #define G_0286CC_POSITION_CENTROID(x) (((x) >> 9) & 0x1)
372 #define C_0286CC_POSITION_CENTROID 0xFFFFFDFF
373 #define S_0286CC_POSITION_ADDR(x) (((x) & 0x1F) << 10)
374 #define G_0286CC_POSITION_ADDR(x) (((x) >> 10) & 0x1F)
375 #define C_0286CC_POSITION_ADDR 0xFFFF83FF
376 #define S_0286CC_PARAM_GEN(x) (((x) & 0xF) << 15)
377 #define G_0286CC_PARAM_GEN(x) (((x) >> 15) & 0xF)
378 #define C_0286CC_PARAM_GEN 0xFFF87FFF
379 #define S_0286CC_PARAM_GEN_ADDR(x) (((x) & 0x7F) << 19)
380 #define G_0286CC_PARAM_GEN_ADDR(x) (((x) >> 19) & 0x7F)
381 #define C_0286CC_PARAM_GEN_ADDR 0xFC07FFFF
382 #define S_0286CC_BARYC_SAMPLE_CNTL(x) (((x) & 0x3) << 26)
383 #define G_0286CC_BARYC_SAMPLE_CNTL(x) (((x) >> 26) & 0x3)
384 #define C_0286CC_BARYC_SAMPLE_CNTL 0xF3FFFFFF
385 #define S_0286CC_PERSP_GRADIENT_ENA(x) (((x) & 0x1) << 28)
386 #define G_0286CC_PERSP_GRADIENT_ENA(x) (((x) >> 28) & 0x1)
387 #define C_0286CC_PERSP_GRADIENT_ENA 0xEFFFFFFF
388 #define S_0286CC_LINEAR_GRADIENT_ENA(x) (((x) & 0x1) << 29)
389 #define G_0286CC_LINEAR_GRADIENT_ENA(x) (((x) >> 29) & 0x1)
390 #define C_0286CC_LINEAR_GRADIENT_ENA 0xDFFFFFFF
391 #define S_0286CC_POSITION_SAMPLE(x) (((x) & 0x1) << 30)
392 #define G_0286CC_POSITION_SAMPLE(x) (((x) >> 30) & 0x1)
393 #define C_0286CC_POSITION_SAMPLE 0xBFFFFFFF
394 #define S_0286CC_BARYC_AT_SAMPLE_ENA(x) (((x) & 0x1) << 31)
395 #define G_0286CC_BARYC_AT_SAMPLE_ENA(x) (((x) >> 31) & 0x1)
396 #define C_0286CC_BARYC_AT_SAMPLE_ENA 0x7FFFFFFF
397 #define R_0286D0_SPI_PS_IN_CONTROL_1 0x0286D0
398 #define S_0286D0_GEN_INDEX_PIX(x) (((x) & 0x1) << 0)
399 #define G_0286D0_GEN_INDEX_PIX(x) (((x) >> 0) & 0x1)
400 #define C_0286D0_GEN_INDEX_PIX 0xFFFFFFFE
401 #define S_0286D0_GEN_INDEX_PIX_ADDR(x) (((x) & 0x7F) << 1)
402 #define G_0286D0_GEN_INDEX_PIX_ADDR(x) (((x) >> 1) & 0x7F)
403 #define C_0286D0_GEN_INDEX_PIX_ADDR 0xFFFFFF01
404 #define S_0286D0_FRONT_FACE_ENA(x) (((x) & 0x1) << 8)
405 #define G_0286D0_FRONT_FACE_ENA(x) (((x) >> 8) & 0x1)
406 #define C_0286D0_FRONT_FACE_ENA 0xFFFFFEFF
407 #define S_0286D0_FRONT_FACE_CHAN(x) (((x) & 0x3) << 9)
408 #define G_0286D0_FRONT_FACE_CHAN(x) (((x) >> 9) & 0x3)
409 #define C_0286D0_FRONT_FACE_CHAN 0xFFFFF9FF
410 #define S_0286D0_FRONT_FACE_ALL_BITS(x) (((x) & 0x1) << 11)
411 #define G_0286D0_FRONT_FACE_ALL_BITS(x) (((x) >> 11) & 0x1)
412 #define C_0286D0_FRONT_FACE_ALL_BITS 0xFFFFF7FF
413 #define S_0286D0_FRONT_FACE_ADDR(x) (((x) & 0x1F) << 12)
414 #define G_0286D0_FRONT_FACE_ADDR(x) (((x) >> 12) & 0x1F)
415 #define C_0286D0_FRONT_FACE_ADDR 0xFFFE0FFF
416 #define S_0286D0_FOG_ADDR(x) (((x) & 0x7F) << 17)
417 #define G_0286D0_FOG_ADDR(x) (((x) >> 17) & 0x7F)
418 #define C_0286D0_FOG_ADDR 0xFF01FFFF
419 #define S_0286D0_FIXED_PT_POSITION_ENA(x) (((x) & 0x1) << 24)
420 #define G_0286D0_FIXED_PT_POSITION_ENA(x) (((x) >> 24) & 0x1)
421 #define C_0286D0_FIXED_PT_POSITION_ENA 0xFEFFFFFF
422 #define S_0286D0_FIXED_PT_POSITION_ADDR(x) (((x) & 0x1F) << 25)
423 #define G_0286D0_FIXED_PT_POSITION_ADDR(x) (((x) >> 25) & 0x1F)
424 #define C_0286D0_FIXED_PT_POSITION_ADDR 0xC1FFFFFF
425 #define R_0286C4_SPI_VS_OUT_CONFIG 0x0286C4
426 #define S_0286C4_VS_PER_COMPONENT(x) (((x) & 0x1) << 0)
427 #define G_0286C4_VS_PER_COMPONENT(x) (((x) >> 0) & 0x1)
428 #define C_0286C4_VS_PER_COMPONENT 0xFFFFFFFE
429 #define S_0286C4_VS_EXPORT_COUNT(x) (((x) & 0x1F) << 1)
430 #define G_0286C4_VS_EXPORT_COUNT(x) (((x) >> 1) & 0x1F)
431 #define C_0286C4_VS_EXPORT_COUNT 0xFFFFFFC1
432 #define S_0286C4_VS_EXPORTS_FOG(x) (((x) & 0x1) << 8)
433 #define G_0286C4_VS_EXPORTS_FOG(x) (((x) >> 8) & 0x1)
434 #define C_0286C4_VS_EXPORTS_FOG 0xFFFFFEFF
435 #define S_0286C4_VS_OUT_FOG_VEC_ADDR(x) (((x) & 0x1F) << 9)
436 #define G_0286C4_VS_OUT_FOG_VEC_ADDR(x) (((x) >> 9) & 0x1F)
437 #define C_0286C4_VS_OUT_FOG_VEC_ADDR 0xFFFFC1FF
438 #define R_028240_PA_SC_GENERIC_SCISSOR_TL 0x028240
439 #define S_028240_TL_X(x) (((x) & 0x3FFF) << 0)
440 #define G_028240_TL_X(x) (((x) >> 0) & 0x3FFF)
441 #define C_028240_TL_X 0xFFFFC000
442 #define S_028240_TL_Y(x) (((x) & 0x3FFF) << 16)
443 #define G_028240_TL_Y(x) (((x) >> 16) & 0x3FFF)
444 #define C_028240_TL_Y 0xC000FFFF
445 #define S_028240_WINDOW_OFFSET_DISABLE(x) (((x) & 0x1) << 31)
446 #define G_028240_WINDOW_OFFSET_DISABLE(x) (((x) >> 31) & 0x1)
447 #define C_028240_WINDOW_OFFSET_DISABLE 0x7FFFFFFF
448 #define R_028244_PA_SC_GENERIC_SCISSOR_BR 0x028244
449 #define S_028244_BR_X(x) (((x) & 0x3FFF) << 0)
450 #define G_028244_BR_X(x) (((x) >> 0) & 0x3FFF)
451 #define C_028244_BR_X 0xFFFFC000
452 #define S_028244_BR_Y(x) (((x) & 0x3FFF) << 16)
453 #define G_028244_BR_Y(x) (((x) >> 16) & 0x3FFF)
454 #define C_028244_BR_Y 0xC000FFFF
455 #define R_028030_PA_SC_SCREEN_SCISSOR_TL 0x028030
456 #define S_028030_TL_X(x) (((x) & 0x7FFF) << 0)
457 #define G_028030_TL_X(x) (((x) >> 0) & 0x7FFF)
458 #define C_028030_TL_X 0xFFFF8000
459 #define S_028030_TL_Y(x) (((x) & 0x7FFF) << 16)
460 #define G_028030_TL_Y(x) (((x) >> 16) & 0x7FFF)
461 #define C_028030_TL_Y 0x8000FFFF
462 #define R_028034_PA_SC_SCREEN_SCISSOR_BR 0x028034
463 #define S_028034_BR_X(x) (((x) & 0x7FFF) << 0)
464 #define G_028034_BR_X(x) (((x) >> 0) & 0x7FFF)
465 #define C_028034_BR_X 0xFFFF8000
466 #define S_028034_BR_Y(x) (((x) & 0x7FFF) << 16)
467 #define G_028034_BR_Y(x) (((x) >> 16) & 0x7FFF)
468 #define C_028034_BR_Y 0x8000FFFF
469 #define R_028204_PA_SC_WINDOW_SCISSOR_TL 0x028204
470 #define S_028204_TL_X(x) (((x) & 0x3FFF) << 0)
471 #define G_028204_TL_X(x) (((x) >> 0) & 0x3FFF)
472 #define C_028204_TL_X 0xFFFFC000
473 #define S_028204_TL_Y(x) (((x) & 0x3FFF) << 16)
474 #define G_028204_TL_Y(x) (((x) >> 16) & 0x3FFF)
475 #define C_028204_TL_Y 0xC000FFFF
476 #define S_028204_WINDOW_OFFSET_DISABLE(x) (((x) & 0x1) << 31)
477 #define G_028204_WINDOW_OFFSET_DISABLE(x) (((x) >> 31) & 0x1)
478 #define C_028204_WINDOW_OFFSET_DISABLE 0x7FFFFFFF
479 #define R_028208_PA_SC_WINDOW_SCISSOR_BR 0x028208
480 #define S_028208_BR_X(x) (((x) & 0x3FFF) << 0)
481 #define G_028208_BR_X(x) (((x) >> 0) & 0x3FFF)
482 #define C_028208_BR_X 0xFFFFC000
483 #define S_028208_BR_Y(x) (((x) & 0x3FFF) << 16)
484 #define G_028208_BR_Y(x) (((x) >> 16) & 0x3FFF)
485 #define C_028208_BR_Y 0xC000FFFF
486 #define R_0287F0_VGT_DRAW_INITIATOR 0x0287F0
487 #define S_0287F0_SOURCE_SELECT(x) (((x) & 0x3) << 0)
488 #define G_0287F0_SOURCE_SELECT(x) (((x) >> 0) & 0x3)
489 #define C_0287F0_SOURCE_SELECT 0xFFFFFFFC
490 #define S_0287F0_MAJOR_MODE(x) (((x) & 0x3) << 2)
491 #define G_0287F0_MAJOR_MODE(x) (((x) >> 2) & 0x3)
492 #define C_0287F0_MAJOR_MODE 0xFFFFFFF3
493 #define S_0287F0_SPRITE_EN(x) (((x) & 0x1) << 4)
494 #define G_0287F0_SPRITE_EN(x) (((x) >> 4) & 0x1)
495 #define C_0287F0_SPRITE_EN 0xFFFFFFEF
496 #define S_0287F0_NOT_EOP(x) (((x) & 0x1) << 5)
497 #define G_0287F0_NOT_EOP(x) (((x) >> 5) & 0x1)
498 #define C_0287F0_NOT_EOP 0xFFFFFFDF
499 #define S_0287F0_USE_OPAQUE(x) (((x) & 0x1) << 6)
500 #define G_0287F0_USE_OPAQUE(x) (((x) >> 6) & 0x1)
501 #define C_0287F0_USE_OPAQUE 0xFFFFFFBF
502 #define R_038008_SQ_VTX_CONSTANT_WORD2_0 0x038008
503 #define S_038008_BASE_ADDRESS_HI(x) (((x) & 0xFF) << 0)
504 #define G_038008_BASE_ADDRESS_HI(x) (((x) >> 0) & 0xFF)
505 #define C_038008_BASE_ADDRESS_HI 0xFFFFFF00
506 #define S_038008_STRIDE(x) (((x) & 0x7FF) << 8)
507 #define G_038008_STRIDE(x) (((x) >> 8) & 0x7FF)
508 #define C_038008_STRIDE 0xFFF800FF
509 #define S_038008_CLAMP_X(x) (((x) & 0x1) << 19)
510 #define G_038008_CLAMP_X(x) (((x) >> 19) & 0x1)
511 #define C_038008_CLAMP_X 0xFFF7FFFF
512 #define S_038008_DATA_FORMAT(x) (((x) & 0x3F) << 20)
513 #define G_038008_DATA_FORMAT(x) (((x) >> 20) & 0x3F)
514 #define C_038008_DATA_FORMAT 0xFC0FFFFF
515 #define V_038008_COLOR_INVALID 0x00000000
516 #define V_038008_COLOR_8 0x00000001
517 #define V_038008_COLOR_4_4 0x00000002
518 #define V_038008_COLOR_3_3_2 0x00000003
519 #define V_038008_COLOR_16 0x00000005
520 #define V_038008_COLOR_16_FLOAT 0x00000006
521 #define V_038008_COLOR_8_8 0x00000007
522 #define V_038008_COLOR_5_6_5 0x00000008
523 #define V_038008_COLOR_6_5_5 0x00000009
524 #define V_038008_COLOR_1_5_5_5 0x0000000A
525 #define V_038008_COLOR_4_4_4_4 0x0000000B
526 #define V_038008_COLOR_5_5_5_1 0x0000000C
527 #define V_038008_COLOR_32 0x0000000D
528 #define V_038008_COLOR_32_FLOAT 0x0000000E
529 #define V_038008_COLOR_16_16 0x0000000F
530 #define V_038008_COLOR_16_16_FLOAT 0x00000010
531 #define V_038008_COLOR_8_24 0x00000011
532 #define V_038008_COLOR_8_24_FLOAT 0x00000012
533 #define V_038008_COLOR_24_8 0x00000013
534 #define V_038008_COLOR_24_8_FLOAT 0x00000014
535 #define V_038008_COLOR_10_11_11 0x00000015
536 #define V_038008_COLOR_10_11_11_FLOAT 0x00000016
537 #define V_038008_COLOR_11_11_10 0x00000017
538 #define V_038008_COLOR_11_11_10_FLOAT 0x00000018
539 #define V_038008_COLOR_2_10_10_10 0x00000019
540 #define V_038008_COLOR_8_8_8_8 0x0000001A
541 #define V_038008_COLOR_10_10_10_2 0x0000001B
542 #define V_038008_COLOR_X24_8_32_FLOAT 0x0000001C
543 #define V_038008_COLOR_32_32 0x0000001D
544 #define V_038008_COLOR_32_32_FLOAT 0x0000001E
545 #define V_038008_COLOR_16_16_16_16 0x0000001F
546 #define V_038008_COLOR_16_16_16_16_FLOAT 0x00000020
547 #define V_038008_COLOR_32_32_32_32 0x00000022
548 #define V_038008_COLOR_32_32_32_32_FLOAT 0x00000023
549 #define S_038008_NUM_FORMAT_ALL(x) (((x) & 0x3) << 26)
550 #define G_038008_NUM_FORMAT_ALL(x) (((x) >> 26) & 0x3)
551 #define C_038008_NUM_FORMAT_ALL 0xF3FFFFFF
552 #define S_038008_FORMAT_COMP_ALL(x) (((x) & 0x1) << 28)
553 #define G_038008_FORMAT_COMP_ALL(x) (((x) >> 28) & 0x1)
554 #define C_038008_FORMAT_COMP_ALL 0xEFFFFFFF
555 #define S_038008_SRF_MODE_ALL(x) (((x) & 0x1) << 29)
556 #define G_038008_SRF_MODE_ALL(x) (((x) >> 29) & 0x1)
557 #define C_038008_SRF_MODE_ALL 0xDFFFFFFF
558 #define S_038008_ENDIAN_SWAP(x) (((x) & 0x3) << 30)
559 #define G_038008_ENDIAN_SWAP(x) (((x) >> 30) & 0x3)
560 #define C_038008_ENDIAN_SWAP 0x3FFFFFFF
561 #define R_008958_VGT_PRIMITIVE_TYPE 0x008958
562 #define S_008958_PRIM_TYPE(x) (((x) & 0x3F) << 0)
563 #define G_008958_PRIM_TYPE(x) (((x) >> 0) & 0x3F)
564 #define C_008958_PRIM_TYPE 0xFFFFFFC0
565 #define V_008958_DI_PT_NONE 0x00000000
566 #define V_008958_DI_PT_POINTLIST 0x00000001
567 #define V_008958_DI_PT_LINELIST 0x00000002
568 #define V_008958_DI_PT_LINESTRIP 0x00000003
569 #define V_008958_DI_PT_TRILIST 0x00000004
570 #define V_008958_DI_PT_TRIFAN 0x00000005
571 #define V_008958_DI_PT_TRISTRIP 0x00000006
572 #define V_008958_DI_PT_UNUSED_0 0x00000007
573 #define V_008958_DI_PT_UNUSED_1 0x00000008
574 #define V_008958_DI_PT_UNUSED_2 0x00000009
575 #define V_008958_DI_PT_LINELIST_ADJ 0x0000000A
576 #define V_008958_DI_PT_LINESTRIP_ADJ 0x0000000B
577 #define V_008958_DI_PT_TRILIST_ADJ 0x0000000C
578 #define V_008958_DI_PT_TRISTRIP_ADJ 0x0000000D
579 #define V_008958_DI_PT_UNUSED_3 0x0000000E
580 #define V_008958_DI_PT_UNUSED_4 0x0000000F
581 #define V_008958_DI_PT_TRI_WITH_WFLAGS 0x00000010
582 #define V_008958_DI_PT_RECTLIST 0x00000011
583 #define V_008958_DI_PT_LINELOOP 0x00000012
584 #define V_008958_DI_PT_QUADLIST 0x00000013
585 #define V_008958_DI_PT_QUADSTRIP 0x00000014
586 #define V_008958_DI_PT_POLYGON 0x00000015
587 #define V_008958_DI_PT_2D_COPY_RECT_LIST_V0 0x00000016
588 #define V_008958_DI_PT_2D_COPY_RECT_LIST_V1 0x00000017
589 #define V_008958_DI_PT_2D_COPY_RECT_LIST_V2 0x00000018
590 #define V_008958_DI_PT_2D_COPY_RECT_LIST_V3 0x00000019
591 #define V_008958_DI_PT_2D_FILL_RECT_LIST 0x0000001A
592 #define V_008958_DI_PT_2D_LINE_STRIP 0x0000001B
593 #define V_008958_DI_PT_2D_TRI_STRIP 0x0000001C
594 #define R_028868_SQ_PGM_RESOURCES_VS 0x028868
595 #define S_028868_NUM_GPRS(x) (((x) & 0xFF) << 0)
596 #define G_028868_NUM_GPRS(x) (((x) >> 0) & 0xFF)
597 #define C_028868_NUM_GPRS 0xFFFFFF00
598 #define S_028868_STACK_SIZE(x) (((x) & 0xFF) << 8)
599 #define G_028868_STACK_SIZE(x) (((x) >> 8) & 0xFF)
600 #define C_028868_STACK_SIZE 0xFFFF00FF
601 #define S_028868_DX10_CLAMP(x) (((x) & 0x1) << 21)
602 #define G_028868_DX10_CLAMP(x) (((x) >> 21) & 0x1)
603 #define C_028868_DX10_CLAMP 0xFFDFFFFF
604 #define S_028868_FETCH_CACHE_LINES(x) (((x) & 0x7) << 24)
605 #define G_028868_FETCH_CACHE_LINES(x) (((x) >> 24) & 0x7)
606 #define C_028868_FETCH_CACHE_LINES 0xF8FFFFFF
607 #define S_028868_UNCACHED_FIRST_INST(x) (((x) & 0x1) << 28)
608 #define G_028868_UNCACHED_FIRST_INST(x) (((x) >> 28) & 0x1)
609 #define C_028868_UNCACHED_FIRST_INST 0xEFFFFFFF
610 #define R_028850_SQ_PGM_RESOURCES_PS 0x028850
611 #define S_028850_NUM_GPRS(x) (((x) & 0xFF) << 0)
612 #define G_028850_NUM_GPRS(x) (((x) >> 0) & 0xFF)
613 #define C_028850_NUM_GPRS 0xFFFFFF00
614 #define S_028850_STACK_SIZE(x) (((x) & 0xFF) << 8)
615 #define G_028850_STACK_SIZE(x) (((x) >> 8) & 0xFF)
616 #define C_028850_STACK_SIZE 0xFFFF00FF
617 #define S_028850_DX10_CLAMP(x) (((x) & 0x1) << 21)
618 #define G_028850_DX10_CLAMP(x) (((x) >> 21) & 0x1)
619 #define C_028850_DX10_CLAMP 0xFFDFFFFF
620 #define S_028850_FETCH_CACHE_LINES(x) (((x) & 0x7) << 24)
621 #define G_028850_FETCH_CACHE_LINES(x) (((x) >> 24) & 0x7)
622 #define C_028850_FETCH_CACHE_LINES 0xF8FFFFFF
623 #define S_028850_UNCACHED_FIRST_INST(x) (((x) & 0x1) << 28)
624 #define G_028850_UNCACHED_FIRST_INST(x) (((x) >> 28) & 0x1)
625 #define C_028850_UNCACHED_FIRST_INST 0xEFFFFFFF
626 #define S_028850_CLAMP_CONSTS(x) (((x) & 0x1) << 31)
627 #define G_028850_CLAMP_CONSTS(x) (((x) >> 31) & 0x1)
628 #define C_028850_CLAMP_CONSTS 0x7FFFFFFF
629 #define R_028644_SPI_PS_INPUT_CNTL_0 0x028644
630 #define S_028644_SEMANTIC(x) (((x) & 0xFF) << 0)
631 #define G_028644_SEMANTIC(x) (((x) >> 0) & 0xFF)
632 #define C_028644_SEMANTIC 0xFFFFFF00
633 #define S_028644_DEFAULT_VAL(x) (((x) & 0x3) << 8)
634 #define G_028644_DEFAULT_VAL(x) (((x) >> 8) & 0x3)
635 #define C_028644_DEFAULT_VAL 0xFFFFFCFF
636 #define S_028644_FLAT_SHADE(x) (((x) & 0x1) << 10)
637 #define G_028644_FLAT_SHADE(x) (((x) >> 10) & 0x1)
638 #define C_028644_FLAT_SHADE 0xFFFFFBFF
639 #define S_028644_SEL_CENTROID(x) (((x) & 0x1) << 11)
640 #define G_028644_SEL_CENTROID(x) (((x) >> 11) & 0x1)
641 #define C_028644_SEL_CENTROID 0xFFFFF7FF
642 #define S_028644_SEL_LINEAR(x) (((x) & 0x1) << 12)
643 #define G_028644_SEL_LINEAR(x) (((x) >> 12) & 0x1)
644 #define C_028644_SEL_LINEAR 0xFFFFEFFF
645 #define S_028644_CYL_WRAP(x) (((x) & 0xF) << 13)
646 #define G_028644_CYL_WRAP(x) (((x) >> 13) & 0xF)
647 #define C_028644_CYL_WRAP 0xFFFE1FFF
648 #define S_028644_PT_SPRITE_TEX(x) (((x) & 0x1) << 17)
649 #define G_028644_PT_SPRITE_TEX(x) (((x) >> 17) & 0x1)
650 #define C_028644_PT_SPRITE_TEX 0xFFFDFFFF
651 #define S_028644_SEL_SAMPLE(x) (((x) & 0x1) << 18)
652 #define G_028644_SEL_SAMPLE(x) (((x) >> 18) & 0x1)
653 #define C_028644_SEL_SAMPLE 0xFFFBFFFF
654 #define R_0286D4_SPI_INTERP_CONTROL_0 0x0286D4
655 #define S_0286D4_FLAT_SHADE_ENA(x) (((x) & 0x1) << 0)
656 #define G_0286D4_FLAT_SHADE_ENA(x) (((x) >> 0) & 0x1)
657 #define C_0286D4_FLAT_SHADE_ENA 0xFFFFFFFE
658 #define S_0286D4_PNT_SPRITE_ENA(x) (((x) & 0x1) << 1)
659 #define G_0286D4_PNT_SPRITE_ENA(x) (((x) >> 1) & 0x1)
660 #define C_0286D4_PNT_SPRITE_ENA 0xFFFFFFFD
661 #define S_0286D4_PNT_SPRITE_OVRD_X(x) (((x) & 0x7) << 2)
662 #define G_0286D4_PNT_SPRITE_OVRD_X(x) (((x) >> 2) & 0x7)
663 #define C_0286D4_PNT_SPRITE_OVRD_X 0xFFFFFFE3
664 #define S_0286D4_PNT_SPRITE_OVRD_Y(x) (((x) & 0x7) << 5)
665 #define G_0286D4_PNT_SPRITE_OVRD_Y(x) (((x) >> 5) & 0x7)
666 #define C_0286D4_PNT_SPRITE_OVRD_Y 0xFFFFFF1F
667 #define S_0286D4_PNT_SPRITE_OVRD_Z(x) (((x) & 0x7) << 8)
668 #define G_0286D4_PNT_SPRITE_OVRD_Z(x) (((x) >> 8) & 0x7)
669 #define C_0286D4_PNT_SPRITE_OVRD_Z 0xFFFFF8FF
670 #define S_0286D4_PNT_SPRITE_OVRD_W(x) (((x) & 0x7) << 11)
671 #define G_0286D4_PNT_SPRITE_OVRD_W(x) (((x) >> 11) & 0x7)
672 #define C_0286D4_PNT_SPRITE_OVRD_W 0xFFFFC7FF
673 #define S_0286D4_PNT_SPRITE_TOP_1(x) (((x) & 0x1) << 14)
674 #define G_0286D4_PNT_SPRITE_TOP_1(x) (((x) >> 14) & 0x1)
675 #define C_0286D4_PNT_SPRITE_TOP_1 0xFFFFBFFF
676
677 #endif