Відеокарта не на 100%: як відрізнити обмеження процесора від решти причин

Низьке завантаження відеокарти має щонайменше вісім пояснень, і лише одне з них — обмеження процесора: ось порядок, у якому їх відсіюють, починаючи з безкоштовного експерименту, що вирішує питання за дві хвилини.

Твій оверлей показує, що відеокарта на 60%, а частота кадрів нижча, ніж ти очікував. Хтось каже тобі, що це обмеження з боку процесора, і ти йдеш читати про процесори.

Можливо. Але «відеокарта нижче за 100%» має щонайменше вісім пояснень, більшість із них не коштує нічого перевірити, а справжнє обмеження процесора — лише одне з них. Ця сторінка відсіює їх по одному.

Спершу — що це за відсоток насправді

Завантаження відеокарти — це частка часу, коли в неї була незавершена робота, а не те, наскільки важко вона працювала. Карта, що ліниво проходить тривіальне навантаження, може показувати 100%, бо щось завжди стояло в черзі; а карта, яка робить усе, що в неї просять, може показувати 60%, бо черга раз у раз порожніла. Це перша підказка й не більше: сама по собі вона не скаже, чого відеокарта чекала.

Експеримент, який вирішує це за дві хвилини

Зроби це раніше за все інше, бо він безкоштовний і однозначний.

  1. Запиши свою частоту кадрів на сцені, яку можеш повторити.
  2. Суттєво знизь роздільну здатність — не на один крок, а на великий крок.
  3. Виміряй ту саму сцену ще раз.

Якщо частота кадрів майже не зрушила, обмеженням була не відеокарта. Ти забрав більшу частину її роботи й не отримав нічого навзамін, отже, темп задавало щось інше.

Якщо частота кадрів зросла приблизно пропорційно, ти таки був обмежений відеокартою, а цифра завантаження вводила тебе в оману.

Це і є весь діагноз, і жодних інструментів для нього не треба. Усе, що нижче, з'ясовує, що саме це «щось інше».

Дешеві пояснення, за порядком

1. Ти вперся в обмеження

Якщо число, на якому ти зупиняєшся, — це рівно твоя частота оновлення, обмеження кадрів усередині гри, обмеження з боку драйвера або автоматичне обмеження функції зниження затримки, то ніде немає вузького місця: відеокарта простоює, бо ти сам сказав їй зупинитися. Це фальшива тривога, і на її відсів треба десять секунд.

2. Карту стримують, а не лишають без роботи

Відеокарта, яка не піднімає частоти, — це не те саме, що відеокарта без роботи. Під навантаженням драйвер сам назве причину, з якої тримає частоти внизу: тепловий захист, ліміт потужності, виставлений нижче за штатний, застосунок, який попросив її сповільнитися, або відсутній чи нещільно вставлений роз'єм живлення PCIe. Останнє — це карта, яка відмовляється підніматися, доки її не під'єднають як слід: проблема кабелю, а не налаштування. Сканування фризів питає про це драйвер під коротким навантаженням і повідомляє причини, які він назвав.

3. Гру обмежили частиною процесора

Непомітно, доки не почнеш шукати. Звужена маска прив'язки до ядер (affinity) або типовий CPU set на процесі гри означає, що все, що робить гра, мусить уміститися на цих процесорах, поки решта машини простоює. Серед джерел — старий скрипт-оптимізатор, ярлик зі start /affinity, скопійований із форуму, або програма керування процесами, налаштована один раз і забута.

Як перевірити: Диспетчер завдань → Відомості, правий клік на грі, Установити відповідність. Якщо позначені не всі процесори — ось твоя відповідь: розшир список там або прибери правило в тій програмі, яка його записала.

4. Гра працює не на тій відеокарті

На ноутбуці або на настільному ПК з увімкненою вбудованою графікою гра може малювати на слабшому адаптері. Дискретна карта тоді чесно показує низьке завантаження: вона нічого не робить. На якій відеокарті запускається гра розповідає, як прибрати вподобання, задане для окремої гри.

5. Лінк PCIe вужчий, ніж мав би бути

Варто перевірити один раз і варто дивитися на це тверезо. Половина ліній на тому самому поколінні може бути власною конструкцією плати — накопичувач M.2, що живиться з ліній процесора, ділить графічний слот, — і вдвічі вужчий лінк не зменшує частоту кадрів удвічі; скільки це коштує на твоїй карті, тут не виміряно. Діяти варто в іншому випадку: коли лінк узгодився нижче, ніж підтримують обидва кінці, — райзер, поганий контакт, лінія, яка не піднялася. Перевстав карту в слот.

6. Відеокарта чекає на дані, а не на процесор

Кадр, який ще не зібрано, лишає відеокарту без роботи, і причиною може бути повільне читання ресурсу, шейдер, який саме компілюється, або сторінки пам'яті, що повертаються з диска. На графіку завантаження це виглядає точнісінько як обмеження процесора, а проблема це інша — див. раптові просідання FPS в іграх.

7. Ядро, потрібне потоку рендеру, зайняте чимось іншим

Загальне завантаження процесора — тут неправильне число. Одне повністю завантажене ядро на восьмиядерній машині дає скромний загальний відсоток, а фонове завдання, яке тримає це ядро, стає в чергу поперед потоку рендеру.

Який вигляд має справжнє обмеження процесора

Коли список вище вичерпано, випадок, що лишився, справжній і має впізнаваний вигляд:

Запис також фіксує, скільки часу прогону минуло в блокуванні всередині виклику подання кадру — це тиск із боку відеокарти й черги, і що це число вище, то менше будь-яка зміна середнього FPS каже про щось на боці процесора. Як читати результат бенчмарку охоплює решту.

Що робити зі справжнім обмеженням процесора

Чесна відповідь така: здебільшого це не програмна проблема, а сторінки, які вдають протилежне, — це те, як люди опиняються зі списками значень реєстру.

Що не допоможе

Вимикати одночасну багатопотоковість чи енергоефективні ядра: числа за цією порадою походять із джерел, які не опублікували жодної методики, тож ти обміняєш відому багатоядерну потужність на неперевірений приріст. Значення керування пам'яттю в ядрі та підміна роздільності таймера: тут їх відхиляють прямо, а виміряних доказів за ними немає ніде. Чистильники пам'яті: на машині, якій пам'яті не бракує, звільнити ще трохи не змінює нічого вимірного.

Пов'язане

Граєш у CS2? Які параметри запуску ще щось роблять і де в меню відео насправді лежать кадри: Низький FPS і фризи в CS2: виміряний контрольний список

w0a не змінює жодного налаштування Windows, поки ти не попросиш, а твік зберігає старе значення, перш ніж записати нове. Бути в курсі

Ця сторінка допомогла?

Чого бракувало або що не спрацювало? Ми читаємо кожну таку відповідь.

Якщо ця сторінка не розв'язала проблему, напиши нам — скажи, яку статтю ти читав, і ми виправимо статтю.