~ubuntu-branches/ubuntu/quantal/mesa-glw/quantal

« back to all changes in this revision

Viewing changes to src/mesa/drivers/dri/i810/i810_3d_reg.h

  • Committer: Bazaar Package Importer
  • Author(s): Morten Kjeldgaard
  • Date: 2008-05-06 16:19:15 UTC
  • Revision ID: james.westby@ubuntu.com-20080506161915-uynz7nftmfixu6bq
Tags: upstream-7.0.3
ImportĀ upstreamĀ versionĀ 7.0.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* $XFree86: xc/lib/GL/mesa/src/drv/i810/i810_3d_reg.h,v 1.7 2002/02/22 21:33:03 dawes Exp $ */
 
2
 
 
3
#ifndef I810_3D_REG_H
 
4
#define I810_3D_REG_H
 
5
 
 
6
#include "i810_reg.h"
 
7
 
 
8
/* Registers not used in the X server
 
9
 */
 
10
 
 
11
#define I810_NOP_ID           0x2094
 
12
#define I810_NOP_ID_MASK        ((1<<22)-1)
 
13
 
 
14
 
 
15
/* 3D instructions
 
16
 */
 
17
 
 
18
 
 
19
/* GFXRENDERSTATE_PV_PIXELIZATION_RULE, p149
 
20
 *
 
21
 * Format:
 
22
 *     0: GFX_OP_PV_RULE | PV_*
 
23
 *
 
24
 */
 
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)
 
43
 
 
44
 
 
45
/* GFXRENDERSTATE_SCISSOR_ENABLE, p146
 
46
 *
 
47
 * Format:
 
48
 *     0: GFX_OP_SCISSOR | SC_*
 
49
 */
 
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)
 
54
 
 
55
/* GFXRENDERSTATE_SCISSOR_INFO, p147
 
56
 *
 
57
 * Format:
 
58
 *     0: GFX_OP_SCISSOR_INFO
 
59
 *     1: SCI_MIN_*
 
60
 *     2: SCI_MAX_*
 
61
 */
 
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)
 
67
 
 
68
/* GFXRENDERSTATE_DRAWING_RECT_INFO, p144
 
69
 *
 
70
 * Format:
 
71
 *     0: GFX_OP_DRAWRECT_INFO
 
72
 *     1: DR1_*
 
73
 *     2: DR2_*
 
74
 *     3: DR3_*
 
75
 *     4: DR4_*
 
76
 */
 
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)
 
90
 
 
91
 
 
92
/* GFXRENDERSTATE_LINEWIDTH_CULL_SHADE_MODE, p140
 
93
 *
 
94
 * Format:
 
95
 *     0: GFX_OP_LINEWIDTH_CULL_SHADE_MODE | LCS_*
 
96
 */
 
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)
 
133
 
 
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)
 
138
 
 
139
 
 
140
/* GFXRENDERSTATE_BOOLEAN_ENA_1, p142
 
141
 *
 
142
 */
 
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)
 
164
 
 
165
/* GFXRENDERSTATE_BOOLEAN_ENA_2, p143
 
166
 *
 
167
 */
 
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)
 
183
 
 
184
 
 
185
/* GFXRENDERSTATE_FOG_COLOR, p144
 
186
 */
 
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))
 
192
 
 
193
 
 
194
/* GFXRENDERSTATE_Z_BIAS_ALPHA_FUNC_REF, p139
 
195
 */
 
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)
 
214
 
 
215
 
 
216
/* GFXRENDERSTATE_SRC_DST_BLEND_MONO, p136
 
217
 */
 
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)
 
245
 
 
246
 
 
247
/* GFXRENDERSTATE_COLOR_FACTOR, p134
 
248
 *
 
249
 * Format:
 
250
 *     0: GFX_OP_COLOR_FACTOR
 
251
 *     1: ARGB8888 color factor
 
252
 */
 
253
#define GFX_OP_COLOR_FACTOR      ((0x3<<29)|(0x1d<<24)|(0x1<<16)|0x0)
 
254
 
 
255
/* GFXRENDERSTATE_MAP_ALPHA_BLEND_STAGES, p132
 
256
 */
 
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)
 
262
 
 
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)
 
271
 
 
272
#define MA_UPDATE_ARG1               (1<<18)
 
273
#define MA_ARG1_SHIFT                13
 
274
#define MA_ARG1_MASK                 (0x1d << MA_ARG1_SHIFT)
 
275
 
 
276
#define MA_UPDATE_ARG2               (1<<12)
 
277
#define MA_ARG2_SHIFT                6
 
278
#define MA_ARG2_MASK                 (0x1d << MA_ARG2_SHIFT)
 
