3D Acceleration Support

This is for discussing general topics about how to use VirtualBox.
Locked
steve723
Posts: 58
Joined: 14. Feb 2008, 19:47

Post by steve723 »

I will be looking forward to that. :D
guru_florida
Posts: 1
Joined: 3. Apr 2008, 00:55

Post by guru_florida »

I understand fully the complexity of implementing accelerated DirectX in a VM. I think option b in the first page is the only real way to go. This was to implement a virtual video card that translates the calls. As one of you said, implement it for WinXP and you get 80% of the masses.

I don't play games so I am not concerned much with fast DirectX for games, but I have a few 3D programs that use DirectX so I am eagerly awaiting new "guest os additions"! :)

I love VirtualBox though, great job. It allowed me to kick Windows for the most part except for the few 3d programs. If I wanted to play games, I would install in a dual boot too, but the other programs are used too much to dual boot. I am hoping they work well enough with my new Quad core.

Also, I just got a message that VMWare just got DirectX9 working too for test drive. Its another 190$ on top of WinXP Pro cost tho, so its an expensive option.

C
Two
Posts: 23
Joined: 13. Apr 2008, 16:35

Post by Two »

From my guess fully supporting 3D will become the main reason to decide for or against a virtualisation in a few years.
sponghead
Posts: 1
Joined: 14. Apr 2008, 00:08

3d Support

Post by sponghead »

Am I missing something here?

Whilst I have moved away from Windows almost completely I am not an expert and only manage with a Linux setup because they are written well and are very user friendly these days.

I needed a Windows installation though to update my TomTom. I am running Fedora core 7 as the host with an XP guest, and am really pleased with virtualBox as I achieved my aim, however, having loaded XP it caused me to try some of my older 3d games as wine will not work them and as I have just found out neither does VB.

This brings me on to my point: As you have to own a Windows distro officially before you install it in VB would it not be possible to just use the drivers that are packaged with a Graphics card and freely available from the makers website this way there are no copyright issues as you can legally install the software to run your card.

At the moment as you are aware my Nvidia card won't update as it is trying to overwrite the VB virtual driver and does not recognise the card.

I apologise if this has been addressed in a previous post but it only occurred to me reading this thread.

Thanks to you all !!
Technologov
Volunteer
Posts: 3342
Joined: 10. May 2007, 16:59
Location: Israel

Post by Technologov »

sponghead: You don't understand the problem. Read the first post.
webulator70
Posts: 2
Joined: 18. Apr 2008, 22:56

Post by webulator70 »

hi, i just like to state for the record that i am using vmware 6.5 here and it can do what appears to be full dx9 and "unity mode" (seamless mode) with taskbar integration.

note: im just trying to clear things up for some people that seem to be unsure as to what vmware can and cannot do (vmware 6.0 had partial dx8.1). its not a "i want 3d in virtualbox now" post or anything.

im happy using vmware for some things and vbox for others.
steve723
Posts: 58
Joined: 14. Feb 2008, 19:47

Post by steve723 »

I tried VMware Workstation 6.0 on my computer. I created a Windoze xp vm and it was slow and the mouse stuttered. VirtualBox is faster and the mouse works properly. Sometimes Virtualbox causes my host system to slow down and begins to cause thrashing but I just have to reboot the host and everything is fine again. I probably need just a tad bit more horse power under the hood. I hope to get a new computer before VirtualBox gets full 3D. :)
knightrous
Posts: 2
Joined: 31. May 2008, 01:53
Location: Australia

Post by knightrous »

Just a theory here, but isn't it possible to install a second video card (For those of us with SLI or multi PCI-E 16x slot motherboards) and run a small driver on the host OS to let it know that it cannot use this card, except for hardware monitors and then give the guest OS full access to this second card as it's own. This won't work for everyone due to the hardware issue, but it's definitely a possible solution for those who want the 3D hardware acceleration and have the hardware capability to support it.

Anyway, just been an idea of mine since I started tinkering with VM machines around 3 years ago...
cybergenesis
Posts: 5
Joined: 12. Jul 2007, 11:45

Just another silly idea.

Post by cybergenesis »

Wouldn't it be theoretically possible for Virtualbox just to "borrow" the graphics card from the host OS, I mean simular in the way a game uses it. Perhaps Virtualbox could import the drivers into the guest system or even disable the HOST OS graphics while the guest is running... I'd be happy to "switch" back and forth to take advantage of the 3D. I don't just play games, software like Particle Illusion and certain rendering software benefit a lot from access to a proper 3D graphics card.

