Most games are running pretty well with wine now, but almost always a little slower than on Windows. Games that already max-out my hardware become unplayable very fast, even if just a handful of frames get dropped. Those frames decide between heaven and hell.
At the time of this writing, two projects aim at improving the performance of wine – but the code of them is not yet available in the main project.
- wine-staging includes CSMT and provides support for patended S3TC textures. Without them, a lot of games refuse to work
- wine-nine is able to send DirectX9 instructions directly to the graphics processor instead of recalculating them into OpenGL calls first, which is very time-intensive. This only works with a recent MESA driver, though.
Both versions bring their own performance kick and stand on their own – but they can be combined:
- First I installed libtxc_dxtn – it has to be compiled two times, one time for 64bit and also for 32bit.
- Afterwards, I had to build the driver for my Radeon HD 6800 from the recent source code, because the last official release doesn’t support DRI3 and is therefore a bit slower
- I set the option “DRI” “3” in /etc/X11/xorg.conf.d/20-radeon.conf
- Now I modified a SlackBuild that gets the wine source and combines it with the latest patches from nine and staging.
- Last but not least:
Setting a symlink to make sure that the right d3dadapter will be loaded:
ln -s /usr/lib/d3d/d3dadapter9.so.1 /usr/lib64/d3d/d3dadapter9.so.1
and activating all graphics options in winecfg – done!
Now I can play Betrayer with the same performance than on Windows. Go f*ck off, Microsoft.
Update 5.10.2015: I took the SlackBuild from AlienBob and inserted my changes in there, so it’s possible to also build the 64bit version of wine and get all patches downloaded automatically. It also gets rid of the whacky symlink in step 5. 🙂