1
/* $XFree86: xc/lib/GL/mesa/src/drv/i810/i810_3d_reg.h,v 1.7 2002/02/22 21:33:03 dawes Exp $ */
8
/* Registers not used in the X server
11
#define I810_NOP_ID 0x2094
12
#define I810_NOP_ID_MASK ((1<<22)-1)
19
/* GFXRENDERSTATE_PV_PIXELIZATION_RULE, p149
22
* 0: GFX_OP_PV_RULE | PV_*
25
#define GFX_OP_PV_RULE ((0x3<<29)|(0x7<<24))
26
#define PV_SMALL_TRI_FILTER_ENABLE (0x1<<11)
27
#define PV_UPDATE_PIXRULE (0x1<<10)
28
#define PV_PIXRULE_ENABLE (0x1<<9)
29
#define PV_UPDATE_LINELIST (0x1<<8)
30
#define PV_LINELIST_MASK (0x3<<6)
31
#define PV_LINELIST_PV0 (0x0<<6)
32
#define PV_LINELIST_PV1 (0x1<<6)
33
#define PV_UPDATE_TRIFAN (0x1<<5)
34
#define PV_TRIFAN_MASK (0x3<<3)
35
#define PV_TRIFAN_PV0 (0x0<<3)
36
#define PV_TRIFAN_PV1 (0x1<<3)
37
#define PV_TRIFAN_PV2 (0x2<<3)
38
#define PV_UPDATE_TRISTRIP (0x1<<2)
39
#define PV_TRISTRIP_MASK (0x3<<0)
40
#define PV_TRISTRIP_PV0 (0x0<<0)
41
#define PV_TRISTRIP_PV1 (0x1<<0)
42
#define PV_TRISTRIP_PV2 (0x2<<0)
45
/* GFXRENDERSTATE_SCISSOR_ENABLE, p146
48
* 0: GFX_OP_SCISSOR | SC_*
50
#define GFX_OP_SCISSOR ((0x3<<29)|(0x1c<<24)|(0x10<<19))
51
#define SC_UPDATE_SCISSOR (0x1<<1)
52
#define SC_ENABLE_MASK (0x1<<0)
53
#define SC_ENABLE (0x1<<0)
55
/* GFXRENDERSTATE_SCISSOR_INFO, p147
58
* 0: GFX_OP_SCISSOR_INFO
62
#define GFX_OP_SCISSOR_INFO ((0x3<<29)|(0x1d<<24)|(0x81<<16)|(0x1))
63
#define SCI_YMIN_MASK (0xffff<<16)
64
#define SCI_XMIN_MASK (0xffff<<0)
65
#define SCI_YMAX_MASK (0xffff<<16)
66
#define SCI_XMAX_MASK (0xffff<<0)
68
/* GFXRENDERSTATE_DRAWING_RECT_INFO, p144
71
* 0: GFX_OP_DRAWRECT_INFO
77
#define GFX_OP_DRAWRECT_INFO ((0x3<<29)|(0x1d<<24)|(0x80<<16)|(0x3))
78
#define DR1_RECT_CLIP_ENABLE (0x0<<31)
79
#define DR1_RECT_CLIP_DISABLE (0x1<<31)
80
#define DR1_X_DITHER_BIAS_MASK (0x3<<26)
81
#define DR1_X_DITHER_BIAS_SHIFT 26
82
#define DR1_Y_DITHER_BIAS_MASK (0x3<<24)
83
#define DR1_Y_DITHER_BIAS_SHIFT 24
84
#define DR2_YMIN_MASK (0xffff<<16)
85
#define DR2_XMIN_MASK (0xffff<<0)
86
#define DR3_YMAX_MASK (0xffff<<16)
87
#define DR3_XMAX_MASK (0xffff<<0)
88
#define DR4_YORG_MASK (0x3ff<<16)
89
#define DR4_XORG_MASK (0x7ff<<0)
92
/* GFXRENDERSTATE_LINEWIDTH_CULL_SHADE_MODE, p140
95
* 0: GFX_OP_LINEWIDTH_CULL_SHADE_MODE | LCS_*
97
#define GFX_OP_LINEWIDTH_CULL_SHADE_MODE ((0x3<<29)|(0x2<<24))
98
#define LCS_UPDATE_ZMODE (0x1<<20)
99
#define LCS_Z_MASK (0xf<<16)
100
#define LCS_Z_NEVER (0x1<<16)
101
#define LCS_Z_LESS (0x2<<16)
102
#define LCS_Z_EQUAL (0x3<<16)
103
#define LCS_Z_LEQUAL (0x4<<16)
104
#define LCS_Z_GREATER (0x5<<16)
105
#define LCS_Z_NOTEQUAL (0x6<<16)
106
#define LCS_Z_GEQUAL (0x7<<16)
107
#define LCS_Z_ALWAYS (0x8<<16)
108
#define LCS_UPDATE_LINEWIDTH (0x1<<15)
109
#define LCS_LINEWIDTH_MASK (0x7<<12)
110
#define LCS_LINEWIDTH_SHIFT 12
111
#define LCS_LINEWIDTH_0_5 (0x1<<12)
112
#define LCS_LINEWIDTH_1_0 (0x2<<12)
113
#define LCS_LINEWIDTH_2_0 (0x4<<12)
114
#define LCS_LINEWIDTH_3_0 (0x6<<12)
115
#define LCS_UPDATE_ALPHA_INTERP (0x1<<11)
116
#define LCS_ALPHA_FLAT (0x1<<10)
117
#define LCS_ALPHA_INTERP (0x0<<10)
118
#define LCS_UPDATE_FOG_INTERP (0x1<<9)
119
#define LCS_FOG_INTERP (0x0<<8)
120
#define LCS_FOG_FLAT (0x1<<8)
121
#define LCS_UPDATE_SPEC_INTERP (0x1<<7)
122
#define LCS_SPEC_INTERP (0x0<<6)
123
#define LCS_SPEC_FLAT (0x1<<6)
124
#define LCS_UPDATE_RGB_INTERP (0x1<<5)
125
#define LCS_RGB_INTERP (0x0<<4)
126
#define LCS_RGB_FLAT (0x1<<4)
127
#define LCS_UPDATE_CULL_MODE (0x1<<3)
128
#define LCS_CULL_MASK (0x7<<0)
129
#define LCS_CULL_DISABLE (0x1<<0)
130
#define LCS_CULL_CW (0x2<<0)
131
#define LCS_CULL_CCW (0x3<<0)
132
#define LCS_CULL_BOTH (0x4<<0)
134
#define LCS_INTERP_FLAT (LCS_ALPHA_FLAT|LCS_RGB_FLAT|LCS_SPEC_FLAT)
135
#define LCS_UPDATE_INTERP (LCS_UPDATE_ALPHA_INTERP| \
136
LCS_UPDATE_RGB_INTERP| \
137
LCS_UPDATE_SPEC_INTERP)
140
/* GFXRENDERSTATE_BOOLEAN_ENA_1, p142
143
#define GFX_OP_BOOL_1 ((0x3<<29)|(0x3<<24))
144
#define B1_UPDATE_SPEC_SETUP_ENABLE (1<<19)
145
#define B1_SPEC_SETUP_ENABLE (1<<18)
146
#define B1_UPDATE_ALPHA_SETUP_ENABLE (1<<17)
147
#define B1_ALPHA_SETUP_ENABLE (1<<16)
148
#define B1_UPDATE_CI_KEY_ENABLE (1<<15)
149
#define B1_CI_KEY_ENABLE (1<<14)
150
#define B1_UPDATE_CHROMAKEY_ENABLE (1<<13)
151
#define B1_CHROMAKEY_ENABLE (1<<12)
152
#define B1_UPDATE_Z_BIAS_ENABLE (1<<11)
153
#define B1_Z_BIAS_ENABLE (1<<10)
154
#define B1_UPDATE_SPEC_ENABLE (1<<9)
155
#define B1_SPEC_ENABLE (1<<8)
156
#define B1_UPDATE_FOG_ENABLE (1<<7)
157
#define B1_FOG_ENABLE (1<<6)
158
#define B1_UPDATE_ALPHA_TEST_ENABLE (1<<5)
159
#define B1_ALPHA_TEST_ENABLE (1<<4)
160
#define B1_UPDATE_BLEND_ENABLE (1<<3)
161
#define B1_BLEND_ENABLE (1<<2)
162
#define B1_UPDATE_Z_TEST_ENABLE (1<<1)
163
#define B1_Z_TEST_ENABLE (1<<0)
165
/* GFXRENDERSTATE_BOOLEAN_ENA_2, p143
168
#define GFX_OP_BOOL_2 ((0x3<<29)|(0x4<<24))
169
#define B2_UPDATE_MAP_CACHE_ENABLE (1<<17)
170
#define B2_MAP_CACHE_ENABLE (1<<16)
171
#define B2_UPDATE_ALPHA_DITHER_ENABLE (1<<15)
172
#define B2_ALPHA_DITHER_ENABLE (1<<14)
173
#define B2_UPDATE_FOG_DITHER_ENABLE (1<<13)
174
#define B2_FOG_DITHER_ENABLE (1<<12)
175
#define B2_UPDATE_SPEC_DITHER_ENABLE (1<<11)
176
#define B2_SPEC_DITHER_ENABLE (1<<10)
177
#define B2_UPDATE_RGB_DITHER_ENABLE (1<<9)
178
#define B2_RGB_DITHER_ENABLE (1<<8)
179
#define B2_UPDATE_FB_WRITE_ENABLE (1<<3)
180
#define B2_FB_WRITE_ENABLE (1<<2)
181
#define B2_UPDATE_ZB_WRITE_ENABLE (1<<1)
182
#define B2_ZB_WRITE_ENABLE (1<<0)
185
/* GFXRENDERSTATE_FOG_COLOR, p144
187
#define GFX_OP_FOG_COLOR ((0x3<<29)|(0x15<<24))
188
#define FOG_RED_SHIFT 16
189
#define FOG_GREEN_SHIFT 8
190
#define FOG_BLUE_SHIFT 0
191
#define FOG_RESERVED_MASK ((0x7<<16)|(0x3<<8)|(0x3))
194
/* GFXRENDERSTATE_Z_BIAS_ALPHA_FUNC_REF, p139
196
#define GFX_OP_ZBIAS_ALPHAFUNC ((0x3<<29)|(0x14<<24))
197
#define ZA_UPDATE_ZBIAS (1<<22)
198
#define ZA_ZBIAS_SHIFT 14
199
#define ZA_ZBIAS_MASK (0xff<<14)
200
#define ZA_UPDATE_ALPHAFUNC (1<<13)
201
#define ZA_ALPHA_MASK (0xf<<9)
202
#define ZA_ALPHA_NEVER (1<<9)
203
#define ZA_ALPHA_LESS (2<<9)
204
#define ZA_ALPHA_EQUAL (3<<9)
205
#define ZA_ALPHA_LEQUAL (4<<9)
206
#define ZA_ALPHA_GREATER (5<<9)
207
#define ZA_ALPHA_NOTEQUAL (6<<9)
208
#define ZA_ALPHA_GEQUAL (7<<9)
209
#define ZA_ALPHA_ALWAYS (8<<9)
210
#define ZA_UPDATE_ALPHAREF (1<<8)
211
#define ZA_ALPHAREF_MASK (0xff<<0)
212
#define ZA_ALPHAREF_SHIFT 0
213
#define ZA_ALPHAREF_RESERVED (0x7<<0)
216
/* GFXRENDERSTATE_SRC_DST_BLEND_MONO, p136
218
#define GFX_OP_SRC_DEST_MONO ((0x3<<29)|(0x8<<24))
219
#define SDM_UPDATE_MONO_ENABLE (1<<13)
220
#define SDM_MONO_ENABLE (1<<12)
221
#define SDM_UPDATE_SRC_BLEND (1<<11)
222
#define SDM_SRC_MASK (0xf<<6)
223
#define SDM_SRC_ZERO (0x1<<6)
224
#define SDM_SRC_ONE (0x2<<6)
225
#define SDM_SRC_SRC_COLOR (0x3<<6)
226
#define SDM_SRC_INV_SRC_COLOR (0x4<<6)
227
#define SDM_SRC_SRC_ALPHA (0x5<<6)
228
#define SDM_SRC_INV_SRC_ALPHA (0x6<<6)
229
#define SDM_SRC_DST_COLOR (0x9<<6)
230
#define SDM_SRC_INV_DST_COLOR (0xa<<6)
231
#define SDM_SRC_BOTH_SRC_ALPHA (0xc<<6)
232
#define SDM_SRC_BOTH_INV_SRC_ALPHA (0xd<<6)
233
#define SDM_UPDATE_DST_BLEND (1<<5)
234
#define SDM_DST_MASK (0xf<<0)
235
#define SDM_DST_ZERO (0x1<<0)
236
#define SDM_DST_ONE (0x2<<0)
237
#define SDM_DST_SRC_COLOR (0x3<<0)
238
#define SDM_DST_INV_SRC_COLOR (0x4<<0)
239
#define SDM_DST_SRC_ALPHA (0x5<<0)
240
#define SDM_DST_INV_SRC_ALPHA (0x6<<0)
241
#define SDM_DST_DST_COLOR (0x9<<0)
242
#define SDM_DST_INV_DST_COLOR (0xa<<0)
243
#define SDM_DST_BOTH_SRC_ALPHA (0xc<<0)
244
#define SDM_DST_BOTH_INV_SRC_ALPHA (0xd<<0)
247
/* GFXRENDERSTATE_COLOR_FACTOR, p134
250
* 0: GFX_OP_COLOR_FACTOR
251
* 1: ARGB8888 color factor
253
#define GFX_OP_COLOR_FACTOR ((0x3<<29)|(0x1d<<24)|(0x1<<16)|0x0)
255
/* GFXRENDERSTATE_MAP_ALPHA_BLEND_STAGES, p132
257
#define GFX_OP_MAP_ALPHA_STAGES ((0x3<<29)|(0x1<<24))
258
#define MA_STAGE_SHIFT 20
259
#define MA_STAGE_0 (0<<20)
260
#define MA_STAGE_1 (1<<20)
261
#define MA_STAGE_2 (2<<20)
263
#define MA_ARG_ONE (0x0<<2)
264
#define MA_ARG_ALPHA_FACTOR (0x1<<2)
265
#define MA_ARG_ITERATED_ALPHA (0x3<<2)
266
#define MA_ARG_CURRENT_ALPHA (0x5<<2)
267
#define MA_ARG_TEX0_ALPHA (0x6<<2)
268
#define MA_ARG_TEX1_ALPHA (0x7<<2)
269
#define MA_ARG_INVERT (0x1)
270
#define MA_ARG_DONT_INVERT (0x0)
272
#define MA_UPDATE_ARG1 (1<<18)
273
#define MA_ARG1_SHIFT 13
274
#define MA_ARG1_MASK (0x1d << MA_ARG1_SHIFT)
276
#define MA_UPDATE_ARG2 (1<<12)
277
#define MA_ARG2_SHIFT 6
278
#define MA_ARG2_MASK (0x1d << MA_ARG2_SHIFT)
280
#define MA_UPDATE_OP (1<<5)
281
#define MA_OP_MASK (0xf)
282
#define MA_OP_ARG1 (0x1)
283
#define MA_OP_ARG2 (0x2)
284
#define MA_OP_MODULATE (0x3)
285
#define MA_OP_MODULATE_X2 (0x4)
286
#define MA_OP_MODULATE_X4 (0x5)
287
#define MA_OP_ADD (0x6)
288
#define MA_OP_ADD_SIGNED (0x7)
289
#define MA_OP_LIN_BLEND_ITER_ALPHA (0x8)
290
#define MA_OP_LIN_BLEND_ALPHA_FACTOR (0xa)
291
#define MA_OP_LIN_BLEND_TEX0_ALPHA (0x10)
292
#define MA_OP_LIN_BLEND_TEX1_ALPHA (0x11)
293
#define MA_OP_SUBTRACT (0x14)
296
/* GFXRENDERSTATE_MAP_COLOR_BLEND_STAGES, p129
298
#define GFX_OP_MAP_COLOR_STAGES ((0x3<<29)|(0x0<<24))
299
#define MC_STAGE_SHIFT 20
300
#define MC_STAGE_0 (0<<20)
301
#define MC_STAGE_1 (1<<20)
302
#define MC_STAGE_2 (2<<20)
303
#define MC_UPDATE_DEST (1<<19)
304
#define MC_DEST_MASK (1<<18)
305
#define MC_DEST_CURRENT (0<<18)
306
#define MC_DEST_ACCUMULATOR (1<<18)
308
#define MC_ARG_ONE (0x0<<2)
309
#define MC_ARG_COLOR_FACTOR (0x1<<2)
310
#define MC_ARG_ACCUMULATOR (0x2<<2)
311
#define MC_ARG_ITERATED_COLOR (0x3<<2)
312
#define MC_ARG_SPECULAR_COLOR (0x4<<2)
313
#define MC_ARG_CURRENT_COLOR (0x5<<2)
314
#define MC_ARG_TEX0_COLOR (0x6<<2)
315
#define MC_ARG_TEX1_COLOR (0x7<<2)
316
#define MC_ARG_DONT_REPLICATE_ALPHA (0x0<<1)
317
#define MC_ARG_REPLICATE_ALPHA (0x1<<1)
318
#define MC_ARG_DONT_INVERT (0x0)
319
#define MC_ARG_INVERT (0x1)
321
#define MC_UPDATE_ARG1 (1<<17)
322
#define MC_ARG1_SHIFT 12
323
#define MC_ARG1_MASK (0x1f << MC_ARG1_SHIFT)
325
#define MC_UPDATE_ARG2 (1<<11)
326
#define MC_ARG2_SHIFT 6
327
#define MC_ARG2_MASK (0x1f << MC_ARG2_SHIFT)
329
#define MC_UPDATE_OP (1<<5)
330
#define MC_OP_MASK (0xf)
331
#define MC_OP_DISABLE (0x0)
332
#define MC_OP_ARG1 (0x1)
333
#define MC_OP_ARG2 (0x2)
334
#define MC_OP_MODULATE (0x3)
335
#define MC_OP_MODULATE_X2 (0x4)
336
#define MC_OP_MODULATE_X4 (0x5)
337
#define MC_OP_ADD (0x6)
338
#define MC_OP_ADD_SIGNED (0x7)
339
#define MC_OP_LIN_BLEND_ITER_ALPHA (0x8)
340
#define MC_OP_LIN_BLEND_ALPHA_FACTOR (0xa)
341
#define MC_OP_LIN_BLEND_TEX0_ALPHA (0x10)
342
#define MC_OP_LIN_BLEND_TEX1_ALPHA (0x11)
343
#define MC_OP_LIN_BLEND_TEX0_COLOR (0x12)
344
#define MC_OP_LIN_BLEND_TEX1_COLOR (0x13)
345
#define MC_OP_SUBTRACT (0x14)
347
/* GFXRENDERSTATE_MAP_PALETTE_LOAD, p128
350
* 0: GFX_OP_MAP_PALETTE_LOAD
353
* 256: 16bpp color[255]
355
#define GFX_OP_MAP_PALETTE_LOAD ((0x3<<29)|(0x1d<<24)|(0x82<<16)|0xff)
357
/* GFXRENDERSTATE_MAP_LOD_CONTROL, p127
359
#define GFX_OP_MAP_LOD_CTL ((0x3<<29)|(0x1c<<24)|(0x4<<19))
360
#define MLC_MAP_ID_SHIFT 16
361
#define MLC_MAP_0 (0<<16)
362
#define MLC_MAP_1 (1<<16)
363
#define MLC_UPDATE_DITHER_WEIGHT (1<<10)
364
#define MLC_DITHER_WEIGHT_MASK (0x3<<8)
365
#define MLC_DITHER_WEIGHT_FULL (0x0<<8)
366
#define MLC_DITHER_WEIGHT_50 (0x1<<8)
367
#define MLC_DITHER_WEIGHT_25 (0x2<<8)
368
#define MLC_DITHER_WEIGHT_12 (0x3<<8)
369
#define MLC_UPDATE_LOD_BIAS (1<<7)
370
#define MLC_LOD_BIAS_MASK ((1<<7)-1)
372
/* GFXRENDERSTATE_MAP_LOD_LIMITS, p126
374
#define GFX_OP_MAP_LOD_LIMITS ((0x3<<29)|(0x1c<<24)|(0x3<<19))
375
#define MLL_MAP_ID_SHIFT 16
376
#define MLL_MAP_0 (0<<16)
377
#define MLL_MAP_1 (1<<16)
378
#define MLL_UPDATE_MAX_MIP (1<<13)
379
#define MLL_MAX_MIP_SHIFT 5
380
#define MLL_MAX_MIP_MASK (0xff<<5)
381
#define MLL_MAX_MIP_ONE (0x10<<5)
382
#define MLL_UPDATE_MIN_MIP (1<<4)
383
#define MLL_MIN_MIP_SHIFT 0
384
#define MLL_MIN_MIP_MASK (0xf<<0)
386
/* GFXRENDERSTATE_MAP_FILTER, p124
388
#define GFX_OP_MAP_FILTER ((0x3<<29)|(0x1c<<24)|(0x2<<19))
389
#define MF_MAP_ID_SHIFT 16
390
#define MF_MAP_0 (0<<16)
391
#define MF_MAP_1 (1<<16)
392
#define MF_UPDATE_ANISOTROPIC (1<<12)
393
#define MF_ANISOTROPIC_MASK (1<<10)
394
#define MF_ANISOTROPIC_ENABLE (1<<10)
395
#define MF_UPDATE_MIP_FILTER (1<<9)
396
#define MF_MIP_MASK (0x3<<6)
397
#define MF_MIP_NONE (0x0<<6)
398
#define MF_MIP_NEAREST (0x1<<6)
399
#define MF_MIP_DITHER (0x2<<6)
400
#define MF_MIP_LINEAR (0x3<<6)
401
#define MF_UPDATE_MAG_FILTER (1<<5)
402
#define MF_MAG_MASK (1<<3)
403
#define MF_MAG_LINEAR (1<<3)
404
#define MF_MAG_NEAREST (0<<3)
405
#define MF_UPDATE_MIN_FILTER (1<<2)
406
#define MF_MIN_MASK (1<<0)
407
#define MF_MIN_LINEAR (1<<0)
408
#define MF_MIN_NEAREST (0<<0)
410
/* GFXRENDERSTATE_MAP_INFO, p118
412
#define GFX_OP_MAP_INFO ((0x3<<29)|(0x1d<<24)|0x2)
413
#define MI1_MAP_ID_SHIFT 28
414
#define MI1_MAP_0 (0<<28)
415
#define MI1_MAP_1 (1<<28)
416
#define MI1_FMT_MASK (0x7<<24)
417
#define MI1_FMT_8CI (0x0<<24)
418
#define MI1_FMT_8BPP (0x1<<24)
419
#define MI1_FMT_16BPP (0x2<<24)
420
#define MI1_FMT_422 (0x5<<24)
421
#define MI1_PF_MASK (0x3<<21)
422
#define MI1_PF_8CI_RGB565 (0x0<<21)
423
#define MI1_PF_8CI_ARGB1555 (0x1<<21)
424
#define MI1_PF_8CI_ARGB4444 (0x2<<21)
425
#define MI1_PF_8CI_AY88 (0x3<<21)
426
#define MI1_PF_16BPP_RGB565 (0x0<<21)
427
#define MI1_PF_16BPP_ARGB1555 (0x1<<21)
428
#define MI1_PF_16BPP_ARGB4444 (0x2<<21)
429
#define MI1_PF_16BPP_AY88 (0x3<<21)
430
#define MI1_PF_422_YCRCB_SWAP_Y (0x0<<21)
431
#define MI1_PF_422_YCRCB (0x1<<21)
432
#define MI1_PF_422_YCRCB_SWAP_UV (0x2<<21)
433
#define MI1_PF_422_YCRCB_SWAP_YUV (0x3<<21)
434
#define MI1_OUTPUT_CHANNEL_MASK (0x3<<19)
435
#define MI1_COLOR_CONV_ENABLE (1<<18)
436
#define MI1_VERT_STRIDE_MASK (1<<17)
437
#define MI1_VERT_STRIDE_1 (1<<17)
438
#define MI1_VERT_OFFSET_MASK (1<<16)
439
#define MI1_VERT_OFFSET_1 (1<<16)
440
#define MI1_ENABLE_FENCE_REGS (1<<10)
441
#define MI1_TILED_SURFACE (1<<9)
442
#define MI1_TILE_WALK_X (0<<8)
443
#define MI1_TILE_WALK_Y (1<<8)
444
#define MI1_PITCH_MASK (0xf<<0)
445
#define MI2_DIMENSIONS_ARE_LOG2 (1<<31)
446
#define MI2_DIMENSIONS_ARE_EXACT (0<<31)
447
#define MI2_HEIGHT_SHIFT 16
448
#define MI2_HEIGHT_MASK (0x1ff<<16)
449
#define MI2_WIDTH_SHIFT 0
450
#define MI2_WIDTH_MASK (0x1ff<<0)
451
#define MI3_BASE_ADDR_MASK (~0xf)
453
/* GFXRENDERSTATE_MAP_COORD_SETS, p116
455
#define GFX_OP_MAP_COORD_SETS ((0x3<<29)|(0x1c<<24)|(0x1<<19))
456
#define MCS_COORD_ID_SHIFT 16
457
#define MCS_COORD_0 (0<<16)
458
#define MCS_COORD_1 (1<<16)
459
#define MCS_UPDATE_NORMALIZED (1<<15)
460
#define MCS_NORMALIZED_COORDS_MASK (1<<14)
461
#define MCS_NORMALIZED_COORDS (1<<14)
462
#define MCS_UPDATE_V_STATE (1<<7)
463
#define MCS_V_STATE_MASK (0x3<<4)
464
#define MCS_V_WRAP (0x0<<4)
465
#define MCS_V_MIRROR (0x1<<4)
466
#define MCS_V_CLAMP (0x2<<4)
467
#define MCS_V_WRAP_SHORTEST (0x3<<4)
468
#define MCS_UPDATE_U_STATE (1<<3)
469
#define MCS_U_STATE_MASK (0x3<<0)
470
#define MCS_U_WRAP (0x0<<0)
471
#define MCS_U_MIRROR (0x1<<0)
472
#define MCS_U_CLAMP (0x2<<0)
473
#define MCS_U_WRAP_SHORTEST (0x3<<0)
475
/* GFXRENDERSTATE_MAP_TEXELS, p115
477
#define GFX_OP_MAP_TEXELS ((0x3<<29)|(0x1c<<24)|(0x0<<19))
478
#define MT_UPDATE_TEXEL1_STATE (1<<15)
479
#define MT_TEXEL1_DISABLE (0<<14)
480
#define MT_TEXEL1_ENABLE (1<<14)
481
#define MT_TEXEL1_COORD0 (0<<11)
482
#define MT_TEXEL1_COORD1 (1<<11)
483
#define MT_TEXEL1_MAP0 (0<<8)
484
#define MT_TEXEL1_MAP1 (1<<8)
485
#define MT_UPDATE_TEXEL0_STATE (1<<7)
486
#define MT_TEXEL0_DISABLE (0<<6)
487
#define MT_TEXEL0_ENABLE (1<<6)
488
#define MT_TEXEL0_COORD0 (0<<3)
489
#define MT_TEXEL0_COORD1 (1<<3)
490
#define MT_TEXEL0_MAP0 (0<<0)
491
#define MT_TEXEL0_MAP1 (1<<0)
493
/* GFXRENDERSTATE_VERTEX_FORMAT, p110
495
#define GFX_OP_VERTEX_FMT ((0x3<<29)|(0x5<<24))
496
#define VF_TEXCOORD_COUNT_SHIFT 8
497
#define VF_TEXCOORD_COUNT_0 (0<<8)
498
#define VF_TEXCOORD_COUNT_1 (1<<8)
499
#define VF_TEXCOORD_COUNT_2 (2<<8)
500
#define VF_SPEC_FOG_ENABLE (1<<7)
501
#define VF_RGBA_ENABLE (1<<6)
502
#define VF_Z_OFFSET_ENABLE (1<<5)
503
#define VF_XYZ (0x1<<1)
504
#define VF_XYZW (0x2<<1)
505
#define VF_XY (0x3<<1)
506
#define VF_XYW (0x4<<1)
509
#define VERT_X_MASK (~0xf)
510
#define VERT_X_EDGE_V2V0 (1<<2)
511
#define VERT_X_EDGE_V1V2 (1<<1)
512
#define VERT_X_EDGE_V0V1 (1<<0)
514
/* Not enabled fields should not be sent to hardware:
519
unsigned int edge_flags;
526
unsigned int fog_spec_rgb; /* spec g and r ignored. */
535
/* GFXCMDPARSER_BATCH_BUFFER, p105
537
* Not clear whether start address must be shifted or not. Not clear
538
* whether address is physical system memory, or subject to GTT
539
* translation. Because the address appears to be 32 bits long,
540
* perhaps it refers to physical system memory...
542
#define CMD_OP_BATCH_BUFFER ((0x0<<29)|(0x30<<23)|0x1)
543
#define BB1_START_ADDR_MASK (~0x7)
544
#define BB1_PROTECTED (1<<0)
545
#define BB1_UNPROTECTED (0<<0)
546
#define BB2_END_ADDR_MASK (~0x7)
548
/* Hardware seems to barf on buffers larger than this (in strange ways)...
550
#define MAX_BATCH (512*1024)
553
/* GFXCMDPARSER_Z_BUFFER_INFO, p98
555
* Base address is in GTT space, and must be 4K aligned
557
#define CMD_OP_Z_BUFFER_INFO ((0x0<<29)|(0x16<<23))
558
#define ZB_BASE_ADDR_SHIFT 0
559
#define ZB_BASE_ADDR_MASK (~((1<<12)-1))
560
#define ZB_PITCH_512B (0x0<<0)
561
#define ZB_PITCH_1K (0x1<<0)
562
#define ZB_PITCH_2K (0x2<<0)
563
#define ZB_PITCH_4K (0x3<<0)
565
/* GFXCMDPARSER_FRONT_BUFFER_INFO, p97
568
* 0: CMD_OP_FRONT_BUFFER_INFO | (pitch<<FB0_PITCH_SHIFT) | FB0_*
571
#define CMD_OP_FRONT_BUFFER_INFO ((0x0<<29)|(0x14<<23))
572
#define FB0_PITCH_SHIFT 8
573
#define FB0_FLIP_SYNC (0<<6)
574
#define FB0_FLIP_ASYNC (1<<6)
575
#define FB0_BASE_ADDR_SHIFT 0
576
#define FB0_BASE_ADDR_MASK 0x03FFFFF8
578
/* GFXCMDPARSER_DEST_BUFFER_INFO, p96
582
#define CMD_OP_DESTBUFFER_INFO ((0x0<<29)|(0x15<<23))
583
#define DB1_BASE_ADDR_SHIFT 0
584
#define DB1_BASE_ADDR_MASK 0x03FFF000
585
#define DB1_PITCH_512B (0x0<<0)
586
#define DB1_PITCH_1K (0x1<<0)
587
#define DB1_PITCH_2K (0x2<<0)
588
#define DB1_PITCH_4K (0x4<<0)
591
/* GFXRENDERSTATE_DEST_BUFFER_VARIABLES, p152
594
* 0: GFX_OP_DESTBUFFER_VARS
597
#define GFX_OP_DESTBUFFER_VARS ((0x3<<29)|(0x1d<<24)|(0x85<<16)|0x0)
598
#define DV_HORG_BIAS_MASK (0xf<<20)
599
#define DV_HORG_BIAS_OGL (0x0<<20)
600
#define DV_VORG_BIAS_MASK (0xf<<16)
601
#define DV_VORG_BIAS_OGL (0x0<<16)
602
#define DV_PF_MASK (0x7<<8)
603
#define DV_PF_INDEX (0x0<<8)
604
#define DV_PF_555 (0x1<<8)
605
#define DV_PF_565 (0x2<<8)
607
#define GFX_OP_ANTIALIAS ((0x3<<29)|(0x6<<24))
608
#define AA_UPDATE_EDGEFLAG (1<<13)
609
#define AA_ENABLE_EDGEFLAG (1<<12)
610
#define AA_UPDATE_POLYWIDTH (1<<11)
611
#define AA_POLYWIDTH_05 (1<<9)
612
#define AA_POLYWIDTH_10 (2<<9)
613
#define AA_POLYWIDTH_20 (3<<9)
614
#define AA_POLYWIDTH_40 (4<<9)
615
#define AA_UPDATE_LINEWIDTH (1<<8)
616
#define AA_LINEWIDTH_05 (1<<6)
617
#define AA_LINEWIDTH_10 (2<<6)
618
#define AA_LINEWIDTH_20 (3<<6)
619
#define AA_LINEWIDTH_40 (4<<6)
620
#define AA_UPDATE_BB_EXPANSION (1<<5)
621
#define AA_BB_EXPANSION_SHIFT 2
622
#define AA_UPDATE_AA_ENABLE (1<<1)
623
#define AA_ENABLE (1<<0)
625
#define GFX_OP_STIPPLE ((0x3<<29)|(0x1d<<24)|(0x83<<16))
626
#define ST1_ENABLE (1<<16)
627
#define ST1_MASK (0xffff)
629
#define I810_SET_FIELD( var, mask, value ) (var &= ~(mask), var |= value)