From: boogyman@xs4all.nl (Boogyman) Subject: Video Card FAQ Date: 1 Feb 1995 00:27:56 GMT Summary: Lies? Keywords: vga, svga, video card, benchmark, chipset 95-01-31 This is a faq on PC video cards, with an emphasis on hardware (chipsets) and performance. It is intended to be clear, informative and truthful. However, it is also critical and many comments are the opinion of a FAQ contributor. Additions/corrections are welcome. Some missing information is flagged with a question mark. Send to boogyman@xs4all.nl. Sections: Current Graphics Chipsets Card Model Names DRAM vs. VRAM DOS Performance (with detailed results) GUI Benchmarks Monitor Timing You are especially encouraged to send in benchmark results. I really mean that. Grab VIDSPEED (on any simtel mirror, e.g. oak.oakland.edu: /pub/msdos/screen/vidspd40.zip) and send in some data. Remember that 64-bit video cards with one megabyte DRAM are very inhonestly marketed. They perform and function like 32-bit cards, and are easily three times slower in raw accelerated graphics than the 2Mb versions, which *do* use a 64-bit interface to video memory. Current Graphics Chipsets ------------------------- Alliance Little known new chipset maker. Has 64-bit DRAM chipset with video support (Promotion 3210), used on Spider Graphics Pro-Vision 64. ------------------------------------------------------------------------- ARK Logic New chipset; chips used in Hercules Stingray Pro and 64. ARK1000PV VLB/PCI, 32-bit DRAM. Excellent bus interface. Very efficient, aggressive DRAM timing. ARK2000PV 64-bit DRAM. Supports 1600x1200 with high-end DAC. ------------------------------------------------------------------------- ATI High-end accelerators, based on 8514 design. ATI-Mach8 Old, 8514-compatible ATI-Mach32 32-bit chip, supports 64-bit interface to video memory with 2Mb. Supports both DRAM and VRAM. ATI-Mach64 64-bit chip. VLB speced at 33 MHz. Verdict Performance: Fairly good previous generation performance (Mach32). Mach64 very fast (with VRAM similar to S3-964, similar to S3-864 with DRAM). DOS perf: Mach32 fair, depends on card design. Mach64 uncertain (VGA mediocre). Max. resolutions depend on RAMDAC and memory type. Max. res 8bpp: 1280x1024 @ 72 Hz (VRAM) Max. res 16bpp: 1024x768 @ 70 Hz (VRAM) Max. res 24bpp: 800x600 @ 72 Hz (VRAM) BIOS: Unknown. Picture: Unknown. Pricing ATI-Mach64 2Mb VRAM $300? ATI Xpression (Mach64 2Mb DRAM) $200? ------------------------------------------------------------------------- Avance Logic, Inc. Connection with Acer Labs, Inc. is confusing; it seems they both claim the 'ALI' acronym. Low end chipsets, fairly common for PCI. 32-bit DRAM? ALG-2101 ALG-2228 VLB ALG-2301 PCI ALG-2302 PCI ALG-2308 ALG-2401 Acer Labs chip: ALI-3145 VESA/PCI, interleaved DRAM. ------------------------------------------------------------------------- Cirrus Logic, Inc. Low-to-mid-end DRAM-based cards (accelerated), some laptop chipsets. Integrates video card components into one chip (built-in RAMDAC and clock generators). The 5426/8 has been the most common low-end VLB card chipset for a good while. CL-GD542x series 32-bit DRAM interface, 16-bit host bus interface. Acceleration: Fill, scroll, hardware cursor. Max dot clock at 256 colors is 80 MHz. First generation VLB cards. CL-GD5420 Old, no truecolor DAC. CL-GD5422 Has truecolor DAC. CL-GD5424 VLB support. The following chips have a 'BitBLT engine', which implies better acceleration (opaque move, invert, text). CL-GD5426 BitBLT chip. ISA, VLB. Max 2Mb. CL-GD5428 Slightly enhanced version of the 5426. CL-GD5429 Faster version, MMIO (4th Q 1994). Verdict Performance: Fair, drops off at high resolutions/refresh, 16bpp OK. Gains with CPU. DOS perf: Fair for first generation local bus chipset. Mediocre by current standards. Max. res 8bpp: 1024x768 @ 72 Hz (1280x1024 interlaced, 5426+) Max. res 16bpp: 800x600 @ 60 Hz (1024x768 interlaced, 5426+) Max. res 24bpp: 640x480 @ 60 Hz Max mem. clock: 50 MHz, 5429: 60 MHz Max dot clock: 5426/8: 85 MHz 8bpp, 45+ MHz 16bpp, 26+ MHz 24bpp 5429: 85 MHz 8bpp, 50 MHz 16bpp, 28 MHz 24bpp BIOS: VESA BIOS support built-in, problematic. Picture: Depends on card implementation. Good designs crisp, bad ones fuzzy. Pricing Generic 5424/5428 cards can be as low as $60/$80. Brand-name (e.g. Diamond SpeedStar Pro) $100. Notes Upgrade to 2Mb buys very little (interlaced modes only). CL-GD543x/4x series ('Alpine') 64-bit internal acceleration. 64-bit DRAM interface on 5434 but only with 2Mb memory. Good 32-bit host interface (5434 PCI interface very good). More or less compatible with 5426/8. CL-GD5430 'Budget' version. Limited to 32-bit DRAM interface, even with 2Mb. A bit faster than the 542x. CL-GD5434 Has 64-bit interface to DRAM with 2Mb memory. Good speed. Good truecolor acceleration. CL-GD5434-E Supports higher memory clock (60 MHz). CL-GD5440 [announced] Video support. Verdict Performance: With 32-bit interface to video memory: fair, faster than 5426. With 64-bit interface to video memory: very good. Looses a bit on blits in benchmarks, otherwise good all-round (5434). DOS perf: Good, but not maximally configured (VLB). PCI very good (burst mode). Max. res for 5430 and 5434/1Mb is same as 542x. Max. res 8bpp: 1280x1024 @ 60 Hz Max. res 16bpp: 1024x768 @ 75 Hz Max. res 24bpp: 800x600 @ 60 Hz (32-bit pixels). 800x600 @ 72 Hz possible with fast enough DRAM timing. Max mem. clock: 5434 50 MHz, 5434 rev. E+/5430 60 MHz. Max dot clock: 5430: 85 MHz 8bpp, 50 MHz 16bpp 5434: 108 MHz 8bpp, 85 MHz 16bpp, 45+ MHz 32bpp 5434E: 50 MHz 32bpp BIOS: VESA BIOS support built-in. Reasonable. Picture: OK. VLB debatable. Pricing Generic cards unknown, should be below S3-864. Brand-name: Orchid Kelvin 64 2Mb $180. Notes CL-GD5434 often equipped with only 1Mb, which severely cripples performance. ------------------------------------------------------------------------- IIT (AGX) VRAM-based accelerators, some cheap. Has some similarities with IBM XGA. Discontinued. AGX-015 AGX-016 64-bit DRAM ------------------------------------------------------------------------- Oak Technologies Inc. Low-end SVGA chipsets. OTI-067 Old SVGA chipset, 512K max. OTI-077 SVGA chipset, 1Mb max. Slow. OTI-087 Accelerated, 2Mb max. Not very fast. Pricing OTI-087 VLB $60. ------------------------------------------------------------------------- S3, Inc. Well-established for high-end PC graphics chipsets. Has moved into low-to-mid-end market. Generally efficient accelerators. Wide variation in card designs (RAMDAC, clock generators etc.). Acceleration interface based on IBM 8514. 8xx chips are DRAM-based, 9xx VRAM-based. First Generation S3-911 Original S3 chip, VRAM-based. Very poor DOS performance. S3-924 Bug fix of S3-911, can support 24bpp. Second Generation S3-801 ISA, 32-bit DRAM interface. Good acceleration (drops off a bit at high resolutions), better than Cirrus 5426/8. S3-805/805p Local bus version, mostly 16-bit host interface. Currently (2nd half 1994) low-end VLB. S3-805i Supports interleaved memory with 2Mb DRAM. S3-928 Previous generation high-end chipset; 32-bit interface to VRAM for drawing. Trio32 (732) Integrated chip with 32-bit DRAM interface. Part of S3's ambition to take over the low-end market? Based on 864 core? 64-bit Vision series S3-864 64-bit DRAM interface with 2Mb memory. 64-bit acceleration. Variation in RAMDACs. Very good performance with 2Mb. Unbalanced host interface. S3-964 64-bit VRAM interface. Very fast, high resolution/ color depth. Trio64 (764) Integrated version of S3-864 (built-in RAMDAC), not driver-compatible with S3-864. S3-868 [announced] Enhanced 864 with video support. S3-968 [announced] Enhanced 964 with video support. Verdict Performance: S3-801/805: Good for a 32-bit card. S3-928: Very good. S3-864: Very good with 2Mb memory, limited with 1Mb. S3-964: Superb. DOS perf: 801/805: Fair, local bus OK, depends on card design. 928: Very good; depends on card. 864: Reasonably fast (very fast in 320x200, slow in SVGA modes). 964: Mediocre for a high-end chipset (low res OK). Max. resolutions depend on RAMDAC and memory timing. Max. res 8bpp: 1280x1024 @ 60-72 Hz Max. res 16bpp: 1024x768 @ 60-90 Hz Max. res 24bpp: 800x600 @ 60-70 Hz Max mem. clock: 864, Trio32: 65 MHz Trio64: 70 MHz Max dot clock: 864: 135+ MHz 8bpp, 95 MHz 16bpp, 47.5 MHz 32bpp Trio64: 135+ MHz 8bpp, 80 MHz 16bpp, 80 MHz 32bpp BIOS: Unknown. Picture: Unknown. Depends on design and DAC. Pricing Generic 801/805 $80. Generic S3-864 1Mb $100, 2Mb $145. Brand-name S3-864 2Mb: $200? S3-964 2Mb: $250. Notes S3-864 takes a big performance hit with only 1Mb (very misleading marketing). Variation in memory timing (speed) between different S3-864 cards. ------------------------------------------------------------------------- Trident Microsystems Long-established low-end chipsets. Very poor performance, but very cheap. TVGA8900C Old ISA, SVGA. Extremely poor performance. TVGA9000 512K only, very poor. TVGA8900CL Supports local bus, but very slow. TVGA9200Cxr Local bus, slow. TVGA9400CXi Supports 2Mb, truecolor. May have acceleration. TVGA9420 ? TGUI9440AGi Aggressive DRAM timing, accelerated, much quicker. Verdict Performance: Miserable. Recent VLB accelerators better but still below par. 9440 may be considered first Trident chip that is not sub-standard. DOS perf: Extremely poor (8900C). Local bus better. Max. resolutions unknown. Max mem. clock: TGUI9440: 70 MHz BIOS: Unknown. Picture: Unknown. Pricing Generic ISA/VLB/PCI 1Mb, $60/$70/$90. ------------------------------------------------------------------------- Tseng Labs, Inc. ET4000 well-established non-accelerated chipset. W32 series accelerated. ET4000/W32i and W32p support smart 32-bit interleaved memory interface with 2Mb DRAM installed, yielding 85% of the video memory bandwidth of a 64-bit interface. ET4000AX Old ISA chipset, VLB OK (16-bit host interface, good response). W32 series ET4000/W32 Accelerated, 32-bit host interface. 32-bit memory interface. Fair performance, comparable to Cirrus 5426. ET4000/W32i Improved acceleration, supports interleaved memory with 2Mb. Very fast blits. ET4000/W32p Improved acceleration, better host bus interface support (incl. PCI). Special video support. Verdict Performance: W32: Mediocre, comparable to Cirrus 5426. W32i/p with 1Mb: Fair. W32i/p with 2Mb: Very good, very fast blits. DOS perf: Very good, but depends on card design. Not very good on PCI? Max. resolutions depend on RAMDAC. Max. res 8bpp: 1280x1024 @ 72 Hz Max. res 16bpp: 1024x768 @ 72 Hz (W32p) Max. res 24bpp: 800x600 @ 72 Hz (24-bit pixels). Unknown (32-bit pixels). Max mem. clock: W32p: 50 MHz (Tseng), 65 MHz (other source) BIOS: VESA BIOS support built-in, not all. Unknown. Picture: Unknown. Pricing Generic ET4000/W32p $100, with 2Mb $150. Notes ET4000/W32i and W32p take big advantage of second Mb of memory. Reputation for good DOS performance, but varies a bit between card designs. ------------------------------------------------------------------------- UMC UMC 8710 PCI, 32-bit interleaved DRAM, accelerated. ------------------------------------------------------------------------- Weitek High-end VRAM accelerators. P9000 Old, 32-bit VRAM-interface for drawing? P9100 Current version. ------------------------------------------------------------------------- Western Digital (Paradise) Long-established SVGA chipsets. 32-bit DRAM, some accelerated. WD90C30 SVGA chipset, 32-bit DRAM interface (1Mb). WD90C31 Has acceleration (comparable to Cirrus 5426). WD90C33 Newer version, max 2Mb. ------------------------------------------------------------------------- Card Model Names ---------------- This list is intended to also include model names of more generic-type cards. Cards that are more or less obsolete are marked 'Obs'. Name Chip Bus Obs Actix GraphicsEngine 32 S3-801/805 ISA Actix GraphicsEngine 32i S3-805i? VLB Actix GraphicsEngine 64 S3-864 Actix GraphicsEngine Ultra S3-964? Obs Actix ProStar VL CL-GD5426/8 VLB Actix ProStar64 CL-GD5434 PCI Actix Ultra+ S3-928 ISA ALG5434(E) (Pro) CL-GD5434(E) PCI Obs ATI 8514 Ultra (no VGA) ATI-Mach8 ISA ATI AX0 ATI-Mach32 PCI Obs ATI Graphics Ultra ATI-Mach8 ISA ATI Graphics Ultra Pro (VRAM) ATI-Mach32 ISA/EISA/VLB/PCI ATI Wonder ATI Ultra Plus (DRAM) ATI-Mach32 ISA/VLB/PCI ATI Ultra XLR ATI-Mach32 VLB ATI Expression (DRAM) ATI-Mach64 VLB/PCI ATI GUP Turbo/WinTurbo (VRAM) ATI-Mach64 VLB/PCI Obs Acumos AVGA3 CL-GD5422/4/6 ISA/VLB AVGA4VL CL-GD5428 VLB Boca Vortex IIT AGX-015? VLB Obs Cardex Cobra ET4000/W32i Cardex Challenger ET4000/W32p VLB Cardex Challenger Pro ET4000/W32p PCI Cardex Power 64 S3-864 Cardex Thunder Pro 64 CL-GD5434 PCI CCS Labs MaxPower P9000/32 DFI-WG1000 CL-GD5422/6/8 ISA/VLB DFI-WG2000 ALG-2301? PCI DFI-WG5000 ET4000/W32p PCI DFI-WG6000 WD90C33 VLB Obs Diamond SpeedStar (Plus/24) ET4000AX ISA Obs Diamond SpeedStar 24X WD90C31 ISA/? Diamond SpeedStar Pro CL-GD5426/8 ISA/VLB Diamond SpeedStar 64 CL-GD5434 ISA/PCI Diamond SpeedStar Pro SE (1) CL-GD5430/4 VLB/PCI Obs Diamond Stealth VRAM S3-911/924 ISA Diamond Stealth 24 S3-801/805 ISA/VLB Obs Diamond Stealth Pro S3-928 ISA/VLB Diamond Stealth 32 (5) ET4000/W32p VLB/PCI Diamond Stealth 64 DRAM S3-864/Trio64 VLB/PCI Diamond Stealth 64 DRAM Video S3-868 VLB/PCI Diamond Stealth 64 VRAM S3-964 VLB/PCI Diamond Stealth 64 VRAM Video S3-968 VLB/PCI Diamond Viper Pro Weitek P9100 VLB/PCI EIZO VRAM? IIT AGX-015 VLB ELSA Winner 1000 S3-928 ISA/PCI ELSA Winner 1000PRO S3-864 ELSA Winner 2000 S3-928 VLB ExpertColor DSP6430 C&T-64300DGX? VLB Obs Genoa 8500VL(-28) CL-GD5426/8 ISA/VLB Genoa 8900 Phantom 32i ET4000/W32i/p VLB/PCI Genoa Phantom 64i S3-864 VLB/PCI Hercules Dynamite Power ET4000/W32i/p Hercules Dynamite Pro ET4000/W32i/p ISA/VLB Obs Hercules Graphite Pro IIT AGX-014/5/6 ISA/VLB Obs Hercules Graphite Power IIT AGX-016 ISA/VLB/PCI Hercules Stingray ALG-2228/2301 VLB/PCI Hercules Stingray Pro ARK1000PV VLB/PCI Hercules Stingray 64 ARK2000PV PCI Hercules Graphite Terminator 64 S3-964 VLB/PCI Intel 5430 CL-GD5430 PCI LeadTek WinFast S200 (4) ET4000/W32p PCI Matrox MGA Ultima Matrox VLB/PCI Matrox MGA Ultima + Matrox VLB/PCI Matrox MGA Impression Matrox VLB/PCI Metheus 928-4M S3-928 VLB Obs Miro Crystal 8S S3-805 VLB Miro Crystal 10SD S3-801/805 Obs Miro Crystal 16S S3-928 VLB Miro Crystal 20SD S3-864 (3)? VLB/PCI Miro Crystal 20SV S3-964 VLB Obs Number Nine GXE S3-928 ISA/VLB Number Nine GXE 64 (3)? S3-864/Trio64 VLB/PCI Number Nine GXE 64 Pro S3-964 VLB/PCI Number Nine GXE 64 Pro 1600 S3-964 Obs Octek AVGA2 CL-GD5420 ISA Obs Orchid Celsius AGX VLB Obs Orchid Fahrenheit 1280 S3-911(924?) ISA Obs Orchid Fahrenheit 1280+ S3-801/805 ISA/VLB Obs Orchid Fahrenheit VA S3-801/805 ISA/VLB Orchid Fahrenheit 64 S3-864? VLB/PCI Orchid Fahrenheit Pro 64 S3-964? VLB/PCI Orchid Kelvin EZ CL-GD5430? VLB/PCI Orchid Kelvin 64 CL-GD5434 ISA/VLB/PCI Obs Paradise Accelerator Value OTI-087 Paradise Accelerator 24 WD90C31? Paradise VL3000 WD90C31? VLB Paradise VL-Plus WD90C33? VLB Sigma Concorde ET4000/W32i VLB SPEA/V7 Mirage VEGA Plus ALG-2228 VLB SPEA/V7 Mercury S3-928 VLB SPEA/V7 Mirage P64 S3-864 VLB/PCI Spider VLB Plus CL-GD5428 VLB Spider Tarantula 64 S3-964 VLB Spider Graphics Pro-Vision 64 Alliance-3210 Spider 64 CL-GD5434 VLB/PCI Obs STB Powergraph X-24 S3-801/805 ISA/VLB STB Powergraph/V S3-868 Obs STB Horizon CL-GD5426/8 ISA/VLB STB ? CL-GD5430 PCI STB Pegasus S3-928 VLB STB LightSpeed ET4000/W32i/p VLB STB Nitro CL-GD5434 ISA/PCI STB Velocity 64V S3-968 Techworks Thunderbolt ET4000/W32p VLB Techworks WarpVL-1 S3-864? Techworks WarpVL-2 S3-864? VG-8000 WH WD90C33? VI720 CL-GD5434 PCI VideoMagic PCI V864 S3-864 PCI VidTech FastMax P20 S3-864 ViewTop PCI ET4000/W32p PCI Notes (1) The Diamond SpeedStar (Pro) SE is CL-GD5430 based, local bus. (2) S3-864 with 60 MHz MCLK. (3) S3-864 with 50 MHz MCLK. (4) Reported to have slower DOS performance than some other PCI ET4000/W32p-based cards. (5) Probably uses quite aggressive chip/memory timing. DRAM vs. VRAM ------------- Video cards need to access video memory for two purposes: - Refreshing the monitor screen from the picture stored in video memory. - Drawing graphics into video memory. With dual-ported VRAM memory, both tasks can be performed simultaneously. With DRAM memory, graphics drawing is blocked while memory is read for monitor refresh (this usually happens with burst reads into a so-called CRT FIFO buffer). There is a maximum amount of video memory that can be accessed by the card in one second. This is called video memory bandwidth. On a VRAM-based card, all available memory bandwidth is available for drawing since it is undisturbed by monitor refresh. On a DRAM-based card, the video memory bandwidth left for drawing is the total video memory bandwidth subtracted by the bandwidth used for monitor refresh. If monitor refesh takes up a large portion of the bandwidth, graphics performance goes down steeply. With 32-bit video memory access (which is the case with a 1Mb DRAM-based card, including so called 64-bit ones), the video memory bandwidth is typically something from 90 to 120 Mb/s. With 64-bit video memory access (which is the case with 64-bit 2Mb DRAM-based cards, and 64-bit VRAM-based cards), the video memory bandwidth is doubled (about 200 Mb/s). For a mode like 1024x768x256 with 80 Hz refresh, the amount of bandwidth taken up by monitor refresh is approximately 1024 * 768 * 80 = 63 Mb/s, which with overhead added works out to about 75 Mb/s of video memory bandwidth. The overall situation for 1024x768x256 NI looks like this: 1Mb DRAM 2Mb DRAM 1Mb VRAM 2Mb VRAM 32-bit (*) 64-bit 32-bit 64-bit Total bandwidth: 100 Mb/s 200 Mb/s 100 Mb/s 200 Mb/s Refresh bandwidth: 75 Mb/s 75 Mb/s 75 Mb/s 75 Mb/s Left for drawing: 25 Mb/s 125 Mb/s 100 Mb/s 200 Mb/s (*) Includes so-called 64-bit cards with 1Mb DRAM. The amount of bandwidth left for drawing pretty much corresponds to raw graphics primitive performance. As you can see the 1Mb DRAM-based card is seriously impaired compared to the 2Mb DRAM and VRAM configurations. For 64-bit 2Mb DRAM cards, resolutions like 1024x768x16bpp and 800x600x32bpp leave relatively little bandwidth for drawing, leaving for example 50 Mb/s, whereas a VRAM-based card can use the full 200 Mb/s. Here's a table that shows the drawing bandwidth for typical non-interlaced resolutions on different memory configurations: Resolution: 800 1024 1280 1024 800 600 768 1024 768 600 Pixel depth: 8bpp 8bpp 8bpp 16bpp 32bpp Refresh bandwidth: 50 75 125 150 180 MCLK: Total 1Mb DRAM (32-bit) 50 100 50 25 - - - 1Mb DRAM (32-bit) 60 120 70 45 - - - 1Mb DRAM (32-bit) 70 140 90 65 - - - 1Mb DRAM (32-bit) 80 160 110 85 - - - 2Mb DRAM (32-bit i) 50 170 120 95 45 20 - (1) 2Mb DRAM (32-bit i) 60 205 155 130 80 55 25 2Mb DRAM (64-bit) 50 200 150 125 75 50 20 2Mb DRAM (64-bit) 60 240 190 165 115 90 60 2Mb DRAM (64-bit) 70 280 230 205 155 130 100 2Mb DRAM (64-bit) 80 320 270 245 195 170 140 1Mb VRAM (32-bit) 50 100 100 100 - - - 2Mb VRAM (32-bit) 50 100 100 100 100 100 100 (2) 2Mb VRAM (64-bit) 50 200 200 200 200 200 200 2Mb VRAM (64-bit) 80 320 320 320 320 320 320 (1) 32-bit interleaved memory access (e.g. ET4000/W32p). (2) 32-bit access for drawing, but 64-bit access for monitor refresh. Typical of previous-generation high-end VRAM accelerators. Different 1Mb and 2Mb DRAM configurations are listed, with increasingly aggressively timed memory (50, 60, 70 or 80 MHz memory clock (MCLK)). Current 70ns fast-page DRAMs are clocked up to 60 MHz, 60ns up to 70 MHz, although the DRAM stability is debatable (probably needs rigorous testing). The new EDO fast-page DRAMs support 80 MHz MCLK. Some 2Mb S3-864-based cards use a 60 MHz MCLK, while other S3-864's and CL-GD5434's are more conservatively timed (50 MHz MCLK). As far as DOS performance (host bus transfers) is concerned, note that there is generally enough video memory bandwidth available to handle a good bus speed in all but the very highest resolutions. However, it all depends on how smart the host bus interface on the card is. A DRAM card will need a very good CPU write buffer to avoid waits when video memory is unavailable due to monitor refresh. Some recent DRAM chipsets have a good host bus interface, while some VRAM chipsets haven't been optimized to do better than the reasonable scores delivered by VRAM with a relatively simple bus interface. VLB vs. PCI ----------- The Vesa Local Bus is a strongly tied to the 486 bus interface, and usually very directly connected to the CPU. As a result, variation in timing between different CPU's is problematic and makes very quick response to writes (3 cycles or less) very difficult to implement consistently on an adapter card. A lot depends on the VLB logic on the motherboard. With a good card VLB can sustain 4 cycle 32-bit writes at 33 MHz; with zero-wait state setting on some cards it can approach 2 cycles per write (but this may be unreliable as mentioned). The VLB standard includes burst-mode, but I'm not sure if it is actually usable. A higher clock such as 50 MHz helps, but the benefit is reduced by the need to insert extra cycles (waitstates). Many VLB cards behave as a 16-bit host bus interface card in some or all video modes, so that 32-bit writes are twice as slow as they should be. The PCI bus is independent of the CPU, and runs at a fixed speed (30/33 MHz), so that cards can depend on relatively stable timing. The PCI standard includes a buffer between the CPU and the bus (the so-called CPU-to-PCI-buffer), the implementation of which varies greatly between different motherboard designs (some poor ones simply don't have one or it is disabled). With a decent implementation, the CPU can continue its calculations immediately after a write to the bus, which takes place in the background. This can be beneficial for animation that writes directly to the screen, rather than copying large bitmaps from system memory. The PCI burst mode standard is better established, but you need a pretty good CPU-to-PCI-buffer for burst-mode writes to be generated. Apparently this is even more difficult with the bus interface of a Pentium. Burst mode does seem to be essential for good PCI throughput. PCI video card chipsets that support burst mode should be much faster than others. Typical rates are 5 or 6 cycles per write without burst- mode on a good chipset (e.g. Intel Saturn (486) chipset without burst-mode, about 25 Mb/s throughput), while a good burst mode implementation can bring it up to an average approaching 2 cycles per write (60 Mb/s). All this assumes a PCI card with a good write buffer that is able to receive accesses most of the time. Here's a little table of the expected throughput with different cycle timings, for groups of 4 32-bit writes (burst-mode or not). Note that the card types mentioned are assumed to have maximized bus performance (no delays). Cycles Speed Max Throughput 4-4-4-4 33 MHz 33 Mb/s Good VLB card at 33 MHz 4-4-4-4 40 MHz 40 Mb/s Good VLB card at 40 MHz 5-5-5-5 50 MHz 40 Mb/s Good VLB card at 50 MHz 3-3-3-3 33 MHz 44 Mb/s VLB zero-wait state? at 33 MHz (6) 4-4-4-4 50 MHz 50 Mb/s Good VLB card at 50 MHz 2-2-2-2? 33 MHz 67 Mb/s VLB zero-wait state at 33 MHz (5) 9-9-9-9 33 MHz 15 Mb/s Poor PCI system 6-6-6-6 33 MHz 22 Mb/s PCI without burst-mode (1) 5-5-5-5 33 MHz 27 Mb/s PCI without burst-mode (2) 8-1-1-1/5-2-2-2 33 MHz 48 Mb/s Typical for Pentium design 7-1-1-1/4-2-2-2 33 MHz 53 Mb/s 6-1-1-1/3-2-2-2 33 MHz 59 Mb/s 486 design with burst mode (3) 5-1-1-1/2-2-2-2 33 MHz 67 Mb/s Theoretical max. for 33 MHz 486 3-1-1-1 33 Mhz 89 Mb/s Adapter card burst (4) 2-1-1-1 33 MHz 107 Mb/s Max. for 4-word burst x-1-1-1-1-... 33 MHz 133 Mb/s Theoretical max. for 32-bit PCI (1) Intel Saturn with CPU-to-PCI-buffer disabled. (2) Intel Saturn with burst-mode disabled. (3) Intel Saturn with burst-mode enabled. (4) A good card supporting burst-mode may support this (one-shot at least), but would take quite some CPU-to-PCI-buffer to sustain. (5) 57/62 Mb/s observed on Cirrus Logic GD5434 VLB programmed to zero wait-state. (6) 42 Mb/s observed on ET4000/W32p VLB. Note that the idea that VLB at 40 or 50 MHz is faster than PCI is a fallacy. DOS Performance --------------- The term 'DOS performance' is meant as a general indication of write-images-over-host-interface performance, with special interest to low-res VGA modes, as used by DOS games. VIDSPEED is a good indicator of raw bus transfer speed (unlike 3dbench and, god forbid, 'Landmark'). It measures the throughput of writing constant pixel data to video memory over the bus in graphics modes, and is more or less CPU-independent. Here's a table of results, in kilobytes per second, for typical modes with both 16-bit and 32-bit writes. A vidspeed number of '17011W' means 17 Mb/s for writes. Results so far (sorted on score): Low Res Modes Card and bus 320x200 320x200 360x480 360x480 16-bit 32-bit 16-bit R 8-bit Score Herc. Stingray Pro (ARK) PCI 1Mb P100 26340 48907 23530 2207 46.98 Hercules Dynamite Power 2MB VLB DX2/66 22200 44401 16000 3700 41.18 Genoa Phantom 64 2M (S3-864) PCI P90 19835 36571 17924 1563 35.26 Genoa Phantom 64 2M (S3-864) VLB DX2/66 22230 33032 16300 2086 35.15 ET4000/W32p (2Mb) VLB DX2/66 16650 33300 16408 3780 33.65 Diamond Stealth 32 2MB VLB DX2/66 16667 33368 15128 3657 33.05 Mercury X1/VL 2Mb (S3-805i) VLB DX2/80 19980 29204 15445 2488 32.33 D. Stealth 64 DRAM (Trio64) PCI P90 19835 30739 15149 1525 31.78 Spea Mirage P64 (S3-864) 2Mb PCI P100 22051 27863 13806 1754 31.65 Cirrus Logic 5434 2Mb VLB SX/40 18024 35929 9460 2655 31.62 Diamond Stealth 64 DRAM PCI P90 19859 29879 14804 1699 31.48 Cirrus Logic 5434 2Mb VLB SX/33 16318 32572 9064 2406 28.85 Diamond Stealth Pro 2Mb (928) VLB DX/50 24380 16667 8333 2767 27.39 Diamond Stealth 64 VRAM 2Mb VLB DX2/66 19073 22629 10081 2039 26.56 Diamond Stealth 64 DRAM 1Mb PCI P90 18575 22914 10146 1519 25.88 ATI Mach32 2Mb VLB DX2/66 13298 26597 8579 2886 24.93 S3-805 VLB DX2/66 20634 12064 6030 2316 21.93 Cirrus Logic 5426 VLB SX/33 12497 12497 9839 2534 18.96 Diamond Stealth 24 (S3-805) VLB 15922 11077 5546 2391 18.59 LightSpeed W32p (1Mb) PCI DX2/66 7396 14800 7397 2655 15.97 Cirrus Logic 5428 VLB DX2/66 9508 9508 9223 2383 15.58 Orchid Fahrenheit 1280+ 1Mb VLB DX2/66 10126 9002 5177 1943 13.69 Trident 9200Cxr 1Mb VLB SX/25 6619 7386 4859 1303 10.17 ET4000 ISA DX/33 5259 6311 5261 1255 9.03 Diamond SpeedStar Pro ISA DX/40 5191 5191 5192 1409 8.67 Diamond Viper PCI 2Mb (Oak VGA) P100 4517 4608 2956 1223 6.95 Number 9 Imagine 128 PCI P60 3211 4044 3211 557 5.38 ET4000 ISA 3145 3145 3146 944 5.34 Diamond Viper SE PCI P90 2716 3173 2183 845 4.61 Trident 8900 ISA 2941 3006 1167 904 4.33 SVGA Modes Card and bus 640x480 640x480 640x480x16M 16-bit 32-bit 32-bit Score Diamond Stealth Pro 2Mb (928) VLB DX/50 24415 48901 48759 48.85 Hercules Dynamite Power 2MB VLB DX2/66 22186 44373 44373 44.37 Herc. Stingray Pro (ARK) PCI 1Mb P100 24997 45953 17203 41.01 Diamond Viper PCI 2Mb (Oak VGA) P100 12573 40320 40223 37.26 Cirrus Logic 5434 2Mb VLB SX/40 17843 35687 30946 34.73 ET4000/W32p (2Mb) VLB DX2/66 16656 33346 33346 33.33 Diamond Stealth 32 2MB VLB DX2/66 16656 33346 33346 33.33 Mercury X1/VL 2Mb (S3-805i) VLB DX2/80 19991 40031 1049 32.22 Cirrus Logic 5434 2Mb VLB SX/33 15444 30889 26923 30.09 Diamond Stealth 24 (S3-805) VLB 15360 30720 14726 27.52 Diamond Stealth 64 VRAM 2Mb VLB DX2/66 19235 19235 19191 23.07 ATI Mach32 2Mb VLB DX2/66 13312 26624 0 21.29 Genoa Phantom 64 2M (S3-864) PCI P90 18492 18616 10104 20.58 Genoa Phantom 64 2M (S3-864) VLB DX2/66 17080 17080 8681 18.81 Diamond Stealth 64 DRAM PCI P90 17097 17080 8659 18.81 D. Stealth 64 DRAM (Trio64) PCI P90 16557 16557 10615 18.68 Spea Mirage P64 (S3-864) 2Mb PCI P100 15588 15588 7242 17.03 LightSpeed W32p (1Mb) PCI DX2/66 7398 14804 14804 14.80 Cirrus Logic 5426 VLB SX/33 13238 13238 6725 14.58 Diamond Stealth 64 DRAM 1Mb PCI P90 11895 11887 7700 13.43 Cirrus Logic 5428 VLB DX2/66 9508 9508 7350 10.97 S3-805 VLB DX2/66 5570 11144 7119 10.33 Orchid Fahrenheit 1280+ 1Mb VLB DX2/66 5539 11078 6632 10.18 Trident 9200Cxr 1Mb VLB SX/25 7155 8348 6260 9.12 Diamond SpeedStar Pro ISA DX/40 5191 5191 5191 6.22 ET4000 ISA DX/33 5259 6312 0 5.89 Number 9 Imagine 128 PCI P60 3210 4024 0 3.69 ET4000 ISA 3145 3145 0 3.14 Trident 8900 ISA 2941 3008 0 2.98 Diamond Viper SE PCI P90 2714 3170 0 2.98 Overall Busteroids Card and bus Low Res SVGA Overall Herc. Stingray Pro (ARK) PCI 1Mb P100 46.98 41.01 43.99 Hercules Dynamite Power 2MB VLB DX2/66 41.18 44.37 42.77 Diamond Stealth Pro 2Mb (928) VLB DX/50 27.39 48.85 38.12 ET4000/W32p (2Mb) VLB DX2/66 33.65 33.33 33.49 Diamond Stealth 32 2MB VLB DX2/66 33.05 33.33 33.19 Cirrus Logic 5434 2Mb VLB SX/40 31.62 34.73 33.18 Mercury X1/VL 2Mb (S3-805i) VLB DX2/80 32.33 32.22 32.28 Cirrus Logic 5434 2Mb VLB SX/33 28.85 30.09 29.47 Genoa Phantom 64 2M (S3-864) PCI P90 35.26 20.58 27.92 Genoa Phantom 64 2M (S3-864) VLB DX2/66 35.15 18.81 26.98 D. Stealth 64 DRAM (Trio64) PCI P90 31.78 18.68 25.23 Diamond Stealth 64 DRAM PCI P90 31.48 18.81 25.15 Diamond Stealth 64 VRAM 2Mb VLB DX2/66 26.56 23.07 24.82 Spea Mirage P64 (S3-864) 2Mb PCI P100 31.65 17.03 24.34 ATI Mach32 2Mb VLB DX2/66 24.93 21.29 23.11 Diamond Stealth 24 (S3-805) VLB 18.59 27.52 23.05 Diamond Viper PCI 2Mb (Oak VGA) P100 6.95 37.26 22.11 Diamond Stealth 64 DRAM 1Mb PCI P90 25.88 13.43 19.65 Cirrus Logic 5426 VLB SX/33 18.96 14.58 16.77 S3-805 VLB DX2/66 21.93 10.33 16.13 LightSpeed W32p (1Mb) PCI DX2/66 15.97 14.80 15.38 Cirrus Logic 5428 VLB DX2/66 15.58 10.97 13.27 Orchid Fahrenheit 1280+ 1Mb VLB DX2/66 13.69 10.18 11.93 Trident 9200Cxr 1Mb VLB SX/25 10.17 9.12 9.64 ET4000 ISA DX/33 9.03 5.89 7.46 Diamond SpeedStar Pro ISA DX/40 8.67 6.22 7.45 Number 9 Imagine 128 PCI P60 5.38 3.69 4.54 ET4000 ISA 5.34 3.14 4.24 Diamond Viper SE PCI P90 4.61 2.98 3.80 Trident 8900 ISA 4.33 2.98 3.65 Incomplete results (320x200x256 only): 16-bit 32-bit Number 9 GXE 64 Pro PCI P90 18492 22260 ATI Expression PCI P90 11062 16752 (SVGA modes crash) Diamond Stealth 32 PCI P90 10051 15156 The 320x200x256 mode has most relevance for DOS games, 640x480x256 is becoming increasingly popular. The 360x480 VGA mode score has relevance for games that use 'Mode X'. The 640x480x16M mode result is interesting for windows-video type applications. The 16-bit 320x200x256 score corresponds to '3dbench' on a given system (ignoring its large CPU dependency). From these results, the breakdown for local bus chipsets is like this: ARK: Excellent at low res, very good at SVGA. ET4000/W32p VLB: Very good at both low res and SVGA. CL-GD5434 VLB: Good at both low-res and SVGA. S3-864/Trio64: Very good at low res, mediocre at SVGA. S3-964: Good at low-res, fair at SVGA. ATI Mach32 VLB: Fair. ATI Mach64 DRAM: Mediocre (need more data, e.g. VRAM, SVGA). ET4000/W32p PCI: Mediocre (need more evidence). S3-805 (Stealth 24): Mediocre at low-res, good at SVGA. S3-805 (generic): Mediocre. CL-GD5426/8: Mediocre. Trident 9200Cxr: Poor. P9000/Oak (Viper PCI): Very poor at low-res, very good at SVGA. P9000 (Viper SE PCI): Very poor at both low-res and SVGA. Imagine 128 PCI: Very poor at both low-res and SVGA. No data for current Trident local bus chipsets, Avance Logic, Cirrus PCI. A weighted score is derived for low-resolution (game) modes, for a subset of SVGA modes, and for both combined. The weights are as follows: Low res modes Weight Scaling Resulting weight factor 320x200x256 16-bit 30% 2 60 320x200x256 32-bit 40% 1 40 360x480x256 16-bit 20% 2 40 360x480x256 8-bit read 10% 10 100 SVGA modes 640x480x256 16-bit 20% 2 40 640x480x256 32-bit 60% 1 60 640x480x16M 32-bit 20% 1 20 The scaling compensates for the different sizes of the operations (e.g. 16-bit vs. 32-bit). The weighted score is derived by multiplying the results for each mode with the weight factor for that mode, and adding them up. The scores are finally divided by 100 to get a rough unit of millions of pixels per second. Vidspeed probably uses the 'rep stos' instruction to repeatedly write data to the card. This instruction takes 4 cycles per iteration on a 486. Hence, on a non-clock doubled 486, if the video card can process a CPU write in less than 4 cycles, the CPU will be the bottleneck. Most numbers correspond to the number of bus cycles that each write takes. For example, with a 33 MHz bus, and 32-bit writes, you are writing 4 bytes at a time. Given 4 cycle writes, you have one byte per cycle and thus 33 Mb/s. With 3 cycle writes you would get 44 Mb/s, and with 2 cycle writes 66 Mb/s, which is what good PCI motherboard/card combinations should come near to. See the table in the VLB vs. PCI section. The low-res modes are usually slowed down because of the need to have 100% VGA compatible memory/register configuration. VIDSPEED can be found in the screen directory of the Simtel MSDOS collection (e.g. oak.oakland.edu, /pub/msdos/screen/vidspd40.zip). Run like 'vidspeed L W S S3 >mycard.out'. GUI Benchmarks -------------- WinBench 95 (FTP: zcias3.ziff.com: /pub/zdbop/winbench/winben.exe) This seems to be more of a graphics/system performance benchmark in that it profiles real-world usage, which may depend more strongly on CPU and bus than older versions. For XFree86 performance, refer to a regularly posted survey in the newsgroup comp.windows.x.i386unix. Monitor Timing -------------- There are three basic parameters that describe the rates at which a picture is displayed on a monitor. The Vertical Refresh Rate is the number of times the entire screen is refreshed per second. The video card sends signals to the monitor to let the monitor beam move from the top of the screen to the bottom, scanline by scanline, 70 or so times per second. The Horizontal Sync Rate is the rate at which scanlines are displayed. This the key parameter and the horizontal sync range that a monitor supports defines what modes it can support. The horizontal sync rate increases as the vertical refresh frequency is increased and as the vertical resolution is increased (since a higher rate is required to keep the same refresh frequency with more scanlines). The Monitor Bandwidth is the rate at which pixels are displayed on the monitor as a scanline is drawn. This is usually not a critical parameter, although it is specified for most monitors indicating the pixel rate limit for an image of acceptable quality. Parameters for typical resolutions: Resolution Vert. Refresh Horizontal Sync Bandwidth 640x480 60 Hz 31.5 kHz 25 MHz 640x480 72 Hz 36.5 kHz 31.5 MHz 640x480 75 Hz 37.5 kHz 31.5 MHz 800x600 56 Hz 35.2 kHz 36 MHz 800x600 60 Hz 37.8 kHz 40 MHz 800x600 72 Hz 48.0 kHz 50 MHz 800x600 75 Hz 46.9 kHz 49.5 MHz 1024x768i 87 Hz interl. 35.5 kHz 45 MHz 1024x768 60 Hz 48.4 kHz 65 MHz 1024x768 70 Hz 56.5 kHz 75 MHz 1024x768 75 Hz 60 kHz 78.7 MHz 1280x1024i 87 Hz interl. 48 kHz 75 MHz 1280x1024 60 Hz 65 kHz 108 MHz 1280x1024 74 Hz 78.9 kHz 135 MHz The 75 Hz modes are current VESA mode timing standards, the 72 Hz timings are the old standard. The pixel depth (number of colors) does not have any relation to the monitor timing. You can conceivably display 48-bit truecolor at 640x480 on an old analog color VGA monitor. Note that the monitor bandwidth for a mode is approximately equivalent to the video memory bandwidth taken up by monitor refresh on a DRAM-based card (when multiplied by the pixel size). References ---------- A magazine with good articles on PC hardware is the German magazine c't (magazin fuer computer technik). FTP-sites for drivers/utilities for specific chipsets/vendors: ftp.cirrus.com Cirrus Logic drivers atitech.ca ATI Technologies diamondmm.com Diamond solaria.mit.edu Diamond drivers