
Почему игры компилируют шейдеры, я особенно хорошо запомнила благодаря The Last of Us Part I. Запускаешь игру, уже хочется наконец начать прохождение, а вместо этого приходится смотреть на проценты подготовки шейдеров и ждать. Меня такой процесс до сих пор раздражает, но если я вижу, что игра начала компиляцию, то не запускаю прохождение, пока она полностью не завершится до 100%.
На старом компьютере ожидание ощущалось намного сильнее и занимало больше времени. На нынешнем мощном ПК компиляция тоже иногда встречается, то есть сама необходимость никуда не исчезла, но проходит значительно быстрее. Со временем я привыкла воспринимать эти несколько минут как подготовку игры: лучше подождать сейчас, чем потом ловить неприятные фризы во время прохождения.
- Что такое шейдеры в игре простыми словами
- Почему игры компилируют шейдеры перед запуском
- Почему из-за компиляции шейдеров появляются фризы
- Почему я всегда жду компиляцию до 100%
- Почему The Last of Us Part I так запомнилась мне шейдерами
- Почему после первого прохождения фризы могут исчезнуть
- Почему после обновления драйвера шейдеры могут компилироваться снова
- Нужно ли самостоятельно очищать кэш шейдеров
- Почему мощный компьютер тоже может получить shader stutter
- Почему на консолях эта проблема обычно менее заметна
- Что Microsoft делает с проблемой shader stutter
- Что делать обычному игроку при компиляции шейдеров
- Коротко: зачем игры компилируют шейдеры
- Официальные источники
Что такое шейдеры в игре простыми словами
Шейдеры — это небольшие программы, которые видеокарта использует при формировании изображения. Они участвуют в расчёте того, как выглядят поверхности, освещение, тени, материалы и множество визуальных эффектов. Разработчик создаёт необходимые инструкции, но перед использованием их нужно подготовить в форме, подходящей конкретному графическому оборудованию и драйверу.
Microsoft объясняет, что скомпилированные шейдеры зависят от самой игры, видеокарты и установленного графического драйвера. Именно поэтому на ПК нельзя просто подготовить один универсальный набор и быть уверенным, что он одинаково подойдёт всем пользователям: у одного человека NVIDIA, у другого AMD или Intel, разные поколения GPU и разные версии драйверов.
В современных DirectX 12-играх за надписью вроде «Компиляция шейдеров» может скрываться не только подготовка отдельных шейдерных программ, но и связанных с ними состояний графического конвейера — PSO, или Pipeline State Objects. Для обычного игрока техническая разница здесь не так важна: смысл один — игра заранее готовит данные, необходимые видеокарте для последующего рендеринга сцен без задержек. Epic Games отдельно использует PSO precaching именно для уменьшения фризов во время появления новых материалов и объектов.
Почему игры компилируют шейдеры перед запуском
Причина довольно практичная: нужные графические программы можно подготовить заранее либо оставить часть этой работы на момент, когда соответствующий эффект впервые понадобится непосредственно во время игры. Второй вариант удобнее для быстрого запуска, но способен создать гораздо более неприятную проблему — кратковременное зависание кадра.
Microsoft описывает именно этот выбор. Если необходимые шейдеры компилируются заранее, пользователь некоторое время ждёт на загрузочном экране. Если компиляция происходит just-in-time, то есть непосредственно в момент первого использования, игра может на мгновение остановиться, пока необходимая графическая программа готовится для текущего GPU.
Поэтому мне логичнее дождаться 100% перед началом прохождения. Само ожидание мне не нравится, но я понимаю, зачем оно происходит: если игра предлагает подготовить шейдеры заранее, я предпочитаю дать ей закончить работу и уже потом начинать играть.
Почему из-за компиляции шейдеров появляются фризы
Shader stutter отличается от обычного постоянно низкого FPS. Игра может спокойно выдавать высокую частоту кадров, а затем при первом появлении нового материала, эффекта, противника или участка локации внезапно подвиснуть на короткий момент. После этого FPS снова становится нормальным.

