Unusual CPU Turbo behavior in MacOS
I posted this on the ESO support forum, and figured it was worth posting here also:
I accidentally stumbled across part of the reason why my 4k Elder Scrolls Online performance with the mac client is so poor, even with a Radeon VII. There is something very odd about how the cpu frequency behaves in ESO, especially in situations where the game can be heavily cpu bottlenecked.
I've been struggling to keep fps consistently above 40fps in open world areas of the game that in windows on the same hardware basically hover around 60-70fps. I've been running Activity Monitor with the gpu graph window open and Intel Power Tool to see what is going on with the CPU. Under normal circumstances, the gpu activity stays more or less maxed, and the cpu utilization bounces between 15-40 percent, which is more or less what I see in Windows. What isn't the same as windows is while I am playing the game, the cpu frequency bounces around between 2.6 and 3.7 ghz mainly staying about 3ghz on average. In Windows with ESO running, the cpu turbos to 4.1ghz (the max multicore turbo for my i7-8559u), and performance is very very close to my desktop i7-5960x overclocked to 4.3ghz.
The other day I was backing up my bootcamp partition using winclone. Winclone utilizes about 1 cpu core/thread and maxes it out. While it is running a backup, it bumps the cpu up to 4.1ghz more or less constant. I was running ESO while doing the backup and all of a sudden my fps was much higher by about 10-15fps. As soon as winclone finished, cpu frequency and game performance dropped back to what it was doing before.
I was able to reproduce the same behavior by running a terminal program I knew would max out one cpu thread. I opened terminal and ran:
yes > /dev/null &
I then ran eso, and the cpu was turboing to 4.1ghz and performance was much improved again.
In order to stop the "yes" process when I was finished I ran:
Now throughout all of this, I was also monitoring temperatures on the cpu, and it at most plateaud at 90 degrees c. Without another process causing the cpu to fully turbo up, the cpu is not power or temp throttling, but seems to be down clocking due to not being fully loaded? Does anyone know what defines turbo behavior in macos, (I assume the SMC and OS kernel do at least some of this). Why are games struggling to maintain max turbo when cpu oriented benchmarks actually behave better and achieve higher sustained turbo than in Windows.
I took some screen captures with yes running and not running: