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