3D Acceleration Support : WineD3D Analysis

This is for discussing general topics about how to use VirtualBox.
Technologov
Volunteer
Posts: 3342
Joined: 10. May 2007, 16:59
Location: Israel

3D Acceleration Support : WineD3D Analysis

Post by Technologov »

Hi All !

I decided to take a quick look at current WineD3D efforts by the community. see:
http://www.virtualbox.org/ticket/3639
http://www.virtualbox.org/ticket/2940
http://forums.virtualbox.org/viewtopic.php?f=2&t=15436

The architecture works this way:

WineD3D libs (Direct3D 8 and Direct3D 9)
|
VirtualBox guest OpenGL (and DirectDraw)
|
Host OpenGL

I tested Windows XP on Windows XP for simplicity. Wine v1.21. Intel Core 2 Q6600 + ATI Radeon HD 3850. (VT disabled). VBox 2.2.2.

Few things that I found:
1. -DirectX 7 and earlier games won't run, because not supported by WineD3D (but that's documented)
2. -Installer requires Windows Safe Mode, which provides very bad user experience. (maybe it can be fixed by disabling Windows System File protection?)
3. -Uninstaller provides no way to go back to older drivers. (this prevents me from experimenting with WineD3D on my host machine)
(also WineD3D does not lists itself on Add/Remove programs, making uninstall impossible)
4. -DirectX 9 don't works at all... perhaps because it is based on OpenGL 2.0, while VirtualBox provides only OpenGL 1.5. (i.e. 3D Mark 2003 refused to run at all)
Basically only DirectX 8 can work.
5. -It describes itself as GeForce 3, which is very incorrect, because reported features are very different from real GeForce 3. (and I had the real card several years ago)
6. -3D Mark 2001: it has incorrect rendering during "nature" scene. Leaves on trees are not rendered at all.
7. -3D Mark 2001: Hardware T&L and Vertex Shader performance is extremely bad. About equivalent to software T&L.

Good things:
1. -3D Mark 2001: most scenes were rendered correctly !

-Technologov
Technologov
Volunteer
Posts: 3342
Joined: 10. May 2007, 16:59
Location: Israel

Re: 3D Acceleration Support : WineD3D Analysis

Post by Technologov »

Basically we have two sources of bugs in such a configuration:

-VirtualBox OpenGL in guest.
-WineD3D itself.

To decouple them, I need ability to install and uninstall WineD3D on host machine. (which will render on host's OpenGL driver, which is made by ATI, and presumably more stable than VirtualBox Chromium one)
However, without good uninstaller, I can't even install WineD3D. (as I'm risking breaking my production Windows XP desktop)

-Technologov
rmh
Posts: 2
Joined: 17. May 2009, 21:42
Primary OS: Debian Lenny
VBox Version: OSE Debian
Guest OSses: winxp, reactos, debian

Re: 3D Acceleration Support : WineD3D Analysis

Post by rmh »

Hi,

Please don't use the VirtualBox forums for reporting bugs on the wined3d NSIS installer, there's a BTS at Savannah for that purpose. Short reply:

> 1. -DirectX 7 and earlier games won't run, because not supported by WineD3D (but that's documented)

This is actually a problem in MS opengl32.dll, which we can't replace yet, because the ReactOS version still has some problems. Check ReactOS BTS:

http://www.reactos.org/bugzilla/show_bug.cgi?id=4384
http://www.reactos.org/bugzilla/show_bug.cgi?id=4385

Please file a bug at Savannah for this, so we can keep track of it.

> 2. -Installer requires Windows Safe Mode, which provides very bad user experience. (maybe it can be fixed by disabling Windows System File protection?)

Would be nice, but there doesn't seem to be any straightforward way.

Please file a bug at Savannah for this.

> 3. -Uninstaller provides no way to go back to older drivers. (this prevents me from experimenting with WineD3D on my host machine)
> (also WineD3D does not lists itself on Add/Remove programs, making uninstall impossible)

It's not trivial, because you have to consider the following scenario:

- Install WineD3D
- Upgrade MS DirectX
- Uninstall WineD3D

How do you keep track of which files need to be restored?

Please file a bug at Savannah for this.

> 4. -DirectX 9 don't works at all... perhaps because it is based on OpenGL 2.0, while VirtualBox provides only OpenGL 1.5. (i.e. 3D Mark 2003 refused to run at all)

It does. Try with dxdiag tests.

> 5. -It describes itself as GeForce 3, which is very incorrect, because reported features are very different from real GeForce 3. (and I had the real card several years ago)

GeForce is the fallback when Wine can't detect the real card. See http://www.virtualbox.org/ticket/3541
HolgerB
Posts: 58
Joined: 28. Jul 2008, 23:36

Re: 3D Acceleration Support : WineD3D Analysis

