diff options
Diffstat (limited to 'xvmc/i830_reg.h')
-rw-r--r-- | xvmc/i830_reg.h | 805 |
1 files changed, 805 insertions, 0 deletions
diff --git a/xvmc/i830_reg.h b/xvmc/i830_reg.h new file mode 100644 index 00000000..93d03cf3 --- /dev/null +++ b/xvmc/i830_reg.h | |||
@@ -0,0 +1,805 @@ | |||
1 | /************************************************************************** | ||
2 | * | ||
3 | * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas. | ||
4 | * All Rights Reserved. | ||
5 | * | ||
6 | * Permission is hereby granted, free of charge, to any person obtaining a | ||
7 | * copy of this software and associated documentation files (the | ||
8 | * "Software"), to deal in the Software without restriction, including | ||
9 | * without limitation the rights to use, copy, modify, merge, publish, | ||
10 | * distribute, sub license, and/or sell copies of the Software, and to | ||
11 | * permit persons to whom the Software is furnished to do so, subject to | ||
12 | * the following conditions: | ||
13 | * | ||
14 | * The above copyright notice and this permission notice (including the | ||
15 | * next paragraph) shall be included in all copies or substantial portions | ||
16 | * of the Software. | ||
17 | * | ||
18 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | ||
19 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
20 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. | ||
21 | * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR | ||
22 | * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | ||
23 | * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | ||
24 | * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
25 | * | ||
26 | **************************************************************************/ | ||
27 | |||
28 | #ifndef _I830_REG_H_ | ||
29 | #define _I830_REG_H_ | ||
30 | |||
31 | #define I830_SET_FIELD( var, mask, value ) (var &= ~(mask), var |= value) | ||
32 | |||
33 | /* Flush */ | ||
34 | #define MI_FLUSH (0x04<<23) | ||
35 | #define MI_FLUSH_DW (0x26<<23) | ||
36 | |||
37 | #define MI_WRITE_DIRTY_STATE (1<<4) | ||
38 | #define MI_END_SCENE (1<<3) | ||
39 | #define MI_GLOBAL_SNAPSHOT_COUNT_RESET (1<<3) | ||
40 | #define MI_INHIBIT_RENDER_CACHE_FLUSH (1<<2) | ||
41 | #define MI_STATE_INSTRUCTION_CACHE_FLUSH (1<<1) | ||
42 | #define MI_INVALIDATE_MAP_CACHE (1<<0) | ||
43 | /* broadwater flush bits */ | ||
44 | #define BRW_MI_GLOBAL_SNAPSHOT_RESET (1 << 3) | ||
45 | |||
46 | #define MI_BATCH_BUFFER_END (0xA << 23) | ||
47 | |||
48 | /* Noop */ | ||
49 | #define MI_NOOP 0x00 | ||
50 | #define MI_NOOP_WRITE_ID (1<<22) | ||
51 | #define MI_NOOP_ID_MASK (1<<22 - 1) | ||
52 | |||
53 | /* Wait for Events */ | ||
54 | #define MI_WAIT_FOR_EVENT (0x03<<23) | ||
55 | #define MI_WAIT_FOR_PIPEB_SVBLANK (1<<18) | ||
56 | #define MI_WAIT_FOR_PIPEA_SVBLANK (1<<17) | ||
57 | #define MI_WAIT_FOR_OVERLAY_FLIP (1<<16) | ||
58 | #define MI_WAIT_FOR_PIPEB_VBLANK (1<<7) | ||
59 | #define MI_WAIT_FOR_PIPEB_SCAN_LINE_WINDOW (1<<5) | ||
60 | #define MI_WAIT_FOR_PIPEA_VBLANK (1<<3) | ||
61 | #define MI_WAIT_FOR_PIPEA_SCAN_LINE_WINDOW (1<<1) | ||
62 | |||
63 | /* Set the scan line for MI_WAIT_FOR_PIPE?_SCAN_LINE_WINDOW */ | ||
64 | #define MI_LOAD_SCAN_LINES_INCL (0x12<<23) | ||
65 | #define MI_LOAD_SCAN_LINES_DISPLAY_PIPEA (0) | ||
66 | #define MI_LOAD_SCAN_LINES_DISPLAY_PIPEB (0x1<<20) | ||
67 | |||
68 | /* BLT commands */ | ||
69 | #define COLOR_BLT_CMD ((2<<29)|(0x40<<22)|(0x3)) | ||
70 | #define COLOR_BLT_WRITE_ALPHA (1<<21) | ||
71 | #define COLOR_BLT_WRITE_RGB (1<<20) | ||
72 | |||
73 | #define XY_COLOR_BLT_CMD ((2<<29)|(0x50<<22)|(0x4)) | ||
74 | #define XY_COLOR_BLT_WRITE_ALPHA (1<<21) | ||
75 | #define XY_COLOR_BLT_WRITE_RGB (1<<20) | ||
76 | #define XY_COLOR_BLT_TILED (1<<11) | ||
77 | |||
78 | #define XY_SETUP_CLIP_BLT_CMD ((2<<29)|(3<<22)|1) | ||
79 | |||
80 | #define XY_SRC_COPY_BLT_CMD ((2<<29)|(0x53<<22)|6) | ||
81 | #define XY_SRC_COPY_BLT_WRITE_ALPHA (1<<21) | ||
82 | #define XY_SRC_COPY_BLT_WRITE_RGB (1<<20) | ||
83 | #define XY_SRC_COPY_BLT_SRC_TILED (1<<15) | ||
84 | #define XY_SRC_COPY_BLT_DST_TILED (1<<11) | ||
85 | |||
86 | #define SRC_COPY_BLT_CMD ((2<<29)|(0x43<<22)|0x4) | ||
87 | #define SRC_COPY_BLT_WRITE_ALPHA (1<<21) | ||
88 | #define SRC_COPY_BLT_WRITE_RGB (1<<20) | ||
89 | |||
90 | #define XY_PAT_BLT_IMMEDIATE ((2<<29)|(0x72<<22)) | ||
91 | |||
92 | #define XY_MONO_PAT_BLT_CMD ((0x2<<29)|(0x52<<22)|0x7) | ||
93 | #define XY_MONO_PAT_VERT_SEED ((1<<10)|(1<<9)|(1<<8)) | ||
94 | #define XY_MONO_PAT_HORT_SEED ((1<<14)|(1<<13)|(1<<12)) | ||
95 | #define XY_MONO_PAT_BLT_WRITE_ALPHA (1<<21) | ||
96 | #define XY_MONO_PAT_BLT_WRITE_RGB (1<<20) | ||
97 | |||
98 | #define XY_MONO_SRC_BLT_CMD ((0x2<<29)|(0x54<<22)|(0x6)) | ||
99 | #define XY_MONO_SRC_BLT_WRITE_ALPHA (1<<21) | ||
100 | #define XY_MONO_SRC_BLT_WRITE_RGB (1<<20) | ||
101 | |||
102 | #define CMD_3D (0x3<<29) | ||
103 | |||
104 | #define PRIM3D_INLINE (CMD_3D | (0x1f<<24)) | ||
105 | #define PRIM3D_TRILIST (0x0<<18) | ||
106 | #define PRIM3D_TRISTRIP (0x1<<18) | ||
107 | #define PRIM3D_TRISTRIP_RVRSE (0x2<<18) | ||
108 | #define PRIM3D_TRIFAN (0x3<<18) | ||
109 | #define PRIM3D_POLY (0x4<<18) | ||
110 | #define PRIM3D_LINELIST (0x5<<18) | ||
111 | #define PRIM3D_LINESTRIP (0x6<<18) | ||
112 | #define PRIM3D_RECTLIST (0x7<<18) | ||
113 | #define PRIM3D_POINTLIST (0x8<<18) | ||
114 | #define PRIM3D_DIB (0x9<<18) | ||
115 | #define PRIM3D_CLEAR_RECT (0xa<<18) | ||
116 | #define PRIM3D_ZONE_INIT (0xd<<18) | ||
117 | #define PRIM3D_MASK (0x1f<<18) | ||
118 | |||
119 | #define _3DSTATE_AA_CMD (CMD_3D | (0x06<<24)) | ||
120 | #define AA_LINE_ECAAR_WIDTH_ENABLE (1<<16) | ||
121 | #define AA_LINE_ECAAR_WIDTH_0_5 0 | ||
122 | #define AA_LINE_ECAAR_WIDTH_1_0 (1<<14) | ||
123 | #define AA_LINE_ECAAR_WIDTH_2_0 (2<<14) | ||
124 | #define AA_LINE_ECAAR_WIDTH_4_0 (3<<14) | ||
125 | #define AA_LINE_REGION_WIDTH_ENABLE (1<<8) | ||
126 | #define AA_LINE_REGION_WIDTH_0_5 0 | ||
127 | #define AA_LINE_REGION_WIDTH_1_0 (1<<6) | ||
128 | #define AA_LINE_REGION_WIDTH_2_0 (2<<6) | ||
129 | #define AA_LINE_REGION_WIDTH_4_0 (3<<6) | ||
130 | #define AA_LINE_ENABLE ((1<<1) | 1) | ||
131 | #define AA_LINE_DISABLE (1<<1) | ||
132 | |||
133 | #define _3DSTATE_BUF_INFO_CMD (CMD_3D | (0x1d<<24) | (0x8e<<16) | 1) | ||
134 | /* Dword 1 */ | ||
135 | #define BUF_3D_ID_COLOR_BACK (0x3<<24) | ||
136 | #define BUF_3D_ID_DEPTH (0x7<<24) | ||
137 | #define BUF_3D_USE_FENCE (1<<23) | ||
138 | #define BUF_3D_TILED_SURFACE (1<<22) | ||
139 | #define BUF_3D_TILE_WALK_X 0 | ||
140 | #define BUF_3D_TILE_WALK_Y (1<<21) | ||
141 | #define BUF_3D_PITCH(x) (((x)/4)<<2) | ||
142 | /* Dword 2 */ | ||
143 | #define BUF_3D_ADDR(x) ((x) & ~0x3) | ||
144 | |||
145 | #define _3DSTATE_COLOR_FACTOR_CMD (CMD_3D | (0x1d<<24) | (0x1<<16)) | ||
146 | |||
147 | #define _3DSTATE_COLOR_FACTOR_N_CMD(stage) (CMD_3D | (0x1d<<24) | \ | ||
148 | ((0x90+(stage))<<16)) | ||
149 | |||
150 | #define _3DSTATE_CONST_BLEND_COLOR_CMD (CMD_3D | (0x1d<<24) | (0x88<<16)) | ||
151 | |||
152 | #define _3DSTATE_DFLT_DIFFUSE_CMD (CMD_3D | (0x1d<<24) | (0x99<<16)) | ||
153 | |||
154 | #define _3DSTATE_DFLT_SPEC_CMD (CMD_3D | (0x1d<<24) | (0x9a<<16)) | ||
155 | |||
156 | #define _3DSTATE_DFLT_Z_CMD (CMD_3D | (0x1d<<24) | (0x98<<16)) | ||
157 | |||
158 | #define _3DSTATE_DST_BUF_VARS_CMD (CMD_3D | (0x1d<<24) | (0x85<<16)) | ||
159 | /* Dword 1 */ | ||
160 | #define DSTORG_HORT_BIAS(x) ((x)<<20) | ||
161 | #define DSTORG_VERT_BIAS(x) ((x)<<16) | ||
162 | #define COLOR_4_2_2_CHNL_WRT_ALL 0 | ||
163 | #define COLOR_4_2_2_CHNL_WRT_Y (1<<12) | ||
164 | #define COLOR_4_2_2_CHNL_WRT_CR (2<<12) | ||
165 | #define COLOR_4_2_2_CHNL_WRT_CB (3<<12) | ||
166 | #define COLOR_4_2_2_CHNL_WRT_CRCB (4<<12) | ||
167 | #define COLR_BUF_8BIT 0 | ||
168 | #define COLR_BUF_RGB555 (1<<8) | ||
169 | #define COLR_BUF_RGB565 (2<<8) | ||
170 | #define COLR_BUF_ARGB8888 (3<<8) | ||
171 | #define COLR_BUF_ARGB4444 (8<<8) | ||
172 | #define COLR_BUF_ARGB1555 (9<<8) | ||
173 | #define DEPTH_IS_Z 0 | ||
174 | #define DEPTH_IS_W (1<<6) | ||
175 | #define DEPTH_FRMT_16_FIXED 0 | ||
176 | #define DEPTH_FRMT_16_FLOAT (1<<2) | ||
177 | #define DEPTH_FRMT_24_FIXED_8_OTHER (2<<2) | ||
178 | #define DEPTH_FRMT_24_FLOAT_8_OTHER (3<<2) | ||
179 | #define VERT_LINE_STRIDE_1 (1<<1) | ||
180 | #define VERT_LINE_STRIDE_0 0 | ||
181 | #define VERT_LINE_STRIDE_OFS_1 1 | ||
182 | #define VERT_LINE_STRIDE_OFS_0 0 | ||
183 | |||
184 | #define _3DSTATE_DRAW_RECT_CMD (CMD_3D|(0x1d<<24)|(0x80<<16)|3) | ||
185 | /* Dword 1 */ | ||
186 | #define DRAW_RECT_DIS_DEPTH_OFS (1<<30) | ||
187 | #define DRAW_DITHER_OFS_X(x) ((x)<<26) | ||
188 | #define DRAW_DITHER_OFS_Y(x) ((x)<<24) | ||
189 | /* Dword 2 */ | ||
190 | #define DRAW_YMIN(x) ((x)<<16) | ||
191 | #define DRAW_XMIN(x) (x) | ||
192 | /* Dword 3 */ | ||
193 | #define DRAW_YMAX(x) ((x)<<16) | ||
194 | #define DRAW_XMAX(x) (x) | ||
195 | /* Dword 4 */ | ||
196 | #define DRAW_YORG(x) ((x)<<16) | ||
197 | #define DRAW_XORG(x) (x) | ||
198 | |||
199 | #define _3DSTATE_ENABLES_1_CMD (CMD_3D|(0x3<<24)) | ||
200 | #define ENABLE_LOGIC_OP_MASK ((1<<23)|(1<<22)) | ||
201 | #define ENABLE_LOGIC_OP ((1<<23)|(1<<22)) | ||
202 | #define DISABLE_LOGIC_OP (1<<23) | ||
203 | #define ENABLE_STENCIL_TEST ((1<<21)|(1<<20)) | ||
204 | #define DISABLE_STENCIL_TEST (1<<21) | ||
205 | #define ENABLE_DEPTH_BIAS ((1<<11)|(1<<10)) | ||
206 | #define DISABLE_DEPTH_BIAS (1<<11) | ||
207 | #define ENABLE_SPEC_ADD_MASK ((1<<9)|(1<<8)) | ||
208 | #define ENABLE_SPEC_ADD ((1<<9)|(1<<8)) | ||
209 | #define DISABLE_SPEC_ADD (1<<9) | ||
210 | #define ENABLE_DIS_FOG_MASK ((1<<7)|(1<<6)) | ||
211 | #define ENABLE_FOG ((1<<7)|(1<<6)) | ||
212 | #define DISABLE_FOG (1<<7) | ||
213 | #define ENABLE_DIS_ALPHA_TEST_MASK ((1<<5)|(1<<4)) | ||
214 | #define ENABLE_ALPHA_TEST ((1<<5)|(1<<4)) | ||
215 | #define DISABLE_ALPHA_TEST (1<<5) | ||
216 | #define ENABLE_DIS_CBLEND_MASK ((1<<3)|(1<<2)) | ||
217 | #define ENABLE_COLOR_BLEND ((1<<3)|(1<<2)) | ||
218 | #define DISABLE_COLOR_BLEND (1<<3) | ||
219 | #define ENABLE_DIS_DEPTH_TEST_MASK ((1<<1)|1) | ||
220 | #define ENABLE_DEPTH_TEST ((1<<1)|1) | ||
221 | #define DISABLE_DEPTH_TEST (1<<1) | ||
222 | |||
223 | /* _3DSTATE_ENABLES_2, p138 */ | ||
224 | #define _3DSTATE_ENABLES_2_CMD (CMD_3D|(0x4<<24)) | ||
225 | #define ENABLE_STENCIL_WRITE ((1<<21)|(1<<20)) | ||
226 | #define DISABLE_STENCIL_WRITE (1<<21) | ||
227 | #define ENABLE_TEX_CACHE ((1<<17)|(1<<16)) | ||
228 | #define DISABLE_TEX_CACHE (1<<17) | ||
229 | #define ENABLE_DITHER ((1<<9)|(1<<8)) | ||
230 | #define DISABLE_DITHER (1<<9) | ||
231 | #define ENABLE_COLOR_MASK (1<<10) | ||
232 | #define WRITEMASK_ALPHA (1<<7) | ||
233 | #define WRITEMASK_ALPHA_SHIFT 7 | ||
234 | #define WRITEMASK_RED (1<<6) | ||
235 | #define WRITEMASK_RED_SHIFT 6 | ||
236 | #define WRITEMASK_GREEN (1<<5) | ||
237 | #define WRITEMASK_GREEN_SHIFT 5 | ||
238 | #define WRITEMASK_BLUE (1<<4) | ||
239 | #define WRITEMASK_BLUE_SHIFT 4 | ||
240 | #define WRITEMASK_MASK ((1<<4)|(1<<5)|(1<<6)|(1<<7)) | ||
241 | #define ENABLE_COLOR_WRITE ((1<<3)|(1<<2)) | ||
242 | #define DISABLE_COLOR_WRITE (1<<3) | ||
243 | #define ENABLE_DIS_DEPTH_WRITE_MASK 0x3 | ||
244 | #define ENABLE_DEPTH_WRITE ((1<<1)|1) | ||
245 | #define DISABLE_DEPTH_WRITE (1<<1) | ||
246 | |||
247 | /* _3DSTATE_FOG_COLOR, p139 */ | ||
248 | #define _3DSTATE_FOG_COLOR_CMD (CMD_3D|(0x15<<24)) | ||
249 | #define FOG_COLOR_RED(x) ((x)<<16) | ||
250 | #define FOG_COLOR_GREEN(x) ((x)<<8) | ||
251 | #define FOG_COLOR_BLUE(x) (x) | ||
252 | |||
253 | /* _3DSTATE_FOG_MODE, p140 */ | ||
254 | #define _3DSTATE_FOG_MODE_CMD (CMD_3D|(0x1d<<24)|(0x89<<16)|2) | ||
255 | /* Dword 1 */ | ||
256 | #define FOGFUNC_ENABLE (1<<31) | ||
257 | #define FOGFUNC_VERTEX 0 | ||
258 | #define FOGFUNC_PIXEL_EXP (1<<28) | ||
259 | #define FOGFUNC_PIXEL_EXP2 (2<<28) | ||
260 | #define FOGFUNC_PIXEL_LINEAR (3<<28) | ||
261 | #define FOGSRC_INDEX_Z (1<<27) | ||
262 | #define FOGSRC_INDEX_W ((1<<27)|(1<<25)) | ||
263 | #define FOG_LINEAR_CONST (1<<24) | ||
264 | #define FOG_CONST_1(x) ((x)<<4) | ||
265 | #define ENABLE_FOG_DENSITY (1<<23) | ||
266 | /* Dword 2 */ | ||
267 | #define FOG_CONST_2(x) (x) | ||
268 | /* Dword 3 */ | ||
269 | #define FOG_DENSITY(x) (x) | ||
270 | |||
271 | /* _3DSTATE_INDEPENDENT_ALPHA_BLEND, p142 */ | ||
272 | #define _3DSTATE_INDPT_ALPHA_BLEND_CMD (CMD_3D|(0x0b<<24)) | ||
273 | #define ENABLE_INDPT_ALPHA_BLEND ((1<<23)|(1<<22)) | ||
274 | #define DISABLE_INDPT_ALPHA_BLEND (1<<23) | ||
275 | #define ALPHA_BLENDFUNC_MASK 0x3f0000 | ||
276 | #define ENABLE_ALPHA_BLENDFUNC (1<<21) | ||
277 | #define ABLENDFUNC_ADD 0 | ||
278 | #define ABLENDFUNC_SUB (1<<16) | ||
279 | #define ABLENDFUNC_RVSE_SUB (2<<16) | ||
280 | #define ABLENDFUNC_MIN (3<<16) | ||
281 | #define ABLENDFUNC_MAX (4<<16) | ||
282 | #define SRC_DST_ABLEND_MASK 0xfff | ||
283 | #define ENABLE_SRC_ABLEND_FACTOR (1<<11) | ||
284 | #define SRC_ABLEND_FACT(x) ((x)<<6) | ||
285 | #define ENABLE_DST_ABLEND_FACTOR (1<<5) | ||
286 | #define DST_ABLEND_FACT(x) (x) | ||
287 | |||
288 | #define BLENDFACTOR_ZERO 0x01 | ||
289 | #define BLENDFACTOR_ONE 0x02 | ||
290 | #define BLENDFACTOR_SRC_COLR 0x03 | ||
291 | #define BLENDFACTOR_INV_SRC_COLR 0x04 | ||
292 | #define BLENDFACTOR_SRC_ALPHA 0x05 | ||
293 | #define BLENDFACTOR_INV_SRC_ALPHA 0x06 | ||
294 | #define BLENDFACTOR_DST_ALPHA 0x07 | ||
295 | #define BLENDFACTOR_INV_DST_ALPHA 0x08 | ||
296 | #define BLENDFACTOR_DST_COLR 0x09 | ||
297 | #define BLENDFACTOR_INV_DST_COLR 0x0a | ||
298 | #define BLENDFACTOR_SRC_ALPHA_SATURATE 0x0b | ||
299 | #define BLENDFACTOR_CONST_COLOR 0x0c | ||
300 | #define BLENDFACTOR_INV_CONST_COLOR 0x0d | ||
301 | #define BLENDFACTOR_CONST_ALPHA 0x0e | ||
302 | #define BLENDFACTOR_INV_CONST_ALPHA 0x0f | ||
303 | #define BLENDFACTOR_MASK 0x0f | ||
304 | |||
305 | /* _3DSTATE_MAP_BLEND_ARG, p152 */ | ||
306 | #define _3DSTATE_MAP_BLEND_ARG_CMD(stage) (CMD_3D|(0x0e<<24)|((stage)<<20)) | ||
307 | |||
308 | #define TEXPIPE_COLOR 0 | ||
309 | #define TEXPIPE_ALPHA (1<<18) | ||
310 | #define TEXPIPE_KILL (2<<18) | ||
311 | #define TEXBLEND_ARG0 0 | ||
312 | #define TEXBLEND_ARG1 (1<<15) | ||
313 | #define TEXBLEND_ARG2 (2<<15) | ||
314 | #define TEXBLEND_ARG3 (3<<15) | ||
315 | #define TEXBLENDARG_MODIFY_PARMS (1<<6) | ||
316 | #define TEXBLENDARG_REPLICATE_ALPHA (1<<5) | ||
317 | #define TEXBLENDARG_INV_ARG (1<<4) | ||
318 | #define TEXBLENDARG_ONE 0 | ||
319 | #define TEXBLENDARG_FACTOR 0x01 | ||
320 | #define TEXBLENDARG_ACCUM 0x02 | ||
321 | #define TEXBLENDARG_DIFFUSE 0x03 | ||
322 | #define TEXBLENDARG_SPEC 0x04 | ||
323 | #define TEXBLENDARG_CURRENT 0x05 | ||
324 | #define TEXBLENDARG_TEXEL0 0x06 | ||
325 | #define TEXBLENDARG_TEXEL1 0x07 | ||
326 | #define TEXBLENDARG_TEXEL2 0x08 | ||
327 | #define TEXBLENDARG_TEXEL3 0x09 | ||
328 | #define TEXBLENDARG_FACTOR_N 0x0e | ||
329 | |||
330 | /* _3DSTATE_MAP_BLEND_OP, p155 */ | ||
331 | #define _3DSTATE_MAP_BLEND_OP_CMD(stage) (CMD_3D|(0x0d<<24)|((stage)<<20)) | ||
332 | #if 0 | ||
333 | # define TEXPIPE_COLOR 0 | ||
334 | # define TEXPIPE_ALPHA (1<<18) | ||
335 | # define TEXPIPE_KILL (2<<18) | ||
336 | #endif | ||
337 | #define ENABLE_TEXOUTPUT_WRT_SEL (1<<17) | ||
338 | #define TEXOP_OUTPUT_CURRENT 0 | ||
339 | #define TEXOP_OUTPUT_ACCUM (1<<15) | ||
340 | #define ENABLE_TEX_CNTRL_STAGE ((1<<12)|(1<<11)) | ||
341 | #define DISABLE_TEX_CNTRL_STAGE (1<<12) | ||
342 | #define TEXOP_SCALE_SHIFT 9 | ||
343 | #define TEXOP_SCALE_1X (0 << TEXOP_SCALE_SHIFT) | ||
344 | #define TEXOP_SCALE_2X (1 << TEXOP_SCALE_SHIFT) | ||
345 | #define TEXOP_SCALE_4X (2 << TEXOP_SCALE_SHIFT) | ||
346 | #define TEXOP_MODIFY_PARMS (1<<8) | ||
347 | #define TEXOP_LAST_STAGE (1<<7) | ||
348 | #define TEXBLENDOP_KILLPIXEL 0x02 | ||
349 | #define TEXBLENDOP_ARG1 0x01 | ||
350 | #define TEXBLENDOP_ARG2 0x02 | ||
351 | #define TEXBLENDOP_MODULATE 0x03 | ||
352 | #define TEXBLENDOP_ADD 0x06 | ||
353 | #define TEXBLENDOP_ADDSIGNED 0x07 | ||
354 | #define TEXBLENDOP_BLEND 0x08 | ||
355 | #define TEXBLENDOP_BLEND_AND_ADD 0x09 | ||
356 | #define TEXBLENDOP_SUBTRACT 0x0a | ||
357 | #define TEXBLENDOP_DOT3 0x0b | ||
358 | #define TEXBLENDOP_DOT4 0x0c | ||
359 | #define TEXBLENDOP_MODULATE_AND_ADD 0x0d | ||
360 | #define TEXBLENDOP_MODULATE_2X_AND_ADD 0x0e | ||
361 | #define TEXBLENDOP_MODULATE_4X_AND_ADD 0x0f | ||
362 | |||
363 | /* _3DSTATE_MAP_BUMP_TABLE, p160 TODO */ | ||
364 | /* _3DSTATE_MAP_COLOR_CHROMA_KEY, p161 TODO */ | ||
365 | |||
366 | #define _3DSTATE_MAP_COORD_TRANSFORM ((3<<29)|(0x1d<<24)|(0x8c<<16)) | ||
367 | #define DISABLE_TEX_TRANSFORM (1<<28) | ||
368 | #define TEXTURE_SET(x) (x<<29) | ||
369 | |||
370 | #define _3DSTATE_VERTEX_TRANSFORM ((3<<29)|(0x1d<<24)|(0x8b<<16)) | ||
371 | #define DISABLE_VIEWPORT_TRANSFORM (1<<31) | ||
372 | #define DISABLE_PERSPECTIVE_DIVIDE (1<<29) | ||
373 | |||
374 | /* _3DSTATE_MAP_COORD_SET_BINDINGS, p162 */ | ||
375 | #define _3DSTATE_MAP_COORD_SETBIND_CMD (CMD_3D|(0x1d<<24)|(0x02<<16)) | ||
376 | #define TEXBIND_MASK3 ((1<<15)|(1<<14)|(1<<13)|(1<<12)) | ||
377 | #define TEXBIND_MASK2 ((1<<11)|(1<<10)|(1<<9)|(1<<8)) | ||
378 | #define TEXBIND_MASK1 ((1<<7)|(1<<6)|(1<<5)|(1<<4)) | ||
379 | #define TEXBIND_MASK0 ((1<<3)|(1<<2)|(1<<1)|1) | ||
380 | |||
381 | #define TEXBIND_SET3(x) ((x)<<12) | ||
382 | #define TEXBIND_SET2(x) ((x)<<8) | ||
383 | #define TEXBIND_SET1(x) ((x)<<4) | ||
384 | #define TEXBIND_SET0(x) (x) | ||
385 | |||
386 | #define TEXCOORDSRC_KEEP 0 | ||
387 | #define TEXCOORDSRC_DEFAULT 0x01 | ||
388 | #define TEXCOORDSRC_VTXSET_0 0x08 | ||
389 | #define TEXCOORDSRC_VTXSET_1 0x09 | ||
390 | #define TEXCOORDSRC_VTXSET_2 0x0a | ||
391 | #define TEXCOORDSRC_VTXSET_3 0x0b | ||
392 | #define TEXCOORDSRC_VTXSET_4 0x0c | ||
393 | #define TEXCOORDSRC_VTXSET_5 0x0d | ||
394 | #define TEXCOORDSRC_VTXSET_6 0x0e | ||
395 | #define TEXCOORDSRC_VTXSET_7 0x0f | ||
396 | |||
397 | #define MAP_UNIT(unit) ((unit)<<16) | ||
398 | #define MAP_UNIT_MASK (0x7<<16) | ||
399 | |||
400 | /* _3DSTATE_MAP_COORD_SETS, p164 */ | ||
401 | #define _3DSTATE_MAP_COORD_SET_CMD (CMD_3D|(0x1c<<24)|(0x01<<19)) | ||
402 | #define TEXCOORD_SET(n) ((n)<<16) | ||
403 | #define ENABLE_TEXCOORD_PARAMS (1<<15) | ||
404 | #define TEXCOORDS_ARE_NORMAL (1<<14) | ||
405 | #define TEXCOORDS_ARE_IN_TEXELUNITS 0 | ||
406 | #define TEXCOORDTYPE_CARTESIAN 0 | ||
407 | #define TEXCOORDTYPE_HOMOGENEOUS (1<<11) | ||
408 | #define TEXCOORDTYPE_VECTOR (2<<11) | ||
409 | #define TEXCOORDTYPE_MASK (0x7<<11) | ||
410 | #define ENABLE_ADDR_V_CNTL (1<<7) | ||
411 | #define ENABLE_ADDR_U_CNTL (1<<3) | ||
412 | #define TEXCOORD_ADDR_V_MODE(x) ((x)<<4) | ||
413 | #define TEXCOORD_ADDR_U_MODE(x) (x) | ||
414 | #define TEXCOORDMODE_WRAP 0 | ||
415 | #define TEXCOORDMODE_MIRROR 1 | ||
416 | #define TEXCOORDMODE_CLAMP 2 | ||
417 | #define TEXCOORDMODE_WRAP_SHORTEST 3 | ||
418 | #define TEXCOORDMODE_CLAMP_BORDER 4 | ||
419 | #define TEXCOORD_ADDR_V_MASK 0x70 | ||
420 | #define TEXCOORD_ADDR_U_MASK 0x7 | ||
421 | |||
422 | /* _3DSTATE_MAP_CUBE, p168 TODO */ | ||
423 | #define _3DSTATE_MAP_CUBE (CMD_3D|(0x1c<<24)|(0x0a<<19)) | ||
424 | #define CUBE_NEGX_ENABLE (1<<5) | ||
425 | #define CUBE_POSX_ENABLE (1<<4) | ||
426 | #define CUBE_NEGY_ENABLE (1<<3) | ||
427 | #define CUBE_POSY_ENABLE (1<<2) | ||
428 | #define CUBE_NEGZ_ENABLE (1<<1) | ||
429 | #define CUBE_POSZ_ENABLE (1<<0) | ||
430 | |||
431 | #define _3DSTATE_MAP_INFO_CMD (CMD_3D|(0x1d<<24)|(0x0<<16)|3) | ||
432 | #define TEXMAP_INDEX(x) ((x)<<28) | ||
433 | #define MAP_SURFACE_8BIT (1<<24) | ||
434 | #define MAP_SURFACE_16BIT (2<<24) | ||
435 | #define MAP_SURFACE_32BIT (3<<24) | ||
436 | #define MAP_FORMAT_2D (0) | ||
437 | #define MAP_FORMAT_3D_CUBE (1<<11) | ||
438 | |||
439 | /* _3DSTATE_MODES_1, p190 */ | ||
440 | #define _3DSTATE_MODES_1_CMD (CMD_3D|(0x08<<24)) | ||
441 | #define BLENDFUNC_MASK 0x3f0000 | ||
442 | #define ENABLE_COLR_BLND_FUNC (1<<21) | ||
443 | #define BLENDFUNC_ADD 0 | ||
444 | #define BLENDFUNC_SUB (1<<16) | ||
445 | #define BLENDFUNC_RVRSE_SUB (2<<16) | ||
446 | #define BLENDFUNC_MIN (3<<16) | ||
447 | #define BLENDFUNC_MAX (4<<16) | ||
448 | #define SRC_DST_BLND_MASK 0xfff | ||
449 | #define ENABLE_SRC_BLND_FACTOR (1<<11) | ||
450 | #define ENABLE_DST_BLND_FACTOR (1<<5) | ||
451 | #define SRC_BLND_FACT(x) ((x)<<6) | ||
452 | #define DST_BLND_FACT(x) (x) | ||
453 | |||
454 | /* _3DSTATE_MODES_2, p192 */ | ||
455 | #define _3DSTATE_MODES_2_CMD (CMD_3D|(0x0f<<24)) | ||
456 | #define ENABLE_GLOBAL_DEPTH_BIAS (1<<22) | ||
457 | #define GLOBAL_DEPTH_BIAS(x) ((x)<<14) | ||
458 | #define ENABLE_ALPHA_TEST_FUNC (1<<13) | ||
459 | #define ENABLE_ALPHA_REF_VALUE (1<<8) | ||
460 | #define ALPHA_TEST_FUNC(x) ((x)<<9) | ||
461 | #define ALPHA_REF_VALUE(x) (x) | ||
462 | |||
463 | #define ALPHA_TEST_REF_MASK 0x3fff | ||
464 | |||
465 | /* _3DSTATE_MODES_3, p193 */ | ||
466 | #define _3DSTATE_MODES_3_CMD (CMD_3D|(0x02<<24)) | ||
467 | #define DEPTH_TEST_FUNC_MASK 0x1f0000 | ||
468 | #define ENABLE_DEPTH_TEST_FUNC (1<<20) | ||
469 | /* Uses COMPAREFUNC */ | ||
470 | #define DEPTH_TEST_FUNC(x) ((x)<<16) | ||
471 | #define ENABLE_ALPHA_SHADE_MODE (1<<11) | ||
472 | #define ENABLE_FOG_SHADE_MODE (1<<9) | ||
473 | #define ENABLE_SPEC_SHADE_MODE (1<<7) | ||
474 | #define ENABLE_COLOR_SHADE_MODE (1<<5) | ||
475 | #define ALPHA_SHADE_MODE(x) ((x)<<10) | ||
476 | #define FOG_SHADE_MODE(x) ((x)<<8) | ||
477 | #define SPEC_SHADE_MODE(x) ((x)<<6) | ||
478 | #define COLOR_SHADE_MODE(x) ((x)<<4) | ||
479 | #define CULLMODE_MASK 0xf | ||
480 | #define ENABLE_CULL_MODE (1<<3) | ||
481 | #define CULLMODE_BOTH 0 | ||
482 | #define CULLMODE_NONE 1 | ||
483 | #define CULLMODE_CW 2 | ||
484 | #define CULLMODE_CCW 3 | ||
485 | |||
486 | #define SHADE_MODE_LINEAR 0 | ||
487 | #define SHADE_MODE_FLAT 0x1 | ||
488 | |||
489 | /* _3DSTATE_MODES_4, p195 */ | ||
490 | #define _3DSTATE_MODES_4_CMD (CMD_3D|(0x16<<24)) | ||
491 | #define ENABLE_LOGIC_OP_FUNC (1<<23) | ||
492 | #define LOGIC_OP_FUNC(x) ((x)<<18) | ||
493 | #define LOGICOP_MASK ((1<<18)|(1<<19)|(1<<20)|(1<<21)) | ||
494 | #define LOGICOP_CLEAR 0 | ||
495 | #define LOGICOP_NOR 0x1 | ||
496 | #define LOGICOP_AND_INV 0x2 | ||
497 | #define LOGICOP_COPY_INV 0x3 | ||
498 | #define LOGICOP_AND_RVRSE 0x4 | ||
499 | #define LOGICOP_INV 0x5 | ||
500 | #define LOGICOP_XOR 0x6 | ||
501 | #define LOGICOP_NAND 0x7 | ||
502 | #define LOGICOP_AND 0x8 | ||
503 | #define LOGICOP_EQUIV 0x9 | ||
504 | #define LOGICOP_NOOP 0xa | ||
505 | #define LOGICOP_OR_INV 0xb | ||
506 | #define LOGICOP_COPY 0xc | ||
507 | #define LOGICOP_OR_RVRSE 0xd | ||
508 | #define LOGICOP_OR 0xe | ||
509 | #define LOGICOP_SET 0xf | ||
510 | #define MODE4_ENABLE_STENCIL_TEST_MASK ((1<<17)|(0xff00)) | ||
511 | #define ENABLE_STENCIL_TEST_MASK (1<<17) | ||
512 | #define STENCIL_TEST_MASK(x) ((x)<<8) | ||
513 | #define MODE4_ENABLE_STENCIL_WRITE_MASK ((1<<16)|(0x00ff)) | ||
514 | #define ENABLE_STENCIL_WRITE_MASK (1<<16) | ||
515 | #define STENCIL_WRITE_MASK(x) ((x)&0xff) | ||
516 | |||
517 | /* _3DSTATE_MODES_5, p196 */ | ||
518 | #define _3DSTATE_MODES_5_CMD (CMD_3D|(0x0c<<24)) | ||
519 | #define ENABLE_SPRITE_POINT_TEX (1<<23) | ||
520 | #define SPRITE_POINT_TEX_ON (1<<22) | ||
521 | #define SPRITE_POINT_TEX_OFF 0 | ||
522 | #define FLUSH_RENDER_CACHE (1<<18) | ||
523 | #define FLUSH_TEXTURE_CACHE (1<<16) | ||
524 | #define FIXED_LINE_WIDTH_MASK 0xfc00 | ||
525 | #define ENABLE_FIXED_LINE_WIDTH (1<<15) | ||
526 | #define FIXED_LINE_WIDTH(x) ((x)<<10) | ||
527 | #define FIXED_POINT_WIDTH_MASK 0x3ff | ||
528 | #define ENABLE_FIXED_POINT_WIDTH (1<<9) | ||
529 | #define FIXED_POINT_WIDTH(x) (x) | ||
530 | |||
531 | /* _3DSTATE_RASTERIZATION_RULES, p198 */ | ||
532 | #define _3DSTATE_RASTER_RULES_CMD (CMD_3D|(0x07<<24)) | ||
533 | #define ENABLE_POINT_RASTER_RULE (1<<15) | ||
534 | #define OGL_POINT_RASTER_RULE (1<<13) | ||
535 | #define ENABLE_LINE_STRIP_PROVOKE_VRTX (1<<8) | ||
536 | #define ENABLE_TRI_FAN_PROVOKE_VRTX (1<<5) | ||
537 | #define ENABLE_TRI_STRIP_PROVOKE_VRTX (1<<2) | ||
538 | #define LINE_STRIP_PROVOKE_VRTX(x) ((x)<<6) | ||
539 | #define TRI_FAN_PROVOKE_VRTX(x) ((x)<<3) | ||
540 | #define TRI_STRIP_PROVOKE_VRTX(x) (x) | ||
541 | |||
542 | /* _3DSTATE_SCISSOR_ENABLE, p200 */ | ||
543 | #define _3DSTATE_SCISSOR_ENABLE_CMD (CMD_3D|(0x1c<<24)|(0x10<<19)) | ||
544 | #define ENABLE_SCISSOR_RECT ((1<<1) | 1) | ||
545 | #define DISABLE_SCISSOR_RECT (1<<1) | ||
546 | |||
547 | /* _3DSTATE_SCISSOR_RECTANGLE_0, p201 */ | ||
548 | #define _3DSTATE_SCISSOR_RECT_0_CMD (CMD_3D|(0x1d<<24)|(0x81<<16)|1) | ||
549 | /* Dword 1 */ | ||
550 | #define SCISSOR_RECT_0_YMIN(x) ((x)<<16) | ||
551 | #define SCISSOR_RECT_0_XMIN(x) (x) | ||
552 | /* Dword 2 */ | ||
553 | #define SCISSOR_RECT_0_YMAX(x) ((x)<<16) | ||
554 | #define SCISSOR_RECT_0_XMAX(x) (x) | ||
555 | |||
556 | /* _3DSTATE_STENCIL_TEST, p202 */ | ||
557 | #define _3DSTATE_STENCIL_TEST_CMD (CMD_3D|(0x09<<24)) | ||
558 | #define ENABLE_STENCIL_PARMS (1<<23) | ||
559 | #define STENCIL_OPS_MASK (0xffc000) | ||
560 | #define STENCIL_FAIL_OP(x) ((x)<<20) | ||
561 | #define STENCIL_PASS_DEPTH_FAIL_OP(x) ((x)<<17) | ||
562 | #define STENCIL_PASS_DEPTH_PASS_OP(x) ((x)<<14) | ||
563 | |||
564 | #define ENABLE_STENCIL_TEST_FUNC_MASK ((1<<13)|(1<<12)|(1<<11)|(1<<10)|(1<<9)) | ||
565 | #define ENABLE_STENCIL_TEST_FUNC (1<<13) | ||
566 | /* Uses COMPAREFUNC */ | ||
567 | #define STENCIL_TEST_FUNC(x) ((x)<<9) | ||
568 | #define STENCIL_REF_VALUE_MASK ((1<<8)|0xff) | ||
569 | #define ENABLE_STENCIL_REF_VALUE (1<<8) | ||
570 | #define STENCIL_REF_VALUE(x) (x) | ||
571 | |||
572 | /* _3DSTATE_VERTEX_FORMAT, p204 */ | ||
573 | #define _3DSTATE_VFT0_CMD (CMD_3D|(0x05<<24)) | ||
574 | #define VFT0_POINT_WIDTH (1<<12) | ||
575 | #define VFT0_TEX_COUNT_MASK (7<<8) | ||
576 | #define VFT0_TEX_COUNT_SHIFT 8 | ||
577 | #define VFT0_TEX_COUNT(x) ((x)<<8) | ||
578 | #define VFT0_SPEC (1<<7) | ||
579 | #define VFT0_DIFFUSE (1<<6) | ||
580 | #define VFT0_DEPTH_OFFSET (1<<5) | ||
581 | #define VFT0_XYZ (1<<1) | ||
582 | #define VFT0_XYZW (2<<1) | ||
583 | #define VFT0_XY (3<<1) | ||
584 | #define VFT0_XYW (4<<1) | ||
585 | #define VFT0_XYZW_MASK (7<<1) | ||
586 | |||
587 | /* _3DSTATE_VERTEX_FORMAT_2, p206 */ | ||
588 | #define _3DSTATE_VERTEX_FORMAT_2_CMD (CMD_3D|(0x0a<<24)) | ||
589 | #define VFT1_TEX7_FMT(x) ((x)<<14) | ||
590 | #define VFT1_TEX6_FMT(x) ((x)<<12) | ||
591 | #define VFT1_TEX5_FMT(x) ((x)<<10) | ||
592 | #define VFT1_TEX4_FMT(x) ((x)<<8) | ||
593 | #define VFT1_TEX3_FMT(x) ((x)<<6) | ||
594 | #define VFT1_TEX2_FMT(x) ((x)<<4) | ||
595 | #define VFT1_TEX1_FMT(x) ((x)<<2) | ||
596 | #define VFT1_TEX0_FMT(x) (x) | ||
597 | #define VFT1_TEX0_MASK 3 | ||
598 | #define VFT1_TEX1_SHIFT 2 | ||
599 | #define TEXCOORDFMT_2D 0 | ||
600 | #define TEXCOORDFMT_3D 1 | ||
601 | #define TEXCOORDFMT_4D 2 | ||
602 | #define TEXCOORDFMT_1D 3 | ||
603 | |||
604 | /*New stuff picked up along the way */ | ||
605 | |||
606 | #define MLC_LOD_BIAS_MASK ((1<<7)-1) | ||
607 | |||
608 | /* _3DSTATE_VERTEX_TRANSFORM, p207 */ | ||
609 | #define _3DSTATE_VERTEX_TRANS_CMD (CMD_3D|(0x1d<<24)|(0x8b<<16)|0) | ||
610 | #define _3DSTATE_VERTEX_TRANS_MTX_CMD (CMD_3D|(0x1d<<24)|(0x8b<<16)|6) | ||
611 | /* Dword 1 */ | ||
612 | #define ENABLE_VIEWPORT_TRANSFORM ((1<<31)|(1<<30)) | ||
613 | #define DISABLE_VIEWPORT_TRANSFORM (1<<31) | ||
614 | #define ENABLE_PERSP_DIVIDE ((1<<29)|(1<<28)) | ||
615 | #define DISABLE_PERSP_DIVIDE (1<<29) | ||
616 | #define VRTX_TRANS_LOAD_MATRICES 0x7421 | ||
617 | #define VRTX_TRANS_NO_LOAD_MATRICES 0x0000 | ||
618 | /* Dword 2 -> 7 are matrix elements */ | ||
619 | |||
620 | /* _3DSTATE_W_STATE, p209 */ | ||
621 | #define _3DSTATE_W_STATE_CMD (CMD_3D|(0x1d<<24)|(0x8d<<16)|1) | ||
622 | /* Dword 1 */ | ||
623 | #define MAGIC_W_STATE_DWORD1 0x00000008 | ||
624 | /* Dword 2 */ | ||
625 | #define WFAR_VALUE(x) (x) | ||
626 | |||
627 | /* Stipple command, carried over from the i810, apparently: | ||
628 | */ | ||
629 | #define _3DSTATE_STIPPLE (CMD_3D|(0x1d<<24)|(0x83<<16)) | ||
630 | #define ST1_ENABLE (1<<16) | ||
631 | #define ST1_MASK (0xffff) | ||
632 | |||
633 | #define _3DSTATE_LOAD_STATE_IMMEDIATE_1 (CMD_3D|(0x1d<<24)|(0x04<<16)) | ||
634 | #define I1_LOAD_S(n) (1<<((n)+4)) | ||
635 | #define S3_POINT_WIDTH_SHIFT 23 | ||
636 | #define S3_LINE_WIDTH_SHIFT 19 | ||
637 | #define S3_ALPHA_SHADE_MODE_SHIFT 18 | ||
638 | #define S3_FOG_SHADE_MODE_SHIFT 17 | ||
639 | #define S3_SPEC_SHADE_MODE_SHIFT 16 | ||
640 | #define S3_COLOR_SHADE_MODE_SHIFT 15 | ||
641 | #define S3_CULL_MODE_SHIFT 13 | ||
642 | #define S3_CULLMODE_BOTH (0) | ||
643 | #define S3_CULLMODE_NONE (1<<13) | ||
644 | #define S3_CULLMODE_CW (2<<13) | ||
645 | #define S3_CULLMODE_CCW (3<<13) | ||
646 | #define S3_POINT_WIDTH_PRESENT (1<<12) | ||
647 | #define S3_SPEC_FOG_PRESENT (1<<11) | ||
648 | #define S3_DIFFUSE_PRESENT (1<<10) | ||
649 | #define S3_DEPTH_OFFSET_PRESENT (1<<9) | ||
650 | #define S3_POSITION_SHIFT 6 | ||
651 | #define S3_VERTEXHAS_XYZ (1<<6) | ||
652 | #define S3_VERTEXHAS_XYZW (2<<6) | ||
653 | #define S3_VERTEXHAS_XY (3<<6) | ||
654 | #define S3_VERTEXHAS_XYW (4<<6) | ||
655 | #define S3_ENABLE_SPEC_ADD (1<<5) | ||
656 | #define S3_ENABLE_FOG (1<<4) | ||
657 | #define S3_ENABLE_LOCAL_DEPTH_BIAS (1<<3) | ||
658 | #define S3_ENABLE_SPRITE_POINT (1<<1) | ||
659 | #define S3_ENABLE_ANTIALIASING 1 | ||
660 | #define S8_ENABLE_ALPHA_TEST (1<<31) | ||
661 | #define S8_ALPHA_TEST_FUNC_SHIFT 28 | ||
662 | #define S8_ALPHA_REFVALUE_SHIFT 20 | ||
663 | #define S8_ENABLE_DEPTH_TEST (1<<19) | ||
664 | #define S8_DEPTH_TEST_FUNC_SHIFT 16 | ||
665 | #define S8_ENABLE_COLOR_BLEND (1<<15) | ||
666 | #define S8_COLOR_BLEND_FUNC_SHIFT 12 | ||
667 | #define S8_BLENDFUNC_ADD (0) | ||
668 | #define S8_BLENDFUNC_SUB (1<<12) | ||
669 | #define S8_BLENDFUNC_RVRSE_SUB (2<<12) | ||
670 | #define S8_BLENDFUNC_MIN (3<<12) | ||
671 | #define S8_BLENDFUNC_MAX (4<<12) | ||
672 | #define S8_SRC_BLEND_FACTOR_SHIFT 8 | ||
673 | #define S8_DST_BLEND_FACTOR_SHIFT 4 | ||
674 | #define S8_ENABLE_DEPTH_BUFFER_WRITE (1<<3) | ||
675 | #define S8_ENABLE_COLOR_BUFFER_WRITE (1<<2) | ||
676 | |||
677 | #define _3DSTATE_LOAD_STATE_IMMEDIATE_2 (CMD_3D|(0x1d<<24)|(0x03<<16)) | ||
678 | #define LOAD_TEXTURE_MAP(x) (1<<((x)+11)) | ||
679 | #define LOAD_TEXTURE_BLEND_STAGE(x) (1<<((x)+7)) | ||
680 | #define LOAD_GLOBAL_COLOR_FACTOR (1<<6) | ||
681 | |||
682 | #define TM0S0_ADDRESS_MASK 0xfffffffc | ||
683 | #define TM0S0_USE_FENCE (1<<1) | ||
684 | |||
685 | #define TM0S1_HEIGHT_SHIFT 21 | ||
686 | #define TM0S1_WIDTH_SHIFT 10 | ||
687 | #define TM0S1_PALETTE_SELECT (1<<9) | ||
688 | #define TM0S1_MAPSURF_FORMAT_MASK (0x7 << 6) | ||
689 | #define TM0S1_MAPSURF_FORMAT_SHIFT 6 | ||
690 | #define MAPSURF_8BIT_INDEXED (0<<6) | ||
691 | #define MAPSURF_8BIT (1<<6) | ||
692 | #define MAPSURF_16BIT (2<<6) | ||
693 | #define MAPSURF_32BIT (3<<6) | ||
694 | #define MAPSURF_411 (4<<6) | ||
695 | #define MAPSURF_422 (5<<6) | ||
696 | #define MAPSURF_COMPRESSED (6<<6) | ||
697 | #define MAPSURF_4BIT_INDEXED (7<<6) | ||
698 | #define TM0S1_MT_FORMAT_MASK (0x7 << 3) | ||
699 | #define TM0S1_MT_FORMAT_SHIFT 3 | ||
700 | #define MT_4BIT_IDX_ARGB8888 (7<<3) /* SURFACE_4BIT_INDEXED */ | ||
701 | #define MT_8BIT_IDX_RGB565 (0<<3) /* SURFACE_8BIT_INDEXED */ | ||
702 | #define MT_8BIT_IDX_ARGB1555 (1<<3) | ||
703 | #define MT_8BIT_IDX_ARGB4444 (2<<3) | ||
704 | #define MT_8BIT_IDX_AY88 (3<<3) | ||
705 | #define MT_8BIT_IDX_ABGR8888 (4<<3) | ||
706 | #define MT_8BIT_IDX_BUMP_88DVDU (5<<3) | ||
707 | #define MT_8BIT_IDX_BUMP_655LDVDU (6<<3) | ||
708 | #define MT_8BIT_IDX_ARGB8888 (7<<3) | ||
709 | #define MT_8BIT_I8 (0<<3) /* SURFACE_8BIT */ | ||
710 | #define MT_8BIT_L8 (1<<3) | ||
711 | #define MT_8BIT_A8 (4<<3) | ||
712 | #define MT_16BIT_RGB565 (0<<3) /* SURFACE_16BIT */ | ||
713 | #define MT_16BIT_ARGB1555 (1<<3) | ||
714 | #define MT_16BIT_ARGB4444 (2<<3) | ||
715 | #define MT_16BIT_AY88 (3<<3) | ||
716 | #define MT_16BIT_DIB_ARGB1555_8888 (4<<3) | ||
717 | #define MT_16BIT_BUMP_88DVDU (5<<3) | ||
718 | #define MT_16BIT_BUMP_655LDVDU (6<<3) | ||
719 | #define MT_16BIT_DIB_RGB565_8888 (7<<3) | ||
720 | #define MT_32BIT_ARGB8888 (0<<3) /* SURFACE_32BIT */ | ||
721 | #define MT_32BIT_ABGR8888 (1<<3) | ||
722 | #define MT_32BIT_XRGB8888 (2<<3) | ||
723 | #define MT_32BIT_XBGR8888 (3<<3) | ||
724 | #define MT_32BIT_BUMP_XLDVDU_8888 (6<<3) | ||
725 | #define MT_32BIT_DIB_8888 (7<<3) | ||
726 | #define MT_411_YUV411 (0<<3) /* SURFACE_411 */ | ||
727 | #define MT_422_YCRCB_SWAPY (0<<3) /* SURFACE_422 */ | ||
728 | #define MT_422_YCRCB_NORMAL (1<<3) | ||
729 | #define MT_422_YCRCB_SWAPUV (2<<3) | ||
730 | #define MT_422_YCRCB_SWAPUVY (3<<3) | ||
731 | #define MT_COMPRESS_DXT1 (0<<3) /* SURFACE_COMPRESSED */ | ||
732 | #define MT_COMPRESS_DXT2_3 (1<<3) | ||
733 | #define MT_COMPRESS_DXT4_5 (2<<3) | ||
734 | #define MT_COMPRESS_FXT1 (3<<3) | ||
735 | #define TM0S1_COLORSPACE_CONVERSION (1 << 2) | ||
736 | #define TM0S1_TILED_SURFACE (1 << 1) | ||
737 | #define TM0S1_TILE_WALK (1 << 0) | ||
738 | |||
739 | #define TM0S2_PITCH_SHIFT 21 | ||
740 | #define TM0S2_CUBE_FACE_ENA_SHIFT 15 | ||
741 | #define TM0S2_CUBE_FACE_ENA_MASK (1<<15) | ||
742 | #define TM0S2_MAP_FORMAT (1<<14) | ||
743 | #define TM0S2_MAP_2D (0<<14) | ||
744 | #define TM0S2_MAP_3D_CUBE (1<<14) | ||
745 | #define TM0S2_VERTICAL_LINE_STRIDE (1<<13) | ||
746 | #define TM0S2_VERITCAL_LINE_STRIDE_OFF (1<<12) | ||
747 | #define TM0S2_OUTPUT_CHAN_SHIFT 10 | ||
748 | #define TM0S2_OUTPUT_CHAN_MASK (3<<10) | ||
749 | |||
750 | #define TM0S3_MIP_FILTER_MASK (0x3<<30) | ||
751 | #define TM0S3_MIP_FILTER_SHIFT 30 | ||
752 | #define MIPFILTER_NONE 0 | ||
753 | #define MIPFILTER_NEAREST 1 | ||
754 | #define MIPFILTER_LINEAR 3 | ||
755 | #define TM0S3_MAG_FILTER_MASK (0x3<<28) | ||
756 | #define TM0S3_MAG_FILTER_SHIFT 28 | ||
757 | #define TM0S3_MIN_FILTER_MASK (0x3<<26) | ||
758 | #define TM0S3_MIN_FILTER_SHIFT 26 | ||
759 | #define FILTER_NEAREST 0 | ||
760 | #define FILTER_LINEAR 1 | ||
761 | #define FILTER_ANISOTROPIC 2 | ||
762 | |||
763 | #define TM0S3_LOD_BIAS_SHIFT 17 | ||
764 | #define TM0S3_LOD_BIAS_MASK (0x1ff<<17) | ||
765 | #define TM0S3_MAX_MIP_SHIFT 9 | ||
766 | #define TM0S3_MAX_MIP_MASK (0xff<<9) | ||
767 | #define TM0S3_MIN_MIP_SHIFT 3 | ||
768 | #define TM0S3_MIN_MIP_MASK (0x3f<<3) | ||
769 | #define TM0S3_KILL_PIXEL (1<<2) | ||
770 | #define TM0S3_KEYED_FILTER (1<<1) | ||
771 | #define TM0S3_CHROMA_KEY (1<<0) | ||
772 | |||
773 | /* _3DSTATE_MAP_TEXEL_STREAM, p188 */ | ||
774 | #define _3DSTATE_MAP_TEX_STREAM_CMD (CMD_3D|(0x1c<<24)|(0x05<<19)) | ||
775 | #define DISABLE_TEX_STREAM_BUMP (1<<12) | ||
776 | #define ENABLE_TEX_STREAM_BUMP ((1<<12)|(1<<11)) | ||
777 | #define TEX_MODIFY_UNIT_0 0 | ||
778 | #define TEX_MODIFY_UNIT_1 (1<<8) | ||
779 | #define ENABLE_TEX_STREAM_COORD_SET (1<<7) | ||
780 | #define TEX_STREAM_COORD_SET(x) ((x)<<4) | ||
781 | #define ENABLE_TEX_STREAM_MAP_IDX (1<<3) | ||
782 | #define TEX_STREAM_MAP_IDX(x) (x) | ||
783 | |||
784 | #define FLUSH_MAP_CACHE (1<<0) | ||
785 | |||
786 | #define _3DSTATE_MAP_FILTER_CMD (CMD_3D|(0x1c<<24)|(0x02<<19)) | ||
787 | #define FILTER_TEXMAP_INDEX(x) ((x) << 16) | ||
788 | #define MAG_MODE_FILTER_ENABLE (1 << 5) | ||
789 | #define MIN_MODE_FILTER_ENABLE (1 << 2) | ||
790 | #define MAG_MAPFILTER_NEAREST (0 << 3) | ||
791 | #define MAG_MAPFILTER_LINEAR (1 << 3) | ||
792 | #define MAG_MAPFILTER_ANISOTROPIC (2 << 3) | ||
793 | #define MIN_MAPFILTER_NEAREST (0) | ||
794 | #define MIN_MAPFILTER_LINEAR (1) | ||
795 | #define MIN_MAPFILTER_ANISOTROPIC (2) | ||
796 | #define ENABLE_KEYS (1<<15) | ||
797 | #define DISABLE_COLOR_KEY 0 | ||
798 | #define DISABLE_CHROMA_KEY 0 | ||
799 | #define DISABLE_KILL_PIXEL 0 | ||
800 | #define ENABLE_MIP_MODE_FILTER (1 << 9) | ||
801 | #define MIPFILTER_NONE 0 | ||
802 | #define MIPFILTER_NEAREST 1 | ||
803 | #define MIPFILTER_LINEAR 3 | ||
804 | |||
805 | #endif | ||