1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
|
/*
* Copyright 2005 Eric Anholt
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Authors:
* Eric Anholt <anholt@FreeBSD.org>
*
*/
#ifndef _sis6326_reg_h_
#define _sis6326_reg_h_
#define REG_6326_BitBlt_SrcAddr 0x8280
#define REG_6326_BitBlt_DstAddr 0x8284
#define REG_6326_BitBlt_DstSrcPitch 0x8288
#define REG_6326_BitBlt_HeightWidth 0x828c
#define REG_6326_BitBlt_fgColor 0x8290
#define REG_6326_BitBlt_bgColor 0x8294
#define REG_6326_BitBlt_Mask30 0x8298
#define REG_6326_BitBlt_Mask74 0x829c
#define REG_6326_BitBlt_ClipTopLeft 0x82a0
#define REG_6326_BitBlt_ClitBottomRight 0x82a4
#define REG_6326_BitBlt_Cmd 0x82a8
#define REG_6326_BitBlt_Pat 0x82ac
#define REG_6326_3D_TSFSa 0x8800
#define REG_6326_3D_TSZa 0x8804
#define REG_6326_3D_TSXa 0x8808
#define REG_6326_3D_TSYa 0x880C
#define REG_6326_3D_TSARGBa 0x8810
#define REG_6326_3D_TSUa 0x8814
#define REG_6326_3D_TSVa 0x8818
#define REG_6326_3D_TSWa 0x881C
#define REG_6326_3D_TSFSb 0x8820
#define REG_6326_3D_TSZb 0x8824
#define REG_6326_3D_TSXb 0x8828
#define REG_6326_3D_TSYb 0x882C
#define REG_6326_3D_TSARGBb 0x8830
#define REG_6326_3D_TSUb 0x8834
#define REG_6326_3D_TSVb 0x8838
#define REG_6326_3D_TSWb 0x883C
#define REG_6326_3D_TSFSc 0x8840
#define REG_6326_3D_TSZc 0x8844
#define REG_6326_3D_TSXc 0x8848
#define REG_6326_3D_TSYc 0x884C
#define REG_6326_3D_TSARGBc 0x8850
#define REG_6326_3D_TSUc 0x8854
#define REG_6326_3D_TSVc 0x8858
#define REG_6326_3D_TSWc 0x885C
#define REG_6326_3D_TEnable 0x8A00
#define REG_6326_3D_ZSet 0x8A04
#define REG_6326_3D_ZAddress 0x8A08
#define REG_6326_3D_AlphaSet 0x8A0C
#define REG_6326_3D_AlphaAddress 0x8A10
#define REG_6326_3D_DstSet 0x8A14
#define REG_6326_3D_DstAddress 0x8A18
#define REG_6326_3D_LinePattern 0x8A1C
#define REG_6326_3D_FogSet 0x8A20
#define REG_6326_3D_DstSrcBlendMode 0x8A28
#define REG_6326_3D_ClipTopBottom 0x8A30
#define REG_6326_3D_ClipLeftRight 0x8A34
#define REG_6326_3D_TextureSet 0x8A38
#define REG_6326_3D_TextureBlendSet 0x8A3C
/* Low transparency value is in TextureBlendSet */
#define REG_6326_3D_TextureTransparencyColorHigh 0x8A40
#define REG_6326_3D_TextureAddress0 0x8A44
#define REG_6326_3D_TextureAddress1 0x8A48
#define REG_6326_3D_TextureAddress2 0x8A4C
#define REG_6326_3D_TextureAddress3 0x8A50
#define REG_6326_3D_TextureAddress4 0x8A54
#define REG_6326_3D_TextureAddress5 0x8A58
#define REG_6326_3D_TextureAddress6 0x8A5C
#define REG_6326_3D_TextureAddress7 0x8A60
#define REG_6326_3D_TextureAddress8 0x8A64
#define REG_6326_3D_TextureAddress9 0x8A68
#define REG_6326_3D_TexturePitch01 0x8A6C
#define REG_6326_3D_TexturePitch23 0x8A70
#define REG_6326_3D_TexturePitch45 0x8A74
#define REG_6326_3D_TexturePitch67 0x8A78
#define REG_6326_3D_TexturePitch89 0x8A7C
#define REG_6326_3D_TextureWidthHeight 0x8A80
#define REG_6326_3D_TextureBorderColor 0x8A90
#define REG_6326_3D_EndPrimitiveList 0x8Aff
/*
* REG_6326_BitBlt_fgColor (0x8290-0x8293)
* REG_6326_BitBlt_bgColor (0x8294-0x8297)
*/
#define MASK_BltRop 0xff000000
#define MASK_BltColor 0x00ffffff
#define SiS_ROP_SRCCOPY 0xcc000000
#define SiS_ROP_PATCOPY 0xf0000000
/*
* REG_6326_BitBlt_Cmd (0x82a8-0x82ab)
*/
#define MASK_QueueStatus 0x0000ffff
#define MASK_BltCmd0 0x00ff0000
#define MASK_BltCmd1 0xff000000
#define BLT_SRC_BG 0x00000000
#define BLT_SRC_FG 0x00010000
#define BLT_SRC_VID 0x00020000
#define BLT_SRC_CPU 0x00030000
#define BLT_PAT_BG 0x00000000
#define BLT_PAT_FG 0x00040000
#define BLT_PAT_PAT 0x000b0000
#define BLT_XINC 0x00100000
#define BLT_YINC 0x00200000
#define BLT_CLIP 0x00400000
#define BLT_BUSY 0x04000000
/*
* REG_3D_PrimitiveSet -- Define Fire Primitive Mask (89F8h-89FBh)
*/
#define MASK_6326_DrawPrimitiveCommand 0x00000007
#define MASK_6326_SetFirePosition 0x00000F00
#define MASK_6326_ShadingMode 0x001c0000
#define MASK_6326_Direction 0x0003f000
/* OP_3D_{POINT,LINE,TRIANGLE}_DRAW same as 300-series */
/* OP_3D_DIRECTION*_ same as 300-series */
#define OP_6326_3D_FIRE_TFIRE 0x00000000
#define OP_6326_3D_FIRE_TSARGBa 0x00000100
#define OP_6326_3D_FIRE_TSWa 0x00000200
#define OP_6326_3D_FIRE_TSARGBb 0x00000300
#define OP_6326_3D_FIRE_TSWb 0x00000400
#define OP_6326_3D_FIRE_TSARGBc 0x00000500
#define OP_6326_3D_FIRE_TSWc 0x00000600
#define OP_6326_3D_FIRE_TSVc 0x00000700
#define OP_6326_3D_ATOP 0x00000000
#define OP_6326_3D_BTOP 0x00010000
#define OP_6326_3D_CTOP 0x00020000
#define OP_6326_3D_AMID 0x00000000
#define OP_6326_3D_BMID 0x00004000
#define OP_6326_3D_CMID 0x00008000
#define OP_6326_3D_ABOT 0x00000000
#define OP_6326_3D_BBOT 0x00001000
#define OP_6326_3D_CBOT 0x00002000
#define OP_6326_3D_SHADE_FLAT_TOP 0x00040000
#define OP_6326_3D_SHADE_FLAT_MID 0x00080000
#define OP_6326_3D_SHADE_FLAT_BOT 0x000c0000
#define OP_6326_3D_SHADE_FLAT_GOURAUD 0x00100000
/*
* REG_6326_3D_EngineFire
*/
#define MASK_CmdQueueLen 0x0FFF0000
#define ENG_3DIDLEQE 0x00000002
#define ENG_3DIDLE 0x00000001
/*
* REG_6326_3D_TEnable -- Define Capility Enable Mask (8A00h-8A03h)
*/
#define S_ENABLE_Dither (1 << 0)
#define S_ENABLE_Transparency (1 << 1)
#define S_ENABLE_Blend (1 << 2)
#define S_ENABLE_Fog (1 << 3)
#define S_ENABLE_Specular (1 << 4)
#define S_ENABLE_LargeCache (1 << 5)
#define S_ENABLE_TextureCache (1 << 7)
#define S_ENABLE_TextureTransparency (1 << 8)
#define S_ENABLE_TexturePerspective (1 << 9)
#define S_ENABLE_Texture (1 << 10)
#define S_ENABLE_PrimSetup (1 << 11)
#define S_ENABLE_LinePattern (1 << 12)
#define S_ENABLE_StippleAlpha (1 << 13) /* requires S_ENABLE_Stipple */
#define S_ENABLE_Stipple (1 << 14)
#define S_ENABLE_AlphaBuffer (1 << 16)
#define S_ENABLE_AlphaTest (1 << 17)
#define S_ENABLE_AlphaWrite (1 << 18)
#define S_ENABLE_ZTest (1 << 20)
#define S_ENABLE_ZWrite (1 << 21)
/*
* REG_3D_ZSet -- Define Z Buffer Setting Mask (8A08h-8A0Bh)
*/
#define MASK_6326_ZBufferPitch 0x00003FFF
#define MASK_6326_ZTestMode 0x00070000
#define MASK_6326_ZBufferFormat 0x00100000
#define S_ZSET_FORMAT_8 0x00000000
#define S_ZSET_FORMAT_16 0x00100000
#define S_ZSET_PASS_NEVER 0x00000000
#define S_ZSET_PASS_LESS 0x00010000
#define S_ZSET_PASS_EQUAL 0x00020000
#define S_ZSET_PASS_LEQUAL 0x00030000
#define S_ZSET_PASS_GREATER 0x00040000
#define S_ZSET_PASS_NOTEQUAL 0x00050000
#define S_ZSET_PASS_GEQUAL 0x00060000
#define S_ZSET_PASS_ALWAYS 0x00070000
/*
* REG_3D_AlphaSet -- Define Alpha Buffer Setting Mask (8A0Ch-8A0Fh)
*/
#define MASK_AlphaBufferPitch 0x000003FF
#define MASK_AlphaRefValue 0x00FF0000
#define MASK_AlphaTestMode 0x07000000
#define MASK_AlphaBufferFormat 0x30000000
#define S_ASET_FORMAT_8 0x30000000
#define S_ASET_PASS_NEVER 0x00000000
#define S_ASET_PASS_LESS 0x01000000
#define S_ASET_PASS_EQUAL 0x02000000
#define S_ASET_PASS_LEQUAL 0x03000000
#define S_ASET_PASS_GREATER 0x04000000
#define S_ASET_PASS_NOTEQUAL 0x05000000
#define S_ASET_PASS_GEQUAL 0x06000000
#define S_ASET_PASS_ALWAYS 0x07000000
/*
* REG_3D_DstSet -- Define Destination Buffer Setting Mask (8A14h-8A17h)
*/
/* pitch, format, depth, rgborder, rop bits same as 300-series */
/*
* REG_6326_3D_FogSet -- Define Fog Mask (8A20h-8A23h)
*/
#define MASK_6326_FogColor 0x00FFFFFF
#define MASK_6326_FogMode 0x01000000
#define FOGMODE_6326_CONST 0x00000000
#define FOGMODE_6326_LINEAR 0x01000000
/*
* REG_6326_3D_DstSrcBlendMode (0x8A28 - 0x8A2B)
*/
#define MASK_6326_SrcBlendMode 0xf0000000
#define MASK_6326_DstBlendMode 0x0f000000
#define MASK_6326_TransparencyColor 0x00ffffff
#define S_DBLEND_ZERO 0x00000000
#define S_DBLEND_ONE 0x10000000
#define S_DBLEND_SRC_COLOR 0x20000000
#define S_DBLEND_INV_SRC_COLOR 0x30000000
#define S_DBLEND_SRC_ALPHA 0x40000000
#define S_DBLEND_INV_SRC_ALPHA 0x50000000
#define S_DBLEND_DST_ALPHA 0x60000000
#define S_DBLEND_INV_DST_ALPHA 0x70000000
#define S_SBLEND_ZERO 0x00000000
#define S_SBLEND_ONE 0x01000000
#define S_SBLEND_SRC_ALPHA 0x04000000
#define S_SBLEND_INV_SRC_ALPHA 0x05000000
#define S_SBLEND_DST_ALPHA 0x06000000
#define S_SBLEND_INV_DST_ALPHA 0x07000000
#define S_SBLEND_DST_COLOR 0x08000000
#define S_SBLEND_INV_DST_COLOR 0x09000000
#define S_SBLEND_SRC_ALPHA_SAT 0x0A000000
#define S_SBLEND_BOTH_SRC_ALPHA 0x0B000000
#define S_SBLEND_BOTH_INV_SRC_ALPHA 0x0C000000
/*
* REG_6326_3D_TextureSet (0x8A38 - 0x8A3B)
*/
#define MASK_6326_TextureMinFilter 0x00000007
#define MASK_6326_TextureMagFilter 0x00000008
#define MASK_6326_ClearTexCache 0x00000010
#define MASK_6326_TextureInSystem 0x00000020
#define MASK_6326_TextureLevel 0x00000F00
#define MASK_6326_TextureSignYUVFormat 0x00008000
#define MASK_6326_TextureMappingMode 0x00FF0000
#define TEXEL_6326_BGR_ORDER 0x80000000
#define TEXEL_6326_INDEX1 0x00000000
#define TEXEL_6326_INDEX2 0x01000000
#define TEXEL_6326_INDEX4 0x02000000
#define TEXEL_6326_M4 0x10000000
#define TEXEL_6326_AM44 0x16000000
#define TEXEL_6326_YUV422 0x20000000 /* YUYV */
#define TEXEL_6326_YVU422 0x21000000 /* YVYU */
#define TEXEL_6326_UVY422 0x22000000 /* UYVY */
#define TEXEL_6326_VUY422 0x23000000 /* VYUY */
#define TEXEL_6326_L1 0x30000000
#define TEXEL_6326_L2 0x31000000
#define TEXEL_6326_L4 0x32000000
#define TEXEL_6326_L8 0x33000000
#define TEXEL_6326_AL22 0x35000000
#define TEXEL_6326_AL44 0x38000000
#define TEXEL_6326_AL88 0x3c000000
#define TEXEL_6326_RGB_332_8 0x40000000
#define TEXEL_6326_RGB_233_8 0x41000000
#define TEXEL_6326_RGB_232_8 0x42000000
#define TEXEL_6326_ARGB_1232_8 0x43000000
#define TEXEL_6326_RGB_555_16 0x50000000
#define TEXEL_6326_RGB_565_16 0x51000000
#define TEXEL_6326_ARGB_1555_16 0x52000000
#define TEXEL_6326_ARGB_4444_16 0x53000000
#define TEXEL_6326_ARGB_8332_16 0x54000000
#define TEXEL_6326_ARGB_8233_16 0x55000000
#define TEXEL_6326_ARGB_8232_16 0x56000000
#define TEXEL_6326_ARGB_8565_24 0x63000000
#define TEXEL_6326_ARGB_8555_24 0x67000000
#define TEXEL_6326_RGB_888_24 0x68000000
#define TEXEL_6326_ARGB_8888_32 0x73000000
#define TEXEL_6326_ARGB_0888_32 0x74000000
#define TEX_MAP_WRAP_U 0x00010000
#define TEX_MAP_WRAP_V 0x00020000
#define TEX_MAP_MIRROR_U 0x00040000
#define TEX_MAP_MIRROR_V 0x00080000
#define TEX_MAP_CLAMP_U 0x00100000
#define TEX_MAP_CLAMP_V 0x00200000
#define TEX_MAP_USE_CTB_SMOOTH 0x00400000
#define TEX_MAP_USE_CTB 0x00800000
#define TEX_FILTER_NEAREST 0x00000000
#define TEX_FILTER_LINEAR 0x00000001
#define TEX_FILTER_NEAREST_MIP_NEAREST 0x00000002
#define TEX_FILTER_NEAREST_MIP_LINEAR 0x00000003
#define TEX_FILTER_LINEAR_MIP_NEAREST 0x00000004
#define TEX_FILTER_LINEAR_MIP_LINEAR 0x00000005
#define TEX_FILTER_MAG_NEAREST 0x00000000
#define TEX_FILTER_MAG_LINEAR 0x00000008
/*
* REG_6326_3D_TextureBlendSet (0x8A3C - 0x8A3F)
*/
#define MASK_TextureTransparencyLowB 0x000000ff
#define MASK_TextureTransparencyLowG 0x0000FF00
#define MASK_TextureTransparencyLowR 0x00ff0000
#define MASK_TextureBlend 0x0f000000
#define TB_C_CS (0 << 26)
#define TB_C_CF (1 << 26)
#define TB_C_CFCS (2 << 26) /* also 3 << 26 */
#define TB_C_CFOMAS_ASCS (4 << 26)
#define TB_C_CSOMAF_AFCF (6 << 26) /* also 7 << 26 */
#define TB_A_AS (0 << 24)
#define TB_A_AF (1 << 24)
#define TB_A_AFAS (1 << 24)
/*
* REG_6326_3D_TextureTransparencyColorHigh (0x8A40 - 0x8A43)
*/
#define MASK_TextureTransparencyHighB 0x000000FF
#define MASK_TextureTransparencyHighG 0x0000FF00
#define MASK_TextureTransparencyHighR 0x00FF0000
/*
* REG_3D_TexturePitch01-89 (0x8A6C - 0x8A7F)
*/
#define MASK_TexturePitchOdd 0x000003FF
#define MASK_TexturePitchEven 0x03FF0000
#define SHIFT_TexturePitchEven 16
/*
* REG_3D_TextureWidthHeightMix (0x8A80 - 0x8A83)
*/
#define MASK_TextureWidthLog2 0xf0000000
#define MASK_TextureHeightLog2 0x0f000000
/*
* REG_3D_TextureBorderColor (0x8A90 - 0x8A93)
*/
#define MASK_TextureBorderColorB 0x000000FF
#define MASK_TextureBorderColorG 0x0000FF00
#define MASK_TextureBorderColorR 0x00FF0000
#define MASK_TextureBorderColorA 0xFF000000
#endif /* _sis6326_reg_h_ */
|