[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: SVGA cards on PCI



Eric Rehm <eric@scn.org> asks...
> > the actual value
> > on any given graphics system can be estimated by [width * height *
> > vertical_refresh * bytes_per_pixel * 1.3]).
> 
> Why the factor of 1.3?

Well, thats a ballpark fudge factor.  Thats to allow for the overscan amd
retrace (i.e. blanking time), which is generally around 30% of the total.  

The actual video data fetched per second will be [width * height *
vertical_refresh * bytes_per_pixel] but during active video the fetch rate will
generally have to sustain the somewhat higher dotclock rate as very few if any
video boards have sufficient buffering to spread the 'overhead' over a full
line.

Video refresh happens via two distinctly different methods, depending on
whether one is dealing with a DRAM or a VRAM board.

On a VRAM board, the [often 64 bit wide] outputs of the VRAM's are connected
directly up to the RAMDAC, and pixel data gets clocked out of the VRAM into the
RAMDAC in real time.  Since most all VRAM's can clock at speeds up to 50MHz or
higher, 50MHz * 8 bytes provides 400MBytes/sec or more of video refresh, enough
to handle most any display mode.  Since the VRAM's do this with a second
'serial' port, this display refresh activity has no impact on drawing
performance.

On a DRAM board its quite a bit more complex.  Taking the example of a 64 bit
modern EDO style DRAM card, EDO bursts may be able to fetch somewheres around
250-300MBytes/sec.  This bandwidth however must be shared between display
refresh, host access, and graphics controller memory operations (bitblt, etc). 
The display refresh controller will typically have a FIFO of a few dozen 8byte
'words'...   Basically, the display controller will fill this fifo at full
burst speed, then release the memory subsystem to other uses until it needs to
reload the fifo...  The higher the MByte/sec display refresh requirements are,
the less time left over for host access and graphics controller operations.

Since I've explained all this... here's a little kicker.  At lower
resolution/color depth combos,  EDO DRAM is FASTER than VRAM.  This is because
EDO DRAM tends to have faster memory accesses... If the display refresh
requirements are modest, this still leaves MORE bandwidth left over for host
and graphics accesses.  Only when you get into fairly high resolution / color
depth / refresh rates does the inherently slower VRAM catch up due to its
dualported nature.  My general rule of thumb... if you have a 14" or 15"
monitor, stick with DRAM. If you have a 17" and are going to run at 1024x768
16million colors at refresh rates like 75Hz, you'll probably want VRAM.  If you
have a 21" you definately want VRAM (although in fact, newer EDO DRAM cards do
quite nicely at 1280x1024x64k colors).

[footnote... I know this has not that much to do with PCI etc, but once I was
on a roll...]

-jrp
ˆˆw