If you haven't yet, follow us on X (Twitter), Mastodon, or Bluesky to know when we post new articles, and join our Reddit or Subscribe to us on YouTube to check out our content and interact with our awesome community. Thank you for supporting us!
There are some wizards that are out there developing Linux drivers. I still remember when Linux was laughed at when it came to gaming performance, but here we are with tools like Proton, DXVK, and vkd3d that make it possible to play Windows games on Linux. On top of that, developers are optimizing consistently, with one of the more significant developments happening in April from Natalie Vick that optimized how VRAM is used and could improve handling on the Steam Deck. Now, there’s been a new development, and it could be massive for improving 1% low framerates and reducing stutters.

David Vernet found a way to boost 1% low framerates by up to 31.8% on the Steam Deck, which he did by improving the AMD P-State driver with a dynamic EPP boost mode. Vernet does this by adding a per-core EPP boost, which has shown some significant improvements for stability:
In active (EPP) mode the platform autonomously picks the operating point between min_perf and max_perf, biased by the EPP hint, and the kernel only rewrites the CPPC request on policy or limit changes. A workload dominated by one mostly-busy thread that takes frequent short sleeps (common in gaming workloads, for example) can fare poorly under this strategy. Each sleep decays the hardware's performance signal, causing post-wakeup bursts to start at a low operating point and inflating tail latency even though the CPU is essentially fully busy while work is available.
As mentioned above, the motivating case here is gaming. A game's main or render thread typically blocks briefly on a futex or a GPU fence every frame, and the resulting frequency droop shows up directly as stale frames and inflated frame-time percentiles.
Solving this at the cpufreq layer requires walking a fairly narrow path. Globally forcing EPP=performance fixes the tail but burns power on every core for every workload, which matters on handhelds where the CPU and GPU share a power budget. Raising min_perf on the busy core seems like the obvious surgical fix, but it pins the core at or above nominal even during micro-idle and vsync waits. On Van Gogh (Steam Deck) experiments that I ran, that perturbs the SMU's shared CPU/GPU boost management enough to regress the frame-time tail relative to doing nothing.
This series instead adds an opt-in, per-core EPP boost. When the epp_boost module parameter is enabled, an update-util hook samples each core's C0 residency (delta MPERF over delta TSC) at most once every 10 ms. If a sample shows the core at least 50% busy, the EPP field of its MSR_AMD_CPPC_REQ is set to performance (0) and held there until 300 ms pass without another busy sample, at which point the hook restores the request that policy management last stored in cppc_req_cached.
David Vernet - lore.kernel.org
This was tested using Civilization 6 on the Steam Deck as a benchmark, and the 1% low framerates were improved by 31.8%. Not only will this improve performance on the Steam Deck, but also on other AMD handhelds that are running Linux. We currently can’t use it just yet, because it needs those patches and a specific parameter to be set, but after review from AMD Linux Kernel engineers, it could be implemented, and we would see the benefits of it in the future.
This isn’t going to improve framerate in general, so don’t expect our average framerate to go up, but theoretically it would help out with stutters and 1% lows, which will make gaming on these devices significantly more enjoyable.
Source: Phoronix
If you enjoyed this article, check out the rest of the content on SteamDeckHQ! We have a wide variety of game reviews and news that will help your gaming experience. Whether you're looking for news, tips and tutorials, game settings and reviews, or just want to stay up-to-date on the latest trends, we've got you covered!






