3D Acceleration Support
-
- Volunteer
- Posts: 3342
- Joined: 10. May 2007, 16:59
- Location: Israel
3D Acceleration Support
3D Acceleration Support and the technical problems
since there are many questions - so I would like to write : "What are the obstacles to achieving a 3D in a VM"
The problem:
To get a 3D support, you have to have a virtual 3D hardware and several drivers - 1 for OpenGL and 1 for Direct3D.
Possible ways to get there:
a. Emulate a real 3D card such as GeForce - it solves the drivers problem automatically (both for OpenGL and DirectX) - but this card is closed-source hardware, so we can't simply emulate it.
This is very difficult to do technically, so probably, it won't happen. + it will be damn slow.
b. Use virtualized hardware, such as Virtualbox 3D accelerator - and write 3D drivers for that one. Remember - both OpenGL and Direct3D drivers are needed for several guest OSes.
The OpenGL problem can be resolved easier - we need to run para-virtualized drivers on top of host's OpenGL and we are done.
This approach Sun took with VirtualBox 2.1. Sun used third-party "Chromium" OpenGL transport layer, which was redirected over para-virtual channels.
The DirectX problem is more difficult - we will have to translate DirectX instructions into OpenGL instructions, like Wine does - but the problem with Wine is that it's too buggy and many games won't run. So it must be debugged along the way.
Experimental support for hardware-accelerated DirectX inside VirtualBox also exists. It is called WineD3D and supports only DirectX-8 (not 7 and not 9 !). 3D Mark 2001 is known to work.
This will allow to reach 90% of native speed, so this is very fast solution.
solution b is Very Difficult task as well, but more realistic than a.
VMware were working on it since about 2005, and and first product to support 3D is called VMware Fusion. VM WS 6.0 and 6.5 support it too. (experimentally)
Sun has started much later, in 2007, and by late 2008 had experimental OpenGL support. (VirtualBox 2.1)
Not all games work however; Perhaps a community has to step-in and help debug all those games.
=======================================================================
Update: The community pointed me to some interesting ongoing projects.
OK, so let's sum up all the known projects:
1. VMGL
http://www.cs.toronto.edu/~andreslc/xen-gl/
2. Qemu-patch
http://qemu-forum.ipi.fi/viewtopic.php?t=2984
3. Wine
http://www.winehq.com
3.a. WineD3D links: (Direct3D-on-OpenGL wrapper)
http://www.virtualbox.org/ticket/3639
http://www.nongnu.org/wined3d/
4. DirectX OpenGL Wrapper
http://sourceforge.net/projects/dxglwrap
5. Transgaming SwiftShader
This technology allows software rendering of many DirectX effects.
6. Interesting Paper explaining why VMware chose Gallium3D: (12.12.2009)
http://vmware-svga.svn.sourceforge.net/ ... revision=1
and lets sum the question:
Are those totally separate projects, or they have any relationships ?
--
-"Technologov"
since there are many questions - so I would like to write : "What are the obstacles to achieving a 3D in a VM"
The problem:
To get a 3D support, you have to have a virtual 3D hardware and several drivers - 1 for OpenGL and 1 for Direct3D.
Possible ways to get there:
a. Emulate a real 3D card such as GeForce - it solves the drivers problem automatically (both for OpenGL and DirectX) - but this card is closed-source hardware, so we can't simply emulate it.
This is very difficult to do technically, so probably, it won't happen. + it will be damn slow.
b. Use virtualized hardware, such as Virtualbox 3D accelerator - and write 3D drivers for that one. Remember - both OpenGL and Direct3D drivers are needed for several guest OSes.
The OpenGL problem can be resolved easier - we need to run para-virtualized drivers on top of host's OpenGL and we are done.
This approach Sun took with VirtualBox 2.1. Sun used third-party "Chromium" OpenGL transport layer, which was redirected over para-virtual channels.
The DirectX problem is more difficult - we will have to translate DirectX instructions into OpenGL instructions, like Wine does - but the problem with Wine is that it's too buggy and many games won't run. So it must be debugged along the way.
Experimental support for hardware-accelerated DirectX inside VirtualBox also exists. It is called WineD3D and supports only DirectX-8 (not 7 and not 9 !). 3D Mark 2001 is known to work.
This will allow to reach 90% of native speed, so this is very fast solution.
solution b is Very Difficult task as well, but more realistic than a.
VMware were working on it since about 2005, and and first product to support 3D is called VMware Fusion. VM WS 6.0 and 6.5 support it too. (experimentally)
Sun has started much later, in 2007, and by late 2008 had experimental OpenGL support. (VirtualBox 2.1)
Not all games work however; Perhaps a community has to step-in and help debug all those games.
=======================================================================
Update: The community pointed me to some interesting ongoing projects.
OK, so let's sum up all the known projects:
1. VMGL
http://www.cs.toronto.edu/~andreslc/xen-gl/
2. Qemu-patch
http://qemu-forum.ipi.fi/viewtopic.php?t=2984
3. Wine
http://www.winehq.com
3.a. WineD3D links: (Direct3D-on-OpenGL wrapper)
http://www.virtualbox.org/ticket/3639
http://www.nongnu.org/wined3d/
4. DirectX OpenGL Wrapper
http://sourceforge.net/projects/dxglwrap
5. Transgaming SwiftShader
This technology allows software rendering of many DirectX effects.
6. Interesting Paper explaining why VMware chose Gallium3D: (12.12.2009)
http://vmware-svga.svn.sourceforge.net/ ... revision=1
and lets sum the question:
Are those totally separate projects, or they have any relationships ?
--
-"Technologov"
Last edited by Technologov on 23. Sep 2008, 14:10, edited 3 times in total.
Re: 3D Acceleration Support and why it wont happen anytime s
I don't believe VMware Fusion has any additional 3D support beyond that of the normal VMware Workstation product, which if I remember correctly is limited to DirectX 8.
-
- Volunteer
- Posts: 3342
- Joined: 10. May 2007, 16:59
- Location: Israel
The VMware Workstation 5.x series and above I believe supports it, although I believe you have to manually modify the configuration file to enable the support. Normally I would agree with you that any support is better than none, but unless you are using an older application (game), then the practical value is not as high as you would think - in my experience.
-
- Volunteer
- Posts: 3342
- Joined: 10. May 2007, 16:59
- Location: Israel
-
- Posts: 3
- Joined: 21. May 2007, 18:17
- Primary OS: Debian Lenny
- VBox Version: VirtualBox+Oracle ExtPack
- Guest OSses: WinXP, Debian various versions (Lenny, Squeeze, Sid, Ubuntu, etc)
Re: 3D Acceleration Support and why it wont happen anytime s
I suppose we have all heard the rumors that ATI might opensource their graphics drivers, would that make point a more likely? It would still be slow, but the information about the hardware would be avalaible.Technologov wrote:Possible ways to get there:
a. Emulate a real 3D card such as GeForce - it solves the drivers problem automatically - but this card is closed-source hardware, so we can't simply emulate it, + it will be damn slow.
This is very very difficult to do technically, so probably, it won't happen.
-
- Posts: 4
- Joined: 1. Jun 2007, 17:21
- Primary OS: Ubuntu 8.04
- VBox Version: VirtualBox+Oracle ExtPack
- Guest OSses: XP Pro SP3, Debian, Fedora, and CentOS
Well, the upcoming version of Parallels Desktop of Macs will have 3D acceleration (OpenGL AND DirectX) for guest OSs...So you might as well add them to the list with VMware Fusion.
One of their guys blogged about it with a Quake 4 screenshot.
http://parallelsvirtualization.blogspot ... op-30.html
New features...
http://www.novadevelopment.com/parallel ... fault.aspx
So we now have another company (aside from VMware), offering this capability. There's a potential for Innotek to possibly grab some marketshare in the virtualization space. Its up to them to get it.
Might I quote words of inspiration?
One of their guys blogged about it with a Quake 4 screenshot.
http://parallelsvirtualization.blogspot ... op-30.html
New features...
http://www.novadevelopment.com/parallel ... fault.aspx
Games that is known to work...# OpenGL 1.5 / DirectX Support - Run games and 3D applications at native speed in Windows.
# Coherence 2.0 - Run Windows and Mac OS applications in a single integrated environment.
# Documents Integration - Open documents in Mac OS or Windows using any available Mac OS or Windows application.
# Snapshots - Save the running virtual machine state and revert back to it at any time.
# Improved Windows Support - for XP and Vista
# Printers - Support for shared printers.
# Wider USB 2.0 and CD & DVD support
# Windows Start Menu Integration - Click the Parallels icon in the Dock to show the Windows Start Menu.
# Mount Your Windows File System - and access its files and folders directly from Mac OS.
# Parallels Explorer - Search for Windows files without having to start Windows.
# BootCamp Support - Use your BootCamp Partition inside Parallels. Now even works with Windows Vista!
# Integrated Virus Check - Free six month subscription allows you to work safely without fear of viruses.
# Improved Graphics User Interface - Now even easier to use and understand
# Support for OS X Leopard - Full support for Apple's next generation operating system when it ships.
# New Tools for Linux Users - Improved mouse and screen handling features
# Fast and Easy Installation - Installs in just 3 clicks.
I think Innotek should at least consider funding a side project to explore various ways to implemented 3D acceleration before blindly rejecting the notion with excuses.Run games and 3D applications at native speed in Windows, including:
* AeroFly Pro Deluxe
* Alien Arena 2007
* Call of Duty
* Counter Strike 1.6
* Descent 3
* Duke Nukem Manhattan Project
* Half Life
* Hitman
* Homeworld 2
* Quake 1 GL
* Quake 2
* Quake 3 Arena
* Quake 4
* Return to Castle Wolfenstein
* Serious Sam
* Serious Sam - the Second Encounter
* SiN
* Unreal Tournament 2003
* Worms 3D
So we now have another company (aside from VMware), offering this capability. There's a potential for Innotek to possibly grab some marketshare in the virtualization space. Its up to them to get it.
Might I quote words of inspiration?
“Those who say it can't be done are usually interrupted by others doing it.”
-James Arthur Baldwin
-
- Volunteer
- Posts: 1064
- Joined: 10. May 2007, 10:27
- Primary OS: MS Windows Vista
- VBox Version: VirtualBox+Oracle ExtPack
- Guest OSses: Windows, Linux, Solaris
For those that are interested in 3d acceleration. I've just opened up our OpenGL sources in SVN. Note that it's not complete; not even close.
But test rendering of simple OpenGL samples to an external window on the host works.
Perhaps some of you might want to reach out and help out to complete the work.
Development is monitored here: http://www.virtualbox.org/ticket/475
But test rendering of simple OpenGL samples to an external window on the host works.
Perhaps some of you might want to reach out and help out to complete the work.
Development is monitored here: http://www.virtualbox.org/ticket/475
-
- Posts: 2
- Joined: 2. Jul 2007, 20:50
Looks like we're working on complementary things...sandervl wrote:For those that are interested in 3d acceleration. I've just opened up our OpenGL sources in SVN. Note that it's not complete; not even close.
But test rendering of simple OpenGL samples to an external window on the host works.
Perhaps some of you might want to reach out and help out to complete the work.
Development is monitored here: http://www.virtualbox.org/ticket/475
I've updated tonight my QEMU (Linux) OpenGL patch : http://qemu-forum.ipi.fi/viewtopic.php?t=2984
I guess it could be possible to reuse my client and server stubs even if you use a different guest/host data transmission protocol.
I think I'm done with most of the core OpenGL API and the vendor extensions.
-
- Volunteer
- Posts: 3342
- Joined: 10. May 2007, 16:59
- Location: Israel
I have tried Cedega. It is buggy, just like Wine.
Most games crash with Cedega.
Most games crash with Cedega.
Last edited by Technologov on 15. Sep 2008, 22:12, edited 1 time in total.