http://bugs.winehq.org/show_bug.cgi?id=20602
Summary: thread/cpu affinity not correct with multi core enabled source engine games Product: Wine Version: 1.1.32 Platform: PC-x86-64 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: fzielcke@z-51.de
This is actually with current git HEAD de00535c13fba643c9c2bc178225be3cecafd92d not the 1.1.32 release.
Even if I enable the Multi Core support in Day of Defeat:Source or Team Fortress 2, the cpu mask is set to one CPU. I checked /proc/($pgrep hl2.exe)/status and also run both in a window with top running in the background and visible P column (last used CPU).
wine taskmgr shows an affinity of both CPUs. If I uncheck one and check one again then the main 2 threads needing CPU time run on both my cores.
This is a huge increase in performance for me. For example in ctf_2fort on a well visited server I get only ~10-20 FPS on the bridge if there's fighting and the hl2 process is locked on 1 core. Whereas if they run on both, it's good playable and I think it's somewhat around ~40 FPS.
It also works fine if I compile wineserver without HAVE_SCHED_SETAFFINITY I tried mat_queue_mode 2, too. mat_queue_mode -1 seems to be the default for multicore enabled.
So even if TF2/DoD:S have a bug to still force a CPU affinity of 1, wine taskmgr should at least display it correctly.
I use Debian sid + experimental. For compilation I use Debian 4.4.2-2 with CFLAGS="-march=native -pipe -O2"
Hardware is Athlon64 X2 4600+, 2 GiB RAM and a Geforce GTS 250 with the 190.42 Nvidia proprietary drivers.