Theoretically, performance of video output should be only limited by bandwidth of CPU <-> Video bus ( for PCI bus it's 133 Mb/s or 5 ms for drawing of 640x480x16 picture ). Unfortunately, this value is rarely achieved. Actual performance is affected by many factors and can vary from 20 to 250 Mb/s. You can determine this value for your system by running 'benchmark' tool. Type: benchmark <your-AVI-file> (try also with options -yuv and -direct) and it'll perform quick measurement of most typical timings. In the end, it'll print video output speed in megabytes per second. If the resulting value for your system is higher than 50 Mb/s, then there's nothing for you to worry about, because your X server has some kind of output acceleration. In case of this performance being worse than 30 Mb/s, you'll probably need to turn on write-combining for video card. This should generally be done by X server, but some servers ( for example, X server for XFree86 3.3.6 with s3_savage driver ) don't do it ( shame on them ). Here I'll describe how it could be done by hands in case of Linux. 1. Your processor should have MTRR registers ( Pentium Pro, Pentium II or maybe some compatible processors ). Your kernel should be compiled with MTRR support: in kernel configuration menu, select 'Processor type and features' ->'MTRR (Memory Type Range Register) support'. 2. Run X and log its output somewhere: startx >./startx.log 2>&1 Look into the log and find a line similar to this: (--) SVGA: PCI: S3 Savage4 rev 2, Memory @ 0xe5000000, 0xd8000000 Here 0xe5000000 and 0xd8000000 are virtual addresses of your video memory. You'll need one of them. 2a. Alternatively, you can look at /proc/pci and find section related to your video card ( "VGA compatible controller" ). Take the first address from the line saying about "prefetchable 32 bit memory". 3. Type as root: echo "base=<your-base> size=0x800000 type=write-combining" >>/proc/mtrr replacing <your-base> with address received in step 2 and 0x800000 ( which is equal to 8 Mb ) with size of your video memory. That's it. If you did everything properly, you should notice significant increase in output performance. For me it increased output bandwidth from 20 to 36 Mb/s ( 1.8x ), and I had reports about 3x..4x increase! In case that you chose wrong address from list in step 2, do the following: cat /proc/mtrr Find the line that was added by you. Suppose it starts with "reg02", then type: echo "disable=2" >>/proc/mtrr and repeat step 3 with another address. It is a good idea to put command from step 3 somewhere in startup scripts, because that base address does not change when you restart computer, but do not forget to remove it when changing hardware configuration. You can find details about using /proc/mtrr in Linux kernel sources, file Documentation/mtrr.txt.