3D Acceleration Support

This is for discussing general topics about how to use VirtualBox.
nuno
Posts: 40
Joined: 12. May 2007, 01:33

Post by nuno »

Technologov wrote:2D performance of VirtualBox is EXCELLENT. Nearly as fast as native. No need to improve.
I really don't care much for 3D. I do care for 2D and the current state of things is not bad, but it's not perfect. Sorry for the partial off-topic, but:

- Xv (for playing movies) is not supported (on the bright side sound support is very good).

- Moving a window appears to be fast but it's consuming 100% of the host's CPU. And most of guest's CPU too. In "native mode" the same movie uses 1% CPU...

The X11PutImage are painfully slow... My sugestion is to a) remake the way "VirtualBox Host" updates it's window (maybe using a xv port: virtually no CPU usage on the host!), and b) to enable xv support in the guest's video drivers. By that order :-)

This (point a) ) would make applications that update the screen very fast -- not just movies, but graphical apps and Adobe Flash and 2D desktop effects and so on -- twice as fast, and (point b) ) make possible to play movies inside VB.

Is this in the TODO list? :-)
Peace,
Nuno
Aceler
Posts: 8
Joined: 16. Oct 2007, 21:14
Primary OS: Linux other
VBox Version: PUEL
Guest OSses: Mostly Ubuntu
Location: Nizhny Novgorod
Contact:

Post by Aceler »

Technologov wrote:Aceler:
2. I said about performance, not features :) - Yes, I know that VBox VGA features have some problems... but maybe they are fixed in 1.5.2.
I can confirm, that they were fixed. Thank you. Thank you very much.
chiper
Posts: 1
Joined: 28. Oct 2007, 14:54

Post by chiper »

Sorry for my English.

I'm use the swiftshader to run DirectX9 and DirectX8 games on VM.It's to slow for some modern games it's to slow, but it realy working.
http://www.transgaming.com/products/swiftshader/

Moka5 is another interesting project. I don't try it, but it seems to be best solution for 3D on VM
http://www.moka5.com/
Bioshock runing on VM with Moka5 on VMworld 2007.
http://downloads.moka5.com/photos/vmworld-pic4.jpg
Technologov
Volunteer
Posts: 3342
Joined: 10. May 2007, 16:59
Location: Israel

Post by Technologov »

Just downloaded swiftshader demo - It's good !

Allows running 3D Mark 2001 inside VirtualBox - but FPS is not high - 2 to 15 fps on Core 2 - 2.4GHz. (640x480x32) - which isn't very playable.

Besides, this thing doesn't work with every game, but either needs specially optimized software or we must find some other way to install swiftshader as a standard 3D driver.

