1 | /*-*-c++-*-*/
|
---|
2 | #ifndef __CVGDEFS_H__
|
---|
3 | #define __CVGDEFS_H__
|
---|
4 |
|
---|
5 | /*
|
---|
6 | ** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY
|
---|
7 | ** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT
|
---|
8 | ** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX
|
---|
9 | ** INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE
|
---|
10 | ** DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com).
|
---|
11 | ** THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
---|
12 | ** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A
|
---|
13 | ** FULL TEXT OF THE NON-WARRANTY PROVISIONS.
|
---|
14 | **
|
---|
15 | ** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO
|
---|
16 | ** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN
|
---|
17 | ** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013,
|
---|
18 | ** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR
|
---|
19 | ** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF
|
---|
20 | ** THE UNITED STATES.
|
---|
21 | **
|
---|
22 | ** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED
|
---|
23 | **
|
---|
24 | ** $Revision: 1.1 $
|
---|
25 | ** $Date: 2000-02-25 00:37:49 $
|
---|
26 | */
|
---|
27 |
|
---|
28 | //----------------------- CMDFIFO Section ---------------------------
|
---|
29 | //----------------------- CMDFIFO Section ---------------------------
|
---|
30 | //----------------------- CMDFIFO Section ---------------------------
|
---|
31 |
|
---|
32 | // CVG/H3 abstraction
|
---|
33 | #define SST_IS_CMDFIFO_ENABLED(sst) (sst->fbiInit7 & SST_EN_CMDFIFO)
|
---|
34 |
|
---|
35 | //----------------- SST cmdFifoBase bits ---------------------------
|
---|
36 | #define SST_CMDFIFO_START_SHIFT 0
|
---|
37 | #define SST_CMDFIFO_START (0x3FF<<SST_CMDFIFO_START_SHIFT)
|
---|
38 | #define SST_CMDFIFO_END_SHIFT 16
|
---|
39 | #define SST_CMDFIFO_END (0x3FF<<SST_CMDFIFO_END_SHIFT)
|
---|
40 |
|
---|
41 | // SST COMMAND PACKET defines
|
---|
42 | #define SSTCP_PKT_SIZE 3
|
---|
43 | #define SSTCP_PKT SST_MASK(SSTCP_PKT_SIZE)
|
---|
44 | #define SSTCP_PKT0 0
|
---|
45 | #define SSTCP_PKT1 1
|
---|
46 | #define SSTCP_PKT2 2
|
---|
47 | #define SSTCP_PKT3 3
|
---|
48 | #define SSTCP_PKT4 4
|
---|
49 | #define SSTCP_PKT5 5
|
---|
50 | #define SSTCP_PKT6 6
|
---|
51 | #define SSTCP_PKT7 7
|
---|
52 |
|
---|
53 | #define SSTCP_BOGUS_WORDS_SHIFT 29
|
---|
54 | #define SSTCP_BOGUS_WORDS (7 << SSTCP_BOGUS_WORDS_SHIFT)
|
---|
55 |
|
---|
56 | // packet 0 defines
|
---|
57 | #define SSTCP_PKT0_FUNC_SHIFT 3
|
---|
58 | #define SSTCP_PKT0_FUNC (7 << SSTCP_PKT0_FUNC_SHIFT)
|
---|
59 | #define SSTCP_PKT0_NOP ((0<<SSTCP_PKT0_FUNC_SHIFT) | SSTCP_PKT0)
|
---|
60 | #define SSTCP_PKT0_JSR ((1<<SSTCP_PKT0_FUNC_SHIFT) | SSTCP_PKT0)
|
---|
61 | #define SSTCP_PKT0_RET ((2<<SSTCP_PKT0_FUNC_SHIFT) | SSTCP_PKT0)
|
---|
62 | #define SSTCP_PKT0_JMP_LOCAL ((3<<SSTCP_PKT0_FUNC_SHIFT) | SSTCP_PKT0)
|
---|
63 | #define SSTCP_PKT0_JMP_AGP ((4<<SSTCP_PKT0_FUNC_SHIFT) | SSTCP_PKT0)
|
---|
64 | #define SSTCP_PKT0_ADDR_SHIFT 6
|
---|
65 | #define SSTCP_PKT0_ADDR (0x7FFFFF<<SSTCP_PKT0_ADDR_SHIFT)
|
---|
66 |
|
---|
67 | // packet 1 defines
|
---|
68 | #define SSTCP_REGBASE_SHIFT SSTCP_PKT_SIZE
|
---|
69 | #define SSTCP_REGBASE ((0xFFF)<<SSTCP_REGBASE_SHIFT)
|
---|
70 | #define SSTCP_INC BIT(15)
|
---|
71 | #define SSTCP_PKT1_NWORDS_SHIFT 16
|
---|
72 | #define SSTCP_PKT1_NWORDS (0xFFFFUL<<SSTCP_PKT1_NWORDS_SHIFT)
|
---|
73 |
|
---|
74 | // packet 2 defines
|
---|
75 | #define SSTCP_PKT2_MASK_SHIFT SSTCP_PKT_SIZE
|
---|
76 | #define SSTCP_PKT2_MASK (0x1FFFFFFFUL<<SSTCP_PKT2_MASK_SHIFT)
|
---|
77 |
|
---|
78 | // packet 3 defines
|
---|
79 | #define SSTCP_PKT3_CMD_SHIFT SSTCP_PKT_SIZE
|
---|
80 | #define SSTCP_PKT3_CMD (0x7<<SSTCP_PKT3_CMD_SHIFT)
|
---|
81 | # define SSTCP_PKT3_BDDBDD (0<<SSTCP_PKT3_CMD_SHIFT)
|
---|
82 | # define SSTCP_PKT3_BDDDDD (1<<SSTCP_PKT3_CMD_SHIFT)
|
---|
83 | # define SSTCP_PKT3_DDDDDD (2<<SSTCP_PKT3_CMD_SHIFT)
|
---|
84 | #define SSTCP_PKT3_NUMVERTEX_SHIFT (SSTCP_PKT_SIZE+3)
|
---|
85 | #define SSTCP_PKT3_NUMVERTEX (0xF << SSTCP_PKT3_NUMVERTEX_SHIFT)
|
---|
86 | #define SSTCP_PKT3_PMASK_SHIFT (SSTCP_PKT_SIZE+3+4)
|
---|
87 | #define SSTCP_PKT3_PMASK (0xFFFUL<<SSTCP_PKT3_PMASK_SHIFT)
|
---|
88 | #define SSTCP_PKT3_SMODE_SHIFT (SSTCP_PKT3_PMASK_SHIFT+12)
|
---|
89 | #define SSTCP_PKT3_SMODE (0x3FUL<<SSTCP_PKT3_SMODE_SHIFT)
|
---|
90 | #define SSTCP_PKT3_PACKEDCOLOR BIT(28)
|
---|
91 |
|
---|
92 | // packet 4 defines
|
---|
93 | #define SSTCP_REGBASE_SHIFT SSTCP_PKT_SIZE
|
---|
94 | #define SSTCP_REGBASE ((0xFFF)<<SSTCP_REGBASE_SHIFT)
|
---|
95 | #define SSTCP_PKT4_MASK_SHIFT 15
|
---|
96 | #define SSTCP_PKT4_MASK (0x3FFFUL<<SSTCP_PKT4_MASK_SHIFT)
|
---|
97 |
|
---|
98 | // packet 5 defines
|
---|
99 | #define SSTCP_PKT5_NWORDS_SHIFT 3
|
---|
100 | #define SSTCP_PKT5_NWORDS (0x7FFFFUL<<SSTCP_PKT5_NWORDS_SHIFT)
|
---|
101 | #define SSTCP_PKT5_BYTEN_WN_SHIFT 22
|
---|
102 | #define SSTCP_PKT5_BYTEN_WN (0xFUL<<SSTCP_PKT5_BYTEN_WN_SHIFT)
|
---|
103 | #define SSTCP_PKT5_BYTEN_W2_SHIFT 26
|
---|
104 | #define SSTCP_PKT5_BYTEN_W2 (0xFUL<<SSTCP_PKT5_BYTEN_W2_SHIFT)
|
---|
105 | #define SSTCP_PKT5_SPACE_SHIFT 30
|
---|
106 | #define SSTCP_PKT5_SPACE (0x3UL<<SSTCP_PKT5_SPACE_SHIFT)
|
---|
107 | #define SSTCP_PKT5_LFB (0x0UL<<SSTCP_PKT5_SPACE_SHIFT)
|
---|
108 | #define SSTCP_PKT5_YUV (0x1UL<<SSTCP_PKT5_SPACE_SHIFT)
|
---|
109 | #define SSTCP_PKT5_3DLFB (0x2UL<<SSTCP_PKT5_SPACE_SHIFT)
|
---|
110 | #define SSTCP_PKT5_TEXPORT (0x3UL<<SSTCP_PKT5_SPACE_SHIFT)
|
---|
111 | #define SSTCP_PKT5_BASEADDR 0x1FFFFFFUL
|
---|
112 |
|
---|
113 | //----------------------- 2D Section ---------------------------
|
---|
114 | //----------------------- 2D Section ---------------------------
|
---|
115 | //----------------------- 2D Section ---------------------------
|
---|
116 |
|
---|
117 | #define SSTG_XY_SIZE 11
|
---|
118 | #define SSTG_BLIT_SIZE 12
|
---|
119 |
|
---|
120 | //----------------- SSTG CVG command bits ---------------------------
|
---|
121 | #define SSTG_COMMAND_SHIFT 0
|
---|
122 | #define SSTG_COMMAND (0x7<<SSTG_COMMAND_SHIFT)
|
---|
123 | # define SSTG_BLT (0<<SSTG_COMMAND_SHIFT)
|
---|
124 | # define SSTG_HOST_BLT (1<<SSTG_COMMAND_SHIFT)
|
---|
125 | # define SSTG_RECTFILL (2<<SSTG_COMMAND_SHIFT)
|
---|
126 | # define SSTG_FRECTFILL (3<<SSTG_COMMAND_SHIFT)
|
---|
127 |
|
---|
128 | #define SSTG_SRC_FORMAT_SHIFT 3
|
---|
129 | # define SSTG_SRC_FORMAT (0x7UL << SSTG_SRC_FORMAT_SHIFT)
|
---|
130 | # define SSTG_PIXFMT_1BPPstd (0x0UL << SSTG_SRC_FORMAT_SHIFT)
|
---|
131 | # define SSTG_PIXFMT_1BPP (0x1UL << SSTG_SRC_FORMAT_SHIFT)
|
---|
132 | # define SSTG_PIXFMT_16BPP (0x2UL << SSTG_SRC_FORMAT_SHIFT)
|
---|
133 | # define SSTG_PIXFMT_24BPP (0x3UL << SSTG_SRC_FORMAT_SHIFT)
|
---|
134 | # define SSTG_PIXFMT_24BPPdit2 (0x4UL << SSTG_SRC_FORMAT_SHIFT)
|
---|
135 | # define SSTG_PIXFMT_24BPPdit4 (0x5UL << SSTG_SRC_FORMAT_SHIFT)
|
---|
136 | #define SSTG_SRC_LANES_SHIFT 6
|
---|
137 | # define SSTG_SRC_LANES (0x3UL << SSTG_SRC_LANES_SHIFT)
|
---|
138 | # define SSTG_SRC_LANES_ARGB (0x0UL << SSTG_SRC_LANES_SHIFT)
|
---|
139 | # define SSTG_SRC_LANES_ABGR (0x1UL << SSTG_SRC_LANES_SHIFT)
|
---|
140 | # define SSTG_SRC_LANES_RGBA (0x2UL << SSTG_SRC_LANES_SHIFT)
|
---|
141 | # define SSTG_SRC_LANES_BGRA (0x3UL << SSTG_SRC_LANES_SHIFT)
|
---|
142 |
|
---|
143 | #define SSTG_HOST_BYTE_SWIZZLE BIT(8)
|
---|
144 | #define SSTG_HOST_WORD_SWIZZLE BIT(9)
|
---|
145 | #define SSTG_EN_SRC_COLORKEY BIT(10)
|
---|
146 | #define SSTG_EN_DST_COLORKEY BIT(12)
|
---|
147 | #define SSTG_SRC_IS_TILED BIT(14)
|
---|
148 | #define SSTG_DST_IS_TILED BIT(15)
|
---|
149 | #define SSTG_EN_CLIP BIT(16)
|
---|
150 | #define SSTG_TRANSPARENT BIT(17)
|
---|
151 |
|
---|
152 | #define SSTG_GO BIT(31)
|
---|
153 |
|
---|
154 | //----------------- SSTG baseAddr defines ---------------------------
|
---|
155 | #define SSTG_LINEAR_STRIDE 0xFFF
|
---|
156 | #define SSTG_TILES_INX 0x03F
|
---|
157 | #define SSTG_TILES_BASEROW 0x3FF
|
---|
158 | #define SSTG_TILES_INVERT_RS BIT(6)
|
---|
159 |
|
---|
160 | //----------------- SSTG rop defines ---------------------------
|
---|
161 | #define SSTG_ROP_ZERO 0x0UL
|
---|
162 | #define SSTG_ROP_NOR 0x1UL
|
---|
163 | #define SSTG_ROP_ANDI 0x2UL
|
---|
164 | #define SSTG_ROP_NSRC 0x3UL
|
---|
165 | #define SSTG_ROP_ANDR 0x4UL
|
---|
166 | #define SSTG_ROP_NDST 0x5UL
|
---|
167 | #define SSTG_ROP_XOR 0x6UL
|
---|
168 | #define SSTG_ROP_NAND 0x7UL
|
---|
169 | #define SSTG_ROP_AND 0x8UL
|
---|
170 | #define SSTG_ROP_XNOR 0x9UL
|
---|
171 | #define SSTG_ROP_DST 0xaUL
|
---|
172 | #define SSTG_ROP_ORI 0xbUL
|
---|
173 | #define SSTG_ROP_SRC 0xcUL
|
---|
174 | #define SSTG_ROP_ORR 0xdUL
|
---|
175 | #define SSTG_ROP_OR 0xeUL
|
---|
176 | #define SSTG_ROP_ONE 0xfUL
|
---|
177 |
|
---|
178 |
|
---|
179 | //----------------------- 3D Section ---------------------------
|
---|
180 | //----------------------- 3D Section ---------------------------
|
---|
181 | //----------------------- 3D Section ---------------------------
|
---|
182 | #define MAX_NUM_TMUS 3
|
---|
183 |
|
---|
184 | // SST commands
|
---|
185 | #define SST_NOPCMD 1
|
---|
186 | #define SST_TRIANGLECMD 2
|
---|
187 | #define SST_FASTFILLCMD 3
|
---|
188 | #define SST_SWAPBUFCMD 4
|
---|
189 | #define SST_SBEGINTRICMD 5
|
---|
190 | #define SST_SDRAWTRICMD 6
|
---|
191 |
|
---|
192 | // this crazy macro fixes the binary point within a floating point
|
---|
193 | // number so that it has 'fracbits' to the right of the binary point
|
---|
194 | // it also adds a '1' bit to the MSB so that slightly negative numbers
|
---|
195 | // end up looking like twos complement numbers (they carry out from the '1')
|
---|
196 | #define FLOAT_FIX(f,fracbits) ((f)+(float)(3<<(22-(fracbits))))
|
---|
197 |
|
---|
198 | #define SST_FLOAT(f,scale,shift) (unsigned long)((f)*((scale)*(float)(1<<shift)))
|
---|
199 | #define SST_TLOD_MINMAX(lodmin,lodmax) \
|
---|
200 | (((lodmin) << (SST_LODMIN_SHIFT)) | \
|
---|
201 | ((lodmax) << (SST_LODMAX_SHIFT)))
|
---|
202 | #define SST_TLOD_MINMAX_INT(lodmin,lodmax) \
|
---|
203 | (((lodmin) << (SST_LOD_FRACBITS+SST_LODMIN_SHIFT)) | \
|
---|
204 | ((lodmax) << (SST_LOD_FRACBITS+SST_LODMAX_SHIFT)))
|
---|
205 |
|
---|
206 | // this crazy macro tests the sign bit of a float by loading it into
|
---|
207 | // an integer register and then testing the sign bit of the integer
|
---|
208 | #define FLOAT_ISNEG(f) ((*(int *)(&(f))) < 0)
|
---|
209 |
|
---|
210 | // these crazy macros returns the sign of a number (1 if >= 0; -1 if < 0)
|
---|
211 | #define ISIGN(x) (((x) | 0x40000000L) >> 30)
|
---|
212 | #define FSIGN(f) ISIGN(*(long *)&f)
|
---|
213 |
|
---|
214 | #define BIT(n) (1UL<<(n))
|
---|
215 | #define SST_MASK(n) (0xFFFFFFFFL >> (32-(n)))
|
---|
216 | #define SST_MASK64(n) FX_MASK64(n)
|
---|
217 |
|
---|
218 | //----------------- SST binary point locations ---------------
|
---|
219 | #define SST_LOD_SIZE 6
|
---|
220 | #define SST_LOD_FRACBITS 2
|
---|
221 | #define SST_XY_SIZE 16
|
---|
222 | #define SST_XY_INTBITS 12
|
---|
223 | #define SST_XY_FRACBITS 4
|
---|
224 | #define SST_RGBA_SIZE 24
|
---|
225 | #define SST_RGBA_INTBITS 8
|
---|
226 | #define SST_RGBA_FRACBITS 12
|
---|
227 | #define SST_Z_SIZE 32
|
---|
228 | #define SST_Z_INTBITS 16
|
---|
229 | #define SST_Z_FRACBITS 12
|
---|
230 | // NOTE: below are ONLY for the fixed point registers
|
---|
231 | #define SST_ST_SIZE 32
|
---|
232 | #define SST_ST_INTBITS 14
|
---|
233 | #define SST_ST_FRACBITS 18
|
---|
234 | #define SST_W_SIZE 32
|
---|
235 | #define SST_W_INTBITS 2
|
---|
236 | #define SST_W_FRACBITS 30
|
---|
237 |
|
---|
238 | //----------------- SST status bits ---------------------------
|
---|
239 | #define SST_FIFOLEVEL 0x3F
|
---|
240 | #define SST_VRETRACE BIT(6)
|
---|
241 | #define SST_FBI_BUSY BIT(7)
|
---|
242 | #define SST_TMU_BUSY BIT(8)
|
---|
243 | #define SST_TREX_BUSY SST_TMU_BUSY
|
---|
244 | #define SST_BUSY BIT(9)
|
---|
245 | #define SST_DISPLAYED_BUFFER_SHIFT 10
|
---|
246 | #define SST_DISPLAYED_BUFFER (0x3<<SST_DISPLAYED_BUFFER_SHIFT)
|
---|
247 | #define SST_MEMFIFOLEVEL_SHIFT 12
|
---|
248 | #define SST_MEMFIFOLEVEL (0xFFFF<<SST_MEMFIFOLEVEL_SHIFT)
|
---|
249 | #define SST_SWAPBUFPENDING_SHIFT 28
|
---|
250 | #define SST_SWAPBUFPENDING (0x7<<SST_SWAPBUFPENDING_SHIFT)
|
---|
251 |
|
---|
252 | //----------------- SST intrCtrl bits ---------------------------
|
---|
253 | #define SST_EN_HSYNC_RISING BIT(0)
|
---|
254 | #define SST_EN_HSYNC_FALLING BIT(1)
|
---|
255 | #define SST_EN_VSYNC_RISING BIT(2)
|
---|
256 | #define SST_EN_VSYNC_FALLING BIT(3)
|
---|
257 | #define SST_EN_PCI_FIFO_FULL BIT(4)
|
---|
258 | #define SST_EN_USER_INTR BIT(5)
|
---|
259 | #define SST_HSYNC_RISING BIT76)
|
---|
260 | #define SST_HSYNC_FALLING BIT(7)
|
---|
261 | #define SST_VSYNC_RISING BIT(8)
|
---|
262 | #define SST_VSYNC_FALLING BIT(9)
|
---|
263 | #define SST_PCI_FIFO_FULL BIT(10)
|
---|
264 | #define SST_USER_INTR BIT(11)
|
---|
265 |
|
---|
266 | //----------------- SST lfbMode bits --------------------------
|
---|
267 | #define SST_LFB_FORMAT_SHIFT 0
|
---|
268 | #define SST_LFB_FORMAT (0xF<<SST_LFB_FORMAT_SHIFT)
|
---|
269 | # define SST_LFB_565 (0<<SST_LFB_FORMAT_SHIFT)
|
---|
270 | # define SST_LFB_555 (1<<SST_LFB_FORMAT_SHIFT)
|
---|
271 | # define SST_LFB_1555 (2<<SST_LFB_FORMAT_SHIFT)
|
---|
272 | # define SST_LFB_u1 (3<<SST_LFB_FORMAT_SHIFT)
|
---|
273 | # define SST_LFB_888 (4<<SST_LFB_FORMAT_SHIFT)
|
---|
274 | # define SST_LFB_8888 (5<<SST_LFB_FORMAT_SHIFT)
|
---|
275 | # define SST_LFB_u2 (6<<SST_LFB_FORMAT_SHIFT)
|
---|
276 | # define SST_LFB_u3 (7<<SST_LFB_FORMAT_SHIFT)
|
---|
277 | # define SST_LFB_Z565 (12<<SST_LFB_FORMAT_SHIFT)
|
---|
278 | # define SST_LFB_Z555 (13<<SST_LFB_FORMAT_SHIFT)
|
---|
279 | # define SST_LFB_Z1555 (14<<SST_LFB_FORMAT_SHIFT)
|
---|
280 | # define SST_LFB_ZZ (15<<SST_LFB_FORMAT_SHIFT)
|
---|
281 | #define SST_LFB_WRITEBUFSELECT_SHIFT 4
|
---|
282 | #define SST_LFB_WRITEBUFSELECT (0x3<<SST_LFB_WRITEBUFSELECT_SHIFT)
|
---|
283 | # define SST_LFB_WRITEFRONTBUFFER (0<<SST_LFB_WRITEBUFSELECT_SHIFT)
|
---|
284 | # define SST_LFB_WRITEBACKBUFFER (1<<SST_LFB_WRITEBUFSELECT_SHIFT)
|
---|
285 | #define SST_LFB_READBUFSELECT_SHIFT 6
|
---|
286 | #define SST_LFB_READBUFSELECT (0x3<<SST_LFB_READBUFSELECT_SHIFT)
|
---|
287 | # define SST_LFB_READFRONTBUFFER (0<<SST_LFB_READBUFSELECT_SHIFT)
|
---|
288 | # define SST_LFB_READBACKBUFFER (1<<SST_LFB_READBUFSELECT_SHIFT)
|
---|
289 | # define SST_LFB_READDEPTHABUFFER (2<<SST_LFB_READBUFSELECT_SHIFT)
|
---|
290 | # define SST_LFB_READAUXBUFFER SST_LFB_READDEPTHABUFFER
|
---|
291 | #define SST_LFB_ENPIXPIPE BIT(8)
|
---|
292 | #define SST_LFB_RGBALANES_SHIFT 9
|
---|
293 | #define SST_LFB_RGBALANES (0x3<<SST_LFB_RGBALANES_SHIFT)
|
---|
294 | # define SST_LFB_RGBALANES_ARGB (0<<SST_LFB_RGBALANES_SHIFT)
|
---|
295 | # define SST_LFB_RGBALANES_ABGR (1<<SST_LFB_RGBALANES_SHIFT)
|
---|
296 | # define SST_LFB_RGBALANES_RGBA (2<<SST_LFB_RGBALANES_SHIFT)
|
---|
297 | # define SST_LFB_RGBALANES_BGRA (3<<SST_LFB_RGBALANES_SHIFT)
|
---|
298 | #define SST_LFB_WRITE_SWAP16 BIT(11)
|
---|
299 | #define SST_LFB_WRITE_BYTESWAP BIT(12)
|
---|
300 | #define SST_LFB_YORIGIN BIT(13)
|
---|
301 | #define SST_LFB_WSELECT BIT(14)
|
---|
302 | #define SST_LFB_READ_SWAP16 BIT(15)
|
---|
303 | #define SST_LFB_READ_BYTESWAP BIT(16)
|
---|
304 |
|
---|
305 | #define SST_LFB_ADDR_STRIDE 1024
|
---|
306 | #define SST_LFB_ADDR_X_SHIFT 0
|
---|
307 | #define SST_LFB_ADDR_X (0x3FF<<SST_LFB_ADDR_X_SHIFT)
|
---|
308 | #define SST_LFB_ADDR_Y_SHIFT 10
|
---|
309 | #define SST_LFB_ADDR_Y (0x3FF<<SST_LFB_ADDR_Y_SHIFT)
|
---|
310 |
|
---|
311 | |
---|
312 |
|
---|
313 | //----------------- SST videoFilterRgbThreshold
|
---|
314 | #define SST_VIDEOFILTER_BLUE_SHIFT 0
|
---|
315 | #define SST_VIDEOFILTER_BLUE (0xff << SST_VIDEOFILTER_BLUE_SHIFT)
|
---|
316 | #define SST_VIDEOFILTER_GREEN_SHIFT 8
|
---|
317 | #define SST_VIDEOFILTER_GREEN (0xff << SST_VIDEOFILTER_GREEN_SHIFT)
|
---|
318 | #define SST_VIDEOFILTER_RED_SHIFT 16
|
---|
319 | #define SST_VIDEOFILTER_RED (0xff << SST_VIDEOFILTER_RED_SHIFT)
|
---|
320 |
|
---|
321 | //----------------- SST textureMode bits -----------------------
|
---|
322 | #define SST_TPERSP_ST BIT(0)
|
---|
323 | #define SST_TMINFILTER BIT(1)
|
---|
324 | #define SST_TMAGFILTER BIT(2)
|
---|
325 | #define SST_TCLAMPW BIT(3)
|
---|
326 | #define SST_TLODDITHER BIT(4)
|
---|
327 | #define SST_TNCCSELECT BIT(5) // selects which table
|
---|
328 | #define SST_TCLAMPS BIT(6)
|
---|
329 | #define SST_TCLAMPT BIT(7)
|
---|
330 | #define SST_T8BIT(mode) ((mode&SST_TFORMAT)<SST_ARGB8332)
|
---|
331 | #define SST_TFORMAT_SHIFT 8
|
---|
332 | #define SST_TFORMAT (0xF<<SST_TFORMAT_SHIFT)
|
---|
333 | # define SST_RGB332 (0<<SST_TFORMAT_SHIFT)
|
---|
334 | # define SST_YIQ422 (1<<SST_TFORMAT_SHIFT)
|
---|
335 | # define SST_A8 (2<<SST_TFORMAT_SHIFT)
|
---|
336 | # define SST_I8 (3<<SST_TFORMAT_SHIFT)
|
---|
337 | # define SST_AI44 (4<<SST_TFORMAT_SHIFT)
|
---|
338 | # define SST_P8 (5<<SST_TFORMAT_SHIFT)
|
---|
339 | # define SST_P8_ARGB6666 (6<<SST_TFORMAT_SHIFT)
|
---|
340 | # define SST_ARGB8332 (8<<SST_TFORMAT_SHIFT)
|
---|
341 | # define SST_AYIQ8422 (9<<SST_TFORMAT_SHIFT)
|
---|
342 | # define SST_RGB565 (10<<SST_TFORMAT_SHIFT)
|
---|
343 | # define SST_ARGB1555 (11<<SST_TFORMAT_SHIFT)
|
---|
344 | # define SST_ARGB4444 (12<<SST_TFORMAT_SHIFT)
|
---|
345 | # define SST_AI88 (13<<SST_TFORMAT_SHIFT)
|
---|
346 | # define SST_AP88 (14<<SST_TFORMAT_SHIFT)
|
---|
347 | #define SST_TC_ZERO_OTHER BIT(12)
|
---|
348 | #define SST_TC_SUB_CLOCAL BIT(13)
|
---|
349 | #define SST_TC_MSELECT_SHIFT 14
|
---|
350 | #define SST_TC_MSELECT (0x7<<SST_TC_MSELECT_SHIFT)
|
---|
351 | # define SST_TC_MONE (0<<SST_TC_MSELECT_SHIFT)
|
---|
352 | # define SST_TC_MCLOCAL (1<<SST_TC_MSELECT_SHIFT)
|
---|
353 | # define SST_TC_MAOTHER (2<<SST_TC_MSELECT_SHIFT)
|
---|
354 | # define SST_TC_MALOCAL (3<<SST_TC_MSELECT_SHIFT)
|
---|
355 | # define SST_TC_MLOD (4<<SST_TC_MSELECT_SHIFT)
|
---|
356 | # define SST_TC_MLODFRAC (5<<SST_TC_MSELECT_SHIFT)
|
---|
357 | #define SST_TC_REVERSE_BLEND BIT(17)
|
---|
358 | #define SST_TC_ADD_CLOCAL BIT(18)
|
---|
359 | #define SST_TC_ADD_ALOCAL BIT(19)
|
---|
360 | #define SST_TC_INVERT_OUTPUT BIT(20)
|
---|
361 | #define SST_TCA_ZERO_OTHER BIT(21)
|
---|
362 | #define SST_TCA_SUB_CLOCAL BIT(22)
|
---|
363 | #define SST_TCA_MSELECT_SHIFT 23
|
---|
364 | #define SST_TCA_MSELECT (0x7<<SST_TCA_MSELECT_SHIFT)
|
---|
365 | # define SST_TCA_MONE (0<<SST_TCA_MSELECT_SHIFT)
|
---|
366 | # define SST_TCA_MCLOCAL (1<<SST_TCA_MSELECT_SHIFT)
|
---|
367 | # define SST_TCA_MAOTHER (2<<SST_TCA_MSELECT_SHIFT)
|
---|
368 | # define SST_TCA_MALOCAL (3<<SST_TCA_MSELECT_SHIFT)
|
---|
369 | # define SST_TCA_MLOD (4<<SST_TCA_MSELECT_SHIFT)
|
---|
370 | # define SST_TCA_MLODFRAC (5<<SST_TCA_MSELECT_SHIFT)
|
---|
371 | #define SST_TCA_REVERSE_BLEND BIT(26)
|
---|
372 | #define SST_TCA_ADD_CLOCAL BIT(27)
|
---|
373 | #define SST_TCA_ADD_ALOCAL BIT(28)
|
---|
374 | #define SST_TCA_INVERT_OUTPUT BIT(29)
|
---|
375 | #define SST_TRILINEAR BIT(30)
|
---|
376 | #define SST_SEQ_8_DOWNLD BIT(31)
|
---|
377 | |
---|
378 |
|
---|
379 | // here are some abstract constants that most people will be using
|
---|
380 | // TC stands for Texture Combine (RGB channels)
|
---|
381 | // TCA stands for Texture Combine Alpha (just the Alpha channel)
|
---|
382 | // BLEND_ATT blends on the Alpha channel of the color passed from TMU to TMU
|
---|
383 | // BLEND_ALOCAL blends on the Alpha channel of the local texture color
|
---|
384 | // NOTE: and of the BLEND modes can be modified using SST_TC_REVERSE_BLEND
|
---|
385 | // and/or SST_TCA_REVERSE_BLEND, these modifiers reverse the "polarity"
|
---|
386 | // of the blend
|
---|
387 | #define SST_TC_MZERO (SST_TC_MONE | SST_TC_REVERSE_BLEND)
|
---|
388 | #define SST_TCA_MZERO (SST_TCA_MONE | SST_TCA_REVERSE_BLEND)
|
---|
389 |
|
---|
390 | #define SST_TCOMBINE_SHIFT 12 // RGB COMBINE MODES
|
---|
391 | #define SST_TCOMBINE (0x1FF<<SST_TCOMBINE_SHIFT)
|
---|
392 | # define SST_TC_REPLACE (SST_TC_ZERO_OTHER | SST_TC_ADD_CLOCAL)
|
---|
393 | # define SST_TC_PASS (SST_TC_MONE)
|
---|
394 | # define SST_TC_ADD (SST_TC_MONE | SST_TC_ADD_CLOCAL)
|
---|
395 | # define SST_TC_SUB (SST_TC_SUB_CLOCAL | SST_TC_MONE)
|
---|
396 | # define SST_TC_MULT (SST_TC_MCLOCAL | SST_TC_REVERSE_BLEND)
|
---|
397 | # define SST_TC_ZERO (SST_TC_MZERO)
|
---|
398 | # define SST_TC_ONE (SST_TC_MZERO | SST_TC_INVERT_OUTPUT)
|
---|
399 | # define SST_TC_BLEND (SST_TC_SUB_CLOCAL | SST_TC_ADD_CLOCAL)
|
---|
400 | # define SST_TC_BLEND_LOD (SST_TC_BLEND | SST_TC_MLOD)
|
---|
401 | # define SST_TC_BLEND_LODFRAC (SST_TC_BLEND | SST_TC_MLODFRAC)
|
---|
402 | # define SST_TC_BLEND_ATT (SST_TC_BLEND | SST_TC_MAOTHER)
|
---|
403 | # define SST_TC_BLEND_ALOCAL (SST_TC_BLEND | SST_TC_MALOCAL)
|
---|
404 | #define SST_TACOMBINE_SHIFT 21 // ALPHA COMBINE MODES
|
---|
405 | #define SST_TACOMBINE (0x1FF<<SST_TACOMBINE_SHIFT)
|
---|
406 | # define SST_TCA_REPLACE (SST_TCA_ZERO_OTHER | SST_TCA_ADD_CLOCAL)
|
---|
407 | # define SST_TCA_PASS (SST_TCA_MONE)
|
---|
408 | # define SST_TCA_ADD (SST_TCA_MONE | SST_TCA_ADD_CLOCAL)
|
---|
409 | # define SST_TCA_SUB (SST_TCA_SUB_CLOCAL | SST_TCA_MONE)
|
---|
410 | # define SST_TCA_MULT (SST_TCA_MCLOCAL | SST_TCA_REVERSE_BLEND)
|
---|
411 | # define SST_TCA_ONE (SST_TCA_MZERO | SST_TCA_INVERT_OUTPUT)
|
---|
412 | # define SST_TCA_ZERO (SST_TCA_MZERO)
|
---|
413 | # define SST_TCA_BLEND (SST_TCA_SUB_CLOCAL | SST_TCA_ADD_CLOCAL)
|
---|
414 | # define SST_TCA_BLEND_LOD (SST_TCA_BLEND | SST_TCA_MLOD)
|
---|
415 | # define SST_TCA_BLEND_LODFRAC (SST_TCA_BLEND | SST_TCA_MLODFRAC)
|
---|
416 | # define SST_TCA_BLEND_ATT (SST_TCA_BLEND | SST_TCA_MAOTHER)
|
---|
417 | # define SST_TCA_BLEND_ALOCAL (SST_TCA_BLEND | SST_TCA_MALOCAL)
|
---|
418 | #define SST_TMU_ACTIVE(texMode) \
|
---|
419 | ((texMode & (SST_TCOMBINE|SST_TACOMBINE)) != (SST_TC_PASS|SST_TCA_PASS))
|
---|
420 | #define SST_TREX_ACTIVE(texMode) SST_TMU_ACTIVE(texMode)
|
---|
421 |
|
---|
422 | //----------------- SST tLOD bits -----------------------------
|
---|
423 | #define SST_LODMIN_SHIFT 0 // 4.2 format
|
---|
424 | #define SST_LODMIN (0x3F<<SST_LODMIN_SHIFT)
|
---|
425 | #define SST_LODMAX_SHIFT 6
|
---|
426 | #define SST_LODMAX (0x3F<<SST_LODMAX_SHIFT)
|
---|
427 | #define SST_LODBIAS_SHIFT 12
|
---|
428 | #define SST_LODBIAS (0x3F<<SST_LODBIAS_SHIFT)
|
---|
429 | #define SST_LOD_ODD BIT(18)
|
---|
430 | #define SST_LOD_TSPLIT BIT(19)
|
---|
431 | #define SST_LOD_S_IS_WIDER BIT(20)
|
---|
432 | #define SST_LOD_ASPECT_SHIFT 21
|
---|
433 | #define SST_LOD_ASPECT (0x3<<SST_LOD_ASPECT_SHIFT)
|
---|
434 | #define SST_LOD_ZEROFRAC BIT(23)
|
---|
435 | #define SST_TMULTIBASEADDR BIT(24)
|
---|
436 | #define SST_TDATA_SWIZZLE BIT(25)
|
---|
437 | #define SST_TDATA_SWAP BIT(26)
|
---|
438 | #define SST_TDIRECT_WRITE BIT(27)
|
---|
439 | #define SST_TMIRRORS BIT(28)
|
---|
440 | #define SST_TMIRRORT BIT(29)
|
---|
441 |
|
---|
442 | //----------------- SST tDetail bits --------------------------
|
---|
443 | #define SST_DETAIL_MAX_SHIFT 0 // 8.0 format
|
---|
444 | #define SST_DETAIL_MAX (0xFF<<SST_DETAIL_MAX_SHIFT)
|
---|
445 | #define SST_DETAIL_BIAS_SHIFT 8 // 6.0 format signed
|
---|
446 | #define SST_DETAIL_BIAS (0x3F<<SST_DETAIL_BIAS_SHIFT)
|
---|
447 | #define SST_DETAIL_SCALE_SHIFT 14 // 3.0 format
|
---|
448 | #define SST_DETAIL_SCALE (0x7<<SST_DETAIL_SCALE_SHIFT)
|
---|
449 | #define SST_TMINFILTER_RGB BIT(17)
|
---|
450 | #define SST_TMAGFILTER_RGB BIT(18)
|
---|
451 | #define SST_TMINFILTER_A BIT(19)
|
---|
452 | #define SST_TMAGFILTER_A BIT(20)
|
---|
453 | #define SST_TFILTER_SEPARATE BIT(21)
|
---|
454 | |
---|
455 |
|
---|
456 | //----------------- SST fbzMode bits --------------------------
|
---|
457 | #define SST_ENRECTCLIP BIT(0)
|
---|
458 | #define SST_ENCHROMAKEY BIT(1)
|
---|
459 | #define SST_ENSTIPPLE BIT(2)
|
---|
460 | #define SST_WBUFFER BIT(3)
|
---|
461 | #define SST_ENDEPTHBUFFER BIT(4)
|
---|
462 | # define SST_ZFUNC_LT BIT(5)
|
---|
463 | # define SST_ZFUNC_EQ BIT(6)
|
---|
464 | # define SST_ZFUNC_GT BIT(7)
|
---|
465 | # define SST_ZFUNC_SHIFT 5
|
---|
466 | # define SST_ZFUNC ( 0x7 << SST_ZFUNC_SHIFT )
|
---|
467 | #define SST_ENDITHER BIT(8)
|
---|
468 | #define SST_RGBWRMASK BIT(9)
|
---|
469 | #define SST_ZAWRMASK BIT(10)
|
---|
470 | #define SST_DITHER2x2 BIT(11)
|
---|
471 | #define SST_ENSTIPPLEPATTERN BIT(12)
|
---|
472 | #define SST_ENALPHAMASK BIT(13)
|
---|
473 | #define SST_DRAWBUFFER_SHIFT 14
|
---|
474 | #define SST_DRAWBUFFER (0x3<<SST_DRAWBUFFER_SHIFT)
|
---|
475 | #define SST_DRAWBUFFER_FRONT (0<<SST_DRAWBUFFER_SHIFT)
|
---|
476 | #define SST_DRAWBUFFER_BACK (1<<SST_DRAWBUFFER_SHIFT)
|
---|
477 | #define SST_ENZBIAS BIT(16)
|
---|
478 | #define SST_YORIGIN BIT(17)
|
---|
479 | #define SST_ENALPHABUFFER BIT(18)
|
---|
480 | #define SST_ENDITHERSUBTRACT BIT(19)
|
---|
481 | #define SST_ABLEND_DITHER_SUB_EN SST_ENDITHERSUBTRACT
|
---|
482 | #define SST_ENDITHERSUBTRACT BIT(19)
|
---|
483 | #define SST_ZCOMPARE_TO_ZACOLOR BIT(20)
|
---|
484 | #define SST_DEPTH_FLOAT_SEL BIT(21)
|
---|
485 |
|
---|
486 | //----------------- SST fbzColorPath bits ---------------------------
|
---|
487 | #define SST_RGBSELECT_SHIFT 0
|
---|
488 | #define SST_RGBSELECT (0x3<<SST_RGBSELECT_SHIFT)
|
---|
489 | # define SST_RGBSEL_RGBA (0<<SST_RGBSELECT_SHIFT)
|
---|
490 | # define SST_RGBSEL_TMUOUT (1<<SST_RGBSELECT_SHIFT)
|
---|
491 | # define SST_RGBSEL_TREXOUT SST_RGBSEL_TMUOUT
|
---|
492 | # define SST_RGBSEL_C1 (2<<SST_RGBSELECT_SHIFT)
|
---|
493 | # define SST_RGBSEL_LFB (3<<SST_RGBSELECT_SHIFT)
|
---|
494 | #define SST_ASELECT_SHIFT 2
|
---|
495 | #define SST_ASELECT (0x3<<SST_ASELECT_SHIFT)
|
---|
496 | # define SST_ASEL_RGBA (0<<SST_ASELECT_SHIFT)
|
---|
497 | # define SST_ASEL_TMUOUT (1<<SST_ASELECT_SHIFT)
|
---|
498 | # define SST_ASEL_TREXOUT SST_ASEL_TMUOUT
|
---|
499 | # define SST_ASEL_C1 (2<<SST_ASELECT_SHIFT)
|
---|
500 | # define SST_ASEL_LFB (3<<SST_ASELECT_SHIFT)
|
---|
501 | #define SST_LOCALSELECT_SHIFT 4
|
---|
502 | #define SST_LOCALSELECT BIT(4)
|
---|
503 | #define SST_ALOCALSELECT_SHIFT 5
|
---|
504 | #define SST_ALOCALSELECT (0x3<<SST_ALOCALSELECT_SHIFT)
|
---|
505 | #define SST_ALOCAL_ITERATOR (0<<SST_ALOCALSELECT_SHIFT)
|
---|
506 | #define SST_ALOCAL_C0 (1<<SST_ALOCALSELECT_SHIFT)
|
---|
507 | #define SST_ALOCAL_Z (2<<SST_ALOCALSELECT_SHIFT)
|
---|
508 | #define SST_ALOCAL_W (3<<SST_ALOCALSELECT_SHIFT)
|
---|
509 | #define SST_LOCALSELECT_OVERRIDE_WITH_ATEX BIT(7)
|
---|
510 | #define SST_CC_ZERO_OTHER BIT(8)
|
---|
511 | #define SST_CC_SUB_CLOCAL BIT(9)
|
---|
512 | #define SST_CC_MSELECT_SHIFT 10
|
---|
513 | #define SST_CC_MSELECT (0x7<<SST_CC_MSELECT_SHIFT)
|
---|
514 | # define SST_CC_MONE (0<<SST_CC_MSELECT_SHIFT)
|
---|
515 | # define SST_CC_MCLOCAL (1<<SST_CC_MSELECT_SHIFT)
|
---|
516 | # define SST_CC_MAOTHER (2<<SST_CC_MSELECT_SHIFT)
|
---|
517 | # define SST_CC_MALOCAL (3<<SST_CC_MSELECT_SHIFT)
|
---|
518 | # define SST_CC_MATMU (4<<SST_CC_MSELECT_SHIFT)
|
---|
519 | # define SST_CC_MATREX SST_CC_MATMU
|
---|
520 | # define SST_CC_MRGBTMU (5<<SST_CC_MSELECT_SHIFT)
|
---|
521 | #define SST_CC_REVERSE_BLEND BIT(13)
|
---|
522 | #define SST_CC_ADD_CLOCAL BIT(14)
|
---|
523 | #define SST_CC_ADD_ALOCAL BIT(15)
|
---|
524 | #define SST_CC_INVERT_OUTPUT BIT(16)
|
---|
525 | #define SST_CCA_ZERO_OTHER BIT(17)
|
---|
526 | #define SST_CCA_SUB_CLOCAL BIT(18)
|
---|
527 | #define SST_CCA_MSELECT_SHIFT 19
|
---|
528 | #define SST_CCA_MSELECT (0x7<<SST_CCA_MSELECT_SHIFT)
|
---|
529 | # define SST_CCA_MONE (0<<SST_CCA_MSELECT_SHIFT)
|
---|
530 | # define SST_CCA_MCLOCAL (1<<SST_CCA_MSELECT_SHIFT)
|
---|
531 | # define SST_CCA_MAOTHER (2<<SST_CCA_MSELECT_SHIFT)
|
---|
532 | # define SST_CCA_MALOCAL (3<<SST_CCA_MSELECT_SHIFT)
|
---|
533 | # define SST_CCA_MATMU (4<<SST_CCA_MSELECT_SHIFT)
|
---|
534 | # define SST_CCA_MATREX SST_CCA_MATMU
|
---|
535 | #define SST_CCA_REVERSE_BLEND BIT(22)
|
---|
536 | #define SST_CCA_ADD_CLOCAL BIT(23)
|
---|
537 | #define SST_CCA_ADD_ALOCAL BIT(24)
|
---|
538 | #define SST_CCA_INVERT_OUTPUT BIT(25)
|
---|
539 | #define SST_PARMADJUST BIT(26)
|
---|
540 | #define SST_ENTEXTUREMAP BIT(27)
|
---|
541 | #define SST_RGBAZ_CLAMP BIT(28)
|
---|
542 | #define SST_ENANTIALIAS BIT(29)
|
---|
543 | |
---|
544 |
|
---|
545 | // here are some abstract constants that most people will be using
|
---|
546 | // CC stands for Color Combine (RGB channels)
|
---|
547 | // CCA stands for Color Combine Alpha (just the Alpha channel)
|
---|
548 | // BLEND_ATT blends on the Alpha channel of the color passed from TMU to TMU
|
---|
549 | // BLEND_ALOCAL blends on the Alpha channel of the local texture color
|
---|
550 | // NOTE: and of the BLEND modes can be modified using SST_CC_REVERSE_BLEND
|
---|
551 | // and/or SST_CCA_REVERSE_BLEND, these modifiers reverse the "polarity"
|
---|
552 | // of the blend
|
---|
553 | #define SST_CC_MZERO (SST_CC_MONE | SST_CC_REVERSE_BLEND)
|
---|
554 | #define SST_CCA_MZERO (SST_CCA_MONE | SST_CCA_REVERSE_BLEND)
|
---|
555 |
|
---|
556 | #define SST_CCOMBINE_SHIFT 8 // RGB COMBINE MODES
|
---|
557 | #define SST_CCOMBINE (0x1FF<<SST_CCOMBINE_SHIFT)
|
---|
558 | # define SST_CC_REPLACE (SST_CC_ZERO_OTHER | SST_CC_ADD_CLOCAL)
|
---|
559 | # define SST_CC_PASS (SST_CC_MONE)
|
---|
560 | # define SST_CC_ADD (SST_CC_MONE | SST_CC_ADD_CLOCAL)
|
---|
561 | # define SST_CC_SUB (SST_CC_SUB_CLOCAL | SST_CC_MONE)
|
---|
562 | # define SST_CC_MULT (SST_CC_MCLOCAL | SST_CC_REVERSE_BLEND)
|
---|
563 | # define SST_CC_ZERO (SST_CC_MZERO)
|
---|
564 | # define SST_CC_ONE (SST_CC_MZERO | SST_CC_INVERT_OUTPUT)
|
---|
565 | # define SST_CC_BLEND (SST_CC_SUB_CLOCAL | SST_CC_ADD_CLOCAL)
|
---|
566 | # define SST_CC_BLEND_ATT (SST_CC_BLEND | SST_CC_MAOTHER)
|
---|
567 | # define SST_CC_BLEND_ATEX (SST_CC_BLEND | SST_CC_MATMU)
|
---|
568 | # define SST_CC_BLEND_ATEX_REV (SST_CC_BLEND | SST_CC_MATMU | SST_CC_REVERSE_BLEND)
|
---|
569 | # define SST_CC_BLEND_ATT_REV (SST_CC_BLEND | SST_CC_MAOTHER | SST_CC_REVERSE_BLEND)
|
---|
570 | # define SST_CC_BLEND_ALOCAL (SST_CC_BLEND | SST_CC_MALOCAL)
|
---|
571 | #define SST_CACOMBINE_SHIFT 17 // ALPHA COMBINE MODES
|
---|
572 | #define SST_CACOMBINE (0x1FF<<SST_CACOMBINE_SHIFT)
|
---|
573 | # define SST_CCA_REPLACE (SST_CCA_ZERO_OTHER | SST_CCA_ADD_CLOCAL)
|
---|
574 | # define SST_CCA_PASS (SST_CCA_MONE)
|
---|
575 | # define SST_CCA_ADD (SST_CCA_MONE | SST_CCA_ADD_CLOCAL)
|
---|
576 | # define SST_CCA_SUB (SST_CCA_SUB_CLOCAL | SST_CCA_MONE)
|
---|
577 | # define SST_CCA_MULT (SST_CCA_MCLOCAL | SST_CCA_REVERSE_BLEND)
|
---|
578 | # define SST_CCA_ONE (SST_CCA_MZERO | SST_CCA_INVERT_OUTPUT)
|
---|
579 | # define SST_CCA_ZERO (SST_CCA_MZERO)
|
---|
580 | # define SST_CCA_BLEND (SST_CCA_SUB_CLOCAL | SST_CCA_ADD_CLOCAL)
|
---|
581 | # define SST_CCA_BLEND_ATT (SST_CCA_BLEND | SST_CCA_MAOTHER)
|
---|
582 | # define SST_CCA_BLEND_ATEX (SST_CCA_BLEND | SST_CCA_MATMU)
|
---|
583 | # define SST_CCA_BLEND_ATEX_REV (SST_CCA_BLEND | SST_CCA_MATMU | SST_CCA_REVERSE_BLEN)
|
---|
584 | # define SST_CCA_BLEND_ATT_REV (SST_CCA_BLEND | SST_CCA_MAOTHER | SST_CCA_REVERSE_BLEND)
|
---|
585 | # define SST_CCA_BLEND_ALOCAL (SST_CCA_BLEND | SST_CCA_MALOCAL)
|
---|
586 | |
---|
587 |
|
---|
588 | //----------------- SST fogMode bits ---------------------------
|
---|
589 | #define SST_ENFOGGING BIT(0) // Afog*Cfog + (1-Afog)*Color
|
---|
590 | #define SST_FOGADD BIT(1) // generates (1-Afog)*Color
|
---|
591 | #define SST_FOGMULT BIT(2) // generates Afog*Cfog
|
---|
592 | #define SST_FOG_ALPHA BIT(3) // use Alpha iterator to control fog
|
---|
593 | #define SST_FOG_Z BIT(4) // use Z iterator to control fog
|
---|
594 | #define SST_FOG_CONSTANT BIT(5) // simply add Cfog to color and clamp
|
---|
595 | #define SST_FOG_DITHER BIT(6) // dither the Afog
|
---|
596 | #define SST_FOG_ZONES BIT(7) // enable signed fog deltas
|
---|
597 |
|
---|
598 | //----------------- SST alphaMode bits ------------------------
|
---|
599 | #define SST_ENALPHAFUNC BIT(0)
|
---|
600 | #define SST_ALPHAFNC_SHIFT 1
|
---|
601 | #define SST_ALPHAFUNC_SHIFT 1
|
---|
602 | # define SST_ALPHAFUNC_LT BIT(1)
|
---|
603 | # define SST_ALPHAFUNC_EQ BIT(2)
|
---|
604 | # define SST_ALPHAFUNC_GT BIT(3)
|
---|
605 | # define SST_ALPHAFNC ( 0x7 << SST_ALPHAFNC_SHIFT )
|
---|
606 | # define SST_ALPHAFUNC ( 0x7 << SST_ALPHAFUNC_SHIFT )
|
---|
607 | #define SST_ENALPHABLEND BIT(4)
|
---|
608 | // unused BIT(5)
|
---|
609 | #define SST_RGBSRCFACT_SHIFT 8 // RGB source factor
|
---|
610 | #define SST_RGBSRCFACT (0xF<<SST_RGBSRCFACT_SHIFT)
|
---|
611 | # define SST_A_ZERO 0
|
---|
612 | # define SST_A_SRCALPHA 1
|
---|
613 | # define SST_A_COLOR 2
|
---|
614 | # define SST_A_DSTALPHA 3
|
---|
615 | # define SST_A_ONE 4
|
---|
616 | # define SST_AOM_SRCALPHA 5
|
---|
617 | # define SST_AOM_COLOR 6
|
---|
618 | # define SST_AOM_DSTALPHA 7
|
---|
619 | # define SST_A_SATURATE 0xF // for SRC factor only
|
---|
620 | # define SST_A_COLORBEFOREFOG 0xF // for DST factor only
|
---|
621 | #define SST_RGBDSTFACT_SHIFT 12 // RGB destination factor
|
---|
622 | #define SST_RGBDSTFACT (0xF<<SST_RGBDSTFACT_SHIFT)
|
---|
623 | #define SST_ASRCFACT_SHIFT 16 // A source factor
|
---|
624 | #define SST_ASRCFACT (0xF<<SST_ASRCFACT_SHIFT)
|
---|
625 | #define SST_ADSTFACT_SHIFT 20 // A destination factor
|
---|
626 | #define SST_ADSTFACT (0xF<<SST_ADSTFACT_SHIFT)
|
---|
627 | #define SST_ALPHAREF_SHIFT 24
|
---|
628 | #define SST_ALPHAREF (0xFF<<SST_ALPHAREF_SHIFT)
|
---|
629 |
|
---|
630 | //---------------- SST zaColor bits ----------------------
|
---|
631 | #define SST_ZACOLOR_DEPTH_SHIFT 0
|
---|
632 | #define SST_ZACOLOR_DEPTH ( 0xFFFF << SST_ZACOLOR_DEPTH_SHIFT )
|
---|
633 | #define SST_ZACOLOR_ALPHA_SHIFT 24
|
---|
634 | #define SST_ZACOLOR_ALPHA ( 0xFF << SST_ZACOLOR_ALPHA_SHIFT )
|
---|
635 |
|
---|
636 | //----------------- SST chromaRange bits ------------------------
|
---|
637 | #define SST_CHROMARANGE_BLUE_EX BIT(24)// Blue value in exclusive mode
|
---|
638 | #define SST_CHROMARANGE_GREEN_EX BIT(25)// Green value in exclusive mode
|
---|
639 | #define SST_CHROMARANGE_RED_EX BIT(26)// Red value in exclusive mode
|
---|
640 | #define SST_CHROMARANGE_BLOCK_OR BIT(27)// Union of all colors.
|
---|
641 | #define SST_ENCHROMARANGE BIT(28)
|
---|
642 | #define SST_ENCHROMAKEY_TMU BIT(29) // only for TMU
|
---|
643 | #define SST_ENCOLORSUBSTITUTION BIT(30) // only for TMU
|
---|
644 |
|
---|
645 | //----------------- SST clip bits ------------------------
|
---|
646 | //clipLeftRight
|
---|
647 | #define SST_CLIPLEFT_SHIFT 16
|
---|
648 | #define SST_CLIPRIGHT_SHIFT 0
|
---|
649 | //clipBottomTop
|
---|
650 | #define SST_CLIPBOTTOM_SHIFT 16
|
---|
651 | #define SST_CLIPTOP_SHIFT 0
|
---|
652 |
|
---|
653 | //----------------- SST sSetupMode bits ------------------------
|
---|
654 | #define SST_SETUP_RGB BIT(0)
|
---|
655 | #define SST_SETUP_A BIT(1)
|
---|
656 | #define SST_SETUP_Z BIT(2)
|
---|
657 | #define SST_SETUP_Wfbi BIT(3)
|
---|
658 | #define SST_SETUP_W0 BIT(4)
|
---|
659 | #define SST_SETUP_ST0 BIT(5)
|
---|
660 | #define SST_SETUP_W1 BIT(6)
|
---|
661 | #define SST_SETUP_ST1 BIT(7)
|
---|
662 | #define SST_SETUP_FAN BIT(16)
|
---|
663 | #define SST_SETUP_EN_CULLING BIT(17)
|
---|
664 | #define SST_SETUP_CULL_NEGATIVE BIT(18)
|
---|
665 | #define SST_SETUP_DIS_PINGPONG BIT(19)
|
---|
666 |
|
---|
667 | //----------------- SST fbiInit* ----------------------------
|
---|
668 | // fbiInit0
|
---|
669 | #define SST_EN_VGA_PASSTHRU BIT(0)
|
---|
670 | #define SST_GRX_RESET BIT(1)
|
---|
671 | #define SST_PCI_FIFO_RESET BIT(2)
|
---|
672 | #define SST_EN_ENDIAN_SWAPPING BIT(3)
|
---|
673 | #define SST_PCI_FIFO_LWM_SHIFT 6
|
---|
674 | #define SST_PCI_FIFO_LWM (0x1F<<SST_PCI_FIFO_LWM_SHIFT)
|
---|
675 | #define SST_EN_LFB_MEMFIFO BIT(11)
|
---|
676 | #define SST_EN_TEX_MEMFIFO BIT(12)
|
---|
677 | #define SST_MEM_FIFO_EN BIT(13)
|
---|
678 | #define SST_MEM_FIFO_HWM_SHIFT 14
|
---|
679 | #define SST_MEM_FIFO_HWM (0x7FF<<SST_MEM_FIFO_HWM_SHIFT)
|
---|
680 | #define SST_MEM_FIFO_BURST_HWM_SHIFT 25
|
---|
681 | #define SST_MEM_FIFO_BURST_HWM (0x3F<<SST_MEM_FIFO_BURST_HWM_SHIFT)
|
---|
682 | // fbiInit1
|
---|
683 | #define SST_PCI_WRWS_0 0x0
|
---|
684 | #define SST_PCI_WRWS_1 BIT(1)
|
---|
685 | #define SST_LFB_READ_EN BIT(3)
|
---|
686 | #define SST_VIDEO_TILES_IN_X_SHIFT 4
|
---|
687 | #define SST_VIDEO_TILES_IN_X (0xF<<SST_VIDEO_TILES_IN_X_SHIFT)
|
---|
688 | # define SST_VIDEO_TILES_IN_X_448 (7<<SST_VIDEO_TILES_IN_X_SHIFT)
|
---|
689 | # define SST_VIDEO_TILES_IN_X_512 (8<<SST_VIDEO_TILES_IN_X_SHIFT)
|
---|
690 | # define SST_VIDEO_TILES_IN_X_640 (10<<SST_VIDEO_TILES_IN_X_SHIFT)
|
---|
691 | # define SST_VIDEO_TILES_IN_X_832 (13<<SST_VIDEO_TILES_IN_X_SHIFT)
|
---|
692 | # define SST_VIDEO_TILES_IN_X_800 SST_VIDEO_TILES_IN_X_832
|
---|
693 | #define SST_VIDEO_RESET BIT(8)
|
---|
694 | #define SST_VIDEO_RUN 0
|
---|
695 | #define SST_VIDEO_STOP BIT(8)
|
---|
696 | #define SST_HVSYNC_OVERRIDE BIT(9)
|
---|
697 | #define SST_HSYNC_OVERRIDE_VAL BIT(10)
|
---|
698 | #define SST_VSYNC_OVERRIDE_VAL BIT(11)
|
---|
699 | #define SST_VIDEO_BLANK_EN BIT(12)
|
---|
700 | #define SST_VIDEO_DATA_OE_EN BIT(13)
|
---|
701 | #define SST_VIDEO_BLANK_OE_EN BIT(14)
|
---|
702 | #define SST_VIDEO_HVSYNC_OE_EN BIT(15)
|
---|
703 | #define SST_VIDEO_DCLK_OE_EN BIT(16)
|
---|
704 | #define SST_VIDEO_VID_CLK_SEL BIT(17)
|
---|
705 | #define SST_VIDEO_VID_CLK_2X 0x0
|
---|
706 | #define SST_VIDEO_VID_CLK_SLAVE BIT(17)
|
---|
707 | #define SST_VIDEO_VCLK_2X_INPUT_DEL_SHIFT 18
|
---|
708 | #define SST_VIDEO_VCLK_2X_INPUT_DEL (0x3<<SST_VIDEO_VCLK_2X_INPUT_DEL_SHIFT)
|
---|
709 | #define SST_VIDEO_VCLK_SEL_SHIFT 20
|
---|
710 | # define SST_VIDEO_VCLK_SEL (0x3<<SST_VIDEO_VCLK_SEL_SHIFT)
|
---|
711 | # define SST_VIDEO_VCLK_DIV2 (0x1<<SST_VIDEO_VCLK_SEL_SHIFT)
|
---|
712 | #define SST_VIDEO_24BPP_EN BIT(22)
|
---|
713 | #define SST_EN_SCANLINE_INTERLEAVE BIT(23)
|
---|
714 | #define SST_VIDEO_FILTER_EN BIT(25)
|
---|
715 | #define SST_VIDEO_INVERT_VID_CLK_2X BIT(26)
|
---|
716 | #define SST_VIDEO_VCLK_2X_OUTPUT_DEL_SHIFT 27
|
---|
717 | # define SST_VIDEO_VCLK_2X_OUTPUT_DEL (0x3<<SST_VIDEO_VCLK_2X_OUTPUT_DEL_SHIFT)
|
---|
718 | #define SST_VIDEO_VCLK_DEL_SHIFT 29
|
---|
719 | # define SST_VIDEO_VCLK_DEL (0x3<<SST_VIDEO_VCLK_DEL_SHIFT)
|
---|
720 | #define SST_DISEN_RD_AHEAD_WR_RD BIT(31)
|
---|
721 | #define SST_VIDEO_MASK 0x7e7ffe00
|
---|
722 | // fbiInit2
|
---|
723 | #define SST_VIDEO_DITHER_SUB_EN BIT(0)
|
---|
724 | #define SST_DRAM_BANKING_CONFIG BIT(1)
|
---|
725 | #define SST_EN_FAST_RAS_READ BIT(5)
|
---|
726 | #define SST_EN_OE_GEN BIT(6)
|
---|
727 | #define SST_EN_FAST_RD_AHEAD_WR BIT(7)
|
---|
728 | #define SST_EN_DITHER_PASSTHRU BIT(8)
|
---|
729 | #define SST_SWAP_ALGORITHM_SHIFT 9
|
---|
730 | #define SST_SWAP_ALGORITHM (0x3<<SST_SWAP_ALGORITHM_SHIFT)
|
---|
731 | # define SST_SWAP_VSYNC (0<<SST_SWAP_ALGORITHM_SHIFT)
|
---|
732 | # define SST_SWAP_DACDATA0 (1<<SST_SWAP_ALGORITHM_SHIFT)
|
---|
733 | # define SST_SWAP_FIFOSTALL (2<<SST_SWAP_ALGORITHM_SHIFT)
|
---|
734 | #define SST_VIDEO_BUFFER_OFFSET_SHIFT 11
|
---|
735 | #define SST_VIDEO_BUFFER_OFFSET (0x1FF<<SST_VIDEO_BUFFER_OFFSET_SHIFT)
|
---|
736 | # define SST_VIDEO_BUFFER_OFFSET_448 (77<<SST_VIDEO_BUFFER_OFFSET_SHIFT)
|
---|
737 | # define SST_VIDEO_BUFFER_OFFSET_512 (96<<SST_VIDEO_BUFFER_OFFSET_SHIFT)
|
---|
738 | # define SST_VIDEO_BUFFER_OFFSET_640 (150<<SST_VIDEO_BUFFER_OFFSET_SHIFT)
|
---|
739 | # define SST_VIDEO_BUFFER_OFFSET_832 (247<<SST_VIDEO_BUFFER_OFFSET_SHIFT)
|
---|
740 | # define SST_VIDEO_BUFFER_OFFSET_1024 (384<<SST_VIDEO_BUFFER_OFFSET_SHIFT)
|
---|
741 | #define SST_VIDEO_BUFFER_OFFSET_800 SST_VIDEO_BUFFER_OFFSET_832
|
---|
742 | #define SST_EN_DRAM_BANKED BIT(20)
|
---|
743 | #define SST_EN_DRAM_RD_AHEAD_FIFO BIT(21)
|
---|
744 | #define SST_EN_DRAM_REFRESH BIT(22)
|
---|
745 | #define SST_DRAM_REFRESH_CNTR_SHIFT 23
|
---|
746 | # define SST_DRAM_REFRESH_CNTR (0x1FF<<SST_DRAM_REFRESH_CNTR_SHIFT)
|
---|
747 | #define SST_DRAM_REFRESH_16MS (0x30 << SST_DRAM_REFRESH_CNTR_SHIFT)
|
---|
748 | // fbiInit3
|
---|
749 | #define SST_ALT_REGMAPPING BIT(0)
|
---|
750 | #define SST_VIDEO_FIFO_THRESH_SHIFT 1
|
---|
751 | # define SST_VIDEO_FIFO_THRESH (0x1F<<SST_VIDEO_FIFO_THRESH_SHIFT)
|
---|
752 | #define SST_YORIGIN_TOP_SHIFT 22
|
---|
753 | # define SST_YORIGIN_TOP (0x3FF<<SST_YORIGIN_TOP_SHIFT)
|
---|
754 | #define SST_YORIGIN_SUBVAL_SHIFT SST_YORIGIN_TOP_SHIFT
|
---|
755 | #define SST_YORIGIN_SUBVAL (0x3FF<<SST_YORIGIN_SUBVAL_SHIFT)
|
---|
756 | // fbiInit4
|
---|
757 | #define SST_FBIINIT4_DEFAULT 0x00000001
|
---|
758 | #define SST_PCI_RDWS_1 0x0
|
---|
759 | #define SST_PCI_RDWS_2 BIT(0)
|
---|
760 | #define SST_EN_LFB_RDAHEAD BIT(1)
|
---|
761 | #define SST_MEM_FIFO_LWM_SHIFT 2
|
---|
762 | #define SST_MEM_FIFO_LWM (0x3F<<SST_MEM_FIFO_LWM_SHIFT)
|
---|
763 | #define SST_MEM_FIFO_ROW_BASE_SHIFT 8
|
---|
764 | #define SST_MEM_FIFO_ROW_BASE (0x3FF<<SST_MEM_FIFO_ROW_BASE_SHIFT)
|
---|
765 | #define SST_MEM_FIFO_ROW_ROLL_SHIFT 18
|
---|
766 | #define SST_MEM_FIFO_ROW_ROLL (0x3FF<<SST_MEM_FIFO_ROW_ROLL_SHIFT)
|
---|
767 | // fbiInit7
|
---|
768 | #define SST_EN_CMDFIFO BIT(8)
|
---|
769 | #define SST_EN_CMDFIFO_OFFSCREEN BIT(9)
|
---|
770 | #define SST_CMDFIFO_DISABLE_HOLES BIT(10)
|
---|
771 | #define SST_CMDFIFO_RDFETCH_THRESH_SHIFT 11
|
---|
772 | #define SST_CMDFIFO_RDFETCH_THRESH (0x1FUL<<SST_CMDFIFO_RDFETCH_THRESH_SHIFT)
|
---|
773 | #define SST_CMDFIFO_REGS_SYNC_WRITES BIT(16)
|
---|
774 | #define SST_CMDFIFO_REGS_SYNC_READS BIT(17)
|
---|
775 | #define SST_PCI_PACKER_RESET BIT(18)
|
---|
776 | #define SST_TMU_CHROMA_REG_WR_EN BIT(19)
|
---|
777 | #define SST_CMDFIFO_PCI_TIMEOUT_SHIFT 20
|
---|
778 | #define SST_CMDFIFO_PCI_TIMEOUT (0x7FUL<<SST_CMDFIFO_PCI_TIMEOUT_SHIFT)
|
---|
779 |
|
---|
780 | /*----------------- SST clutData bits -----------------------*/
|
---|
781 | #define SST_CLUTDATA_INDEX_SHIFT 24
|
---|
782 | #define SST_CLUTDATA_RED_SHIFT 16
|
---|
783 | #define SST_CLUTDATA_GREEN_SHIFT 8
|
---|
784 | #define SST_CLUTDATA_BLUE_SHIFT 0
|
---|
785 |
|
---|
786 | //----------------- SST dacData bits --------------------------
|
---|
787 | #define SST_DACDATA_DATA (0xFF)
|
---|
788 | #define SST_DACDATA_ADDR_SHIFT 8
|
---|
789 | #define SST_DACDATA_ADDR (0x7<<SST_DACDATA_ADDR_SHIFT)
|
---|
790 | #define SST_DACDATA_RD BIT(11)
|
---|
791 | #define SST_DACDATA_WR 0x0
|
---|
792 |
|
---|
793 | //----------------- nopCMD bits -------------------------------
|
---|
794 | #define SST_NOP_RESET_PIXEL_STATS BIT(0)
|
---|
795 | #define SST_NOP_RESET_TRIANGLE_STATS BIT(1)
|
---|
796 |
|
---|
797 | //----------------- swapBufferCMD bits ------------------------
|
---|
798 | #define SST_SWAP_EN_WAIT_ON_VSYNC BIT(0)
|
---|
799 | #define SST_SWAP_BUFFER_INTERVAL_SHIFT 1
|
---|
800 | #define SST_SWAP_BUFFER_INTERVAL (0xff << SST_SWAP_BUFFER_INTERVAL_SHIFT)
|
---|
801 | #define SST_SWAP_DONT_SWAP BIT(9)
|
---|
802 |
|
---|
803 | //----------------- SST Configuration Registers ---------------
|
---|
804 | #define SST_MEMBASE_ADDR 0x10
|
---|
805 | #define SST_INIT_ENABLE 0x40
|
---|
806 | #define SST_BUS_SNOOP0 0x44
|
---|
807 | #define SST_BUS_SNOOP1 0x48
|
---|
808 | #define SST_CFG_STATUS 0x4c
|
---|
809 |
|
---|
810 | //----------------- SST Remapped Registers --------------------
|
---|
811 | #define SST_DAC_RD_DATA 0x00000218
|
---|
812 | #define SST_VIDEO_CHECKSUM 0x0000021c
|
---|
813 |
|
---|
814 | //----------------- SST initEnable (Config register) bits -----
|
---|
815 | #define SST_INITWR_EN BIT(0)
|
---|
816 | #define SST_PCI_FIFOWR_EN BIT(1)
|
---|
817 | #define SST_FBIINIT23_REMAP BIT(2)
|
---|
818 | #define SST_SNOOP0_EN BIT(4)
|
---|
819 | #define SST_SNOOP0_IO BIT(5)
|
---|
820 | #define SST_SNOOP0_RD BIT(6)
|
---|
821 | #define SST_SNOOP1_EN BIT(7)
|
---|
822 | #define SST_SNOOP1_IO BIT(8)
|
---|
823 | #define SST_SNOOP1_RD BIT(9)
|
---|
824 | #define SST_SCANLINE_SLV_OWNPCI BIT(10)
|
---|
825 | #define SST_SCANLINE_SLI_SLV BIT(11)
|
---|
826 |
|
---|
827 | //----------------- SST vRetrace bits ---------------------
|
---|
828 | #define SST_VRETRACE_VSYNC_OFF 0xff
|
---|
829 |
|
---|
830 | //----------------- SST hSync bits ------------------------
|
---|
831 | #define SST_HSYNC_ON 0xff
|
---|
832 | #define SST_HSYNC_OFF_SHIFT 16
|
---|
833 | #define SST_HSYNC_OFF (0x3ff << SST_HSYNCOFF_SHIFT)
|
---|
834 |
|
---|
835 | //----------------- SST vSync bits ------------------------
|
---|
836 | #define SST_VSYNC_ON 0xff
|
---|
837 | #define SST_VSYNC_OFF_SHIFT 16
|
---|
838 | #define SST_VSYNC_OFF (0xfff << SST_VSYNC_OFF_SHIFT)
|
---|
839 |
|
---|
840 | //----------------- SST backPorch bits --------------------
|
---|
841 | #define SST_HBACKPORCH 0xff
|
---|
842 | #define SST_VBACKPORCH_SHIFT 16
|
---|
843 | #define SST_VBACKPORCH (0xff << SST_VBACKPORCH_SHIFT)
|
---|
844 |
|
---|
845 | //----------------- SST videoDimensionS Register -----------
|
---|
846 | #define SST_VIDEODIMENSIONS_X 0x3ff
|
---|
847 | #define SST_VIDEODIMENSIONS_Y_SHIFT 16
|
---|
848 | #define SST_VIDEODIMENSIONS_Y 0x3ff
|
---|
849 |
|
---|
850 | // Here are the defines for the alternate register mappings
|
---|
851 | #define r_ALT r
|
---|
852 | #define drdx_ALT g
|
---|
853 | #define drdy_ALT b
|
---|
854 | #define g_ALT z
|
---|
855 | #define dgdx_ALT a
|
---|
856 | #define dgdy_ALT s
|
---|
857 | #define b_ALT t
|
---|
858 | #define dbdx_ALT w
|
---|
859 |
|
---|
860 | #define dbdy_ALT drdx
|
---|
861 | #define z_ALT dgdx
|
---|
862 | #define dzdx_ALT dbdx
|
---|
863 | #define dzdy_ALT dzdx
|
---|
864 | #define a_ALT dadx
|
---|
865 | #define dadx_ALT dsdx
|
---|
866 | #define dady_ALT dtdx
|
---|
867 | #define s_ALT dwdx
|
---|
868 |
|
---|
869 | #define dsdx_ALT drdy
|
---|
870 | #define dsdy_ALT dgdy
|
---|
871 | #define t_ALT dbdy
|
---|
872 | #define dtdx_ALT dzdy
|
---|
873 | #define dtdy_ALT dady
|
---|
874 | #define w_ALT dsdy
|
---|
875 | #define dwdx_ALT dtdy
|
---|
876 | #define dwdy_ALT dwdy
|
---|
877 |
|
---|
878 | #define Fr_ALT Fr
|
---|
879 | #define Fdrdx_ALT Fg
|
---|
880 | #define Fdrdy_ALT Fb
|
---|
881 | #define Fg_ALT Fz
|
---|
882 | #define Fdgdx_ALT Fa
|
---|
883 | #define Fdgdy_ALT Fs
|
---|
884 | #define Fb_ALT Ft
|
---|
885 | #define Fdbdx_ALT Fw
|
---|
886 |
|
---|
887 | #define Fdbdy_ALT Fdrdx
|
---|
888 | #define Fz_ALT Fdgdx
|
---|
889 | #define Fdzdx_ALT Fdbdx
|
---|
890 | #define Fdzdy_ALT Fdzdx
|
---|
891 | #define Fa_ALT Fdadx
|
---|
892 | #define Fdadx_ALT Fdsdx
|
---|
893 | #define Fdady_ALT Fdtdx
|
---|
894 | #define Fs_ALT Fdwdx
|
---|
895 |
|
---|
896 | #define Fdsdx_ALT Fdrdy
|
---|
897 | #define Fdsdy_ALT Fdgdy
|
---|
898 | #define Ft_ALT Fdbdy
|
---|
899 | #define Fdtdx_ALT Fdzdy
|
---|
900 | #define Fdtdy_ALT Fdady
|
---|
901 | #define Fw_ALT Fdsdy
|
---|
902 | #define Fdwdx_ALT Fdtdy
|
---|
903 | #define Fdwdy_ALT Fdwdy
|
---|
904 |
|
---|
905 | //----------------- useful addressing macros -----------------------
|
---|
906 | // return pointer to SST at specified WRAP, CHIP, or TREX
|
---|
907 | #define SST_WRAP(sst,n) ((SstRegs *)((n)*0x4000+(FxI32)(sst)))
|
---|
908 | #define SST_CHIP(sst,n) ((SstRegs *)((n)*0x400+(FxI32)(sst)))
|
---|
909 | #define SST_TMU(sst,n) ((SstRegs *)((0x800<<(n))+(FxI32)(sst)))
|
---|
910 | #define SST_TREX(sst,n) SST_TMU(sst,n)
|
---|
911 |
|
---|
912 | #define SST_BYTESWAP_BIT BIT(20)
|
---|
913 | #define SST_ALTMAP_BIT BIT(21)
|
---|
914 | #define SST_LFB_BIT BIT(22)
|
---|
915 | #define SST_TEX_BIT BIT(23)
|
---|
916 | #define SST_LFB_ADDR SST_LFB_BIT
|
---|
917 | #define SST_TEX_ADDR SST_TEX_BIT
|
---|
918 |
|
---|
919 | // for new H3 code
|
---|
920 | #define SST_3D_OFFSET 0
|
---|
921 | #define SST_LFB_OFFSET SST_LFB_ADDR
|
---|
922 | #define SST_TEX_OFFSET SST_TEX_ADDR
|
---|
923 |
|
---|
924 | // return byte addresses of LFB and TEX spaces
|
---|
925 | #define SST_LFB_ADDRESS(sst) (SST_LFB_BIT+(FxI32)(sst))
|
---|
926 | #define SST_TEX_ADDRESS(sst) (SST_TEX_BIT+(FxI32)(sst))
|
---|
927 |
|
---|
928 |
|
---|
929 | // SET macros for FBI
|
---|
930 | #define SET_FBI(d,s) SET (*(&(d)+0x100),s)
|
---|
931 | #define SET_FBIF(d,s) SETF(*(&(d)+0x100),s)
|
---|
932 |
|
---|
933 | // SET macros for TMU0
|
---|
934 | #define SET_0(d,s) SET (*(&(d)+0x200),s)
|
---|
935 | #define SET_0F(d,s) SETF(*(&(d)+0x200),s)
|
---|
936 |
|
---|
937 | // SET macros for FBI+TMU0
|
---|
938 | #define SET_FBI_0(d,s) SET (*(&(d)+0x300),s)
|
---|
939 | #define SET_FBI_0F(d,s) SETF(*(&(d)+0x300),s)
|
---|
940 |
|
---|
941 | // SET macros for TMU1
|
---|
942 | #define SET_1(d,s) SET (*(&(d)+0x400),s)
|
---|
943 | #define SET_1F(d,s) SETF(*(&(d)+0x400),s)
|
---|
944 |
|
---|
945 | // SET macros for FBI+TMU1
|
---|
946 | #define SET_FBI_1(d,s) SET (*(&(d)+0x500),s)
|
---|
947 | #define SET_FBI_1F(d,s) SETF(*(&(d)+0x500),s)
|
---|
948 |
|
---|
949 | #endif /* !__CVGDEFS_H__ */
|
---|