Epic Games прямо пишет, что компиляция шейдеров и PSO способна создавать резкие пики нагрузки, которые проявляются в виде заметных кратковременных просадок кадра. Поэтому движок Unreal Engine использует предварительную компиляцию и кэширование PSO: чем больше нужных состояний подготовлено заранее, тем меньше работы приходится выполнять непосредственно во время игрового процесса.
У себя я встречала подобные фризы в разных играх, хотя конкретные названия уже не вспомню. Характерная особенность была именно в том, что со временем они становились реже, а затем могли полностью исчезнуть. Это хорошо совпадает с логикой кэширования: однажды подготовленные данные можно сохранить и использовать при следующих обращениях вместо повторения всей дорогостоящей работы.
Почему я всегда жду компиляцию до 100%
Если игра сама показывает отдельный экран подготовки шейдеров, я не начинаю прохождение раньше окончания процесса. Даже если есть возможность войти в игру, предпочитаю просто подождать.
У The Last of Us Part I это особенно показательно. В одной из официальных PC-заплат Naughty Dog исправляла проблему, при которой вход в игру во время фонового построения шейдеров мог привести к зависанию. Разработчики также неоднократно сокращали время shader building и предупреждали, что отдельные обновления запускают полный rebuild шейдеров.
Поэтому мой подход здесь довольно простой: если разработчик специально вывел процесс компиляции и показывает прогресс, мне проще дождаться окончания. Несколько минут загрузки раздражают, но резкие подвисания уже во время важной сюжетной сцены раздражают меня ничуть не меньше.
Почему The Last of Us Part I так запомнилась мне шейдерами
Именно The Last of Us Part I стала для меня игрой, с которой я сильнее всего ассоциирую компиляцию шейдеров. Я проходила PC-версию и хорошо помню ожидание подготовки перед игрой, особенно на старом компьютере.
При этом проблема была реальной и для разработчиков. Naughty Dog выпускала обновления с сокращением времени построения шейдеров, исправляла связанные с shader building сбои и отдельно указывала, когда после установки патча потребуется полный rebuild. В патче 1.1.0, например, разработчики одновременно улучшали время shader compilation, использование CPU/GPU и загрузку текстур и окружения.
На нынешнем ПК я по-прежнему иногда встречаю подготовку шейдеров в играх, но ждать приходится заметно меньше. То есть мощное железо не отменило сам процесс — оно просто сделало его для меня менее болезненным.

Если хочется посмотреть саму игру, The Last of Us Part I есть и в моём разделе «Пройденные игры» с переходом к полному прохождению.
Почему после первого прохождения фризы могут исчезнуть
Это как раз тот эффект, который я замечала сама. Новая сцена могла в первый раз ненадолго подвиснуть, а позже на том же участке проблема уже не повторялась или становилась намного менее заметной.
После успешной компиляции нужные данные могут попадать в shader или driver cache. Microsoft объясняет, что после подготовки шейдеры можно сохранить и использовать при последующих запусках, чтобы не выполнять ту же работу заново. Epic Games использует аналогичную идею с PSO-кэшем: одна из целей такой системы — исключить повторные runtime-hitches при уже известных состояниях графического конвейера.
Конечно, не любой исчезнувший фриз обязательно был вызван именно шейдером. Подтормаживания могут возникать из-за накопителя, нехватки памяти, загрузки ресурсов, фоновых процессов и других причин. Но характерный единичный фриз при первом появлении определённого эффекта или сцены, который впоследствии больше не повторяется, хорошо соответствует поведению shader/PSO compilation.
Почему после обновления драйвера шейдеры могут компилироваться снова
С этим я тоже сталкивалась. После обновления драйверов видеокарты в некоторых играх снова запускалась подготовка шейдеров, хотя раньше всё уже было загружено.
Причина в том, что скомпилированные данные зависят не только от самой игры и видеокарты, но и от драйвера. Microsoft прямо указывает, что обновление графического драйвера способно сделать старый shader cache недействительным, после чего необходимые данные приходится подготовить заново.
И это не только теория. Naughty Dog неоднократно выпускала патчи The Last of Us Part I, после которых требовался полный shader rebuild, а разработчики одновременно советовали использовать актуальные драйверы видеокарты. То есть повторная полоска компиляции после серьёзного обновления игры или драйвера сама по себе не означает, что что-то сломалось.
Нужно ли самостоятельно очищать кэш шейдеров

