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