279
 
 
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)
 
294
 
 
295
 
 
296
/* GFXRENDERSTATE_MAP_COLOR_BLEND_STAGES, p129
 
297
 */
 
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)
 
307
 
 
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)
 
320
 
 
321
#define MC_UPDATE_ARG1                 (1<<17)
 
322
#define MC_ARG1_SHIFT                  12
 
323
#define MC_ARG1_MASK                   (0x1f << MC_ARG1_SHIFT)
 
324
 
 
325
#define MC_UPDATE_ARG2                 (1<<11)
 
326
#define MC_ARG2_SHIFT                  6
 
327
#define MC_ARG2_MASK                   (0x1f << MC_ARG2_SHIFT)
 
328
 
 
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)
 
346
 
 
347
/* GFXRENDERSTATE_MAP_PALETTE_LOAD, p128
 
348
 *
 
349
 * Format:
 
350
 *     0:  GFX_OP_MAP_PALETTE_LOAD
 
351
 *     1:  16bpp color[0]
 
352
 *     ...
 
353
 *     256: 16bpp color[255]
 
354
 */
 
355
#define GFX_OP_MAP_PALETTE_LOAD ((0x3<<29)|(0x1d<<24)|(0x82<<16)|0xff)
 
356
 
 
357
/* GFXRENDERSTATE_MAP_LOD_CONTROL, p127
 
358
 */
 
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)
 
371
 
 
372
/* GFXRENDERSTATE_MAP_LOD_LIMITS, p126
 
373
 */
 
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)
 
385
 
 
386
/* GFXRENDERSTATE_MAP_FILTER, p124
 
387
 */
 
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)
 
409
 
 
410
/* GFXRENDERSTATE_MAP_INFO, p118
 
411
 */
 
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)
 
452
 
 
453
/* GFXRENDERSTATE_MAP_COORD_SETS, p116
 
454
 */
 
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)
 
474
 
 
475
/* GFXRENDERSTATE_MAP_TEXELS, p115
 
476
 */
 
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)
 
492
 
 
493
/* GFXRENDERSTATE_VERTEX_FORMAT, p110
 
494
 */
 
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)
 
507
 
 
508
 
 
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)
 
513
 
 
514
/* Not enabled fields should not be sent to hardware:
 
515
 */
 
516
typedef struct {
 
517
   union {
 
518
      float x;
 
519
      unsigned int edge_flags;
 
520
   } x;
 
521
   float y;
 
522
   float z;
 
523
   float z_bias;
 
524
   float oow;
 
525
   unsigned int argb;
 
526
   unsigned int fog_spec_rgb;   /* spec g and r ignored. */
 
527
   float tu0;
 
528
   float tv0;
 
529
   float tu1;
 
530
   float tv1;
 
531
} i810_full_vertex;
 
532
 
 
533
 
 
534
 
 
535
/* GFXCMDPARSER_BATCH_BUFFER, p105
 
536
 *
 
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...
 
541
 */
 
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)
 
547
 
 
548
/* Hardware seems to barf on buffers larger than this (in strange ways)...
 
549
 */
 
550
#define MAX_BATCH (512*1024)
 
551
 
 
552
 
 
553
/* GFXCMDPARSER_Z_BUFFER_INFO, p98
 
554
 *
 
555
 * Base address is in GTT space, and must be 4K aligned
 
556
 */
 
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)
 
564
 
 
565
/* GFXCMDPARSER_FRONT_BUFFER_INFO, p97
 
566
 *
 
567
 * Format:
 
568
 *     0:  CMD_OP_FRONT_BUFFER_INFO | (pitch<<FB0_PITCH_SHIFT) | FB0_*
 
569
 *     1:  FB1_*
 
570
 */
 
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
 
577
 
 
578
/* GFXCMDPARSER_DEST_BUFFER_INFO, p96
 
579
 *
 
580
 * Format:
 
581
 */
 
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)
 
589
 
 
590
 
 
591
/* GFXRENDERSTATE_DEST_BUFFER_VARIABLES, p152
 
592
 *
 
593
 * Format:
 
594
 *     0:  GFX_OP_DESTBUFFER_VARS
 
595
 *     1:  DEST_*
 
596
 */
 
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)
 
606
 
 
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)
 
624
 
 
625
#define GFX_OP_STIPPLE           ((0x3<<29)|(0x1d<<24)|(0x83<<16))
 
626
#define ST1_ENABLE               (1<<16)
 
627
#define ST1_MASK                 (0xffff)
 
628
 
 
629
#define I810_SET_FIELD( var, mask, value ) (var &= ~(mask), var |= value)
 
630
 
 
631
#endif