Твій оверлей показує, що відеокарта на 60%, а частота кадрів нижча, ніж ти очікував. Хтось каже тобі, що це обмеження з боку процесора, і ти йдеш читати про процесори.
Можливо. Але «відеокарта нижче за 100%» має щонайменше вісім пояснень, більшість із них не коштує нічого перевірити, а справжнє обмеження процесора — лише одне з них. Ця сторінка відсіює їх по одному.
Спершу — що це за відсоток насправді
Завантаження відеокарти — це частка часу, коли в неї була незавершена робота, а не те, наскільки важко вона працювала. Карта, що ліниво проходить тривіальне навантаження, може показувати 100%, бо щось завжди стояло в черзі; а карта, яка робить усе, що в неї просять, може показувати 60%, бо черга раз у раз порожніла. Це перша підказка й не більше: сама по собі вона не скаже, чого відеокарта чекала.
Експеримент, який вирішує це за дві хвилини
Зроби це раніше за все інше, бо він безкоштовний і однозначний.
- Запиши свою частоту кадрів на сцені, яку можеш повторити.
- Суттєво знизь роздільну здатність — не на один крок, а на великий крок.
- Виміряй ту саму сцену ще раз.
Якщо частота кадрів майже не зрушила, обмеженням була не відеокарта. Ти забрав більшу частину її роботи й не отримав нічого навзамін, отже, темп задавало щось інше.
Якщо частота кадрів зросла приблизно пропорційно, ти таки був обмежений відеокартою, а цифра завантаження вводила тебе в оману.
Це і є весь діагноз, і жодних інструментів для нього не треба. Усе, що нижче, з'ясовує, що саме це «щось інше».
Дешеві пояснення, за порядком
1. Ти вперся в обмеження
Якщо число, на якому ти зупиняєшся, — це рівно твоя частота оновлення, обмеження кадрів усередині гри, обмеження з боку драйвера або автоматичне обмеження функції зниження затримки, то ніде немає вузького місця: відеокарта простоює, бо ти сам сказав їй зупинитися. Це фальшива тривога, і на її відсів треба десять секунд.
2. Карту стримують, а не лишають без роботи
Відеокарта, яка не піднімає частоти, — це не те саме, що відеокарта без роботи. Під навантаженням драйвер сам назве причину, з якої тримає частоти внизу: тепловий захист, ліміт потужності, виставлений нижче за штатний, застосунок, який попросив її сповільнитися, або відсутній чи нещільно вставлений роз'єм живлення PCIe. Останнє — це карта, яка відмовляється підніматися, доки її не під'єднають як слід: проблема кабелю, а не налаштування. Сканування фризів питає про це драйвер під коротким навантаженням і повідомляє причини, які він назвав.
3. Гру обмежили частиною процесора
Непомітно, доки не почнеш шукати. Звужена маска прив'язки до ядер (affinity) або типовий CPU set на процесі гри означає, що все, що робить гра, мусить уміститися на цих процесорах, поки решта машини простоює. Серед джерел — старий скрипт-оптимізатор, ярлик зі start /affinity, скопійований із форуму, або програма керування процесами, налаштована один раз і забута.
Як перевірити: Диспетчер завдань → Відомості, правий клік на грі, Установити відповідність. Якщо позначені не всі процесори — ось твоя відповідь: розшир список там або прибери правило в тій програмі, яка його записала.
4. Гра працює не на тій відеокарті
На ноутбуці або на настільному ПК з увімкненою вбудованою графікою гра може малювати на слабшому адаптері. Дискретна карта тоді чесно показує низьке завантаження: вона нічого не робить. На якій відеокарті запускається гра розповідає, як прибрати вподобання, задане для окремої гри.
5. Лінк PCIe вужчий, ніж мав би бути
Варто перевірити один раз і варто дивитися на це тверезо. Половина ліній на тому самому поколінні може бути власною конструкцією плати — накопичувач M.2, що живиться з ліній процесора, ділить графічний слот, — і вдвічі вужчий лінк не зменшує частоту кадрів удвічі; скільки це коштує на твоїй карті, тут не виміряно. Діяти варто в іншому випадку: коли лінк узгодився нижче, ніж підтримують обидва кінці, — райзер, поганий контакт, лінія, яка не піднялася. Перевстав карту в слот.
6. Відеокарта чекає на дані, а не на процесор
Кадр, який ще не зібрано, лишає відеокарту без роботи, і причиною може бути повільне читання ресурсу, шейдер, який саме компілюється, або сторінки пам'яті, що повертаються з диска. На графіку завантаження це виглядає точнісінько як обмеження процесора, а проблема це інша — див. раптові просідання FPS в іграх.
7. Ядро, потрібне потоку рендеру, зайняте чимось іншим
Загальне завантаження процесора — тут неправильне число. Одне повністю завантажене ядро на восьмиядерній машині дає скромний загальний відсоток, а фонове завдання, яке тримає це ядро, стає в чергу поперед потоку рендеру.
Який вигляд має справжнє обмеження процесора
Коли список вище вичерпано, випадок, що лишився, справжній і має впізнаваний вигляд:
- Тест із роздільною здатністю нічого не дав. Це вимога, а не одна ознака серед кількох.
- Один потік близький до насичення, тоді як загальне число нічим не примітне. Дивись по ядрах; загальне число тобі цього не покаже ніколи.
- Гіршає від симуляції, а не від картинки. Натовпи, фізика, кількість гравців, дальність промальовування — а не якість текстур чи роздільність тіней.
- Часи кадрів рівні, але вперлися в межу, нижче якої не опускаються. Обмеження процесора — це стеля пропускної здатності, а не джерело викидів; якщо твоя проблема саме викиди, читай натомість високий середній FPS, але погані 1% low.
Запис також фіксує, скільки часу прогону минуло в блокуванні всередині виклику подання кадру — це тиск із боку відеокарти й черги, і що це число вище, то менше будь-яка зміна середнього FPS каже про щось на боці процесора. Як читати результат бенчмарку охоплює решту.
Що робити зі справжнім обмеженням процесора
Чесна відповідь така: здебільшого це не програмна проблема, а сторінки, які вдають протилежне, — це те, як люди опиняються зі списками значень реєстру.
- Увімкни профіль пам'яті у прошивці (XMP на Intel, EXPO на AMD), якщо він вимкнений. З усього в цій темі це єдиний пункт, за яким стоїть реальне опубліковане вимірювання, а машина, чия пам'ять працює на запасній частоті, — часта знахідка. Чиста інсталяція заради стабільних 1% low розбирає це з джерелами — зокрема й те, чому купити швидшу пам'ять і ввімкнути те, що вже маєш, — це різні заяви.
- Витрать запас, а не ганяйся за ним. Якщо зниження роздільної здатності нічого не змінило, підняти графічні налаштування нічого не коштує.
- Знизь налаштування з боку симуляції — саме вони й коштують тобі кадрів.
- Переконайся, що процес нічим не стриманий — перевірка прив'язки до ядер вище, а також будь-який job object чи правило пріоритету, що лишилося від чогось.
Що не допоможе
Вимикати одночасну багатопотоковість чи енергоефективні ядра: числа за цією порадою походять із джерел, які не опублікували жодної методики, тож ти обміняєш відому багатоядерну потужність на неперевірений приріст. Значення керування пам'яттю в ядрі та підміна роздільності таймера: тут їх відхиляють прямо, а виміряних доказів за ними немає ніде. Чистильники пам'яті: на машині, якій пам'яті не бракує, звільнити ще трохи не змінює нічого вимірного.
Пов'язане
- Раптові просідання FPS в іграх
- Високий середній FPS, але погані 1% low
- На якій відеокарті запускається гра
- Чиста інсталяція заради стабільних 1% low
Граєш у CS2? Які параметри запуску ще щось роблять і де в меню відео насправді лежать кадри: Низький FPS і фризи в CS2: виміряний контрольний список
Ця сторінка допомогла?
Чого бракувало або що не спрацювало? Ми читаємо кожну таку відповідь.
Якщо ця сторінка не розв'язала проблему, напиши нам — скажи, яку статтю ти читав, і ми виправимо статтю.