Инженер Valve, работающая над графическими драйверами, представила решение давней проблемы Linux — неэффективного распределения видеопамяти. Эти патчи нацелены на то, чтобы игры перестали «тормозить» из-за того, что система отдает драгоценные мегабайты фоновым процессам.
До этого момента ядро Linux не видело разницы между запущенной игрой и, например, браузером или Discord в фоне. Когда 8 ГБ видеопамяти заканчивались, ядро могло переместить активные данные игры в системную оперативную память (GTT). Поскольку пропускная способность оперативки в разы ниже, чем у VRAM, это приводило к статтерам (микрофризам) и резкому падению FPS, даже если видеокарта была достаточно мощной.
Valve внедрила механизм приоритезации через контроллеры cgroups (специальная функция ядра для управления ресурсами). Теперь система четко понимает, какое приложение находится на переднем плане. Если VRAM переполнена, система принудительно вытесняет в оперативную память данные фоновых приложений (того же Chrome), но удерживает данные активной игры в видеопамяти до последнего.
В Cyberpunk 2077 на видеокарте с 8 ГБ памяти использование системной памяти (GTT) упало с нескольких гигабайт до скромных 650 МБ. Это обеспечило гораздо более плавный геймплей без внезапных просадок.
На данный момент поддержка реализована для открытых драйверов AMD (RADV) и Intel. К сожалению, проприетарные драйверы NVIDIA пока остаются в стороне из-за закрытости их архитектуры управления памятью.
Источник: www.goha.ru