[Patch] Default video timing

Post Reply
User avatar
leilei
Posts: 599
Joined: Fri 25 Apr, 2014 4:47 pm

[Patch] Default video timing

Post by leilei » Sun 05 Nov, 2017 9:41 am

This is a pretty quick patch that gives rough estimates of loosely based on results on vgamuseum.info (after basing the timings off the preset timing speeds applied appropriately first while running DIAG/PCPBench/Quake to keep polishing timings sort of closer). These default timings are accessed with a new menu choice after Fast VLB/PCI (ideally i'd want it to be a -1 before 8-bit...)

In this initial patch, a lot of the timing on the older cards are going to be off (I didn't do much time on research on the non-VGA hardware), and to tweak the timing on the faster cards I had to test with fictional 1000mhz PMMXes to get the cpu bottleneck out of the way for Quake and PCP...
Attachments
defaultvideotiming1.patch
(4.38 KiB) Downloaded 72 times

ecksemmess
Posts: 152
Joined: Wed 18 Mar, 2015 5:27 am

Re: [Patch] Default video timing

Post by ecksemmess » Mon 20 Nov, 2017 8:39 pm

Very, very cool to see work being done on this. Thanks for tackling it, leilei.

User avatar
SarahWalker
Site Admin
Posts: 1588
Joined: Thu 24 Apr, 2014 4:18 pm

Re: [Patch] Default video timing

Post by SarahWalker » Sat 27 Jan, 2018 2:59 pm

Committed at rev 1010. I made a few tweaks, Default is now -1 instead of 6, and I moved the timings to the VIDEO_CARD structure.

I'll probably make a few more changes in this area - make the ISA timing ratio an integer, add separate read and write timings, run tests on the cards I have...

User avatar
SarahWalker
Site Admin
Posts: 1588
Joined: Thu 24 Apr, 2014 4:18 pm

Re: [Patch] Default video timing

Post by SarahWalker » Sat 27 Jan, 2018 5:47 pm

For reference, here are the results from a load of cards I own. These are run with VIDSPEED, which should give a reasonable measure of raw host throughput. I tested at both 320x200x256 and 1024x768x256 to get some idea of how available host bandwidth varies with video bandwidth usage. Tests were run on a Pentium MMX 233 on a GA-586TX2 motherboard. The ISA results look a bit low - I still need to get some VLB results, and when I have a machine set up for that I'll re-run those cards.

Cards are a selection of cards that are currently emulated, and cards that may be of interest in the next couple of years or so.

Trident 8900C 1MB :

Code: Select all

  909W   770R Bytes per millisecond 28.12KHz 70.30Hz  320x200x256 (VGA/MCGA)
 1070W   960R  16 bit writes/reads
 1149W  1075R  32 bit writes/reads

  937W   814R Bytes per millisecond 45.91KHz 59.77Hz  1024x768x256 (S-VGA)
 1070W   995R  16 bit writes/reads
 1132W  1086R  32 bit writes/reads
Trident 8900D 1MB :

Code: Select all

 1556W   860R Bytes per millisecond 28.12KHz 70.28Hz  320x200x256 (VGA/MCGA)
 3083W  1720R  16 bit writes/reads
 3929W  2293R  32 bit writes/reads

 1495W   948R Bytes per millisecond 45.73KHz 59.53Hz  1024x768x256 (S-VGA)
 2951W  1896R  16 bit writes/reads
 3756W  2230R  32 bit writes/reads
Tseng ET4000AX 1MB (note - these are definitely too low) :

Code: Select all

 1490W  1060R Bytes per millisecond 28.13KHz 70.31Hz  320x200x256 (VGA/MCGA)
 2938W  2108R  16 bit writes/reads
 3711W  2673R  32 bit writes/reads

 1490W  1058R Bytes per millisecond 33.42KHz 87.04Hz  1024x768x256 (S-VGA)
 2939W  2069R  16 bit writes/reads
 3711W  2623R  32 bit writes/reads
Trio64 FPM 1MB :

Code: Select all

10278W  1639R Bytes per millisecond 27.90KHz 69.75Hz  320x200x256 (VGA/MCGA)
26727W  3278R  16 bit writes/reads
37577W  4314R  32 bit writes/reads

10277W  1631R Bytes per millisecond 33.06KHz 86.11Hz  1024x768x256 (S-VGA)
14739W  2060R  16 bit writes/reads
14752W  2341R  32 bit writes/reads
Trio64 FPM 2MB :

Code: Select all

10278W  1638R Bytes per millisecond 27.90KHz 69.75Hz  320x200x256 (VGA/MCGA)
26727W  3278R  16 bit writes/reads
37491W  4314R  32 bit writes/reads

10277W  1637R Bytes per millisecond 33.06KHz 86.11Hz  1024x768x256 (S-VGA)
20306W  1994R  16 bit writes/reads
20331W  2302R  32 bit writes/reads
ViRGE/DX EDO 4MB :

Code: Select all

 9947W  1537R Bytes per millisecond 27.91KHz 69.78Hz  320x200x256 (VGA/MCGA)
25720W  3075R  16 bit writes/reads
36571W  3993R  32 bit writes/reads

 9995W  1472R Bytes per millisecond 46.20KHz 60.16Hz  1024x768x256 (S-VGA)
14804W  1863R  16 bit writes/reads
14817W  2057R  32 bit writes/reads
ATI Mach64/VT4 EDO 2MB :

Code: Select all

 9984W  2035R Bytes per millisecond 28.05KHz 70.11Hz  320x200x256 (VGA/MCGA)
15663W  3259R  16 bit writes/reads
15678W  4655R  32 bit writes/reads

10147W  2168R Bytes per millisecond 46.09KHz 60.00Hz  1024x768x256 (S-VGA)
25184W  4174R  16 bit writes/reads
70475W  7761R  32 bit writes/reads
Matrox Mystique 2MB :

Code: Select all

10182W  1531R Bytes per millisecond 28.05KHz 70.11Hz  320x200x256 (VGA/MCGA)
26089W  2672R  16 bit writes/reads
85333W  5321R  32 bit writes/reads

10184W  3405R Bytes per millisecond 46.09KHz 60.02Hz  1024x768x256 (S-VGA)
26004W  6397R  16 bit writes/reads
81422W 11543R  32 bit writes/reads
Voodoo Banshee SDRAM 16MB :

Code: Select all

13363W  1581R Bytes per millisecond 28.04KHz 70.10Hz  320x200x256 (VGA/MCGA)
33436W  3141R  16 bit writes/reads
89530W  6134R  32 bit writes/reads

13365W  3869R Bytes per millisecond 46.09KHz 60.01Hz  1024x768x256 (S-VGA)
33412W  7171R  16 bit writes/reads
89218W 12396R  32 bit writes/reads
Voodoo 4 4500 32MB :

Code: Select all

10278W  1804R Bytes per millisecond 28.04KHz 70.09Hz  320x200x256 (VGA/MCGA)
26727W  3603R  16 bit writes/reads
89530W  7089R  32 bit writes/reads

10277W  3484R Bytes per millisecond 46.11KHz 60.03Hz  1024x768x256 (S-VGA)
26751W  6656R  16 bit writes/reads
89218W 12023R  32 bit writes/reads

User avatar
SarahWalker
Site Admin
Posts: 1588
Joined: Thu 24 Apr, 2014 4:18 pm

Re: [Patch] Default video timing

Post by SarahWalker » Sat 27 Jan, 2018 5:51 pm

Also for reference, this machine had a K6/200 in it when I started, which I changed out because it was affecting measurements. I did test the Banshee with a Pentium MMX, a K6, and an M2, and the results were quite different :

Pentium MMX/233 :

Code: Select all

13363W  1581R Bytes per millisecond 28.04KHz 70.10Hz  320x200x256 (VGA/MCGA)
33436W  3141R  16 bit writes/reads
89530W  6134R  32 bit writes/reads

13365W  3869R Bytes per millisecond 46.09KHz 60.01Hz  1024x768x256 (S-VGA)
33412W  7171R  16 bit writes/reads
89218W 12396R  32 bit writes/reads
K6/200 :

Code: Select all

13363W  1581R Bytes per millisecond 28.04KHz 70.10Hz  320x200x256 (VGA/MCGA)
26727W  3141R  16 bit writes/reads
53542W  6134R  32 bit writes/reads

13365W  3869R Bytes per millisecond 46.09KHz 60.01Hz  1024x768x256 (S-VGA)
26751W  7171R  16 bit writes/reads
53588W 12396R  32 bit writes/reads
M2/PR-300 (233 MHz) :

Code: Select all

76560W  1670R Bytes per millisecond 28.04KHz 70.09Hz  320x200x256 (VGA/MCGA)
89530W  3287R  16 bit writes/reads
107084W  6440R  32 bit writes/reads

76589W  5029R Bytes per millisecond 46.09KHz 60.01Hz  1024x768x256 (S-VGA)
89218W  9155R  16 bit writes/reads
106158W 15487R  32 bit writes/reads
This variation naturally makes determining the speed of a graphics card quite tricky!

User avatar
SarahWalker
Site Admin
Posts: 1588
Joined: Thu 24 Apr, 2014 4:18 pm

Re: [Patch] Default video timing

Post by SarahWalker » Sun 28 Jan, 2018 5:36 pm

ISA/VLB numbers. Run on a 486DX2/66 with a PT-430 motherboard.

EGA G2 GC201 256kB :

Code: Select all

  447W   447R Bytes per millisecond 11.98KHz 59.93Hz  640x200x16 (EGA)
  447W   447R  16 bit writes/reads
  447W   447R  32 bit writes/reads
Trident 8900C 1MB :

Code: Select all

 1156W  1019R Bytes per millisecond 28.10KHz 70.24Hz  320x200x256 (VGA/MCGA)
 2313W  2040R  16 bit writes/reads
 2811W  2393R  32 bit writes/reads

 1204W  1186R Bytes per millisecond 45.86KHz 59.72Hz  1024x768x256 (S-VGA)
 2409W  2373R  16 bit writes/reads
 2544W  2526R  32 bit writes/reads
Trident 9000B 512kB :

Code: Select all

 1039W  1009R Bytes per millisecond 28.10KHz 70.24Hz  320x200x256 (VGA/MCGA)
 2078W  2019R  16 bit writes/reads
 2456W  2381R  32 bit writes/reads

 1166W   967R Bytes per millisecond 26.96KHz 89.87Hz  800x600x256 (S-VGA)
 2333W  1934R  16 bit writes/reads
 2425W  2009R  32 bit writes/reads
Trident 8900D 1MB :

Code: Select all

 2141W  1073R Bytes per millisecond 28.09KHz 70.23Hz  320x200x256 (VGA/MCGA)
 4283W  2146R  16 bit writes/reads
 5586W  2605R  32 bit writes/reads

 2141W  1189R Bytes per millisecond 45.68KHz 59.48Hz  1024x768x256 (S-VGA)
 4284W  2379R  16 bit writes/reads
 5587W  2520R  32 bit writes/reads
Tseng ET4000AX 1MB :

Code: Select all

 1690W  1324R Bytes per millisecond 28.10KHz 70.25Hz  320x200x256 (VGA/MCGA)
 3381W  2615R  16 bit writes/reads
 4145W  3124R  32 bit writes/reads

 1690W  1314R Bytes per millisecond 33.39KHz 86.97Hz  1024x768x256 (S-VGA)
 3381W  2574R  16 bit writes/reads
 4145W  3034R  32 bit writes/reads
Cirrus Logic GD-5428 1MB VLB :

Code: Select all

 5553W  2658R Bytes per millisecond 28.08KHz 70.19Hz  320x200x256 (VGA/MCGA)
11107W  5316R  16 bit writes/reads
11107W  5570R  32 bit writes/reads

 5519W  2631R Bytes per millisecond 33.50KHz 87.25Hz  1024x768x256 (S-VGA)
11042W  5264R  16 bit writes/reads
11042W  5256R  32 bit writes/reads
S3 Vision864 1MB VLB :

Code: Select all

 8329W  2080R Bytes per millisecond 27.89KHz 69.73Hz  320x200x256 (VGA/MCGA)
16667W  4159R  16 bit writes/reads
30117W  4908R  32 bit writes/reads

 7805W  1963R Bytes per millisecond 46.11KHz 60.06Hz  1024x768x256 (S-VGA)
 9930W  2214R  16 bit writes/reads
10049W  2430R  32 bit writes/reads
S3 Vision864 2MB VLB :

Code: Select all

 8329W  2073R Bytes per millisecond 27.89KHz 69.73Hz  320x200x256 (VGA/MCGA)
16667W  4146R  16 bit writes/reads
32379W  4908R  32 bit writes/reads

 8332W  1983R Bytes per millisecond 46.11KHz 60.06Hz  1024x768x256 (S-VGA)
14534W  2376R  16 bit writes/reads
14661W  2617R  32 bit writes/reads
Tseng ET4000/W32p 1MB VLB :

Code: Select all

 8329W  4107R Bytes per millisecond 27.89KHz 69.71Hz  320x200x256 (VGA/MCGA)
16667W  8114R  16 bit writes/reads
33368W 15860R  32 bit writes/reads

 8332W  3984R Bytes per millisecond 33.37KHz 86.90Hz  1024x768x256 (S-VGA)
16673W  7964R  16 bit writes/reads
33346W 15898R  32 bit writes/reads
Tseng ET4000/W32p 2MB VLB :

Code: Select all

 8329W  4033R Bytes per millisecond 27.89KHz 69.71Hz  320x200x256 (VGA/MCGA)
16667W  7980R  16 bit writes/reads
33368W 15226R  32 bit writes/reads

 8332W  4066R Bytes per millisecond 33.37KHz 86.91Hz  1024x768x256 (S-VGA)
16673W  7953R  16 bit writes/reads
33346W 15070R  32 bit writes/reads
Clearly making fantastic use of my Sunday here.

ecksemmess
Posts: 152
Joined: Wed 18 Mar, 2015 5:27 am

Re: [Patch] Default video timing

Post by ecksemmess » Mon 29 Jan, 2018 2:04 am

Can't speak to whether it's a great use of your Sunday, but this is excellent stuff! I've been super interested for a long time in knowing how these comparisons would shake out, it's nice to have some hard data.

User avatar
SarahWalker
Site Admin
Posts: 1588
Joined: Thu 24 Apr, 2014 4:18 pm

Re: [Patch] Default video timing

Post by SarahWalker » Wed 31 Jan, 2018 9:11 pm

Made some changes in this area - rev 1011 sorts out the ISA divider, rev 1012 fixes timing on non-byte Mach64 accesses, rev 1013 fixes non-byte Paradise accesses, and rev 1014 separates read and write timings, adds timings for the machines with onboard video chips, and updates timings based on the above posts.

Post Reply