If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Direct3D Performance Improvements Coming To Wine

09-04-2013, 01:20 AM

Phoronix: Direct3D Performance Improvements Coming To Wine

Stefan D?singer of CodeWeavers has been working on some Direct3D performance improvements for Wine by creating a separate command stream / worker thread for WineD3D. This work moves OpenGL calls into a seperate thread in order to improve performance while also fixing some outstanding bugs. This work can yield 50~100% performance improvements and in some cases making the games under Wine faster than on Windows...

Comment

I was kind of worried with all the support they'd been giving Mac users, that there wouldn't be any performance upgrades us Linux users would enjoy. I'm glad to see that's not the case.

Been using CrossOver 12.5.0, and have tried COD MW and COD MW2 and while they run, it lags horribly (on a GTX680 with 313 drivers). Hopefully no longer requiring StrictDrawOrdering will help that.

Stefan published on Monday the set of D3D command stream patches that go against Wine 1.7.1 and improve performance by offloading the drawing calls onto a separate CPU thread.

Is this a step in the direction of Wine supporting Multi-core CPUs? I'm not very tech savvy with regards to Wine development, so I don't really understand. If it is support for Multi-core CPUs, would that mean Guild Wars 2 may finally have a playable framerate?

I'm definitely looking forward to this, still wish that the CodeWeavers guys would implement some DX11 love before it's too late.

Comment

are these changes at all like the dx9 state tracker changes that came about a couple months ago, where they only effect the foss driver stack (ie, the ones that use gallium3d), or will closed drivers get a boost as well?

Comment

Nice- I may take a look and see if some of my new favorite games are working on WINE. Might as well move as much of my gaming to Linux as possible, right? Especially if it's so much more efficient with resources even in WINE. I hope they can work out the issues with this patchset and get it committed.

Comment

are these changes at all like the dx9 state tracker changes that came about a couple months ago, where they only effect the foss driver stack (ie, the ones that use gallium3d), or will closed drivers get a boost as well?

From what I can tell, this has nothing to do with the graphics drivers, but rather a change to how Wine itself handles the D3D code.

Also, the state trackers announced earlier weren't accepted by upstream Wine.

Comment

Okay, yeah, it's kinda buggy still. I tried running Skyrim (which runs pertty good already, framerate is generally lower than windows, but very playable). At first, it looked like everything was working, except there was some pretty bad mouse lag, and movement was pretty jerky. Than all of sudden, crash to desktop. Maybe I'll look into debugging it a bit later and see if I can get a log together to submit to a bug tracker.

Comment

TEST 2:
Okay, I tried running the FFXIV:ARR Benchmark, and I was pretty impressed by how much better the performance was. Most of the time it was smooth enough and looked decent (as long as you turn off Occulusion Culling and HDR). Downside though, there is still an awful lot of flickering going on with the UI and with nearly all effect animations. I thought this might help since the flickering issue was supposedly caused by some kind of multi-threading glitch in wine, but it appears it's still a problem. Caveats aside, there is clear progress in performance.

UPDATE:
I tried running the Character Creation part of the benchmark, and there didn't appear to be any UI flicker this time. Last time I tried this benchmark, the UI flickering was so bad I thought I was going to have seizure. Although, It was hard to tell, when ever I tried moving the model using the mouse, it seemed that framerate had a noticeable drop. I think there might be some kind of sync issue between the new multithreaded code and user input, but It's just a theory on my part.