<H2>Author's List Comments</H3>
<hr>
<i>This was written by <A 
HREF="mailto:boogeyman@xs4all.nl">boogeyman@xs4all.nl</a></i> 
<hr>
From these results, the breakdown for local bus chipsets is like this:<p>

<pre><b>
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, burst-mode problems?).
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.<p>

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:<p>

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
</pre></b>

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.<p>

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.<p>

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.<p>

VIDSPEED can be found in the screen directory of the Simtel MSDOS
collection (e.g. oak.oakland.edu, /pub/msdos/screen/vidspd40.zip).<p>

Run like 'vidspeed L W S S3 >mycard.out'.<p>

There's really very little point in other so-called 'DOS video
benchmarks', such as Landmark.  These very heavily depend on bus
throughput in VGA textmode, which actually doesn't matter at all, since
any modern card has enough framebuffer bandwidth to write thousands of
text screens per second. If the graphics mode throughput of a card is
state-of-the-art, and the VGA-compatible textmode throughput is adequate
(more than enough but not in the insane), then that card will score
relatively badly in these benchmarks while actually being the fastest in
things that matter. The continued emphasis on these benchmarks is a
fallacy.<p>

<hr>

Here's a <A HREF="scores.html">copy of a UNIX C program</A> zip file(must be 
uudecoded) to convert raw data into scores, along with a file with raw 
data. It does not include VIDSPEED itself. 
Run like 'scores <results.vid >scores.lst'.<p>
<hr>
<address>
Send Comments or Suggestions to --- sdw@dfw.net
</address>

