Звідки взагалі береться фриз
Ігри постачають шейдери в переносному проміжному вигляді — байткоді на кшталт 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]