Москва: проверенные б/у ноутбуки с гарантией и проверкой перед оплатой
+7 906 722-94-45

Главная → Статьи → Шейдерный кеш и компиляция шейдеров на Radeon: что это и зачем

Компиляция шейдеров на Radeon: фризы при первом запуске — норма?

Что такое шейдерный кеш и компиляция шейдеров в драйвере Radeon: почему первые запуски игр фризят, где живёт кеш, когда его чистить и почему удалять его «для скорости» — ошибка.

Первый запуск новой игры на Radeon: короткие фризы, «подвисания» на сменах сцен, иногда длинная заставка «компиляция шейдеров». Через несколько запусков — идеально гладко. Это не дефект, а цена гибкости: шейдеры — маленькие программы графики, и драйвер готовит их под вашу машину. Разбираем механику и гигиену (обзор панели Adrenalin).

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

Механика. Игра содержит шейдеры в исходном виде (HLSL-подобные исходники); GPU исполняет машинный код своего поколения. Между ними — компиляция: драйвер переводит исходники в бинарник под конкретную архитектуру. Когда: при первом попадании шейдера в кадр (в играх без предварительной компиляции — это происходит «на лету», вызывая микро-подвисания) или заранее (игры со встроенной пре-компиляцией показывают заставку-прогресс). Кеш: результат сохраняется на диск — при следующих запусках компиляция не нужна: гладкий старт. Версия драйвера меняется → кеш инвалидируется (ключи кеша включают версию) → первая сессия после обновления снова «дышит». Всё логично; фризы первого запуска — плата, а не поломка.

Почему кеш нельзя «чистить для скорости»

Распространённый совет «удалите шейдерный кеш, станет быстрее» — анти-совет. Кеш — это уже готовые компиляции: его удаление гарантирует обратное — повторные компиляции, микро-фризы, дольше загрузки. Чистить кеш имеет смысл только при диагностике: артефакты после обновления драйвера (битые компиляции — редкий, но реальный случай), переполнение диска C. В Adrenalin есть кнопка сброса кеша шейдеров — пользуйтесь ею осознанно, не рутинно (чистая установка драйвера — другое дело). После сброса первая сессия снова «прогреется» — это ожидаемо.

Где живёт кеш и что он ест

Расположение: на диске в профиле пользователя (папки драйвера/игровых платформ); объём — от сотен МБ до единиц ГБ на библиотеку игр. Следствия. Диск: кеш пишет и читает часто — на быстром NVMe это невидимо; следите за свободным местом системного диска (скорость и здоровье диска). Версии: старые кеш-версии драйвер обычно подчищает сам. Ручная чистка (если очень надо): через Adrenalin-кнопку, а не удалением папок руками — утилита знает, что удалять безопасно.

Фризы первого запуска: как их смягчить

Практика прогрева. Способ 1: «прогревочная» сессия: после установки игры/драйвера — 10–15 минут игры с заходами в разные локации/меню: шейдеры скомпилируются, дальше — гладко. Способ 2: игры с предкомпиляцией: если игра предлагает «компилировать шейдеры» при запуске — разрешите, заставка со прогрессом лучше фризов в бою. Способ 3: не обновляйте драйвер в день важной сессии (инвалидация кеша гарантирована). Способ 4: если фризы повторяются не только при первом запуске — это уже не компиляция: смотрите троттлинг/фон (soak-диагностика; метрики).

Кеш и «прочие» кеши: не путать

Три разных «кеша», которые путают. Шейдерный кеш драйвера — предмет статьи. Кеш текстур/ассетов игры (Steam/лаунчеры) — про загрузки, не про фризы рендера. Кеш Pipelines конкретных движков (внутриигровая опция «удалить кеш») — игровая собственность, чистится из меню игры при её багах. Диагностическое правило: «фризы при появлении новых эффектов в первый раз» — шейдерный; «долгие загрузки» — ассеты; «стабильные артефакты» — битые компиляции/перегрев/память. Правильный диагноз — правильная кнопка: три кеша — три разных инструмента.

Итог

Шейдерная компиляция — стоимость гибкости графики, и кеш — её «память». Дайте новому запуску прогреться, не чистите кеш рутинно, обновляйте драйверы осознанно (готовясь к «первой сессии после»), и микроподвисания останутся в первом запуске, где им место. Понимание механики превращает «глючит!» в «прогревается» — мелочь, а спокойствия добавляет.

Пояснение для интересующихся «почему нельзя скомпилировать заранее всё»: игра может использовать тысячи вариантов шейдеров (комбинации эффектов × настройки качества × ветки кода), и заранее скомпилировать все — часы ожидания и гигабайты мусора для не использующихся путей. Поэтому индустрия выбирает компромиссы: пре-компиляция популярных путей (заставка с прогрессом в тяжёлых играх) + кеш-догоняющая компиляция остальных на лету. Драйверный кеш — «второй уровень» этой системы: что скомпилировал драйвер — лежит на диске для следующих запусков. Утверждение «кеш — святое» теперь выглядит логично: это накопленная работа вашей машины, которую глупо выкидывать ради мифической «чистки».

Дополнительная заметка для владельцев гибридных Radeon-машин: у iGPU и dGPU кеши свои (компиляция привязана к чипу, который рендерил), поэтому после переключения режима графики (или игры, переехавшей на другой GPU) ожидайте «прогрев первой сессии» заново — это не потеря кеша, а другой кеш. При хронической смене карт (MUX-переключения туда-сюда) возможны повторные прогревы — ещё один довод зафиксировать режим графики для конкретных игр вместо постоянного прыгания. Пара минут фиксации профилей — и компиляция перестанет быть сюрпризом, работая в фоне ровно там, где вы её оставили.

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

Кеш шейдеров может быть повреждён? Редко, но да: артефакты/краши после обновления драйвера — случай для сброса кеша через Adrenalin с последующим прогревом.

Почему после обновления Windows игра снова фризит? Событие, инвалидирующее кеш (драйверный стек обновился) — та же «первая сессия»; прогрев решает.

Сколько места допустимо отдавать кешам? Единицы ГБ — норма для большой библиотеки; при дефиците места чистите через Adrenalin и следите, чтобы диск не был забит (свободное место).

Влияет ли компиляция на задержку в игре? Одноразово во время компиляции (фризы); после — нет: кеш исполняется так же быстро, как свежая компиляция.