Wine's Performance For Direct3D Gaming With Many Drivers
Here's a look at Wine's performance over time with various Linux graphics drivers along with a look at the current performance impact of the Direct3D command submission work.
Stefan Dösinger of CodeWeavers presented at FOSDEM at the start of February concerning graphics drivers and Wine's performance. I've already written some about Wine's Direct3D gaming performance and have been collaborating with Stefan for years on benchmarking and the usage of the Phoronix Test Suite and OpenBenchmarking.org for Wine. The detailed results shared in the FOSDEM presentation were generated using our open-source software.
For those that weren't in Brussels at FOSDEM, the slides were uploaded this morning in ODP form to the Wine Wiki. Here's some takeaways for those without the time to go through all of the data:
- The performance of upstream Wine right now is "unchanged" as is the NVIDIA legacy driver. However, having seen improvements with newer versions of Wine is the Radeon R600 Gallium3D driver while the R300 Gallium3D driver has already plateaued. The testing done by Stefan was between the Wine 1.5 and 1.7 development versions.
- This testing was able to uncover some R300 Gallium3D performance regressions that still need to be bisected.
- The big Wine Direct3D command stream/submission work that moves the D3D work into a separate CPU thread is still ongoing. This work by Stefan yields better CPU utilization in single-threaded games and easier synchronization with multi-threaded games.
- With the out-of-tree patches applied, the performance for many games running on Wine is improved and it "fixes a fundamental shortcoming [of Wine] compared to Windows." With the patches, some games now even run faster with Wine than Windows. Before this work will be upstreamed there's still lots of clean-up work to be done and other improvements.
- After merging the command stream work, there's work to be done in Wine for improving data streaming, Direct3D 10/11 support, GPU-side performance work, reducing the draw overhead in Wine, improving Wine's performance outside of the Direct3D layer, and fixing game-specific bugs.
Again, checkout the ODP slides for all the great performance details.
Stefan Dösinger of CodeWeavers presented at FOSDEM at the start of February concerning graphics drivers and Wine's performance. I've already written some about Wine's Direct3D gaming performance and have been collaborating with Stefan for years on benchmarking and the usage of the Phoronix Test Suite and OpenBenchmarking.org for Wine. The detailed results shared in the FOSDEM presentation were generated using our open-source software.
For those that weren't in Brussels at FOSDEM, the slides were uploaded this morning in ODP form to the Wine Wiki. Here's some takeaways for those without the time to go through all of the data:
- The performance of upstream Wine right now is "unchanged" as is the NVIDIA legacy driver. However, having seen improvements with newer versions of Wine is the Radeon R600 Gallium3D driver while the R300 Gallium3D driver has already plateaued. The testing done by Stefan was between the Wine 1.5 and 1.7 development versions.
- This testing was able to uncover some R300 Gallium3D performance regressions that still need to be bisected.
- The big Wine Direct3D command stream/submission work that moves the D3D work into a separate CPU thread is still ongoing. This work by Stefan yields better CPU utilization in single-threaded games and easier synchronization with multi-threaded games.
- With the out-of-tree patches applied, the performance for many games running on Wine is improved and it "fixes a fundamental shortcoming [of Wine] compared to Windows." With the patches, some games now even run faster with Wine than Windows. Before this work will be upstreamed there's still lots of clean-up work to be done and other improvements.
- After merging the command stream work, there's work to be done in Wine for improving data streaming, Direct3D 10/11 support, GPU-side performance work, reducing the draw overhead in Wine, improving Wine's performance outside of the Direct3D layer, and fixing game-specific bugs.
Again, checkout the ODP slides for all the great performance details.
8 Comments