First post, by darry
While I have mentioned this in another thread , I thought it might be worth sharing in more detail in a fresh thread.
Apologies in advance if this is common knowledge in at least some circles and/or if there are better ways to do this but, in my search, I have not found any alternatives tp get this to work (please do share some links if I have missed the obvious).
Essentially, I got 3D acceleration (Glide) in a Windows 98 VM on an an actualy physical (via PCI passthrough) Vooodoo 3 . So far, I tried the Need For Speed 2 SE (Glide) demo and a few old Glide demoscene demos successfully . Some other siff crashes so far (Vertigo Nature, for example). And DOS (S)VGA performance (whether real mode DOS or Windows DOS box) seems slow (PCI bandwidth issue, maybe, to be investigated). This works with both Q35 and 440FX machine types (tried latest ones as included in Debian 12)
The host machine has a Ryzen 5 4600G CPU and a B450 chipset , by the way . Main GPU is a GTX 970 .
Under Windows 98 SE , 2D GUI acceleration seems to work, as does Glide (as mentioned above).
The "trick" to getting this to work is to force an init of the card's VGA bios from with the VM (autoexec.bat) . For some reason, SeaBIOS either does not init the Voodoo 3 or does not do it properly , AFAICT.
Without that "trick" the Voodoo 3 only displays a black screen, both in real mode DOS and when booted into Windows 98 SE .
I got the idea to try this from here  ( thank you @Predator99 ) .
debug < c:\vga.txt
And c:\vga.txt contains
a call c000:3 int 20 […]
Before anyone asks, specifying a path to the VGA BIOS dump in the hostdev definition did not work.
Predator99 wrote on 2022-02-11, 08:44:
I dont think the issue is related to the BIOS. If you are able to boot into DOS you can try to initialize the VGA manually: […]
I dont think the issue is related to the BIOS. If you are able to boot into DOS you can try to initialize the VGA manually:
What happens if you switch to another grpahics mode, i.e. by starting a game?