Инженер Valve Натали Вок предложила новое решение для Linux, которое улучшает работу игр на видеокартах с 8 ГБ VRAM и менее. За счёт грамотного перераспределения видеопамяти активному приложению, в первую очередь игре, выделяется максимум доступного ресурса, что снижает микрофризы и просадки FPS в тяжёлых проектах вроде Cyberpunk 2077.
Ранее ядро Linux не умело корректно расставлять приоритеты между приложениями, и при переполнении VRAM часть данных игры могла быть вытеснена в оперативную память ради фонового браузера или другого софта. В примере с Cyberpunk 2077 на видеокарте с 8 ГБ около 1,37 ГБ игровых данных оказывались в GTT, хотя сама игра использовала лишь около 6 ГБ видеопамяти. После применения исправлений использование VRAM выросло до примерно 7,4 ГБ, а объём данных в GTT снизился до 650 МБ.
Ключевой компонент решения — служба dmemcg-booster, использующая контроллер dmem в иерархии cgroup ядра Linux начиная с версии 6.14. Она сообщает системе, какое приложение нужно «защитить», то есть не позволять его буферам выталкиваться из видеопамяти. В случае нехватки VRAM в ОЗУ отправляются данные фоновых задач, а не игры, что делает использование 8 ГБ памяти заметно более эффективным.
Дополняет систему утилита plasma-foreground-booster для среды KDE Plasma: она автоматически определяет активное окно и передаёт информацию контроллеру dmem, чтобы приоритезировать его доступ к видеопамяти. Сейчас патчи уже интегрируются в дистрибутив CatchyOS и ожидают включения в основную ветку ядра Linux. Скачать и применить их можно на любой сборке, однако пока поддерживаются только видеокарты AMD — закрытые драйверы Nvidia не позволяют использовать новый механизм управления памятью. Решение особенно актуально на фоне появления игровых систем Valve с 8 ГБ GDDR6, но выиграть от него должны все пользователи Linux с аналогичными по объёму GPU.