Содержание
Проблема 8 ГБ VRAM в новых играх упирается не только в объём памяти, но и в то, как ОС расставляет приоритеты. Инженер Valve Натали Вок (команда Linux-драйверов) предложила набор патчей для Linux, которые удерживают видеопамять за игрой в фокусе и выталкивают фоновые задачи в системную RAM.
Идея простая: если видеопамять забивается, первыми «переезжают» не ресурсы игры, а то, что заняли браузер, мессенджер или оболочка рабочего стола. Раньше ядро Linux могло выселить и саму игру, потому что не понимало, кого спасать в первую очередь.
Почему Linux с 8 ГБ VRAM начинает фризить даже при «свободной» памяти
Когда игре не хватает видеопамяти, Linux старается избежать краша и начинает выселять данные из VRAM в системную память. Для GPU это означает обращения через GTT (Graphics Translation Table) — таблицу, которая указывает видеокарте, что часть данных лежит в RAM, а не в VRAM.
Проблема в том, что без явного приоритета ядро может выселить не фоновые задачи, а саму игру. На практике это выглядит как рваный фреймпейсинг и подёргивания, даже если средний FPS ещё держится.
По тестам Tom’s Hardware, в Cyberpunk 2077 на видеокарте с 8 ГБ игра «проливала» в GTT 1,37 ГБ при том, что сама занимала около 6 ГБ VRAM. То есть запас был, но его съедали иные процессы, а ядро решало проблему самым неприятным способом.
dmemcg-booster: «защита» VRAM для активного приложения
Ключевое решение Вок называется dmemcg-booster (Device Memory Control Groups). Оно даёт системе сигнал: активное приложение нужно «защитить», то есть не выселять его буферы из VRAM в GTT, пока есть другие кандидаты.
Если фоновая задача просит видеопамять, она и уходит в более медленную системную RAM. И это важный нюанс: патчи не уменьшают потребление VRAM магически. Они перераспределяют её так, чтобы игра использовала доступный объём максимально полно.
На том же примере Cyberpunk 2077 после применения фиксов игра начала занимать почти 7,4 ГБ VRAM, а объём данных в GTT снизился до 650 МБ.
plasma-foreground-booster: помощь KDE с определением «главного» окна
Второй компонент называется plasma-foreground-booster. Он помогает связке с KDE: автоматически сообщает, какое окно сейчас на переднем плане, чтобы именно оно получало приоритет по VRAM.
Сейчас эти изменения интегрируют в CatchyOS. Параллельно патчи ждут включения в основную ветку ядра Linux.
Поставить патчи можно и в других дистрибутивах, но есть жёсткое ограничение: они работают только на AMD. У Nvidia управление памятью в драйверах закрыто, и такие правки на уровне ядра упираются в архитектуру проприетарного стека.
Описание проекта и материалы Натали Вок опубликованы здесь: VRAM-Mgmt-fixed.