
Valve Linux Engineer Natalie Vock has developed new optimizations for GPU memory management, leading to notable FPS gains. Graphics card prices have been anything but normal due to the ongoing NAND/DRAM shortages, not to mention that all three GPU manufacturers have, for the time being, abandoned the consumer market in favor of the AI pot of gold, so folks looking for budget-friendly alternatives are often left with cards featuring 8GB VRAM or less. At one point, many questioned the relevance of purchasing such cards in 2025-2026, but recent reviews, including the one we have here, have shown that modern GPUs can still be used for gaming. Furthermore, engineers such as Vock are finding ways to fine-tune drivers to improve memory management, thereby unlocking further untapped potential in these budget cards.
Vock worked alongside Maarten Lankhorst from Intel and Maxime Ripard from Red Hat to create what is called the DMEM Group Controller. This new code helps prevent an event called memory eviction to help prioritize memory usage between the GPU’s VRAM and system memory by protecting data at the kernel level.
“With the dmem cgroup controller, the kernel now learns about “memory protection”. Memory being “protected” merely means that the kernel will go to significant lengths to avoid evicting that memory.”
– Natalie Vock
The DMEM Group Controller utilizes compile groups (cgroups) to achieve its optimizations by limiting system resources for certain tasks. Legacy memory handling often saw the system moving data from VRAM to system memory (GTT) unnecessarily, and the data transfer between the two but be exceedingly slow, thus creating stuttering and low FPS. Cyberpunk 2077, the poster child for new tech and how to push PC hardware, was used for testing. The result showed the dmemcg-booster app reducing the VRAM usage by 650 MB. There are detailed instructions for Linux users on how to implement the new optimizations, but a quicker path is to use CachyOS (with KDE as your desktop), as it includes the patches along with the package repositories. A Q&A document featuring instructions can be found here.
