Gaming On Wine: The Good & Bad Graphics Drivers
Stefan Dösinger, the Vienna-based CodeWeavers employee who is responsible for a great deal of the Direct3D/graphics work on upstream Wine, spoke at FOSDEM 2013 about gaming on Wine when it comes to graphics cards and drivers. This was one of several interesting Wine talks last weekend in Belgium, with the others being Support For Running Windows Apps On ARM With Wine, Wine-Mono Isn't Too Fit For .NET, and Wine On Android Is Coming For Running Windows Apps.
Before getting to the Phoronix-provided recording of Stefan's presentation, here's some of my notes for those that don't have the time to watch the video in full.
- The major features Wine needs are there from the available Linux GPU drivers. However, the open-source drivers are lagging behind on OpenGL 3.x support. (The best case scenario out of the open-source Mesa/Gallium3D drivers right now is mostly GL 3.1~3.2 support.)
- Upstream Wine still lacks adequate Direct3D 10 and Direct3D 11 support, but not much information was revealed here like when we might see working D3D 10/11 rendered Windows games on Wine.
- The reliability of Wine graphics support at time is questionable from support for advertised features, crashes, correct handling of corner cases, and hitting software fall-backs.
- Overall, the best Wine gaming experience is with the NVIDIA proprietary Linux graphics driver. To some surprise, the Mesa/Gallium3D drivers these days are performing fairly well for gaming with Wine.
- The AMD Catalyst proprietary graphics driver is mostly a crap wreck for Wine gaming. AMD Catalyst is doing better now than in past years, but is still "causing crashes now and then."
- Apple's OpenGL stack is (surprisingly) a mess.
- NVIDIA on Linux usually wins when it comes to performance, in addition to being most reliable as talked about above.
- Wine Direct3D games are much slower than Wine OpenGL for the same titles (that sport multiple renderers). There's overhead obviously in translating from Direct3D to OpenGL calls. "It's our own fault" and "Wine's D3D performance still sucks... The rest of Wine is OK."
- For the AMD R600g and Catalyst graphics drivers, both eat way too much time. The Catalyst driver's OpenGL support on Windows is also a big disappointment compared to OpenGL. "Catalyst still sucks" and R600g also hits memory pressure issues with Wine.
- For (old) Intel GMA X3100 graphics, Wine is causing a kernel panic though the Intel Mesa driver for this old IGP is outperforming the Windows Intel binary driver.
- Looking ahead for Wine's gaming performance, there's a lot of work to be done on the Direct3D module, there's a desire to have a Direct3D worker thread for Wine (similar to the Intel Mesa OpenGL threading), many game-specific problems to sort out, and other isolated bugs.
Watch the video embedded below to find out more of Stefan Dösinger's thoughts and his NVIDIA/Intel/AMD performance results. His benchmarking on Wine, Linux, and Windows was carried out via our open-source Phoronix Test Suite software. Stefan for the past couple years has been creating Wine-compatible test profiles for our software for numerous multi-platform games. Stefan is routinely using the Phoronix Test Suite and OpenBenchmarking.org for monitoring the daily performance of Wine to spot any regressions in the D3D/GL implementation in a timely manner.