It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
Granted, there are lot of nice Wine wrappers today designed to get you out of many binds, but I'm posting the following lines in the hope it will help some poor soul (much like myself until a couple of days ago) who wants to go MacGyver and setup his own Wine prefix and launchers.

The issue: A game starts up in Wine without any errors or interruptions, appears to render correctly, but turns out to be a complete slideshow. Performance varies from 0.1 frames per second to 3-4 frames per second.

The likely cause: For some reason, some games get locked by default (perhaps as a workaround designed for native Windows) to a single cpu/core, which happens to be cpu0 in Linux. The same said games do not like sharing the CPU with any other apps though, and since a LOT of things will be running on cpu0 in Linux, the performance hit is atrocious.

Affected games (a very short list): Jade Empire, Re-Volt, SimCity 4 and potentially may others.

The fix: Set the CPU affinity of the launched game process to any other core/cpu (careful with shared cores in SMT scenarios, as setting the affinity to cpu0's sister core can be as bad as it was running on cpu0), or set the affinity to all your cores. The latter approach may cause instability with some games though, so try a different cpu/core if you get any issues with all cpus/cores.

You can launch the affected .exe file using a similar bash script (example provided for Jade Empire):

#!/bin/bash
wine JadeEmpire.exe &
sleep 2
pid=`pidof JadeEmpire.exe`
taskset -p f $pid

Note that f is an all core mask for my native quad core CPU - it will target the first 4 cpus/cores on any system, but if you want to give the app a choice to run on any cpu/core, you can calculate your mask as per this guide.

Note: The "reverse" fix can be applied to stabilize games which often crash when not bound to a single cpu/core.

That's it! Happy gaming in Wine.
Post edited November 04, 2019 by WinterSnowfall
Thank you very much for this! Maybe one day I will run into a game suffering from this.

A reminder that SMT/HT are virtual cores that use openings in the task queue to insert more work, nowhere near as fast as physical cores.