2 Copyright (c) 2002, Thomas Kurschel
15 #define RADEON_PP_BORDER_COLOR_0 0x1d40
16 #define RADEON_PP_BORDER_COLOR_1 0x1d44
17 #define RADEON_PP_BORDER_COLOR_2 0x1d48
18 #define RADEON_PP_CNTL 0x1c38
19 # define RADEON_STIPPLE_ENABLE (1 << 0)
20 # define RADEON_SCISSOR_ENABLE (1 << 1)
21 # define RADEON_PATTERN_ENABLE (1 << 2)
22 # define RADEON_SHADOW_ENABLE (1 << 3)
23 # define RADEON_TEX_ENABLE_MASK (0xf << 4)
24 # define RADEON_TEX_0_ENABLE (1 << 4)
25 # define RADEON_TEX_1_ENABLE (1 << 5)
26 # define RADEON_TEX_2_ENABLE (1 << 6)
27 # define RADEON_TEX_3_ENABLE (1 << 7)
28 # define RADEON_TEX_BLEND_ENABLE_MASK (0xf << 12)
29 # define RADEON_TEX_BLEND_0_ENABLE (1 << 12)
30 # define RADEON_TEX_BLEND_1_ENABLE (1 << 13)
31 # define RADEON_TEX_BLEND_2_ENABLE (1 << 14)
32 # define RADEON_TEX_BLEND_3_ENABLE (1 << 15)
33 # define RADEON_PLANAR_YUV_ENABLE (1 << 20)
34 # define RADEON_SPECULAR_ENABLE (1 << 21)
35 # define RADEON_FOG_ENABLE (1 << 22)
36 # define RADEON_ALPHA_TEST_ENABLE (1 << 23)
37 # define RADEON_ANTI_ALIAS_NONE (0 << 24)
38 # define RADEON_ANTI_ALIAS_LINE (1 << 24)
39 # define RADEON_ANTI_ALIAS_POLY (2 << 24)
40 # define RADEON_ANTI_ALIAS_LINE_POLY (3 << 24)
41 # define RADEON_BUMP_MAP_ENABLE (1 << 26)
42 # define RADEON_BUMPED_MAP_T0 (0 << 27)
43 # define RADEON_BUMPED_MAP_T1 (1 << 27)
44 # define RADEON_BUMPED_MAP_T2 (2 << 27)
45 # define RADEON_TEX_3D_ENABLE_0 (1 << 29)
46 # define RADEON_TEX_3D_ENABLE_1 (1 << 30)
47 # define RADEON_MC_ENABLE (1 << 31)
48 #define RADEON_PP_FOG_COLOR 0x1c18
49 # define RADEON_FOG_COLOR_MASK 0x00ffffff
50 # define RADEON_FOG_VERTEX (0 << 24)
51 # define RADEON_FOG_TABLE (1 << 24)
52 # define RADEON_FOG_USE_DEPTH (0 << 25)
53 # define RADEON_FOG_USE_DIFFUSE_ALPHA (2 << 25)
54 # define RADEON_FOG_USE_SPEC_ALPHA (3 << 25)
55 #define RADEON_PP_LUM_MATRIX 0x1d00
56 #define RADEON_PP_MISC 0x1c14
57 # define RADEON_REF_ALPHA_MASK 0x000000ff
58 # define RADEON_ALPHA_TEST_FAIL (0 << 8)
59 # define RADEON_ALPHA_TEST_LESS (1 << 8)
60 # define RADEON_ALPHA_TEST_LEQUAL (2 << 8)
61 # define RADEON_ALPHA_TEST_EQUAL (3 << 8)
62 # define RADEON_ALPHA_TEST_GEQUAL (4 << 8)
63 # define RADEON_ALPHA_TEST_GREATER (5 << 8)
64 # define RADEON_ALPHA_TEST_NEQUAL (6 << 8)
65 # define RADEON_ALPHA_TEST_PASS (7 << 8)
66 # define RADEON_ALPHA_TEST_OP_MASK (7 << 8)
67 # define RADEON_CHROMA_FUNC_FAIL (0 << 16)
68 # define RADEON_CHROMA_FUNC_PASS (1 << 16)
69 # define RADEON_CHROMA_FUNC_NEQUAL (2 << 16)
70 # define RADEON_CHROMA_FUNC_EQUAL (3 << 16)
71 # define RADEON_CHROMA_KEY_NEAREST (0 << 18)
72 # define RADEON_CHROMA_KEY_ZERO (1 << 18)
73 # define RADEON_SHADOW_ID_AUTO_INC (1 << 20)
74 # define RADEON_SHADOW_FUNC_EQUAL (0 << 21)
75 # define RADEON_SHADOW_FUNC_NEQUAL (1 << 21)
76 # define RADEON_SHADOW_PASS_1 (0 << 22)
77 # define RADEON_SHADOW_PASS_2 (1 << 22)
78 # define RADEON_RIGHT_HAND_CUBE_D3D (0 << 24)
79 # define RADEON_RIGHT_HAND_CUBE_OGL (1 << 24)
80 #define RADEON_PP_ROT_MATRIX_0 0x1d58
81 #define RADEON_PP_ROT_MATRIX_1 0x1d5c
82 #define RADEON_PP_TXFILTER_0 0x1c54
83 #define RADEON_PP_TXFILTER_1 0x1c6c
84 #define RADEON_PP_TXFILTER_2 0x1c84
85 # define RADEON_MAG_FILTER_NEAREST (0 << 0)
86 # define RADEON_MAG_FILTER_LINEAR (1 << 0)
87 # define RADEON_MAG_FILTER_MASK (1 << 0)
88 # define RADEON_MIN_FILTER_NEAREST (0 << 1)
89 # define RADEON_MIN_FILTER_LINEAR (1 << 1)
90 # define RADEON_MIN_FILTER_NEAREST_MIP_NEAREST (2 << 1)
91 # define RADEON_MIN_FILTER_NEAREST_MIP_LINEAR (3 << 1)
92 # define RADEON_MIN_FILTER_LINEAR_MIP_NEAREST (6 << 1)
93 # define RADEON_MIN_FILTER_LINEAR_MIP_LINEAR (7 << 1)
94 # define RADEON_MIN_FILTER_ANISO_NEAREST (8 << 1)
95 # define RADEON_MIN_FILTER_ANISO_LINEAR (9 << 1)
96 # define RADEON_MIN_FILTER_ANISO_NEAREST_MIP_NEAREST (10 << 1)
97 # define RADEON_MIN_FILTER_ANISO_NEAREST_MIP_LINEAR (11 << 1)
98 # define RADEON_MIN_FILTER_MASK (15 << 1)
99 # define RADEON_LOD_BIAS_MASK (0xffff << 8)
100 # define RADEON_LOD_BIAS_SHIFT 8
101 # define RADEON_MAX_MIP_LEVEL_MASK (0x0f << 16)
102 # define RADEON_MAX_MIP_LEVEL_SHIFT 16
103 # define RADEON_WRAPEN_S (1 << 22)
104 # define RADEON_CLAMP_S_WRAP (0 << 23)
105 # define RADEON_CLAMP_S_MIRROR (1 << 23)
106 # define RADEON_CLAMP_S_CLAMP_LAST (2 << 23)
107 # define RADEON_CLAMP_S_MIRROR_CLAMP_LAST (3 << 23)
108 # define RADEON_CLAMP_S_CLAMP_BORDER (4 << 23)
109 # define RADEON_CLAMP_S_MIRROR_CLAMP_BORDER (5 << 23)
110 # define RADEON_CLAMP_S_MASK (7 << 23)
111 # define RADEON_WRAPEN_T (1 << 26)
112 # define RADEON_CLAMP_T_WRAP (0 << 27)
113 # define RADEON_CLAMP_T_MIRROR (1 << 27)
114 # define RADEON_CLAMP_T_CLAMP_LAST (2 << 27)
115 # define RADEON_CLAMP_T_MIRROR_CLAMP_LAST (3 << 27)
116 # define RADEON_CLAMP_T_CLAMP_BORDER (4 << 27)
117 # define RADEON_CLAMP_T_MIRROR_CLAMP_BORDER (5 << 27)
118 # define RADEON_CLAMP_T_MASK (7 << 27)
119 # define RADEON_BORDER_MODE_OGL (0 << 31)
120 # define RADEON_BORDER_MODE_D3D (1 << 31)
121 #define RADEON_PP_TXFORMAT_0 0x1c58
122 #define RADEON_PP_TXFORMAT_1 0x1c70
123 #define RADEON_PP_TXFORMAT_2 0x1c88
124 # define RADEON_TXFORMAT_I8 (0 << 0)
125 # define RADEON_TXFORMAT_AI88 (1 << 0)
126 # define RADEON_TXFORMAT_RGB332 (2 << 0)
127 # define RADEON_TXFORMAT_ARGB1555 (3 << 0)
128 # define RADEON_TXFORMAT_RGB565 (4 << 0)
129 # define RADEON_TXFORMAT_ARGB4444 (5 << 0)
130 # define RADEON_TXFORMAT_ARGB8888 (6 << 0)
131 # define RADEON_TXFORMAT_RGBA8888 (7 << 0)
132 # define RADEON_TXFORMAT_Y8 (8 << 0)
133 # define RADEON_TXFORMAT_FORMAT_MASK (31 << 0)
134 # define RADEON_TXFORMAT_FORMAT_SHIFT 0
135 # define RADEON_TXFORMAT_APPLE_YUV_MODE (1 << 5)
136 # define RADEON_TXFORMAT_ALPHA_IN_MAP (1 << 6)
137 # define RADEON_TXFORMAT_NON_POWER2 (1 << 7)
138 # define RADEON_TXFORMAT_WIDTH_MASK (15 << 8)
139 # define RADEON_TXFORMAT_WIDTH_SHIFT 8
140 # define RADEON_TXFORMAT_HEIGHT_MASK (15 << 12)
141 # define RADEON_TXFORMAT_HEIGHT_SHIFT 12
142 # define RADEON_TXFORMAT_ST_ROUTE_STQ0 (0 << 24)
143 # define RADEON_TXFORMAT_ST_ROUTE_MASK (3 << 24)
144 # define RADEON_TXFORMAT_ST_ROUTE_STQ1 (1 << 24)
145 # define RADEON_TXFORMAT_ST_ROUTE_STQ2 (2 << 24)
146 # define RADEON_TXFORMAT_ENDIAN_NO_SWAP (0 << 26)
147 # define RADEON_TXFORMAT_ENDIAN_16BPP_SWAP (1 << 26)
148 # define RADEON_TXFORMAT_ENDIAN_32BPP_SWAP (2 << 26)
149 # define RADEON_TXFORMAT_ENDIAN_HALFDW_SWAP (3 << 26)
150 # define RADEON_TXFORMAT_ALPHA_MASK_ENABLE (1 << 28)
151 # define RADEON_TXFORMAT_CHROMA_KEY_ENABLE (1 << 29)
152 # define RADEON_TXFORMAT_CUBIC_MAP_ENABLE (1 << 30)
153 # define RADEON_TXFORMAT_PERSPECTIVE_ENABLE (1 << 31)
154 #define RADEON_PP_TXOFFSET_0 0x1c5c
155 #define RADEON_PP_TXOFFSET_1 0x1c74
156 #define RADEON_PP_TXOFFSET_2 0x1c8c
157 # define RADEON_TXO_ENDIAN_NO_SWAP (0 << 0)
158 # define RADEON_TXO_ENDIAN_BYTE_SWAP (1 << 0)
159 # define RADEON_TXO_ENDIAN_WORD_SWAP (2 << 0)
160 # define RADEON_TXO_ENDIAN_HALFDW_SWAP (3 << 0)
161 # define RADEON_TXO_MACRO_LINEAR (0 << 2)
162 # define RADEON_TXO_MACRO_TILE (1 << 2)
163 # define RADEON_TXO_MICRO_LINEAR (0 << 3)
164 # define RADEON_TXO_MICRO_TILE_X2 (1 << 3)
165 # define RADEON_TXO_MICRO_TILE_OPT (2 << 3)
166 # define RADEON_TXO_OFFSET_MASK 0xffffffe0
167 # define RADEON_TXO_OFFSET_SHIFT 5
168 #define RADEON_PP_TXCBLEND_0 0x1c60
169 #define RADEON_PP_TXCBLEND_1 0x1c78
170 #define RADEON_PP_TXCBLEND_2 0x1c90
171 # define RADEON_COLOR_ARG_A_SHIFT 0
172 # define RADEON_COLOR_ARG_A_MASK (0x1f << 0)
173 # define RADEON_COLOR_ARG_A_ZERO (0 << 0)
174 # define RADEON_COLOR_ARG_A_CURRENT_COLOR (2 << 0)
175 # define RADEON_COLOR_ARG_A_CURRENT_ALPHA (3 << 0)
176 # define RADEON_COLOR_ARG_A_DIFFUSE_COLOR (4 << 0)
177 # define RADEON_COLOR_ARG_A_DIFFUSE_ALPHA (5 << 0)
178 # define RADEON_COLOR_ARG_A_SPECULAR_COLOR (6 << 0)
179 # define RADEON_COLOR_ARG_A_SPECULAR_ALPHA (7 << 0)
180 # define RADEON_COLOR_ARG_A_TFACTOR_COLOR (8 << 0)
181 # define RADEON_COLOR_ARG_A_TFACTOR_ALPHA (9 << 0)
182 # define RADEON_COLOR_ARG_A_T0_COLOR (10 << 0)
183 # define RADEON_COLOR_ARG_A_T0_ALPHA (11 << 0)
184 # define RADEON_COLOR_ARG_A_T1_COLOR (12 << 0)
185 # define RADEON_COLOR_ARG_A_T1_ALPHA (13 << 0)
186 # define RADEON_COLOR_ARG_A_T2_COLOR (14 << 0)
187 # define RADEON_COLOR_ARG_A_T2_ALPHA (15 << 0)
188 # define RADEON_COLOR_ARG_A_T3_COLOR (16 << 0)
189 # define RADEON_COLOR_ARG_A_T3_ALPHA (17 << 0)
190 # define RADEON_COLOR_ARG_B_SHIFT 5
191 # define RADEON_COLOR_ARG_B_MASK (0x1f << 5)
192 # define RADEON_COLOR_ARG_B_ZERO (0 << 5)
193 # define RADEON_COLOR_ARG_B_CURRENT_COLOR (2 << 5)
194 # define RADEON_COLOR_ARG_B_CURRENT_ALPHA (3 << 5)
195 # define RADEON_COLOR_ARG_B_DIFFUSE_COLOR (4 << 5)
196 # define RADEON_COLOR_ARG_B_DIFFUSE_ALPHA (5 << 5)
197 # define RADEON_COLOR_ARG_B_SPECULAR_COLOR (6 << 5)
198 # define RADEON_COLOR_ARG_B_SPECULAR_ALPHA (7 << 5)
199 # define RADEON_COLOR_ARG_B_TFACTOR_COLOR (8 << 5)
200 # define RADEON_COLOR_ARG_B_TFACTOR_ALPHA (9 << 5)
201 # define RADEON_COLOR_ARG_B_T0_COLOR (10 << 5)
202 # define RADEON_COLOR_ARG_B_T0_ALPHA (11 << 5)
203 # define RADEON_COLOR_ARG_B_T1_COLOR (12 << 5)
204 # define RADEON_COLOR_ARG_B_T1_ALPHA (13 << 5)
205 # define RADEON_COLOR_ARG_B_T2_COLOR (14 << 5)
206 # define RADEON_COLOR_ARG_B_T2_ALPHA (15 << 5)
207 # define RADEON_COLOR_ARG_B_T3_COLOR (16 << 5)
208 # define RADEON_COLOR_ARG_B_T3_ALPHA (17 << 5)
209 # define RADEON_COLOR_ARG_C_SHIFT 10
210 # define RADEON_COLOR_ARG_C_MASK (0x1f << 10)
211 # define RADEON_COLOR_ARG_C_ZERO (0 << 10)
212 # define RADEON_COLOR_ARG_C_CURRENT_COLOR (2 << 10)
213 # define RADEON_COLOR_ARG_C_CURRENT_ALPHA (3 << 10)
214 # define RADEON_COLOR_ARG_C_DIFFUSE_COLOR (4 << 10)
215 # define RADEON_COLOR_ARG_C_DIFFUSE_ALPHA (5 << 10)
216 # define RADEON_COLOR_ARG_C_SPECULAR_COLOR (6 << 10)
217 # define RADEON_COLOR_ARG_C_SPECULAR_ALPHA (7 << 10)
218 # define RADEON_COLOR_ARG_C_TFACTOR_COLOR (8 << 10)
219 # define RADEON_COLOR_ARG_C_TFACTOR_ALPHA (9 << 10)
220 # define RADEON_COLOR_ARG_C_T0_COLOR (10 << 10)
221 # define RADEON_COLOR_ARG_C_T0_ALPHA (11 << 10)
222 # define RADEON_COLOR_ARG_C_T1_COLOR (12 << 10)
223 # define RADEON_COLOR_ARG_C_T1_ALPHA (13 << 10)
224 # define RADEON_COLOR_ARG_C_T2_COLOR (14 << 10)
225 # define RADEON_COLOR_ARG_C_T2_ALPHA (15 << 10)
226 # define RADEON_COLOR_ARG_C_T3_COLOR (16 << 10)
227 # define RADEON_COLOR_ARG_C_T3_ALPHA (17 << 10)
228 # define RADEON_COMP_ARG_A (1 << 15)
229 # define RADEON_COMP_ARG_A_SHIFT 15
230 # define RADEON_COMP_ARG_B (1 << 16)
231 # define RADEON_COMP_ARG_B_SHIFT 16
232 # define RADEON_COMP_ARG_C (1 << 17)
233 # define RADEON_COMP_ARG_C_SHIFT 17
234 # define RADEON_BLEND_CTL_MASK (7 << 18)
235 # define RADEON_BLEND_CTL_ADD (0 << 18)
236 # define RADEON_BLEND_CTL_SUBTRACT (1 << 18)
237 # define RADEON_BLEND_CTL_ADDSIGNED (2 << 18)
238 # define RADEON_BLEND_CTL_BLEND (3 << 18)
239 # define RADEON_BLEND_CTL_DOT3 (4 << 18)
240 # define RADEON_SCALE_SHIFT 21
241 # define RADEON_SCALE_MASK (3 << 21)
242 # define RADEON_SCALE_1X (0 << 21)
243 # define RADEON_SCALE_2X (1 << 21)
244 # define RADEON_SCALE_4X (2 << 21)
245 # define RADEON_CLAMP_TX (1 << 23)
246 # define RADEON_T0_EQ_TCUR (1 << 24)
247 # define RADEON_T1_EQ_TCUR (1 << 25)
248 # define RADEON_T2_EQ_TCUR (1 << 26)
249 # define RADEON_T3_EQ_TCUR (1 << 27)
250 # define RADEON_COLOR_ARG_MASK 0x1f
251 # define RADEON_COMP_ARG_SHIFT 15
252 #define RADEON_PP_TXABLEND_0 0x1c64
253 #define RADEON_PP_TXABLEND_1 0x1c7c
254 #define RADEON_PP_TXABLEND_2 0x1c94
255 # define RADEON_ALPHA_ARG_A_SHIFT 0
256 # define RADEON_ALPHA_ARG_A_MASK (0xf << 0)
257 # define RADEON_ALPHA_ARG_A_ZERO (0 << 0)
258 # define RADEON_ALPHA_ARG_A_CURRENT_ALPHA (1 << 0)
259 # define RADEON_ALPHA_ARG_A_DIFFUSE_ALPHA (2 << 0)
260 # define RADEON_ALPHA_ARG_A_SPECULAR_ALPHA (3 << 0)
261 # define RADEON_ALPHA_ARG_A_TFACTOR_ALPHA (4 << 0)
262 # define RADEON_ALPHA_ARG_A_T0_ALPHA (5 << 0)
263 # define RADEON_ALPHA_ARG_A_T1_ALPHA (6 << 0)
264 # define RADEON_ALPHA_ARG_A_T2_ALPHA (7 << 0)
265 # define RADEON_ALPHA_ARG_A_T3_ALPHA (8 << 0)
266 # define RADEON_ALPHA_ARG_B_SHIFT 4
267 # define RADEON_ALPHA_ARG_B_MASK (0xf << 4)
268 # define RADEON_ALPHA_ARG_B_ZERO (0 << 4)
269 # define RADEON_ALPHA_ARG_B_CURRENT_ALPHA (1 << 4)
270 # define RADEON_ALPHA_ARG_B_DIFFUSE_ALPHA (2 << 4)
271 # define RADEON_ALPHA_ARG_B_SPECULAR_ALPHA (3 << 4)
272 # define RADEON_ALPHA_ARG_B_TFACTOR_ALPHA (4 << 4)
273 # define RADEON_ALPHA_ARG_B_T0_ALPHA (5 << 4)
274 # define RADEON_ALPHA_ARG_B_T1_ALPHA (6 << 4)
275 # define RADEON_ALPHA_ARG_B_T2_ALPHA (7 << 4)
276 # define RADEON_ALPHA_ARG_B_T3_ALPHA (8 << 4)
277 # define RADEON_ALPHA_ARG_C_SHIFT 8
278 # define RADEON_ALPHA_ARG_C_MASK (0xf << 8)
279 # define RADEON_ALPHA_ARG_C_ZERO (0 << 8)
280 # define RADEON_ALPHA_ARG_C_CURRENT_ALPHA (1 << 8)
281 # define RADEON_ALPHA_ARG_C_DIFFUSE_ALPHA (2 << 8)
282 # define RADEON_ALPHA_ARG_C_SPECULAR_ALPHA (3 << 8)
283 # define RADEON_ALPHA_ARG_C_TFACTOR_ALPHA (4 << 8)
284 # define RADEON_ALPHA_ARG_C_T0_ALPHA (5 << 8)
285 # define RADEON_ALPHA_ARG_C_T1_ALPHA (6 << 8)
286 # define RADEON_ALPHA_ARG_C_T2_ALPHA (7 << 8)
287 # define RADEON_ALPHA_ARG_C_T3_ALPHA (8 << 8)
288 # define RADEON_DOT_ALPHA_DONT_REPLICATE (1 << 9)
289 # define RADEON_ALPHA_ARG_MASK 0xf
291 #define RADEON_PP_TFACTOR_0 0x1c68
292 #define RADEON_PP_TFACTOR_1 0x1c80
293 #define RADEON_PP_TFACTOR_2 0x1c98
295 #define RADEON_RB3D_BLENDCNTL 0x1c20
296 # define RADEON_COMB_FCN_ADD_CLAMP (0 << 12)
297 # define RADEON_COMB_FCN_ADD_NOCLAMP (1 << 12)
298 # define RADEON_COMB_FCN_SUB_CLAMP (2 << 12)
299 # define RADEON_COMB_FCN_SUB_NOCLAMP (3 << 12)
300 # define RADEON_SRC_BLEND_GL_ZERO (32 << 16)
301 # define RADEON_SRC_BLEND_GL_ONE (33 << 16)
302 # define RADEON_SRC_BLEND_GL_SRC_COLOR (34 << 16)
303 # define RADEON_SRC_BLEND_GL_ONE_MINUS_SRC_COLOR (35 << 16)
304 # define RADEON_SRC_BLEND_GL_DST_COLOR (36 << 16)
305 # define RADEON_SRC_BLEND_GL_ONE_MINUS_DST_COLOR (37 << 16)
306 # define RADEON_SRC_BLEND_GL_SRC_ALPHA (38 << 16)
307 # define RADEON_SRC_BLEND_GL_ONE_MINUS_SRC_ALPHA (39 << 16)
308 # define RADEON_SRC_BLEND_GL_DST_ALPHA (40 << 16)
309 # define RADEON_SRC_BLEND_GL_ONE_MINUS_DST_ALPHA (41 << 16)
310 # define RADEON_SRC_BLEND_GL_SRC_ALPHA_SATURATE (42 << 16)
311 # define RADEON_SRC_BLEND_MASK (63 << 16)
312 # define RADEON_DST_BLEND_GL_ZERO (32 << 24)
313 # define RADEON_DST_BLEND_GL_ONE (33 << 24)
314 # define RADEON_DST_BLEND_GL_SRC_COLOR (34 << 24)
315 # define RADEON_DST_BLEND_GL_ONE_MINUS_SRC_COLOR (35 << 24)
316 # define RADEON_DST_BLEND_GL_DST_COLOR (36 << 24)
317 # define RADEON_DST_BLEND_GL_ONE_MINUS_DST_COLOR (37 << 24)
318 # define RADEON_DST_BLEND_GL_SRC_ALPHA (38 << 24)
319 # define RADEON_DST_BLEND_GL_ONE_MINUS_SRC_ALPHA (39 << 24)
320 # define RADEON_DST_BLEND_GL_DST_ALPHA (40 << 24)
321 # define RADEON_DST_BLEND_GL_ONE_MINUS_DST_ALPHA (41 << 24)
322 # define RADEON_DST_BLEND_MASK (63 << 24)
323 #define RADEON_RB3D_CNTL 0x1c3c
324 # define RADEON_ALPHA_BLEND_ENABLE (1 << 0)
325 # define RADEON_PLANE_MASK_ENABLE (1 << 1)
326 # define RADEON_DITHER_ENABLE (1 << 2)
327 # define RADEON_ROUND_ENABLE (1 << 3)
328 # define RADEON_SCALE_DITHER_ENABLE (1 << 4)
329 # define RADEON_DITHER_INIT (1 << 5)
330 # define RADEON_ROP_ENABLE (1 << 6)
331 # define RADEON_STENCIL_ENABLE (1 << 7)
332 # define RADEON_Z_ENABLE (1 << 8)
333 # define RADEON_DEPTH_XZ_OFFEST_ENABLE (1 << 9)
334 # define RADEON_COLOR_FORMAT_ARGB1555 (3 << 10)
335 # define RADEON_COLOR_FORMAT_RGB565 (4 << 10)
336 # define RADEON_COLOR_FORMAT_ARGB8888 (6 << 10)
337 # define RADEON_COLOR_FORMAT_RGB332 (7 << 10)
338 # define RADEON_COLOR_FORMAT_Y8 (8 << 10)
339 # define RADEON_COLOR_FORMAT_RGB8 (9 << 10)
340 # define RADEON_COLOR_FORMAT_YUV422_VYUY (11 << 10)
341 # define RADEON_COLOR_FORMAT_YUV422_YVYU (12 << 10)
342 # define RADEON_COLOR_FORMAT_aYUV444 (14 << 10)
343 # define RADEON_COLOR_FORMAT_ARGB4444 (15 << 10)
344 # define RADEON_CLRCMP_FLIP_ENABLE (1 << 14)
345 # define RADEON_ZBLOCK8 (0 << 15)
346 # define RADEON_ZBLOCK16 (1 << 15)
347 #define RADEON_RB3D_COLOROFFSET 0x1c40
348 # define RADEON_COLOROFFSET_MASK 0xfffffff0
349 #define RADEON_RB3D_COLORPITCH 0x1c48
350 # define RADEON_COLORPITCH_MASK 0x000001ff8
351 # define RADEON_COLOR_TILE_ENABLE (1 << 16)
352 # define RADEON_COLOR_MICROTILE_ENABLE (1 << 17)
353 # define RADEON_COLOR_ENDIAN_NO_SWAP (0 << 18)
354 # define RADEON_COLOR_ENDIAN_WORD_SWAP (1 << 18)
355 # define RADEON_COLOR_ENDIAN_DWORD_SWAP (2 << 18)
356 #define RADEON_RB3D_DEPTHOFFSET 0x1c24
357 #define RADEON_RB3D_DEPTHPITCH 0x1c28
358 # define RADEON_DEPTHPITCH_MASK 0x00001ff8
359 # define RADEON_DEPTH_ENDIAN_NO_SWAP (0 << 18)
360 # define RADEON_DEPTH_ENDIAN_WORD_SWAP (1 << 18)
361 # define RADEON_DEPTH_ENDIAN_DWORD_SWAP (2 << 18)
362 #define RADEON_RB3D_PLANEMASK 0x1d84
363 #define RADEON_RB3D_ROPCNTL 0x1d80
364 #define RADEON_RB3D_STENCILREFMASK 0x1d7c
365 # define RADEON_STENCIL_REF_SHIFT 0
366 # define RADEON_STENCIL_MASK_SHIFT 16
367 # define RADEON_STENCIL_WRITEMASK_SHIFT 24
368 #define RADEON_RB3D_ZSTENCILCNTL 0x1c2c
369 # define RADEON_DEPTH_FORMAT_MASK (0xf << 0)
370 # define RADEON_DEPTH_FORMAT_16BIT_INT_Z (0 << 0)
371 # define RADEON_DEPTH_FORMAT_24BIT_INT_Z (2 << 0)
372 # define RADEON_DEPTH_FORMAT_24BIT_FLOAT_Z (3 << 0)
373 # define RADEON_DEPTH_FORMAT_32BIT_INT_Z (4 << 0)
374 # define RADEON_DEPTH_FORMAT_32BIT_FLOAT_Z (5 << 0)
375 # define RADEON_DEPTH_FORMAT_16BIT_FLOAT_W (7 << 0)
376 # define RADEON_DEPTH_FORMAT_24BIT_FLOAT_W (9 << 0)
377 # define RADEON_DEPTH_FORMAT_32BIT_FLOAT_W (11 << 0)
378 # define RADEON_Z_TEST_NEVER (0 << 4)
379 # define RADEON_Z_TEST_LESS (1 << 4)
380 # define RADEON_Z_TEST_LEQUAL (2 << 4)
381 # define RADEON_Z_TEST_EQUAL (3 << 4)
382 # define RADEON_Z_TEST_GEQUAL (4 << 4)
383 # define RADEON_Z_TEST_GREATER (5 << 4)
384 # define RADEON_Z_TEST_NEQUAL (6 << 4)
385 # define RADEON_Z_TEST_ALWAYS (7 << 4)
386 # define RADEON_Z_TEST_MASK (7 << 4)
387 # define RADEON_HIERARCHICAL_Z_ENABLE (1 << 8)
388 # define RADEON_STENCIL_TEST_NEVER (0 << 12)
389 # define RADEON_STENCIL_TEST_LESS (1 << 12)
390 # define RADEON_STENCIL_TEST_LEQUAL (2 << 12)
391 # define RADEON_STENCIL_TEST_EQUAL (3 << 12)
392 # define RADEON_STENCIL_TEST_GEQUAL (4 << 12)
393 # define RADEON_STENCIL_TEST_GREATER (5 << 12)
394 # define RADEON_STENCIL_TEST_NEQUAL (6 << 12)
395 # define RADEON_STENCIL_TEST_ALWAYS (7 << 12)
396 # define RADEON_STENCIL_S_FAIL_KEEP (0 << 16)
397 # define RADEON_STENCIL_S_FAIL_ZERO (1 << 16)
398 # define RADEON_STENCIL_S_FAIL_REPLACE (2 << 16)
399 # define RADEON_STENCIL_S_FAIL_INC (3 << 16)
400 # define RADEON_STENCIL_S_FAIL_DEC (4 << 16)
401 # define RADEON_STENCIL_S_FAIL_INVERT (5 << 16)
402 # define RADEON_STENCIL_ZPASS_KEEP (0 << 20)
403 # define RADEON_STENCIL_ZPASS_ZERO (1 << 20)
404 # define RADEON_STENCIL_ZPASS_REPLACE (2 << 20)
405 # define RADEON_STENCIL_ZPASS_INC (3 << 20)
406 # define RADEON_STENCIL_ZPASS_DEC (4 << 20)
407 # define RADEON_STENCIL_ZPASS_INVERT (5 << 20)
408 # define RADEON_STENCIL_ZFAIL_KEEP (0 << 20)
409 # define RADEON_STENCIL_ZFAIL_ZERO (1 << 20)
410 # define RADEON_STENCIL_ZFAIL_REPLACE (2 << 20)
411 # define RADEON_STENCIL_ZFAIL_INC (3 << 20)
412 # define RADEON_STENCIL_ZFAIL_DEC (4 << 20)
413 # define RADEON_STENCIL_ZFAIL_INVERT (5 << 20)
414 # define RADEON_Z_COMPRESSION_ENABLE (1 << 28)
415 # define RADEON_FORCE_Z_DIRTY (1 << 29)
416 # define RADEON_Z_WRITE_ENABLE (1 << 30)
417 # define RADEON_Z_DECOMPRESSION_ENABLE (1 << 31)
418 #define RADEON_RE_LINE_PATTERN 0x1cd0
419 # define RADEON_LINE_PATTERN_MASK 0x0000ffff
420 # define RADEON_LINE_REPEAT_COUNT_SHIFT 16
421 # define RADEON_LINE_PATTERN_START_SHIFT 24
422 # define RADEON_LINE_PATTERN_LITTLE_BIT_ORDER (0 << 28)
423 # define RADEON_LINE_PATTERN_BIG_BIT_ORDER (1 << 28)
424 # define RADEON_LINE_PATTERN_AUTO_RESET (1 << 29)
425 #define RADEON_RE_LINE_STATE 0x1cd4
426 # define RADEON_LINE_CURRENT_PTR_SHIFT 0
427 # define RADEON_LINE_CURRENT_COUNT_SHIFT 8
428 #define RADEON_RE_MISC 0x26c4
429 # define RADEON_STIPPLE_COORD_MASK 0x1f
430 # define RADEON_STIPPLE_X_OFFSET_SHIFT 0
431 # define RADEON_STIPPLE_X_OFFSET_MASK (0x1f << 0)
432 # define RADEON_STIPPLE_Y_OFFSET_SHIFT 8
433 # define RADEON_STIPPLE_Y_OFFSET_MASK (0x1f << 8)
434 # define RADEON_STIPPLE_LITTLE_BIT_ORDER (0 << 16)
435 # define RADEON_STIPPLE_BIG_BIT_ORDER (1 << 16)
436 #define RADEON_RE_SOLID_COLOR 0x1c1c
437 #define RADEON_RE_TOP_LEFT 0x26c0
438 # define RADEON_RE_LEFT_SHIFT 0
439 # define RADEON_RE_TOP_SHIFT 16
440 #define RADEON_RE_WIDTH_HEIGHT 0x1c44
441 # define RADEON_RE_WIDTH_SHIFT 0
442 # define RADEON_RE_HEIGHT_SHIFT 16
444 #define RADEON_SE_CNTL 0x1c4c
445 # define RADEON_FFACE_CULL_CW (0 << 0)
446 # define RADEON_FFACE_CULL_CCW (1 << 0)
447 # define RADEON_FFACE_CULL_DIR_MASK (1 << 0)
448 # define RADEON_BFACE_CULL (0 << 1)
449 # define RADEON_BFACE_SOLID (3 << 1)
450 # define RADEON_FFACE_CULL (0 << 3)
451 # define RADEON_FFACE_SOLID (3 << 3)
452 # define RADEON_FFACE_CULL_MASK (3 << 3)
453 # define RADEON_BADVTX_CULL_DISABLE (1 << 5)
454 # define RADEON_FLAT_SHADE_VTX_0 (0 << 6)
455 # define RADEON_FLAT_SHADE_VTX_1 (1 << 6)
456 # define RADEON_FLAT_SHADE_VTX_2 (2 << 6)
457 # define RADEON_FLAT_SHADE_VTX_LAST (3 << 6)
458 # define RADEON_DIFFUSE_SHADE_SOLID (0 << 8)
459 # define RADEON_DIFFUSE_SHADE_FLAT (1 << 8)
460 # define RADEON_DIFFUSE_SHADE_GOURAUD (2 << 8)
461 # define RADEON_DIFFUSE_SHADE_MASK (3 << 8)
462 # define RADEON_ALPHA_SHADE_SOLID (0 << 10)
463 # define RADEON_ALPHA_SHADE_FLAT (1 << 10)
464 # define RADEON_ALPHA_SHADE_GOURAUD (2 << 10)
465 # define RADEON_ALPHA_SHADE_MASK (3 << 10)
466 # define RADEON_SPECULAR_SHADE_SOLID (0 << 12)
467 # define RADEON_SPECULAR_SHADE_FLAT (1 << 12)
468 # define RADEON_SPECULAR_SHADE_GOURAUD (2 << 12)
469 # define RADEON_SPECULAR_SHADE_MASK (3 << 12)
470 # define RADEON_FOG_SHADE_SOLID (0 << 14)
471 # define RADEON_FOG_SHADE_FLAT (1 << 14)
472 # define RADEON_FOG_SHADE_GOURAUD (2 << 14)
473 # define RADEON_FOG_SHADE_MASK (3 << 14)
474 # define RADEON_ZBIAS_ENABLE_POINT (1 << 16)
475 # define RADEON_ZBIAS_ENABLE_LINE (1 << 17)
476 # define RADEON_ZBIAS_ENABLE_TRI (1 << 18)
477 # define RADEON_WIDELINE_ENABLE (1 << 20)
478 # define RADEON_VPORT_XY_XFORM_ENABLE (1 << 24)
479 # define RADEON_VPORT_Z_XFORM_ENABLE (1 << 25)
480 # define RADEON_VTX_PIX_CENTER_D3D (0 << 27)
481 # define RADEON_VTX_PIX_CENTER_OGL (1 << 27)
482 # define RADEON_ROUND_MODE_TRUNC (0 << 28)
483 # define RADEON_ROUND_MODE_ROUND (1 << 28)
484 # define RADEON_ROUND_MODE_ROUND_EVEN (2 << 28)
485 # define RADEON_ROUND_MODE_ROUND_ODD (3 << 28)
486 # define RADEON_ROUND_PREC_16TH_PIX (0 << 30)
487 # define RADEON_ROUND_PREC_8TH_PIX (1 << 30)
488 # define RADEON_ROUND_PREC_4TH_PIX (2 << 30)
489 # define RADEON_ROUND_PREC_HALF_PIX (3 << 30)
490 #define RADEON_SE_CNTL_STATUS 0x2140
491 # define RADEON_VC_NO_SWAP (0 << 0)
492 # define RADEON_VC_16BIT_SWAP (1 << 0)
493 # define RADEON_VC_32BIT_SWAP (2 << 0)
494 # define RADEON_VC_HALF_DWORD_SWAP (3 << 0)
495 # define RADEON_TCL_BYPASS (1 << 8)
496 #define RADEON_SE_COORD_FMT 0x15c0
497 # define RADEON_VTX_XY_PRE_MULT_1_OVER_W0 (1 << 0)
498 # define RADEON_VTX_Z_PRE_MULT_1_OVER_W0 (1 << 1)
499 # define RADEON_VTX_ST0_NONPARAMETRIC (1 << 8)
500 # define RADEON_VTX_ST1_NONPARAMETRIC (1 << 9)
501 # define RADEON_VTX_ST2_NONPARAMETRIC (1 << 10)
502 # define RADEON_VTX_ST3_NONPARAMETRIC (1 << 11)
503 # define RADEON_VTX_W0_NORMALIZE (1 << 12)
504 # define RADEON_VTX_W0_IS_NOT_1_OVER_W0 (1 << 16)
505 # define RADEON_VTX_ST0_PRE_MULT_1_OVER_W0 (1 << 17)
506 # define RADEON_VTX_ST1_PRE_MULT_1_OVER_W0 (1 << 19)
507 # define RADEON_VTX_ST2_PRE_MULT_1_OVER_W0 (1 << 21)
508 # define RADEON_VTX_ST3_PRE_MULT_1_OVER_W0 (1 << 23)
509 # define RADEON_TEX1_W_ROUTING_USE_W0 (0 << 26)
510 # define RADEON_TEX1_W_ROUTING_USE_Q1 (1 << 26)
511 #define RADEON_SE_LINE_WIDTH 0x1db8
512 #define RADEON_SE_TCL_LIGHT_MODEL_CTL 0x226c
513 #define RADEON_SE_TCL_MATERIAL_AMBIENT_RED 0x2220
514 #define RADEON_SE_TCL_MATERIAL_AMBIENT_GREEN 0x2224
515 #define RADEON_SE_TCL_MATERIAL_AMBIENT_BLUE 0x2228
516 #define RADEON_SE_TCL_MATERIAL_AMBIENT_ALPHA 0x222c
517 #define RADEON_SE_TCL_MATERIAL_DIFFUSE_RED 0x2230
518 #define RADEON_SE_TCL_MATERIAL_DIFFUSE_GREEN 0x2234
519 #define RADEON_SE_TCL_MATERIAL_DIFFUSE_BLUE 0x2238
520 #define RADEON_SE_TCL_MATERIAL_DIFFUSE_ALPHA 0x223c
521 #define RADEON_SE_TCL_MATERIAL_EMMISSIVE_RED 0x2210
522 #define RADEON_SE_TCL_MATERIAL_EMMISSIVE_GREEN 0x2214
523 #define RADEON_SE_TCL_MATERIAL_EMMISSIVE_BLUE 0x2218
524 #define RADEON_SE_TCL_MATERIAL_EMMISSIVE_ALPHA 0x221c
525 #define RADEON_SE_TCL_MATERIAL_SPECULAR_RED 0x2240
526 #define RADEON_SE_TCL_MATERIAL_SPECULAR_GREEN 0x2244
527 #define RADEON_SE_TCL_MATERIAL_SPECULAR_BLUE 0x2248
528 #define RADEON_SE_TCL_MATERIAL_SPECULAR_ALPHA 0x224c
529 #define RADEON_SE_TCL_MATRIX_SELECT_0 0x225c
530 #define RADEON_SE_TCL_MATRIX_SELECT_1 0x2260
531 #define RADEON_SE_TCL_OUTPUT_VTX_FMT 0x2254
532 #define RADEON_SE_TCL_OUTPUT_VTX_SEL 0x2258
533 #define RADEON_SE_TCL_PER_LIGHT_CTL_0 0x2270
534 #define RADEON_SE_TCL_PER_LIGHT_CTL_1 0x2274
535 #define RADEON_SE_TCL_PER_LIGHT_CTL_2 0x2278
536 #define RADEON_SE_TCL_PER_LIGHT_CTL_3 0x227c
537 #define RADEON_SE_TCL_SHININESS 0x2250
538 #define RADEON_SE_TCL_TEXTURE_PROC_CTL 0x2268
539 #define RADEON_SE_TCL_UCP_VERT_BLEND_CTL 0x2264
540 #define RADEON_SE_VPORT_XSCALE 0x1d98
541 #define RADEON_SE_VPORT_XOFFSET 0x1d9c
542 #define RADEON_SE_VPORT_YSCALE 0x1da0
543 #define RADEON_SE_VPORT_YOFFSET 0x1da4
544 #define RADEON_SE_VPORT_ZSCALE 0x1da8
545 #define RADEON_SE_VPORT_ZOFFSET 0x1dac
547 #define RADEON_CP_VC_FRMT_XY 0x00000000
548 #define RADEON_CP_VC_FRMT_W0 0x00000001
549 #define RADEON_CP_VC_FRMT_FPCOLOR 0x00000002
550 #define RADEON_CP_VC_FRMT_FPALPHA 0x00000004
551 #define RADEON_CP_VC_FRMT_PKCOLOR 0x00000008
552 #define RADEON_CP_VC_FRMT_FPSPEC 0x00000010
553 #define RADEON_CP_VC_FRMT_FPFOG 0x00000020
554 #define RADEON_CP_VC_FRMT_PKSPEC 0x00000040
555 #define RADEON_CP_VC_FRMT_ST0 0x00000080
556 #define RADEON_CP_VC_FRMT_ST1 0x00000100
557 #define RADEON_CP_VC_FRMT_Q1 0x00000200
558 #define RADEON_CP_VC_FRMT_ST2 0x00000400
559 #define RADEON_CP_VC_FRMT_Q2 0x00000800
560 #define RADEON_CP_VC_FRMT_ST3 0x00001000
561 #define RADEON_CP_VC_FRMT_Q3 0x00002000
562 #define RADEON_CP_VC_FRMT_Q0 0x00004000
563 #define RADEON_CP_VC_FRMT_BLND_WEIGHT_CNT_MASK 0x00038000
564 #define RADEON_CP_VC_FRMT_N0 0x00040000
565 #define RADEON_CP_VC_FRMT_XY1 0x08000000
566 #define RADEON_CP_VC_FRMT_Z1 0x10000000
567 #define RADEON_CP_VC_FRMT_W1 0x20000000
568 #define RADEON_CP_VC_FRMT_N1 0x40000000
569 #define RADEON_CP_VC_FRMT_Z 0x80000000
571 #define RADEON_CP_VC_CNTL_PRIM_TYPE_NONE 0x00000000
572 #define RADEON_CP_VC_CNTL_PRIM_TYPE_POINT 0x00000001
573 #define RADEON_CP_VC_CNTL_PRIM_TYPE_LINE 0x00000002
574 #define RADEON_CP_VC_CNTL_PRIM_TYPE_LINE_STRIP 0x00000003
575 #define RADEON_CP_VC_CNTL_PRIM_TYPE_TRI_LIST 0x00000004
576 #define RADEON_CP_VC_CNTL_PRIM_TYPE_TRI_FAN 0x00000005
577 #define RADEON_CP_VC_CNTL_PRIM_TYPE_TRI_STRIP 0x00000006
578 #define RADEON_CP_VC_CNTL_PRIM_TYPE_TRI_TYPE2 0x00000007
579 #define RADEON_CP_VC_CNTL_PRIM_TYPE_RECT_LIST 0x00000008
580 #define RADEON_CP_VC_CNTL_PRIM_TYPE_3VRT_POINT_LIST 0x00000009
581 #define RADEON_CP_VC_CNTL_PRIM_TYPE_3VRT_LINE_LIST 0x0000000a
582 #define RADEON_CP_VC_CNTL_PRIM_WALK_IND 0x00000010
583 #define RADEON_CP_VC_CNTL_PRIM_WALK_LIST 0x00000020
584 #define RADEON_CP_VC_CNTL_PRIM_WALK_RING 0x00000030
585 #define RADEON_CP_VC_CNTL_COLOR_ORDER_BGRA 0x00000000
586 #define RADEON_CP_VC_CNTL_COLOR_ORDER_RGBA 0x00000040
587 #define RADEON_CP_VC_CNTL_MAOS_ENABLE 0x00000080
588 #define RADEON_CP_VC_CNTL_VTX_FMT_NON_RADEON_MODE 0x00000000
589 #define RADEON_CP_VC_CNTL_VTX_FMT_RADEON_MODE 0x00000100
590 #define RADEON_CP_VC_CNTL_NUM_SHIFT 16