https://bugs.winehq.org/show_bug.cgi?id=43277
--- Comment #48 from Hans Leidekker hans@meelstraat.net --- Created attachment 65276 --> https://bugs.winehq.org/attachment.cgi?id=65276 hack
Here's a hack that allows you to restrict Wine processes to a subset of the available cores. You can pass a CPU mask through the WINECPUMASK environment variable:
$ WINECPUMASK=0xff wine ...
This will tie Wine processes (including wineserver) to the first 8 cores. It will also limit the number of reported cores to 8.
To get a performance gain on Ryzen the mask should specify the cores of one core complex (CCX). Here's little bash script that computes the mask for the first CCX:
#!bin/bash cat /proc/cpuinfo | grep "^model name" | grep "AMD Ryzen" >/dev/null 2>&1
if [ $? -eq 0 ]; then NUM_CPUS=$(cat /proc/cpuinfo | grep ^processor | wc -l) echo "found $NUM_CPUS AMD Ryzen cores"
CCX_MASK=$(((1 << $NUM_CPUS / 2) - 1)) echo -n "first CCX mask: " printf "0x%x\n" $CCX_MASK fi
With this patch The Forest goes from 23 to 40 fps on a 16 core Ryzen CPU. It would be interesting to see if this also makes difference for the games mentioned here and in duplicate reports.