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