https://bugs.winehq.org/show_bug.cgi?id=43277
--- Comment #42 from Roderick Colenbrander thunderbird2k@gmail.com --- (In reply to Luca from comment #41)
And I repeat, this issue occurs just in wine games, the CPU usage on native steam games is regular.
I meant a wine CPU scheduler issue.
I understand you are encounter performance issues (I'm a Ryzen user myself). However to me so far it looks like it are game issues, which are making poor choices for the cores they pin to (at least in Far Cry 3).
For your understanding, there is no CPU scheduler in Wine. Wine provides the same APIs on Windows allowing applications to determine detailed CPU information. Then we provide the Windows APIs applications can use to set 'affinity' (pinning threads to a particular core). This directly maps to standard pthread affinity API calls. In other words Wine exposes CPU information directly to the application, which can (if it chooses so) tell the Linux kernel how to map threads to cores. If an application doesn't do anything special, the Linux kernel will schedule the application in whatever way it thinks is best.
The fundamental issue is just that the application 'somehow' ends up using less optimal cores. I mean with less optimal is that the cores can be on other CCXes and if there is a lot of communication between the different CCXes this can affect performance. This is just how the Ryzen design works.
The cores are either picked by the application if it does core enumeration and setting affinity and in which case Wine is just a passthrough layer. If the game doesn't set affinity the Linux kernel will just pick based on what it thinks is best (e.g. CPU load, choice of Linux scheduler,..).
So far I'm more leaning towards unaware applications making poor CPU core choices.