TODO revision 1.1 1 1.1 mrg S3 ViRGE 4.0 devel notes
2 1.1 mrg
3 1.1 mrg
4 1.1 mrg
5 1.1 mrg Status
6 1.1 mrg ------
7 1.1 mrg 1/26/2003
8 1.1 mrg Ver 1.8.6
9 1.1 mrg Pre-4.3.0 release. 320x240 doublescan support w/mouse adjust,
10 1.1 mrg power management printouts, DAC error printout fix, log XVideo status based
11 1.1 mrg on chipset, preliminary support for disabling XV when a mode doesn't
12 1.1 mrg support it.
13 1.1 mrg
14 1.1 mrg 5/18/2002
15 1.1 mrg Ver 1.8.5
16 1.1 mrg 320x240 mode support (doublescan).
17 1.1 mrg
18 1.1 mrg 2/2/02
19 1.1 mrg Ver 1.8.4
20 1.1 mrg Make 320x240 mode work in depth 15 & 16.
21 1.1 mrg Testing, need to switch streams on/off based on dblscan_v flag and mode.
22 1.1 mrg Virge MX panel_on test (doesn't work.)
23 1.1 mrg
24 1.1 mrg 1/10/02
25 1.1 mrg Ver 1.8.3
26 1.1 mrg DGA fix, buffer pointer used wrong value. Submitted for 4.2.0 (late).
27 1.1 mrg
28 1.1 mrg Ver 1.8.2
29 1.1 mrg DPMS testing (display DPMS status, disable MX LCD panel), DGA testing.
30 1.1 mrg
31 1.1 mrg 11/11/01 KJB
32 1.1 mrg Ver 1.8.1
33 1.1 mrg ViRGE MX (& GX2) fix to CR63 for problems with modes < 1024x768 from
34 1.1 mrg max <sunmax (a] libero.it>. Submitted for 4.2.0.
35 1.1 mrg
36 1.1 mrg 11/5/01 KJB
37 1.1 mrg Ver 1.8.0
38 1.1 mrg ViRGE MX & GX2 XVideo changes. Fix overlap/color keying on MX, fix
39 1.1 mrg and enable GX2 XVideo.
40 1.1 mrg Submitted for 4.2.0.
41 1.1 mrg
42 1.1 mrg 11/4/01 KJB
43 1.1 mrg Ver 1.7.0
44 1.1 mrg Bump version for 4.2.0. Update man and README.
45 1.1 mrg
46 1.1 mrg 11/3/01 KJB
47 1.1 mrg Ver 1.6.16
48 1.1 mrg Pre-4.2.0 patch. cr3a fix, virge mx xvideo support, xvideo disable option
49 1.1 mrg (helps with high res modes on dx and screen noise), remove accel solid
50 1.1 mrg fill rect for trio3d, bring over some trio3d and mx fixes from 4.0.3 test
51 1.1 mrg drivers. Includes VERBLEV bump to 5 to remove register dumps in log file.
52 1.1 mrg
53 1.1 mrg Ver 1.6.15
54 1.1 mrg Experimental - Scanline color expand - GX2
55 1.1 mrg
56 1.1 mrg 9/21/01 KJB
57 1.1 mrg Ver 1.6.14
58 1.1 mrg ModeInit - cr3a for MX/GX2, don't clear reserved bit 0x40 (revert change).
59 1.1 mrg Back out previous cr3a patch for testing.
60 1.1 mrg
61 1.1 mrg 9/18/01 KJB
62 1.1 mrg Ver 1.6.13
63 1.1 mrg Option "xvideo" added. Add patch provided by Sven Menke
64 1.1 mrg <Menke (a] SLAC.Stanford.EDU> for XV support on MX (slight changes to logic).
65 1.1 mrg
66 1.1 mrg Ver 1.6.12
67 1.1 mrg Adam J. Richter's cr3a fix (possibly temporary).
68 1.1 mrg
69 1.1 mrg 5/30/01 KJB
70 1.1 mrg Ver 1.6.10
71 1.1 mrg Disable MaxHValue & MaxVValue setting.
72 1.1 mrg
73 1.1 mrg 1/03/01 KJB
74 1.1 mrg Ver 1.6.0
75 1.1 mrg Revert ViRGE to pre-Xv changes. ViRGE DX still supports Xv, but changes
76 1.1 mrg added for Xv and ViRGE caused problems with normal display.
77 1.1 mrg
78 1.1 mrg 11/27/00 KJB
79 1.1 mrg Ver 1.5.0
80 1.1 mrg Clean up, bump version for 4.0.2 submission.
81 1.1 mrg CR3A, bit 0x40 (reserved) cleared for MX/GX2. Update man page.
82 1.1 mrg
83 1.1 mrg 11/24/00 KJB
84 1.1 mrg Disable CPU to screen color expansion on GX2, causes lockups on GX2 with
85 1.1 mrg 'locate html' in an xterm. Add WaitCmd code to prevent accelerator and
86 1.1 mrg reg command path activity at the same time on GX2.
87 1.1 mrg XVideo fixes, left side clipping fixed for video windows extending off left
88 1.1 mrg side of screen. Add horizontal filtering modes for 1-2x and >3x scaling.
89 1.1 mrg
90 1.1 mrg 11/7/00 KJB
91 1.1 mrg Ver 1.4.0
92 1.1 mrg Enable MX fixes, testing with accel BLT_BUG set is worse on GX2, so left
93 1.1 mrg it out. BLT_BUG wasn't being enabled on ViRGE & VX because of case usage,
94 1.1 mrg enabled now. Re-enable silken mouse for GX2. Add Render/fbPicture support.
95 1.1 mrg Fix a few compiler warnings.
96 1.1 mrg
97 1.1 mrg 11/5/00 KJB
98 1.1 mrg Continued work on GX2, much stabler now, but I think there is a lockup case
99 1.1 mrg left if you enable pci_burst and pci_retry with accel. I still see screen
100 1.1 mrg flashes with vertical bars once in a while, and the log reports a GEReset.
101 1.1 mrg Added fbPicture (render) support, untested. XV code for GX2 is added,
102 1.1 mrg but not working yet.
103 1.1 mrg
104 1.1 mrg 10/29/00 KJB
105 1.1 mrg Much work on GX2, now SWCursor locks up but HWCursor is stable, go figure.
106 1.1 mrg Loading Netscape a couple times with the mail window was enough to lock it
107 1.1 mrg up twice in a row. Server was locked but not a box (PCI) lock. Also,
108 1.1 mrg vertical barring still occurred a couple times, so HW cursor wasn't causing
109 1.1 mrg that. Try blt_bug flag again for lock up case. And attach to debug server
110 1.1 mrg and bt... Sleep now...
111 1.1 mrg
112 1.1 mrg 10/21/00 KJB
113 1.1 mrg Ver 1.3.0
114 1.1 mrg Depth 16 Xv support added. Testing on ViRGE DX. 1280x1024x24 is noisy, so
115 1.1 mrg needs FIFO tuning.
116 1.1 mrg
117 1.1 mrg 9/27/00 KJB
118 1.1 mrg Initial Xv support in depth 24.
119 1.1 mrg
120 1.1 mrg 9/10/00 KJB
121 1.1 mrg Convert to FB. Add option "UseFB", default true. Added
122 1.1 mrg VerticalRetraceWait timeout back as default. #if0 out the line accel
123 1.1 mrg code in s3v_accel.c. The Subsequent...Bresenham line code causes a lockup
124 1.1 mrg when used with fb. We didn't have any hardware accel in there anyway...
125 1.1 mrg
126 1.1 mrg 7/25/00 KJB
127 1.1 mrg Started Xv additions.
128 1.1 mrg
129 1.1 mrg 6/26/00 KJB
130 1.1 mrg GX2 seems to have an accel bug. I see the entire screen go solid color or
131 1.1 mrg a wide stripe pattern for about 1 second. The S3VGEReset gets called twice,
132 1.1 mrg and then everything is okay. Unless SilkenMouse is enabled... That seems to
133 1.1 mrg get you a server lock instead. Short term is to disable SilkenMouse for GX2
134 1.1 mrg only. SilkenMouse isn't really the problem of course, it just happens that if
135 1.1 mrg we move the mouse during the 1 second engine lockup we appear more likely to
136 1.1 mrg never recover.
137 1.1 mrg
138 1.1 mrg 6/23/00 KJB
139 1.1 mrg Ver 1.2.0 - Fix console corruption on GX2 caused by reserved bit use in CR3A.
140 1.1 mrg Fix GX2 noise on screen in hi-res depth 24 by increasing FIFO fill threshold.
141 1.1 mrg
142 1.1 mrg 6/12/00 KJB
143 1.1 mrg Ver 1.1.0 - Add Init for SilkenMouse, add xf86SetBackingStore call, move
144 1.1 mrg int10Symbols[] to remove warnings.
145 1.1 mrg
146 1.1 mrg 3/3/00 KJB
147 1.1 mrg Ver 1.0.0 - S3VProbeDDC code for X -configure option added, add timeout to
148 1.1 mrg WAITIDLE macro in s3v_macros.h, change ImageWriteFlags adding NO_GXCOPY.
149 1.1 mrg Start of GX2 fixes, use CR regs for FIFO settings. Update copyrights.
150 1.1 mrg
151 1.1 mrg 2/11/00 KJB
152 1.1 mrg Ver 0.11.0 - Add cfb16/24BresS to module symbols to remove warnings.
153 1.1 mrg Fix viewport restore problem after EnterVT in 24 bpp.
154 1.1 mrg Clean up log output, removing register dumps from normal console log.
155 1.1 mrg
156 1.1 mrg 6/26/99 KJB
157 1.1 mrg Make the memory settings for fifo_conservative the default, 'fifo_conservative'
158 1.1 mrg does nothing additional now. Patch includes DGA2 additions below, non-working.
159 1.1 mrg Expected to be included in 3.9Pu.
160 1.1 mrg
161 1.1 mrg Changes in 3.9Pt by others include additions for newer RAC support. Some reports
162 1.1 mrg say multi-head works now with ViRGE.
163 1.1 mrg
164 1.1 mrg 6/17/99 KJB
165 1.1 mrg Ver 0.9.0 - Prelim DGA2 support modeled after MGA.
166 1.1 mrg
167 1.1 mrg 5/28/99 KJB
168 1.1 mrg Ver 0.8.0 - Changes to 3.9Po - Cleaned up debug register printing function, minor
169 1.1 mrg changes to man page, remove S3V.sgml and add new s3virge.sgml in doc/sgml, also
170 1.1 mrg remove README.S3V from doc directory.
171 1.1 mrg
172 1.1 mrg
173 1.1 mrg 4/5/99 KJB
174 1.1 mrg 3.9Ph - Ver 0.7.0 - Virge man page added, HW Cursor fixed, rename chipsets removing
175 1.1 mrg slashes in the names.
176 1.1 mrg
177 1.1 mrg 03/27/99 KJB
178 1.1 mrg Ver 0.6.0 - hwcursor additions, added s3v_hwcurs.c and Option "swcursor".
179 1.1 mrg Default is hwcursor, Option "swcursor" will disable it.
180 1.1 mrg
181 1.1 mrg Ver 0.5.0 - patch against 3.9Pf (seq 2615), fix depth 24 and Accel flags, sync pci_burst option to previous changes, remove s3v_comp.h and s3v_pio.c and merge as needed.
182 1.1 mrg
183 1.1 mrg 03/21/99 KJB
184 1.1 mrg 3.9Pf has Matt Grossman's Alpha changes.
185 1.1 mrg For next patch - remove s3v_pio.c and s3v_comp.h. Include the EnableMMIO and
186 1.1 mrg DisableMMIO functions from s3v_pio.c in s3v_driver.c.
187 1.1 mrg
188 1.1 mrg 03/02/99 KJB
189 1.1 mrg 3.9Pc - depth 24 doesn't work on my ViRGE DX. NoAccel doesn't start, accel does
190 1.1 mrg but has blocky noise.
191 1.1 mrg
192 1.1 mrg 03/01/99 KJB
193 1.1 mrg Macro change done, VGAIN/VGAOUT for register access, INREG/OUTREG for s3v_accel.c.
194 1.1 mrg Added Mark Vojkovich's re-write of the accel code. It may only be clean for ViRGE DX
195 1.1 mrg at the moment. x11perf showed a couple artifacts in 'move window via parent'.
196 1.1 mrg In progress, attempt to call cfbScreenInit() functions after MapMem/EnterVT. Not
197 1.1 mrg working yet. Version stamped 0.4.0.
198 1.1 mrg
199 1.1 mrg 02/22/99 KJB
200 1.1 mrg Macro change coming to add Mark's accel update. VGAOUT for old stuff and MEMOUT
201 1.1 mrg for new stuff? That way there's no confusion with the old INREG/OUTREG macros.
202 1.1 mrg Or maybe just stick with INREG/OUTREG for new stuff.
203 1.1 mrg
204 1.1 mrg 01/30/99 KJB
205 1.1 mrg Version stamp 0.3.0. Changed Chipset flags to use PCI IDs exclusively, also use
206 1.1 mrg common/xf86PciInfo.h for PCI IDs rather than coding them in regs3v.h.
207 1.1 mrg
208 1.1 mrg 11/28/98 KJB
209 1.1 mrg Bumped version stamp to 0.2, expect code in 3.9No. Cleaned up s3v.h and
210 1.1 mrg s3v_driver.c by removing unused definition & code sections. Added
211 1.1 mrg options set_mclk (from 3.3.2) and set_lcdclk (3.3.3 MX). Code support
212 1.1 mrg from 3.3.3 for ViRGE GX2 and MX+ is included.
213 1.1 mrg Disabled call to 32 bpp AccelInit to get -depth 24 -bpp 32 working again.
214 1.1 mrg
215 1.1 mrg 11/27/98 KJB
216 1.1 mrg More 3.3.3 import.
217 1.1 mrg New registers saved, CR40,CR45,SR8,(for MX) SR29,SR45,SR55,SR56,SR57.
218 1.1 mrg Reviewed s3vdriver.h, rehs3v.h, newmmio.h, s3v_accel.c, s3v_driver.c.
219 1.1 mrg Added ViRGE MX, MX+ & GX2 support. Re-synced parts of mode save and init
220 1.1 mrg with 3.3.3 versions. Added timeout ability for WaitIdle() and friends.
221 1.1 mrg Added chipnames and numbers to Chipsets struct.
222 1.1 mrg
223 1.1 mrg 11/26/98 KJB
224 1.1 mrg Import additions from 3.3.3, newmmio.h, regs3v.h,
225 1.1 mrg
226 1.1 mrg Trap fills disabled because they don't match cfb, pixmap cache & ImageWrite
227 1.1 mrg working, fixed depth 8 color loss on VT switches, INREG & OUTREG modified to
228 1.1 mrg use a single offset value instead of adding the base and offset together.
229 1.1 mrg
230 1.1 mrg 11/18/98 KJB
231 1.1 mrg 3.9Nn
232 1.1 mrg Acceleration working for Bitblt, ScreenToScreenCopy, Color 8x8 Rect fills,
233 1.1 mrg and Rect/Trap fills.
234 1.1 mrg Trap fills do not support transparency, so that needs to be exported to XAA.
235 1.1 mrg
236 1.1 mrg
237 1.1 mrg 10/31/98 KJB
238 1.1 mrg Working depth 8, discolored dep 16 but runs, dep 24 screen goes black,
239 1.1 mrg C-A-Bkspc restores text console. At 3.9Nk tree level, module would not
240 1.1 mrg load in Loader server. why? Static server tested.
241 1.1 mrg
242 1.1 mrg 10/29/98 KJB
243 1.1 mrg ModeInit() needs work, options are heavily #if'd to try and get 8bpp
244 1.1 mrg working.
245 1.1 mrg
246 1.1 mrg 10/16/98 KJB
247 1.1 mrg General 4.0 architecture is setup. Presently at 3.9Nc level, if moved
248 1.1 mrg to a newer tree you will need to add the resource handling functions from
249 1.1 mrg Egbert (I haven't tackled that yet).
250 1.1 mrg
251 1.1 mrg At the moment the ScreenInit() function is coded to return FALSE. On my
252 1.1 mrg ViRGE DX card this version does not lock up, but it does destroy the
253 1.1 mrg video mode. Make sure you have an external terminal or network connection
254 1.1 mrg if you run it (or blindly do a restart from your main terminal). I make
255 1.1 mrg no guarantees that it won't hard lock other versions of ViRGE.
256 1.1 mrg
257 1.1 mrg I've left out the Alpha memory mapping, along with all option processing.
258 1.1 mrg Those will need to be done once the driver is minimally working.
259 1.1 mrg
260 1.1 mrg Note that everything in s3v_driver.c is MMIO only. There are a pair of
261 1.1 mrg PIO functions in s3v_pio.c, but that is the only place. See notes below
262 1.1 mrg about my ViRGE DX BIOS and why I needed to do this on my hardware.
263 1.1 mrg
264 1.1 mrg Other stuff...
265 1.1 mrg Some test stuff is assuming 8bpp, so 16 & 24 are broken.
266 1.1 mrg On my hardware, I am presently trying to get the Save/Restore sequence to
267 1.1 mrg recover the video mode. At the moment, when I run this driver, I get:
268 1.1 mrg ScreenInit() runs to completion.
269 1.1 mrg It returns FALSE, so the Server aborts.
270 1.1 mrg LeaveVT() is called, and runs to completion.
271 1.1 mrg The Server exits gracefully, but my monitor goes powersaver and the video
272 1.1 mrg mode is not recovered.
273 1.1 mrg
274 1.1 mrg
275 1.1 mrg
276 1.1 mrg TODO items
277 1.1 mrg ----------
278 1.1 mrg 1/30/03 General option "videoram" is ignored by the virge driver.
279 1.1 mrg (Meelis Roos)
280 1.1 mrg 3/24/02 Xv reported to not work as secondary in Xinerama multihead.
281 1.1 mrg (xav on irc)
282 1.1 mrg 3/24/02 DPMS doesn't fully disable the screen. Blue line across the
283 1.1 mrg center in all modes. (xav on irc)
284 1.1 mrg 3/25/02 Secondary reports primary BIOS during int10 detection. ie:
285 1.1 mrg
286 1.1 mrg (II) S3VIRGE(1): VESA BIOS detected
287 1.1 mrg (II) S3VIRGE(1): VESA VBE Version 2.0
288 1.1 mrg (II) S3VIRGE(1): VESA VBE Total Mem: 4194240 kB
289 1.1 mrg (II) S3VIRGE(1): VESA VBE OEM: ATI RAGE128
290 1.1 mrg (II) S3VIRGE(1): VESA VBE OEM Software Rev: 1.0
291 1.1 mrg (II) S3VIRGE(1): VESA VBE OEM Vendor: ATI Technologies Inc.
292 1.1 mrg (II) S3VIRGE(1): VESA VBE OEM Product: R128
293 1.1 mrg (II) S3VIRGE(1): VESA VBE OEM Product Rev: 01.00
294 1.1 mrg
295 1.1 mrg (xav on irc)
296 1.1 mrg
297 1.1 mrg
298 1.1 mrg Check CR65 usage, bit 2 set based on S3_EARLY_SC? In my manual bit 2 is
299 1.1 mrg enable MMIO to RAMDAC registers.
300 1.1 mrg
301 1.1 mrg Notes:
302 1.1 mrg ----------
303 1.1 mrg
304 1.1 mrg /config/cf/xfree86.cf
305 1.1 mrg
306 1.1 mrg have to add s3v to XF86CardDrivers for imake to make the
307 1.1 mrg drivers/s3v Makefile.
308 1.1 mrg
309 1.1 mrg To remake makefiles, after editing Imakefile, go to dir above drivers/s3v
310 1.1 mrg and do a 'make Makefiles'.
311 1.1 mrg
312 1.1 mrg For debug, make CDEBUGFLAGS='-g -DDEBUG', adding -DMetroLink enables
313 1.1 mrg timeout for VerticalRetraceWait().
314 1.1 mrg
315 1.1 mrg
316 1.1 mrg
317 1.1 mrg S3 ViRGE DX stuff:
318 1.1 mrg
319 1.1 mrg Card seems to power up (or BIOS forces) with MMIO disabled. All flavors are
320 1.1 mrg disabled, because CR53 comes up as 0. This may preclude using this card
321 1.1 mrg as the second device in a multi-head situation although David D. says that
322 1.1 mrg the new config. management stuff may help here.
323 1.1 mrg
324 1.1 mrg
325 1.1 mrg
326 1.1 mrg $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/TODO_NOTES,v 1.23 2003/02/13 03:21:33 dawes Exp $
327