Post by HolgerB »

@Technologov:
Thanks for your short analysis but I'd like to second
rmh's remark. Wine3D bug reports should go to the WINE
bug tracker.

In general I see no issues about the installationprocess
itself or missing de-installation.

1) OpenGL in VBox is still labeled as experimental.
For me this translates to: "Only people with some
serious computer knowledge and a will to experiment
should try such features". It's also best not to use
your "production" VMs for this.

2) Since using WineD3D is experimental software on top
of an experimental feature of VBox I think the install
in safe mode is no showstopper. We are talking about
work in progress here. :wink:

Although VBox has still some way to go until it reaches
the D3D capabilities of VMWare (see here VMWare running
UT3 under Debian: http://www.youtube.com/watch?gl=DE&v=FgL9yX9-u5k)
I'm pretty confident that we'll be able to run stuff like
Quake4 within a VBox until the end of 2009.

For production support of D3D inside a VBox a safe mode install
would be not nice though but be patient :mrgreen:

3) One of the best features of using VMs is the ability to
create copies or snapshots with a few clicks. So what is
the problem about generating a snapshot of a WinXP VM
for example with VBox Guestadditions installed for
your WineD3D experiments ? You can easily roll back
to this state after installing WineD3D. For regression
tests between WineD3D versions you can keep certain
versions of the named VM.

Just my two cents,
Holger
Technologov
Volunteer
Posts: 3342
Joined: 10. May 2007, 16:59
Location: Israel

Re: 3D Acceleration Support : WineD3D Analysis

Post by Technologov »

>Wine3D bug reports should go to the WINE bug tracker.

Here is the problem. I'm not sure if the bugs are caused by WineD3D or by incomplete OpenGL of VirtualBox.
And if I report those bugs based on VirtualBox OpenGL, will they be treated seriously ?
I thought about installing WineD3D on host, but after it hosed my VM, without ability to uninstall, I'm afraid to install WineD3D on my production desktop.

And a more direct question: What features we lacking now to support Aero in Windows Vista and Windows7 guests ? (I presume those are Vertex & Pixel shaders 2.0 - but underlying OpenGL 1.5 of VirtualBox don't support those either.)

-Technologov
HolgerB
Posts: 58
Joined: 28. Jul 2008, 23:36

Re: 3D Acceleration Support : WineD3D Analysis

Post by HolgerB »

Hi there,
Here is the problem. I'm not sure if the bugs are caused by WineD3D or by incomplete OpenGL of VirtualBox.
Then I would report them both here in the VBox bugtracker as well in the WINE bugtracker which all informations you can give. 8)
And if I report those bugs based on VirtualBox OpenGL, will they be treated seriously ?
I hope so. At least if OpenGL in VBox shall be a usable feature which people can rely on.
For now it's labled as "experimental". That's why I said be patient.
I thought about installing WineD3D on host, but after it hosed my VM, without ability to uninstall, I'm afraid to install WineD3D on my production desktop.
Personally I would not installe WineD3D on a physical machine. It's a wrapper based on the WINE
source code but I would rather not try it on a Non-VM just to find out if the VBox OpenGL driver
is causing problems.
And a more direct question: What features we lacking now to support Aero in Windows Vista and Windows7 guests ? (I presume those are Vertex & Pixel shaders 2.0 - but underlying OpenGL 1.5 of VirtualBox don't support those either.)
A more direct answer/opinion:
Aero is just eyecandy. Similar to using Compiz within a Linux VBox we are not missing anything functional if we can't enable this. In general I think it would be nice to support this but it's not a musthave. If the underlying OpenGL stub of VBox doens't provide a reasonable feature set (read: older OGL implementation) then this is a different thing since it (possibly) limits the usage of other OpenGL apps. :|

Cheers,
Holger
ajmas
Posts: 79
Joined: 27. Jan 2009, 19:37
Primary OS: Mac OS X other
VBox Version: OSE other
Guest OSses: Ubuntu
Location: Olympus Mons Colony, Mars

Re: 3D Acceleration Support : WineD3D Analysis

Post by ajmas »

There was previously a thread explaining on how to install WineD3D, which has now been locked, here:

http://forums.virtualbox.org/viewtopic. ... 36&start=0

It would have been nice to at least have made it sticky before locking it, since I have been unable to find anywhere else any instructions on how to install WineD3D. Maybe the moderators would be okay if at least the contents of the original post were reproduced in a sticky. I really doubt users are going to be looking in this forum for instructions on WineD3D, when it is considered a Windows platform issue. The other alternative would be to have the instructions added to the Wiki - the Wiki does not appear to be editable by the community. I would hate to see this knowledge be lost to the depths of the search option.
VB version: 6.x Primary OS: MacOS X 11.0.1 on Intel Mac
Technologov
Volunteer
Posts: 3342
Joined: 10. May 2007, 16:59
Location: Israel

Re: 3D Acceleration Support : WineD3D Analysis

Post by Technologov »

I know how-to install it. Main problem is how to test it.
HolgerB
Posts: 58
Joined: 28. Jul 2008, 23:36

Re: 3D Acceleration Support : WineD3D Analysis

Post by HolgerB »

Hi,

I totally see your point. Without using WineD3D on a physical machine with full-featured OpenGL driver (and a modern card) we are not able to determine if a WineD3D issue is really caused by Wine itself or the OpenGL driver/stub of VBox.

Unfortunately I only see the same approach for stressfree testing as with VBox itself:
Creating snapshots or copies of the running system before applying WineD3D. A cheap scenario I could imagine:
Using an old HDD in an USB HDD encasing. This way you could keep your Host clean. If you invest some time and install Linux in parallel on the HDD you could even easily backup your Windows partition by using DD. Of course booting from an external USB HDD is slower compared to an internal drive but it could be worth it. Usually external HDD encasings cost only 10€ plus 0€ if you have a spare old HDD lying around. I think it makes no sense if I send you an old 160 GB Samsung, doesn´t it ? :?

I also think that Sun/VBox developers should closely watch any thread related to WineD3D because this is the module on which the VBox D3D capabilities will rely on in future. I am curious where we´ll head from here.....

Best regards,
Holger
rmh
Posts: 2
Joined: 17. May 2009, 21:42
Primary OS: Debian Lenny
VBox Version: OSE Debian
Guest OSses: winxp, reactos, debian

Re: 3D Acceleration Support : WineD3D Analysis

Post by rmh »

HolgerB wrote:Hi there,
Here is the problem. I'm not sure if the bugs are caused by WineD3D or by incomplete OpenGL of VirtualBox.
Then I would report them both here in the VBox bugtracker as well in the WINE bugtracker which all informations you can give. 8)
No, no! I know it's difficult to tell them apart, but please do at least distinguish between bugs in Wine (which should be reported to WineHQ bug tracker) and bugs in the WineD3D installer for Windows (which should be reported to the wined3d bug tracker in Savannah).

