In the past months I have been working on a command stream / worker thread for wined3d. It moves most OpenGL calls into a separate thread to improve performance (bug 11674) and fix some bugs that are otherwise hard to fix (24684).
Thank you, Stefan!
I applied your patches to the Ubuntu PPA that I maintain for Guild Wars 2 players:
https://launchpad.net/~foresto/+archive/winepatched/
I'm not seeing a spectacular difference with the CSMT patches, but I am seeing a difference.
I ran some quick tests in Guild Wars 2 while standing still outside the Lion's Arch bank, looking down at the forge with a moderate number of players milling about and fireworks being launched. Pierre Franco said (earlier in this discussion) that he gets better results when running with the -dx9single command line switch, so I tested with and without it. Note that I play with the WINEDEBUG=-all environment variable. Here are my results:
CSMT="disabled", running with -dx9single: 15-16 fps CSMT="enabled" running without -dx9single: 19-21 fps CSMT="enabled", running with -dx9single: 22-23 fps
So, almost 50% improvement for me, which is not what I remember when running natively under Windows, but is still a very welcome improvement.
I wonder if the 80%+ gains reported in other games are not to be seen in Guild Wars 2, or if they're heavily dependent on CPU, GPU, graphics driver, and screen resolution.
For the record, I'm using an Intel i5-3570K (stock speeds), GeForce GTX 660Ti (factory overclocked), nVidia driver 313.30, and a 1920x1200 display. I'm running Xubuntu 64-bit. My in-game options are:
Resolution: Full Screen - 1920x1200 Refresh Rate: Default Frame Limiter: Unlimited Interface Size: Normal Animation: High Anti-Aliasing: FXAA Environment: High LOD Distance: High Reflections: Terrain & Sky Textures: Medium Render Sampling: Native Shadows: Medium Shaders: Medium Post-Processing: High Character Model Limit: High Character Model Quality: High + Best Texture Filtering + Depth Blur + Effect LOD + High-Res Character Textures - Vertical Sync