Откуда вообще берётся фриз
Игры поставляют шейдеры в переносимом промежуточном виде — байткоде вроде DXIL, — а не на машинном языке конкретной видеокарты: в мире ПК живёт зоопарк архитектур от трёх вендоров и десяти поколений. Когда игра впервые запрашивает конкретное состояние конвейера — сочетание вершинных, пиксельных и геометрических шейдеров, режимов смешивания и форматов целей рендера, — драйвер компилирует именно это сочетание в нативный код, понятный вашей карте. Компиляция идёт на процессоре, как правило в одном потоке, пока кадр, которому она нужна, ждёт; видимый результат — микро-заморозка, которую игроки зовут шейдерным фризом.
Консоли обходят проблему тем, что они одна фиксированная платформа: разработчик компилирует все шейдеры под точную конфигурацию GPU и кладёт результат на диск. ПК-разработчики вместо этого опираются на экраны предкомпиляции — тот самый прогресс «компиляция шейдеров, 4 312 из 18 207», — которые выполняют основную работу сразу и оптом, и на кэши состояний конвейера (PSO), сохраняющие каждую скомпилированную комбинацию на диск, чтобы второе прохождение было гладким. Игры без обоих механизмов и фризят часами.
Кэши, которые спасают, — и чистка, которая ломает
Боль поглощают два слоя кэширования: собственный кэш PSO игры и кэш шейдеров драйвера — NVIDIA, AMD и Intel держат скомпилированное в папках вроде DXCache или GLCache внутри AppData. Агрессивная «очистка системы», стирающая эти папки, молча возвращает вам все фризы, которые вы уже оплатили своим терпением.
- Дождитесь экрана предкомпиляции: этот прогресс-бар — разработчик, который фризит за вас, оптом и до начала игры
- Не трогайте кэш шейдеров драйвера — NVIDIA DXCache, AMD DxCache и папки Intel внутри %LOCALAPPDATA% существуют, чтобы вторые встречи загружались мгновенно; их стирание возвращает фризы первых встреч
- Обновляйте драйвер видеокарты до крупного релиза, а не во время него: новый драйвер часто несёт новую версию компилятора, обнуляющую весь накопленный кэш
- Рассчитывайте, что первый час — худший: каждый новый уровень, ствол или эффект погоды запускает ещё нескомпилированные конвейеры; кэш наполняется, и фризы тают
- Не доверяйте «игровым бустерам» и убийцам процессов: компиляция — однопоточная работа процессора, и свободная оперативная память на неё не влияет
- Если в игре нет ни предкомпиляции, ни кэша PSO — это решение разработчика, а не вина вашего ПК: туда и стоит писать баг-репорт, а не переустанавливать Windows
Что не помогает
Большая часть народных советов про шейдерные фризы лечит не ту болезнь. Понижение настроек не спасает: те же конвейеры всё равно надо компилировать — дешевле их отрисовать можно только после. Чистка кэша шейдеров как «фикс» делает хуже во всех играх с локальным кэшем, кроме единственного легитимного случая — повреждённый кэш, роняющий игру при запуске, и для этого у игры есть собственная кнопка. Генерация кадров тоже не маскирует компиляционные фризы: интерполированные кадры строятся из застрявшего. Честный ответ — терпение и нетронутый кэш: дайте игре прогреться один раз, не стирайте кэш драйвера, и на втором прохождении проблема почти перестаёт существовать.
Вопросы и ответы
Почему новые игры фризят на мощном ПК?
Компиляция шейдеров при первой встрече: драйвер переводит их под вашу видеокарту, пока кадр ждёт. По мере заполнения кэшей игры и драйвера фризы уходят.
Помогает ли очистка кэша шейдеров поднять FPS?
Нет — она возвращает фризы, которые вы уже пересидели. Чистить стоит только повреждённый кэш, роняющий игру, и лучше штатной опцией самой игры.
Понятно до покупки: что входит в лицензию
Разовый 30-минутный триал даёт доступ к базовым инструментам. Возможности с меткой PRO остаются закрыты до активации платной лицензии.
Читайте также
Написать нам: [email protected]