and heres the short quick answer from rojakpot:
Video BIOS Shadowing
Options : Enabled, Disabled
When this feature is enabled, the Video BIOS is copied to the system RAM for quicker access. Shadowing improves the BIOS' performance because the BIOS can now be read by the CPU through the 64-bit DRAM bus as opposed to the 8-bit XT bus. This seems quite attractive since that's at least a 100x increase in transfer rate and the only price is the loss of some system RAM which is used to mirror the ROM contents.
However, modern operating systems bypass the BIOS completely and access the graphics card's hardware directly. So, no BIOS calls are made and no benefit from BIOS shadowing is realized. In light of this, there's no use in wasting RAM just to shadow the Video BIOS when it's not used at all.
Ryu Connor confirmed this by sending me a link to a Microsoft article about Shadowing BIOS under WinNT 4.0. According to this article, shadowing the BIOS (irrespective of what BIOS it is) does not bring about any performance enhancements because it's not used by WinNT. It will only waste memory. Although the article did not say anything about Win9x, it's the same for Win9x as it's based on the same Win32 architecture.
Not only that, some manuals also allude to the possibility of system instability when certain games access the RAM region that has already been used to shadow the Video BIOS. However, this is no longer an issue as the shadowed RAM region has been moved far from the reach of programs.
What could be an issue is if only 32KB of the video BIOS is shadowed. Newer video BIOSes are larger than 32KB in size but if only 32KB is shadowed and the rest is left in their original locations, then stability issues may arise when the BIOS is accessed. So, if you intend to shadow the video BIOS, you'll need to ensure that the entire video BIOS is shadowed. In many cases, only the C000-C7FF region is shadowed by default. To correct that, you'll need to :-
* enable video BIOS shadowing (for the C000-C7FF region) and
* enable the shadowing of the remaining portions, i.e. C800-CBFF, until the entire video BIOS is shadowed.
That tip was generously contributed by X.
Finally, most graphics cards now come with Flash ROM (EEPROM) which is much faster than the old ROM and even faster than DRAM. Thus, there's no longer a need for video BIOS shadowing and there may even be a performance advantage in not shadowing! In addition, you shouldn't shadow the video BIOS if your graphics card comes with a Flash ROM because you wouldn't be able to update its contents if shadowing is enabled.
On the other hand, there may still be a use for this feature. Some DOS games still make use of the video BIOS because they don't directly access the graphics processor (although more graphical ones do). So, if you play lots of old DOS games, you can try enabling Video BIOS Shadowing for better performance. This tip is courtesy of Ivan Warren.
For an excellent overview of video BIOSes and their shadowing, check out William Patrick McNamara's explanation :-
The whole issue is historical in nature. Way back when having a VGA video card was a big thing, graphics cards were pretty dumb and fairly simple as well. They amounted to a chunk of memory that represented the pixels on the screen. To change a pixel, you changed the memory representing it. Things like changing color palettes, screen resolutions, etc were done by writing to a set of registers on the video card. However, everything was done by the processor. Since interfacing with hardware varies with the hardware, talking to the video card depended on the card you had installed. To help solve the problem, the video card included a BIOS chip on it. Quite simply the video BIOS was
an extension to the system BIOS. It was simply a documented set of function calls a programmer could use to interface with the video chipset.
So why did BIOS shadowing come about? The memory used to store the BIOS on a video card is usually some sort of EPROM (Electrically Programmable Read Only Memory). A very fast EPROM has an access time of 130-150ns, which is about the same as the memory in an 8086 based computer. Also, the bus width is 8bits. As computers got faster (x386, x486, etc) and games got more graphical, calling the BIOS got to be more of a bottleneck. To help alleviate the problem, the video BIOS was moved to the faster 16bit system memory to speed things up. Actually most graphical DOS games rarely call the BIOS anyway. Most interact with the chipset directly if possible.
A quick summary: In the "old days", video BIOS didn't really have much to do with running the video card. It simply provided a set of function calls to make a developers life easier.
"And now for something completely different....."
New video cards, ones that have accelerated functions, fall into a different category. They actually have a processor built on the card. In the same way that the system BIOS tells you processor how to start your computer, your video BIOS tells you video processor how to display images. The reason, new card have flash ROMs on them, is so that the manufacturers can fix any bugs that exist in the code. Any operating system that uses the accelerated features of a video card, communicates directly with the processor on the card, giving it a set of commands. This is the job of the video driver. The idea is, the driver presents the operating system with a document set of function calls. When on of these calls is made, the driver sends the appropriate command to the video processor. The video processor the carries out the commands as it programming (video BIOS) dictates.
As far as shadowing the video BIOS goes, it doesn't matter. Windows, Linux, or any other OS that uses the accelerated functions never directly communicates with the video BIOS. Good 'ole DOS however still does, and the same functions that existed in the original VGA cards exist in the new 3D cards. Depending on how the video interface on DOS programs is written, they may benefit from having the video BIOS shadowed.
Quick Summary #2: In today's accelerated video cards, the main job of the video BIOS is to provide a program for the video processor (RIVA TNT2, Voodoo3, etc) to run so that it can do its job. Interface between the video card and software is done through a command set provided by the driver and really has nothing to do with the video BIOS. The original BIOS function are still available to maintain backwards VGA compatibility.
More on this can be found from his e-mail (Comment #91). Check it out for more information.
For a final confirmation on why you should not shadow the video BIOS, check out Steve Hauser's account of his bad experience with video BIOS shadowing :-
A few years back (probably '96 or so) I had a Matrox Millenium card and the BIOS I had at the time defaulted to shadowing enabled for the VGA BIOS... *WELL* the Millenium had a larger than 32KB BIOS. So, when I ran a BIOS flash, the first bit just copied into the shadow in system RAM, while the rest hit the video card itself.
Needless to say, with the first 32KB block missing, the BIOS of the card was completely corrupted and no longer functioned. Already you can see how shadowing *CAN* get you in real trouble with carelessly written flash software (that doesn't check for it first). Now, I can't attest to any speed increases/decreases it may have caused but here's the really pertinent part, what happened with the card after it no longer had a BIOS....
It still worked! (mostly)... ALL 'DOS' video modes were gone - total blank screen. But you can hear the computer beep and then boot normally. Once the Windows GUI (with proper drivers) loaded, it operated 100% normally. All video acceleration modes worked fine... *EXCEPT* anything related to DOS (even a DOS window within Windows itself) was 100% devoid of text. This includes the 'built-in' VGA (640x480x16 colours) safe mode which also didn't work at all (since it doesn't use drivers).
So, apparently you are 100% correct in assuming that modern video cards do not use the 'DOS addressable' BIOS for anything except driverless VGA/EGA/text modes... Now, that's not to say 'BIOS updates' are useless, as the actual BIOS of the card includes far more than the little table DOS can see. It can include micro-code with patches for problems (just like how motherboard BIOS updates can fix certain processor problems).
I've given you at least one case now where enabling BIOS shadowing can cause SERIOUS and permanent harm to the video card itself... After the failed 'shadowed' flash, the card was never again able to render DOS video modes or text; and further BIOS updates would not work since they 'failed to detect current BIOS revision'.
If you are wondering why you should still update the video BIOS even though it appears to be useless, the video BIOS doesn't only contain the DOS video functions. The video BIOS on cards these days also contain code for 2D, 3D and video acceleration. Thus, using the latest video BIOS is likely to boost performance and cut down on bugs. In addition, the latest drivers may not work with older versions of the video BIOS. So, it's advisable to keep updating the video BIOS whether you use real-mode DOS or not. Tip thanks to Adam Nellemann!