When unsure where a bug belongs to, ask yourself questions like:

- Does it happen with normal Wine on GNU/Linux? If it does, it's certainly a bug in Wine. Otherwise maybe it is, or maybe not.

- Does it happen with WineD3D on Windows? (on real hardware). If it doesn't, it may be a bug in VirtualBox, or at least is related to integration with VirtualBox OpenGL in some way, and is probably suitable to be reported to VirtualBox BTS.

Thanks!
Anakonda
Posts: 2
Joined: 30. May 2009, 15:41
Primary OS: MS Windows XP
VBox Version: OSE other
Guest OSses: winXP, ubuntu

Re: 3D Acceleration Support : WineD3D Analysis

Post by Anakonda »

Anyone can upload the wined3d.iso? I cant download it from the link to http://download.savannah.nongnu.org/rel ... ined3d.iso
Technologov
Volunteer
Posts: 3342
Joined: 10. May 2007, 16:59
Location: Israel

Re: 3D Acceleration Support : WineD3D Analysis

Post by Technologov »

uploaded here: (valid 7-days)
http://www.yousendit.com/download/MnFpc ... NVdGa1E9PQ

-Technologov
Anakonda
Posts: 2
Joined: 30. May 2009, 15:41
Primary OS: MS Windows XP
VBox Version: OSE other
Guest OSses: winXP, ubuntu

Re: 3D Acceleration Support : WineD3D Analysis

Post by Anakonda »

Thanks
ajmas
Posts: 79
Joined: 27. Jan 2009, 19:37
Primary OS: Mac OS X other
VBox Version: OSE other
Guest OSses: Ubuntu
Location: Olympus Mons Colony, Mars

Re: 3D Acceleration Support : WineD3D Analysis

Post by ajmas »

One thing that we will need to do is ensure that the guest additions can install the Direct3D drivers without needing extra user interaction. I am not sure how this can be achieved, though I am wondering whether boot time install step could resolve the issue? How do other Direct3D driver suppliers normally deal with this?

The other thing we will need to establish is the proper procedure for installing Direct3D. For example do we need to install the DirectX drivers from Microsoft first? Also, now the that 3.0 has Direct3D support, can we simply continue using WineD3D drivers in place of the ones provided by the guest additions?
VB version: 6.x Primary OS: MacOS X 11.0.1 on Intel Mac
Technologov
Volunteer
Posts: 3342
Joined: 10. May 2007, 16:59
Location: Israel

Re: 3D Acceleration Support : WineD3D Analysis

Post by Technologov »

VBox 3.0 uses WineD3D. Just it is packaged inside Guest Additions, and tested together with VBox' OpenGL.
Post Reply