Whether it happens or not, Virtual Box is still my favourite :) But if it could do 3D reasonably well, I would completely ditch windows as my main OS (and you would hear the roar of my liberation across the internet).

While I am ranting, some other specific features I would like would be for virtualbox to be capable of "virtualizing" various applications, so they could be run in a "seamless" way such as on linux. even if the guest OS had to be fully installed, some easy way to call up applications within the guest OS, and even just saving data to a shared folder.. This would be very useful. I imagine say have a dreamweaver icon or something no linux and double clicking it to run the Guest OS and seamlessly launch the application :)

The last thing I could want, somehow, somehow to be fully portable. I'd love a USB stick portable version of windows which I could just plug straight into any computer and call up the OS with all my installed software (servers etc), would be great :)
Phobos
Volunteer
Posts: 117
Joined: 28. Feb 2008, 00:15

Post by Phobos »

cybergenesis, "the way a game uses it" is just talking to the API over the OS... that API talks to the kernel (and the rest of the OS) and it does what it must do to show the output on the monitor. The video card is already locked by the host OS.

what you are suggesting means that Vbox would need to translate the 3D hardware instructions from the guest OS back into API instructions that can be understood by the host OS' API, so that it can, once again, translate it back into a hardware list of instructions for the graphics card to understand....

obviously, this is a bad idea... not because it can't be done, but because it will be TOO SLOW... which is why (if you actually read this thread) it's hinted that VBox will intercept the API calls from the guest OS and send these to the host... meaning, native acceleration



knightrous, I'm not really sure, because, I admit it, I know close to nothing about SLI cards.... but I think it will not work

it's not like you can choose to use a part of the card for one thing (as in what you said, "except for hardware monitors") and other part for another... the GPU receives the instructions and with these, it send the graphic output when it's told to.... but it's just one GPU, so either you use it or you don't, not only a part of it

I don't know about using the second card completely for the virtual machine... I have no idea if you can prevent the host OS from locking a secondary card like that


Either way, the vbox team is already working on their solution... as hinted, using WINE3D for it.... (which in my previous ignorance on Sander's work on the ODIN project, I actually was one of those that thought that was "suggesting" it to them...)... so I don't think they actually need more ideas right now hehe
braincelljuggler
Posts: 1
Joined: 7. Jun 2008, 13:24

Post by braincelljuggler »

What if... there would be one process on the host to run the vm in
and a second one to do the drawings on the screen while getting the commands from the former in order to do this.

Like there would be a video game on the host but controlled by the vm.

Could this be realizable in an relatively easy way?

I mean, without the need to translate the instructions because the drawing
process gets the instructions directly from the guest os but works outside the vm.
Or what about a "hole" in the vm where "-limited- intercepted" API calls are "passed through"
to the host.

Am I completely wrong in this?

I like Vbox and its possibilities, just trying to help improving it :-}
Phobos
Volunteer
Posts: 117
Joined: 28. Feb 2008, 00:15

Post by Phobos »

well, braincelljuggler... that's basically the point of what I said on my previous post... the part about:

"it's hinted that VBox will intercept the API calls from the guest OS and send these to the host... meaning, native acceleration " hehe

also, I wanted to correct something from that post... Wine3D would only be used on guests that use DirectX, while (a little) part of the work to make 3D work on OpenGL guests is already put on the ticket found on this thread
ponhovo
Posts: 2
Joined: 8. Jun 2008, 22:08

Post by ponhovo »

i think he meant somthing else...
let me improve the idea

what about de VBox generate like full-power virtual graphic card which the directX and OpenGL 'understands' and those does generate the drawnings on the screen, whatever the native card can accelerate it or not (so,how better your graphic card is, better you can see the guest running), or some virtual graphic card which can generate drawnings depending on which power the native card have...

i think i said the obvious or and absurd >_<
just trying to help either =P
Technologov
Volunteer
Posts: 3342
Joined: 10. May 2007, 16:59
Location: Israel

Post by Technologov »

ponhovo: Read page 1.

-Technologov
Tomservo
Posts: 34
Joined: 13. Feb 2008, 13:42
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Solaris Express 11

Post by Tomservo »

*nix guest on *nix host, the deal's really easy. Use X11/TCP and glx. I use Google Earth in Solaris Zones that way and it works fine. No reason why it shouldn't with a VM.

Windows guest on Windows host could be made working without too much troubles. Have the guest batch and send stuff across the VM border using a special driver that aliases the host, but force it to run in a borderless window that overlays the VM space.

Mixed mode, that needs wrappers all over the place. Windows guest on *nix host, you could make WineD3D workable, though it's far from complete.
Locked