by Technologov » 2. Aug 2007, 21:39
Hijacking ATAPI CD-ROM commands is 10,000 times easier than 3D accelerator commands.
In addition, ATAPI is one standard and one open specification, while each 3D accelerator is very different from others, and has closed specification. There is only one thing open about 3D accelerators - the API - DirectX and OpenGL commands that it can "accelerate".
So, the best way to make it, is to virtualize those 3D APIs - DirectX and OpenGL as both of them have open specifications.
Otherwise, even if you can hijack some internal GeForce 8800 commands, by using closed specifications, if the host computer contains a different video-accelerator, your Virtualizer won't work. This approach won't work. Internal commands of all video accelerators are different.
By virtualizing the APIs, we can achieve about 90% of full performance, + ability to work on different video accelerators + ability to easily add new (future) features, such as OpenGL 3.0 and DirectX 11, without reprogramming everything.
This approach has 1 disadvantage: driver need to be written for *every* guest OS out there, if we want that guest OS to support 3D acceleration. Read: Guest Additions for virtual 3D hardware.
The good news: if we only write Windows XP guest OS drivers we already have 80% of market.
Bad news: supporting 3D in rare/legacy OSes will not exist, until someone will write drivers for that guest OS. Examples: Solaris and Windows 98.