Stereoscopic 3D in Wine?

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
User avatar
SpawnHappyJake
Level 5
Level 5
Posts: 272
Joined: Sun Feb 06, 2011 5:57 am

Stereoscopic 3D in Wine?

Post by SpawnHappyJake »

When you play a "nomal 3D" game, whether it be Halo One or Skyrim, all the data needed to make a truly 3D experience is there, it's just that only one eye's viewpoint is rendered and sent to the screen.

There's this free download called the IZ3D 'driver' which has a free anaglyph mode. (Anaglyph means the two-color method to producing true 3D, in this case red-cyan.) It works great in Windows and makes all games that use DirectX 8 or higher steroscopic (two-eye) 3D.

I was wondering if this could work in Wine. Before you say "no," mind you that Zeckensack's works in Wine. So if Zeckensack's can intercept and alter graphics calls in Wine, and is a "driver" as I understand it, isn't it within grasp to get the IZ3D "driver" to also intercept and alter graphics calls in Wine?

I know that drivers, with a few specifically developed for exceptions, aren't supposed to work in Wine because Wine is not a kernel, though it mimics one. But I take it that the IZ3D 'driver' isn't a very driverish driver. In Windows I didn't see it as a driver installed to my graphics card. I don't think it's actually a driver in the sense that it tells the kernel how to communicate to hardware. So given its foo-driver status, I'm hopeful that it will work in Wine... similar to how Zeckensack's isn't really a driver (but looks like one?) and works in Wine.

So is this a doable thing, or am I asking for too much? Obviously if the game has its own built-in steroscopic 3D, like Minecraft, the steroscopic 3D would work in Wine, but I'm asking if there is a way to make games that don't have steroscopic 3D abilities of their own become steroscopic 3D in Wine.



I have tried to install just the IZ3D driver, version 1.13 (5443), into its own Wine prefix. I'm using Wine 1.3.35 compiled from source (normal 32-bit plain vanilla no-patches Wine) on Linux Mint 11 64-bit. Still haven't upgraded to kernel 3.x, plan to do that sometime this Christmas break. I'll confess that I'm using an ATI graphics card - Redwood [Radeon HD 5670].

It installs fine, then it "stubs out". Terminal output says it needs .NET 2.0, so I winetrick that in. Then I redo installing IZ3D via it's installer (it's an exe installer). Then IZ3D control center gives this pop-up error: "Error connecting to pipe, probably service don't running. Please try restart system or reinstall driver." And the only option to click is "OK". Then, with the control center window, comes another error message:

"Unhandled exception has occured in your application. If you click Continue, the application will ignore this error and attempt to continue. If you click Quit, the application will close immediately.

Not implemented.

Details Continue Quit"

Clicking "Details" on the above error message doesn't do anything, nor does clicking any of its buttons. The iZ3D control center is messed-up looking, and I'll upload a screenshot when I get back on my "unlimited" Internet access time.

I posted the important part of the terminal output at Pastebin, though not all of it, because my terminal doesn't remember that far back. Just go to line 202 because that's where I start installing the program after having installed dotNET20. Everything before line 202 is either me showing it "stubing out" for not having dotNET20 or me installing dotNET20 or me trying to install iZ3D before having dotNET20 installed.

Pastebin paste: http://pastebin.com/eXAcsthf

Jake
DaVince
Level 8
Level 8
Posts: 1099
Joined: Wed Oct 29, 2008 4:53 pm

Post by DaVince »

If it's a real Windows driver, it's not going to work with Wine. Wine runs Windows software, not drivers.

Note that I have not checked the details on the software itself. But it definitely sounds like it would hook into your existing drivers to generate the effect efficiently.
User avatar
SpawnHappyJake
Level 5
Level 5
Posts: 272
Joined: Sun Feb 06, 2011 5:57 am

Post by SpawnHappyJake »

Does hooking into a driver require an NT kernel, or is that all done at the user mode driver level?

Does Wine have dlls of the same file name as dlls used in Windows for DirectX, it's just that the dlls Wine has are wrappers rather than drivers? If they are at least dlls of the same file name, could they in theory still be "hooked"? You'd just be hooking a wrapper instead of the real driver. The wrapper should be able to handle everything the driver can. What is "hooking" anyways? Isn't that just chaining drivers together where one passes one thing to the next? If it's just passing data to Wine's wrapper, I don't see how iZ3D would be a problem for Wine.

Thanks for the reply. Wine is good stuff.

Cheers,
Jake
User avatar
SpawnHappyJake
Level 5
Level 5
Posts: 272
Joined: Sun Feb 06, 2011 5:57 am

Post by SpawnHappyJake »

Ok, screenshots.

Here's what the iZ3D control center should look like: Image

Here's what the control center looks like in Wine 1.3.35: Image

Also, notice the pink background it has in Wine. In Windows it is just the window you see (it's not a rectangle). Whereas Wine fills out the window with pink until it is a rectangle.

Jake
vitamin
Moderator
Moderator
Posts: 6605
Joined: Sat Feb 23, 2008 2:29 pm

Post by vitamin »

SpawnHappyJake wrote:Does hooking into a driver require an NT kernel, or is that all done at the user mode driver level?
Both. This means that you can not use the same tools to configure/activate stereo-3D on Linux and Windows.
Mateusz Stachowski
Level 3
Level 3
Posts: 71
Joined: Mon Apr 18, 2011 3:49 am

LWA_COLORKEY is not supported

Post by Mateusz Stachowski »

That pink background is probably a result of Bug 24890 - Window transparency with LWA_COLORKEY is not supported.
User avatar
SpawnHappyJake
Level 5
Level 5
Posts: 272
Joined: Sun Feb 06, 2011 5:57 am

Post by SpawnHappyJake »

Darn. Well, thanks for answering the question. Maybe someday there will be stero 3D in Wine via another method (not soon I realize).

How is it that a wrapper can get away without hooking with the kernel whereas iZ3D seems to not?

Jake
Locked