Я сама shader cache никогда специально не очищала. Если игра нормально работает, я вообще не вижу для себя причины регулярно вмешиваться в этот процесс.
Кэш существует именно для того, чтобы уже выполненную работу не приходилось повторять при каждом запуске. В документации Unreal Engine разработчикам даже предлагается принудительно очищать driver cache именно для тестирования «первого запуска», потому что существующий кэш способен скрыть фризы, которые настоящий новый пользователь увидел бы в первый раз.
Поэтому превращать очистку shader cache в обычную профилактическую процедуру я бы не стала. Если есть конкретная техническая проблема, можно разбираться именно с ней, но удалять рабочий кэш просто потому, что такая кнопка существует, для обычного игрока смысла немного: после этого часть компиляции придётся выполнить снова.
Почему мощный компьютер тоже может получить shader stutter
Это важный момент, потому что такие фризы легко принять за нехватку мощности. Я и сейчас на значительно более производительном компьютере иногда вижу подготовку шейдеров. Разница в том, что она проходит заметно быстрее.
Shader stutter появляется не обязательно потому, что видеокарта «слабая». Если игре внезапно понадобился ещё не подготовленный PSO или шейдер и она вынуждена ждать его компиляцию прямо во время кадра, даже быстрый компьютер может получить кратковременный скачок frame time. Epic Games именно поэтому рассматривает PSO precaching как способ предотвращения runtime hitches, а не как функцию только для слабого железа.
Производительность компьютера влияет на то, насколько тяжело ощущается подготовка и сколько она занимает, но хорошая предварительная организация шейдеров со стороны разработчиков тоже очень важна. Microsoft в 2026 году прямо называет долгую компиляцию и внутриигровой shader stutter двумя крупнейшими проблемами D3D12-приложений на ПК.
Почему на консолях эта проблема обычно менее заметна
Одна из причин — фиксированное железо. Разработчик точно знает, какое GPU и программное окружение используются на конкретной консоли, тогда как PC-версия должна работать на огромном количестве комбинаций видеокарт и драйверов.
Microsoft прямо противопоставляет эти ситуации: у консоли фиксированы GPU и driver environment, а на Windows существует большая матрица оборудования и версий драйверов. Именно эта вариативность долгое время усложняла распространение полностью готовых предварительно скомпилированных шейдеров для всех PC-пользователей.
Это не означает, что консоль вообще никогда ничего не готовит или не может получить собственные графические подтормаживания. Но у разработчиков намного меньше возможных аппаратных комбинаций, поэтому подготовить нужные данные заранее проще.
Что Microsoft делает с проблемой shader stutter
В последние годы Microsoft пытается перенести часть этой работы с компьютера игрока на инфраструктуру распространения игры. Технология называется Advanced Shader Delivery.
Смысл заключается в том, чтобы заранее собрать данные о необходимых шейдерах, скомпилировать подходящие варианты и доставить их пользователю вместе с игрой. Тогда при первом запуске системе уже не нужно выполнять весь объём работы непосредственно на компьютере игрока.

В мае–июне 2026 года Microsoft расширила публичную доступность Advanced Shader Delivery в Xbox PC app для поддерживаемых Windows 11 PC с AMD RDNA. Компания сообщает, что в поддерживаемых сценариях технология способна значительно сокращать первоначальные загрузки и устранять shader stutter, однако это пока не универсальная функция для каждой игры, магазина и видеокарты.
Что делать обычному игроку при компиляции шейдеров
Мой собственный подход очень простой: если игра предлагает дождаться компиляции перед началом, я жду до 100%. Особенно если это первое включение после установки игры, крупного патча или обновления драйвера.
Если же фризы продолжаются после полной подготовки шейдеров и повторяются постоянно в одних и тех же условиях, я бы уже не списывала всё автоматически на shader compilation. Причина может находиться в других компонентах компьютера, настройках графики, драйверах, накопителе или самой оптимизации игры.
И отдельно я бы не стала регулярно очищать shader cache без конкретной причины. Его задача как раз заключается в том, чтобы уже подготовленные данные оставались доступными при следующих запусках.
Коротко: зачем игры компилируют шейдеры
Почему игры компилируют шейдеры? Потому что видеокарте и драйверу нужно подготовить графические программы и связанные состояния, необходимые для отрисовки конкретной игры на конкретном ПК. Если часть этой работы заранее не выполнена, она может происходить прямо во время геймплея и проявляться короткими, но заметными фризами.
Для себя я придерживаюсь нескольких простых правил:
- Если игра показывает отдельную компиляцию шейдеров, я жду до 100%.
- Нормальный FPS не исключает единичные shader stutters.
- После первого появления сцены такой фриз может больше не повториться благодаря кэшу.
- После обновления игры или графического драйвера компиляция иногда начинается заново.
- Мощный компьютер ускоряет процесс, но не отменяет саму необходимость подготовки.
- Shader cache я сама без причины не очищаю.
- Если после полной компиляции игра продолжает постоянно тормозить, не стоит автоматически винить только шейдеры.
The Last of Us Part I для меня до сих пор остаётся самым запоминающимся примером. На старом компьютере ожидание шейдеров ощущалось особенно долго, а сейчас этот процесс проходит значительно быстрее. Меня он всё ещё раздражает, но я лучше немного подожду перед игрой, чем получу неприятное подвисание посреди важной сюжетной сцены.
Официальные источники
- Microsoft DirectX Developer Blog — Advanced Shader Delivery: What’s New at GDC 2026
- Microsoft DirectX Developer Blog — Introducing Advanced Shader Delivery
- Microsoft DirectX Developer Blog — Advanced Shader Delivery expands Public Preview with AMD
- Epic Games — PSO Precaching for Unreal Engine
- Epic Games — Shader Compilation, Framerate Hitches and PSO Caching
- Naughty Dog — The Last of Us Part I PC Patch Notes



