I have been working with VMWare quite a lot for over a year, and didn't know about this feature (which is over a year old) until a friend pointed it out to me.
I'm not entirely sure how it works to be honest, but yeah, I think it's essentially an open-gl interface in the Vmware virtual video card driver for windows provided by Vmware tools (Parallels has an equivalent) that provides hooks for opengl calls. When the opengl functions are called on the virtual video card driver, the vmware driver will then pass it off to the actual opengl interface on the host-os' actual video card driver. By no means is it a perfect solution, especially since I don't know if there's ANY direct-x acceleration possible. (unless one were to use a direct-x->opengl interface at some point, or if someone develops a direct-x layer for OS X)
In VMware you also need to allocate part of the video card's ram for the purpose of the guest OS. (I have no idea how this would work on a macbook or something else without dedicated video ram)
Mind you my experience with this feature is limited to about 20 minutes of messing around with settings, and trying to load grand theft auto vice city. It didn't work, but the open-gl screen savers built into windows did work just fine, and were clearly 3d accelerated. I have a friend however, who is able to game relatively well on a linux system running games under vmware with the 3d acceleration pass through working. For me, it's largely irrelevant since I rarely, if ever, play games. However, in addition to the other features I'd love to see in parallels (SMP, etc), I'd LOVE to see someone build a virtualization tool that allows guest-oses to have full access to the video overlay, so you can play videos/etc in the guest-OS with reasonable performance.
As for being a geek - are you under the impression for some reason that I am not??
mkrishnan said:
Yeah, I had never heard of this feature. I don't use VMWare though. I'm just a geek. 😱 😉 😱
So VMWare's implementation is essentially an API bridge of sorts, right? It detects an outgoing video call coming down, and it decodes it and translates it into the graphics APIs of the host? Doesn't this approach mean that incompatibility issues will crop up when the system gets bogged down in figuring out what the calls means or mis-interprets one?
I wonder in some relation... now that dual cores dominate new processors from Intel, and virtualization has become a big deal, are video card manufacturers developing GPUs that support virtualization in some analogy to the way the new CPUs do? Or for that matter, is Intel working on such a feature with their integrated chipset?