✨ Графика и рендеринг

Статтеры компиляции шейдеров: почему новые игры дёргаются в первый час и как это чинить

Статтеры компиляции шейдеров — рывки длительностью от десятков до сотен миллисекунд, возникающие, когда игра на DirectX 12 или Vulkan впервые встречает новую комбинацию материала и эффекта и вынуждена скомпилировать для неё шейдер (PSO) прямо во время кадра. Это самая частая причина «дёрганой» картинки при высоком среднем FPS в играх на Unreal Engine 4/5, и она лечится предварительной компиляцией при запуске и кэшем шейдеров драйвера.

shader compilation stutter · компиляция шейдеров · PSO stutter · shader cache · прекомпиляция шейдеров

📅 Обновлено 👥 Команда FPSHQ · методика

16.7 ms = 60 FPS33 ms = 30 FPS8.3 ms = 120 FPSровностаттерывремя →мс
Ровная линия времени кадра = плавность; пики = статтеры

Ключевые цифры

Из базы FPSHQ, срез 15.10.2026

Unreal Engine 4 · 40самый частый движок

Откуда берутся рывки

Шейдеры поставляются с игрой в промежуточном виде (DXIL/SPIR-V), а в машинный код конкретной видеокарты их переводит драйвер. В DirectX 11 драйвер делал это в фоновом потоке почти незаметно. В DX12 и Vulkan ответственность перешла к движку: он должен заранее создать Pipeline State Objects для всех сочетаний шейдеров, состояний смешивания и форматов. Если движок не знает заранее, какие сочетания встретятся, он компилирует их при первом появлении объекта — и кадр ждёт 50–300 мс.

Unreal Engine 4 долгое время не умел собирать полный список PSO, поэтому игры на нём (Jedi Fallen Order, Gotham Knights, многие проекты 2021–2023 годов) стали символом проблемы. В UE 5.1–5.3 Epic добавила PSO precaching и автоматический сбор, но правильное применение остаётся за разработчиком.

Как отличить от других статтеров

Признаки: рывки происходят при первом появлении нового эффекта, оружия, локации и исчезают при повторном прохождении того же места; после переустановки драйвера или обновления игры всё начинается заново (кэш сброшен); на графике времени кадра видны одиночные пики на фоне ровной линии.

Статтеры подгрузки с диска повторяются в тех же точках даже при втором прохождении; нехватка видеопамяти даёт регулярные пики при повороте камеры; ограничение процессора — постоянно «рваную» линию, а не одиночные пики.

Что делать

Если игра предлагает «компиляцию шейдеров» при запуске — дождитесь конца, даже если это 5–15 минут (Call of Duty, The Last of Us Part I, Horizon). В Steam держите включённой предварительную загрузку шейдеров (для Vulkan/Linux). Не чистите кэш шейдеров драйвера без необходимости; после обновления драйвера первые минуты в любой игре снова будут с рывками.

На ПК с мощным процессором компиляция проходит быстрее и рывки короче, поэтому для UE5-игр имеет смысл ядерный процессор с высокой частотой. Для DX12-игр без прекомпиляции помогает запуск под DX11, если он есть, — там кэш шейдеров ведёт драйвер.

FPSHQ

На вашем ПК

Введите видеокарту (и процессор) — посчитаем эффект «Статтеры компиляции шейдеров» по единой модели FPSHQ на примере Cyberpunk 2077.

Сохранить ПК в кабинете · Определить железо приложением · Оценка единой модели FPSHQ, не замер.

Где это применить на FPSHQ

Обсуждения на форуме

Пока нет тем с этим термином — спросите первым.

Коротко

Что такое Статтеры компиляции шейдеров?

Статтеры компиляции шейдеров — рывки длительностью от десятков до сотен миллисекунд, возникающие, когда игра на DirectX 12 или Vulkan впервые встречает новую комбинацию материала и эффекта и вынуждена скомпилировать для неё шейдер (PSO) прямо во время кадра. Это самая частая причина «дёрганой» картинки при высоком среднем FPS в играх на Unreal Engine 4/5, и она лечится предварительной компиляцией при запуске и кэшем шейдеров драйвера.

самый частый движок
Unreal Engine 4 · 40

Частые вопросы

Почему игра дёргается при высоком FPS?
Скорее всего, это компиляция шейдеров: при первой встрече нового эффекта игра собирает для него код, и кадр ждёт 50–300 мс. Со временем рывки исчезают.
Как убрать статтеры компиляции шейдеров?
Дождаться прекомпиляции при запуске, не сбрасывать кэш драйвера, обновить игру (разработчики добавляют PSO precaching), при наличии — использовать DX11-режим.
Помогает ли мощная видеокарта?
Нет: компилирует шейдеры процессор. Помогает быстрый многоядерный CPU и SSD; видеокарта на длительность рывка не влияет.
Что такое кэш шейдеров?
Папка, где драйвер хранит уже скомпилированные шейдеры, чтобы не собирать их заново. Очистка или обновление драйвера возвращает статтеры на первое время.

Источники

Команда FPSHQ · методика · методика расчёта · Обновлено

✏️ Нашли неточность? Предложите правку

Правки проходят модерацию. Укажите, что исправить, и, если есть, источник (ссылка на документацию NVIDIA/AMD/Intel, разработчика игры).

Скачайте приложение FPSHQ — оно определит железо и покажет FPS в ваших играх.

💻 Приложение для Windows