I have disabled Windows File Protection on my XP SP2 box, and replaced D3D8 and 9 DLLs in Windows/SYSTEM32/ but it didn't helped to hijack D3D calls from unsupported games. Perhaps I don't understand something... :(
Lory
Posts: 3
Joined: 30. Oct 2007, 11:11

Post by Lory »

Sorry for my ignorant question, but cannot be the pci-Ex or AGP card virtualized through IOMMU (AMD integrated type, based on GART)?

I know IOMMU is just in the X86_64 architecture, but I've heard that in the new kernel, the the i386 and X86_64 arch will be merged, so any who has newer AMD processor will have an IOMMU.
Jerome
Posts: 1
Joined: 30. Oct 2007, 17:15

Post by Jerome »

'haven't read the complete thread, sorry.

The virtualization of the GPU has to be the same way as the CPU. Video memory is partitionned. The hypervisor (Xen, ...) switches the context of the GPU at the same time as the CPU. There is a small plugin/driver/hypervisor for the GPU that has to be provided by the card manufacturer.

I am actually surprised that none of the GPU makers had announced anything about this. Since the x86 CPUs can now be virtualized cleanly, I hope NVIdia and ATI are actively working on this.

My 0.02€ on this old topic.
Lory
Posts: 3
Joined: 30. Oct 2007, 11:11

Post by Lory »

I see. By the way I've heard that Intel want to create a video card with context switching.
Nil
Posts: 1
Joined: 8. Nov 2007, 01:59

Parallels Approach

Post by Nil »

AFAIK, the way Parallels does 3D support is virtualizing OpenGL then using WinE's DirectX DLLs on Windows (which are implemented using OpenGL).

By the other hand, VMware Workstation 5 and 6 support DirectX 8.1 directly, altough you have to enable it manually by editing the VMX file. VMware Fusion for the Mac also supports it and you don't need to edit any file to get it, I suppose it's the same implementation.
Lory
Posts: 3
Joined: 30. Oct 2007, 11:11

Post by Lory »

I would like to know how to install SharedOpenGL under linux host - windows guest. I've downloaded VBoxOGL.dll from:
http://aleichner.homepage.t-online.de/VBoxOGL.dll
modified my registry as in
http://www.virtualbox.org/ticket/475
I have not modified the source. Where i have to do it in version 1.5.2?
Now i get the following error message from
http://aleichner.homepage.t-online.de/tstShOpenGL.exe
The procedure entry point glGetString could not be located in the dynamic link library VBoxOGL.dll
http://aleichner.homepage.t-online.de/tstOGLSample.exe
The procedure entry point glColor3f could not be located in the dynamic link library VBoxOGL.dll
http://aleichner.homepage.t-online.de/tstOGLSphere.exe
The procedure entry point glDisable could not be located in the dynamic link library VBoxOGL.dll
What to do?
My system is
Athlon X2 /1Gb mem/Gentoo amd64/2.6.23 kernel/Nvidia 6600Gt
Torrasque
Posts: 1
Joined: 21. Nov 2007, 10:06

Post by Torrasque »

Hi, I've read the PCI-Express 2.0 will support virtualisation.
The new GeForce 8800 gt and Radeon HD 3800 already support it.
Do this will improve 3d virtualisation and ease the implementation ?
PGHammer
Posts: 23
Joined: 2. Dec 2007, 11:30

Emulation and Hypervisor-based Technologies

Post by PGHammer »

Torrasque wrote:Hi, I've read the PCI-Express 2.0 will support virtualisation.
The new GeForce 8800 gt and Radeon HD 3800 already support it.
Do this will improve 3d virtualisation and ease the implementation ?
That would work if VirtualBox were hypervisor-based (such as Xen); however, as it stands, you have a choice between traditional host-guest emulation *or* hypervisor-bsed emulation, as no one emulation product (not even VMWare, let alone VirtualBox or VirtualPC) supports both. Worse; hypervisor-based emulation also requires both CPU and motherboard support (Core or Athlon64 AM2 or better on the CPU side, with C2D/C2Q or AMD Phenom recommended; on the motherboard chipset side, you're talking only the latest and greatest from Intel (X41) and AMD (Spider); nV won't support it until the 700 series.
Technologov
Volunteer
Posts: 3342
Joined: 10. May 2007, 16:59
Location: Israel

Post by Technologov »

Please share with us little bit more about GeForce 8800 and Radeon 3800 supporting virtualization. Any links ?
mobius08
Posts: 3
Joined: 19. Dec 2007, 01:32

Hopefully 3d support comes soon

Post by mobius08 »

The xfx 8600GT (nvidia chip) works for ubuntu.
3d function of this card is available for linux.
Questions:
Does virtual box have direct hardware access? If so, would it be possible to pass this hardware access to the guest operating system? These questions seem silly, but I am sure there are allot of other complications that are involved with this.
Technologov
Volunteer
Posts: 3342
Joined: 10. May 2007, 16:59
Location: Israel

Post by Technologov »

mobius08: read page 1 of this topic. VirtualBox has _*no*_ 3D Access !
mobius08
Posts: 3
Joined: 19. Dec 2007, 01:32

correction and clarification

Post by mobius08 »

correction and clarification:
Technologov wrote:mobius08: read page 1 of this topic. VirtualBox has _*no*_ 3D Access !
"I did read page 1."
Maybe the question was read wrong. The question was in regards to currently implemented hardware access for drivers it currently has for virtual drivers. the following quote is from wiki explains definition of virtual drivers: http://en.wikipedia.org/wiki/Device_driver
"A particular variant of device drivers are virtual device drivers. They are used in virtualization environments, for example when an MS-DOS program is run on a Microsoft Windows computer or when a guest operating system is run on, for example, a Xen host. Instead of enabling the guest operating system to dialog with hardware, virtual device drivers take the opposite role and emulate a piece of hardware, so that the guest operating system and its drivers running inside a virtual machine can have the illusion of accessing real hardware. Attempts by the guest operating system to access the hardware are routed to the virtual device driver in the host operating system as e.g. function calls. The virtual device driver can also send simulated processor-level events like interrupts into the virtual machine."
In this description, virtual drivers do not have direct hardware access, and make use of interrupts. What if the guest OS did have direct hardware access, what kind of problems could this potentially cause?
Locked