Оновлення драйвера вбило мій FPS: як правильно діагностувати

Було корисно?

Ви оновили драйвер відеокарти, бо відповідально ставитеся до системи. Потім ваша гра перетворилася на фліпбук. FPS впав, фрамтайми виглядають як сейсмограф, і ви в одну підвіску від того, щоб відмовитися від оновлень назавжди.

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

Швидкий план діагностики (15 хвилин)

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

Крок 1 (3 хвилини): Доведіть, що це регресія, а не інше навантаження

  • Використайте ту саму збірку гри, ту саму сцену, той самий роздільник, ті самі налаштування, той самий файл збереження, ту ж карту, той самий кут камери, якщо можливо.
  • Перезавантажте систему один раз після встановлення драйвера. Драйвери люблять стан «очікування оновлень».
  • Вимкніть «одноразові» процеси: відтворення відео в браузері, копіювання файлів, завантаження оновлень гри.

Рішення: якщо ви не можете відтворити падіння в контролюваній сцені, у вас поки що не інцидент — просто шум.

Крок 2 (4 хвилини): Визначте клас вузького місця

  • Обмеження GPU: завантаження GPU близьке до максимуму, FPS змінюється зі зміною роздільності, зниження графіки допомагає.
  • Обмеження CPU: завантажені один- два ядра, завантаження GPU знижується, зниження роздільності мало допомагає.
  • Стутер/обмеження вводу-виводу: середній FPS нормальний, але фрамтайми мають спайки — читання з диска, компіляція шейдерів, стрімінг ассетів.
  • Проблеми планування/латентності: відчуття «липкого» вводу, тріск у звуці, спайки DPC latency, участь засобів захоплення/оверлеїв.

Рішення: оберіть наступний інструмент діагностики залежно від класу вузького місця. Не «пробуйте виправлення» навмання.

Крок 3 (4 хвилини): Усуньте звичних підозрюваних, яких драйвери опосередковано перемикають

  • Оверлеї/захоплення (Steam, Discord, GeForce Experience, Xbox Game Bar).
  • Політика енергоспоживання/продуктивності (схема живлення Windows, інструменти OEM для ноутбуків).
  • VRR / обмеження кадрів / поведінка V-Sync, що змінилися.
  • Перебудова шейдерного кешу після оновлення драйвера.
  • Перемикачі ReBAR / MPO / HAGS (залежно від гілки драйвера та ОС).

Рішення: якщо вимкнення однієї категорії відновлює продуктивність, ви знайшли взаємодію — не «ваша GPU стала повільнішою».

Крок 4 (4 хвилини): Відкат або чиста інсталяція на підставі доказів

  • Якщо регресія очевидна й відтворюється: відкотіться до останньої відомо доброї версії.
  • Якщо оновлення було «брудним» (залишки, збої, повторне виявлення пристрою): зробіть чисту інсталяцію.

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

Одна перефразована думка (атрибуція): Вернер Фогельс часто наголошує, що потрібно «будувати під відмови» й швидко вчитися з них — ставтеся до регресій як до даних, а не драми. (перефразована ідея)

Що насправді змінює оновлення драйвера (і чому падіння FPS)

Драйвер GPU — це не лише «нові оптимізації». Це движок політик. Він вирішує, як компілюються та кешуються шейдери, як ОС планує завдання, як змінюються енергетичні стани, як відбувається вирівнювання кадрів і як драйвер взаємодіє з функціями композиції на кшталт VRR і мультипланових оверлеїв. Він також може змінювати значення за замовчуванням. Значення за замовчуванням — це місце, де добрі наміри породжують найгірший бенчмарк.

Уявіть гру як конвеєр: введення → симуляція → draw calls → виконання на GPU → презентація. Оновлення драйвера може перенести «вузьке місце» в інший етап. Середній FPS може впасти. Або залишитися тим самим, тоді як фрамтайми стануть жахливими. Останнє трапляється частіше, ніж зізнаються люди, бо «комфорт погіршився» зазвичай означає проблему латентності/таймінгу, а не сирого пропуску.

Драйвери також доставляють виправлення помилок, які виглядають як регресії, бо перестають покладатися на невизначену поведінку. Деякі ігри (і моди) залежать від таких особливостей. Коли драйвер припиняє робити «випадково корисну» річ, ваш FPS «таємниче» змінюється. Таємниця в тому, що раніше ми з цим мирилися.

І так: іноді це просто поганий реліз. Трапляється. Завдання — довести це, ізолювати і вирішити, відкотитися, застосувати патч або підлаштувати середовище.

Жарт #1: Оновлення драйвера — як «невеликий рефакторинг» в п’ятницю: технічно правильно, емоційно небезпечно.

Цікаві факти та історичний контекст

  • «Профілі ігор» у драйверах — це давня історія: вендори GPU десятиліттями постачали оптимізації під конкретні ігри; новий драйвер може змінити поведінку для однієї гри, не торкаючись інших.
  • Тема вирівнювання кадрів стала масовою на початку 2010-х: середній FPS був нормальний, але нерівномірні фрамтайми робили гру гіршою, ніж цифри.
  • Затримки через компіляцію шейдерів — не новина: старі API й рушії більше компілювали офлайн; сучасні пайплайни часто компілюють чи спеціалізують шейдери під час виконання, а кеші залежать від драйвера.
  • WDDM змінив правила гри: модель драйверів Windows еволюціонувала між версіями, впливаючи на планування, управління пам’яттю та шляхи презентації — оновлення драйвера можуть «активувати» інші шляхи на тій самій збірці ОС.
  • Оверлеї історично підключаються до рендер-путів: лічильники FPS і інструменти захоплення часто інтегруються в графічні API; оновлення драйвера може змінити точки підключення й накладні витрати.
  • Мультиплановий оверлей (MPO) — частий підозрюваний: це функція композиції, яка може підвищити ефективність, але певні поєднання драйверів, моніторів і додатків за роки викликали стутер або мерехтіння.
  • Підтримка VRR розвивалася нерівномірно: поведінка G-SYNC/FreeSync залежить від прошивки монітора, політик драйвера та правил композиції ОС; оновлення можуть змінити обробку крайових випадків.
  • Управління живленням стало агресивнішим з часом: сучасні GPU й CPU швидко змінюють частоти; невелика зміна політики може вплинути на буст і стабільність фрамтаймів.
  • Resizable BAR (ReBAR) — сучасний поворот старої ідеї: відображення більших вікон пам’яті GPU може допомагати деяким навантаженням і шкодити іншим залежно від шаблонів доступу гри й евристик драйвера.

Спочатку вимірюйте: FPS — симптом, фрамтайм — хвороба

Коли хтось каже «мій FPS впав», я питаю: середній FPS чи 1% lows? Бо регресії драйвера часто вражають хвіст розподілу. Гра може писати «120 FPS», але ви відчуваєте підвіски через періодичні спайки 40–80 мс.

Фрамтайм — це час на створення одного кадру. Рівномірні 16,6 мс відчуваються плавно (60 FPS). Рівномірні 8,3 мс відчуваються плавно (120 FPS). Змішання 5 мс, 6 мс, 40 мс, 7 мс відчувається жахливо, навіть якщо середнє виглядає добре. Ваш мозок не усереднює — він скаржиться.

Отже: збирайте метрики, що розділяють пропускну здатність і латентність.

  • Середній FPS: пропускна здатність.
  • 1% / 0.1% lows: хвостова латентність кадрів.
  • Графік фрамтаймів: вирівнювання кадрів і спайки.
  • Завантаження GPU/CPU: де обмеження.
  • Режим подачі/шлях композиції: чи боретеся ви з десктопом.

Також: якщо ви оновили драйвер і одразу перезапустили бенчмарк, ви могли виміряти «прогрів шейдерного кешу», а не продуктивність. Перший прогін може бути поганим. Другий — реальністю. Третій — статистикою.

Жарт #2: Ваш FPS не «помер». Він просто чекає на крок компіляції, який переживає екзистенційну кризу.

Практичні завдання: команди, виводи та рішення (12+)

Ці завдання для систем Windows, бо саме там більшість інцидентів «драйвер вбив мій FPS». Я включив інструменти вендорів, де це релевантно. Використовуйте те, що підходить для вашої GPU.

Завдання 1: Підтвердьте версію та дату драйвера GPU (NVIDIA)

cr0x@server:~$ nvidia-smi
Tue Jan 21 10:14:02 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 555.42                 Driver Version: 555.42         CUDA Version: 12.5     |
|-----------------------------------------+------------------------+----------------------|
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  GeForce RTX 4070 Ti           Off  |   00000000:01:00.0  On |                  N/A |
|  36%   63C    P2              165W / 285W|   7340MiB / 12282MiB   |     96%      Default |
+-----------------------------------------+------------------------+----------------------+

Що це означає: у вас є конкретна версія драйвера для кореляції з регресією. Зверніть увагу на Perf state (P2 vs P0) і GPU-Util.

Рішення: якщо версія не та, що ви очікували (Windows Update «допоміг»), зупиніться і виправте походження драйвера до подальшого налаштування.

Завдання 2: Підтвердьте версію драйвера GPU (вбудовано у Windows)

cr0x@server:~$ powershell -NoProfile -Command "Get-CimInstance Win32_VideoController | Select-Object Name, DriverVersion, DriverDate"
Name                           DriverVersion    DriverDate
----                           -------------    ----------
NVIDIA GeForce RTX 4070 Ti     31.0.15.5542     12/18/2025 12:00:00 AM

Що це означає: версія драйвера з точки зору Windows плюс дата. Це ловить випадки, коли панель керування показує одне, а встановлений драйвер — інше.

Рішення: якщо дата/версія не збігаються з вашою «остання відома добра», у вас є вікно регресії. Чудово. Тепер можна бісектити.

Завдання 3: Переконайтеся, що ви випадково не працюєте на iGPU (поширено для ноутбуків)

cr0x@server:~$ powershell -NoProfile -Command "Get-CimInstance Win32_VideoController | Select-Object Name, AdapterRAM, VideoProcessor"
Name                         AdapterRAM   VideoProcessor
----                         ----------   --------------
Intel(R) Iris(R) Xe Graphics 1073741824   Intel(R) Iris(R) Xe Graphics
NVIDIA GeForce RTX 3060      12884901888  NVIDIA GeForce RTX 3060

Що це означає: обидва адаптери існують; гра могла змінити пріоритет після оновлення.

Рішення: якщо FPS різко впав і ви бачите iGPU активним в оверлеях або Диспетчері завдань під час гри, примусово призначте гру дискретній GPU у налаштуваннях Windows Graphics та в панелі управління вендора.

Завдання 4: Перевірте схему живлення Windows (бо «Збалансований» може бути вибуховим)

cr0x@server:~$ powercfg /getactivescheme
Power Scheme GUID: 381b4222-f694-41f0-9685-ff5bb260df2e  (Balanced)

Що це означає: у вас «Balanced». Це не автоматично погано, але часто є джерелом проблем із фрамтаймами на деяких системах.

Рішення: якщо фрамтайми погіршилися після оновлення і ви на Balanced, протестуйте High performance (десктоп) або OEM «Performance» режим (ноутбук). Вимірюйте; не вірте на слово.

Завдання 5: Перевірте, чи ввімкнено Game Mode (і чи корелює це)

cr0x@server:~$ powershell -NoProfile -Command "reg query HKCU\Software\Microsoft\GameBar /v AllowAutoGameMode"
HKEY_CURRENT_USER\Software\Microsoft\GameBar
    AllowAutoGameMode    REG_DWORD    0x1

Що це означає: Game Mode увімкнено. Зазвичай працює нормально; іноді взаємодіє з capture/overlays або фоновими завданнями погано.

Рішення: якщо проблема схожа на розриви в плануванні, протестуйте з вимкненим Game Mode і знову виміряйте ту саму сцену.

Завдання 6: Проінспектуйте HAGS (апаратне прискорення планування GPU)

cr0x@server:~$ powershell -NoProfile -Command "reg query HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers /v HwSchMode"
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers
    HwSchMode    REG_DWORD    0x2

Що це означає: HwSchMode=2 зазвичай означає увімкнено. Деякі системи люблять це. Деякі — отримують стутер.

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

Завдання 7: Перевірте, чи не скинувся ваш режим оновлення екрана (класично після драйверів)

cr0x@server:~$ powershell -NoProfile -Command "Get-CimInstance -Namespace root\wmi -ClassName WmiMonitorListedSupportedSourceModes | Select-Object -First 1 -ExpandProperty MonitorSourceModes | Select-Object -First 5"
HorizontalActivePixels VerticalActivePixels RefreshRate
---------------------- ------------------- -----------
1920                   1080                60
1920                   1080                120
1920                   1080                144
2560                   1440                60
2560                   1440                144

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

Рішення: якщо ви планували 144 Гц, а фактично 60 Гц — історія про обмеження FPS/латентність виглядатиме дивно. Виправте частоту, перш ніж ганятися за привидами.

Завдання 8: Перевірте, чи гра CPU- або GPU-обмежена (швидке живе семплювання)

cr0x@server:~$ typeperf "\Processor(_Total)\% Processor Time" "\GPU Engine(*)\Utilization Percentage" -sc 5
"(PDH-CSV 4.0)","\\HOST\Processor(_Total)\% Processor Time","\\HOST\GPU Engine(pid_1234_luid_0x0000_0x0000_eng_3D)\Utilization Percentage"
"01/21/2026 10:18:01.123","42.318","97.000"
"01/21/2026 10:18:02.123","45.102","98.000"
"01/21/2026 10:18:03.123","41.777","96.000"
"01/21/2026 10:18:04.123","43.550","97.000"
"01/21/2026 10:18:05.123","44.001","98.000"

Що це означає: завантаження GPU близько до максимуму при помірному CPU свідчить про обмеження GPU. Якщо завантаження GPU низьке, а CPU високе (або одне ядро високе) — ви CPU/планування-обмежені.

Рішення: якщо GPU-обмеження та FPS впав після оновлення драйвера — фокусуйтеся на налаштуваннях драйвера (живлення, фільтрація текстур, шейдерний кеш, VRR, обмеження кадрів). Якщо CPU-обмеження — зосередьтеся на плануванні, фонових процесах і поведінці CPU boost.

Завдання 9: Визначте топ-фонові споживачі CPU під час гри

cr0x@server:~$ powershell -NoProfile -Command "Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 Name,Id,CPU"
Name            Id      CPU
----            --      ---
Game.exe      1234  812.43
MsMpEng       4321  210.10
Discord       9876   55.22
chrome        2468   44.01
OneDrive      1357   21.88

Що це означає: Defender (MsMpEng) або служби синхронізації можуть жувати CPU і спричиняти стутер, особливо під час перебудови шейдерного кешу або коли гра часто записує логи/конфіг.

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

Завдання 10: Перевірте стан диска і чи інтенсивно навантажується диск гри

cr0x@server:~$ powershell -NoProfile -Command "Get-PhysicalDisk | Select-Object FriendlyName, MediaType, HealthStatus, OperationalStatus"
FriendlyName        MediaType HealthStatus OperationalStatus
------------        --------- ------------ -----------------
Samsung SSD 980 Pro SSD       Healthy      OK
WDC WD10EZEX       HDD        Healthy      OK

Що це означає: підтверджує, що ви не стрімите ассети з помираючого HDD, уявляючи, що все «окей».

Рішення: якщо гра на HDD і ви бачите стутер після оновлення, перенесіть її на SSD перед тим, як звинувачувати драйвер. Драйвери можуть змінювати поведінку шейдерного кешу й збільшувати навантаження на диск.

Завдання 11: Перевірте реальне дискове I/O під час відтворення підвисання

cr0x@server:~$ powershell -NoProfile -Command "Get-Counter '\PhysicalDisk(_Total)\Avg. Disk sec/Read','\PhysicalDisk(_Total)\Disk Reads/sec' -SampleInterval 1 -MaxSamples 5"
Timestamp                 CounterSamples
---------                 --------------
01/21/2026 10:22:11       \\HOST\physicaldisk(_total)\avg. disk sec/read : 0.085
                          \\HOST\physicaldisk(_total)\disk reads/sec : 420.000
01/21/2026 10:22:12       \\HOST\physicaldisk(_total)\avg. disk sec/read : 0.120
                          \\HOST\physicaldisk(_total)\disk reads/sec : 610.000
01/21/2026 10:22:13       \\HOST\physicaldisk(_total)\avg. disk sec/read : 0.015
                          \\HOST\physicaldisk(_total)\disk reads/sec : 95.000
01/21/2026 10:22:14       \\HOST\physicaldisk(_total)\avg. disk sec/read : 0.090
                          \\HOST\physicaldisk(_total)\disk reads/sec : 500.000
01/21/2026 10:22:15       \\HOST\physicaldisk(_total)\avg. disk sec/read : 0.010
                          \\HOST\physicaldisk(_total)\disk reads/sec : 80.000

Що це означає: спайки Avg. Disk sec/Read (наприклад, 80–120 мс) корелюють зі стагнацією стрімінгу ассетів. SSD зазвичай має набагато менші затримки під ігровим навантаженням, хоча спайки трапляються.

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

Завдання 12: Перевірте, чи GPU обмежений живленням або застряг у нижчому стані продуктивності (NVIDIA)

cr0x@server:~$ nvidia-smi -q -d PERFORMANCE | sed -n '1,120p'
==============NVSMI LOG==============
Timestamp                                 : Tue Jan 21 10:24:01 2026
Driver Version                            : 555.42
GPU 00000000:01:00.0
    Performance State                      : P2
    Clocks Throttle Reasons
        Idle                               : Not Active
        Applications Clocks Setting         : Not Active
        SW Power Cap                        : Active
        HW Slowdown                         : Not Active
        Thermal Slowdown                    : Not Active

Що це означає: ви в P2 і активний SW Power Cap. Це може трапитися через налаштування живлення, інструменти розгону або зміну налаштувань вендора.

Рішення: якщо SW Power Cap активний під час гри, коли раніше не було — перевірте режим живлення в панелі вендора, видаліть сторонні інструменти розгону і перевірте PSU/конектори. Не «виправляйте» це сліпо підвищенням ліміту потужності без розуміння причини.

Завдання 13: Перегляньте журнали Windows на предмет скидів драйвера дисплея (TDR)

cr0x@server:~$ powershell -NoProfile -Command "Get-WinEvent -FilterHashtable @{LogName='System'; Id=4101} -MaxEvents 5 | Format-Table TimeCreated, ProviderName, Message -AutoSize"
TimeCreated           ProviderName      Message
-----------           ------------      -------
01/21/2026 09:55:12   Display           Display driver nvlddmkm stopped responding and has successfully recovered.

Що це означає: драйвер перезапустився. Це може спричинити стутер, пониження частот або нестабільність, що виглядає як «падіння FPS».

Рішення: якщо після оновлення є TDR, припиніть тонке налаштування продуктивності і почніть налагодження стабільності: чиста інсталяція, видалення розгонів/аналогів зниження напруги, перевірка температур, перевірка живлення PCIe, розгляньте відкат.

Завдання 14: Захопіть трасу, сумісну з GPUView (просунутий, але вирішальний крок)

cr0x@server:~$ wpr -cancel
WPR session cancelled.
cr0x@server:~$ wpr -start GPU -start CPU -filemode
Recording...
cr0x@server:~$ timeout /t 15
Waiting for 15 seconds...
cr0x@server:~$ wpr -stop C:\Temp\fps_drop_trace.etl
WPR trace saved to: C:\Temp\fps_drop_trace.etl

Що це означає: ви захопили трасу, яку можна дослідити на предмет затримок у плануванні, проблем із презентацією та перекриття CPU/GPU.

Рішення: якщо траса показує довгі розриви в подачі роботи на GPU — вузьке місце на боці CPU (або накладні витрати драйвера). Якщо черга GPU повна й презентація блокується — дивіться VRR/V-Sync/взаємодію з композицією.

Три корпоративні міні-історії з практики

Міні-історія №1: Інцидент через неправильне припущення

У середній студії QA-лід позначив «регресію драйвера» на останньому релізі популярного вендора GPU. FPS впав на 25–30% у їхній бенчмарк-сцені. Настрій був знайомий: звинувачувати драйвер, писати вендору, тримати нотатки релізу під арештом.

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

Ми все одно віднесли це як інцидент SRE. Зафіксували навантаження: той самий хеш виконуваного файлу, той самий файл конфігурації, той самий шлях повтору, той самий стан шейдерного кешу. Також дифнули каталог конфігів гри до і після прогону. Сюрприз: новий драйвер змусив «перший запуск» скинути графіку в тій грі, що знову ввімкнуло витратну фічу, яку зазвичай тримали вимкненою в бенчмарках.

Після фіксації конфігу «регресія» зменшилася до помилки округлення. Залишився невеликий хвостовий зміну фрамтаймів, але не загальне падіння. Справжній винуватець — змінений параметр за замовчуванням і бенчмарк, який непомітно дрейфував.

Висновок: якщо ви не можете зафіксувати навантаження, ви не робите бенчмарків; ви граєте роль бенчмарку.

Міні-історія №2: Оптимізація, яка обернулася проти

Корпоративна ІТ-команда хотіла допомогти. Вони розгорнули новий драйвер по флоту робочих станцій інженерів — деякі для CAD, деякі для симуляцій, і так, деякі для післяробочого геймінгу. Драйвер обіцяв поліпшення продуктивності й виправлення безпеки, і вікно змін було «тихим».

Після розгортання група користувачів повідомила про стутер у іграх і в деяких візуалізаційних інструментах. Середній FPS був у нормі, але взаємодія відчувалася «липкою». Люди почали вимикати все: Game Mode, оверлеї, навіть другий монітор. Звичайні кроки.

«Оптимізація» полягала у ввімкненні набору низьколатентних та енергозберігаючих налаштувань через профіль управління. Намір був знизити температури й шум у відкритому офісі. Це спрацювало — температури впали. Але також упав і стабільний розподіл кадрів. GPU частіше коливались між станами, а спайки фрамтаймів збігалися з переходами станів.

Виправлення було нудне: встановити розумну, стабільну політику живлення для машин, що виконують інтерактивну графіку, і не нав’язувати глобально режим «низької латентності» для всіх. Також: тестуйте зміни на репрезентативній підмножині, а не на найгучнішій відеокарті в інвентарі.

Покращення продуктивності, які не вимірюються якістю взаємодії, — це просто вайби з адмінськими правами.

Міні-історія №3: Нудна, але правильна практика, що врятувала ситуацію

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

Команда мала політику: кожне оновлення драйвера вимагало «зняття відомої сцени», звіт про фрамтайми і план відкату. Ніхто цього не любив. Здавалося як паперова тяганина. Але вони тримали це, бо один поганий апдейт кілька років тому перетворив живу демонстрацію на слайд-шоу.

Цього разу новий драйвер вводив періодичні підвисання на мульти-екранних конфігураціях. Команда вже мала базові показники: та сама сцена, той самий хардвер, та сама збірка ОС. Регресія була очевидна в 1% lows і в трасі, що показувала затримки презентації, корельовані з активністю композиції.

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

Нудна практика — базові показники плюс план відкату — означала, що не треба було сперечатися про «реальність» проблеми. Були графіки. Керівники отримали плавну картинку. Інженери змогли спати.

Поширені помилки: симптом → корінна причина → виправлення

Тут час припинити запалювати свічки й почати користуватися мультиметром.

1) «FPS нижчий скрізь»

  • Симптом: Усі ігри впали на 10–30% після оновлення.
  • Корінна причина: Змінилася політика живлення (схема Windows, режим ноутбука, вендорський «optimal power»), або GPU знизив частоти через ліміт.
  • Виправлення: перевірте активну схему живлення; перевірте perf state GPU і причини троттлінгу; встановіть у панелі вендора режим, придатний для ігор; видаліть сторонні інструменти налаштування й повторно протестуйте.

2) «Середній FPS нормальний, але постійно стутерить»

  • Симптом: спайки фрамтаймів кожні кілька секунд; ввід відчувається нерівним.
  • Корінна причина: накладні витрати оверлеїв/захоплення, перебудова шейдерного кешу або фонове сканування (Defender), що зачіпає кеш-файли.
  • Виправлення: тимчасово вимкніть оверлеї; програйте сцену двічі, щоб прогріти кеші; обережно виключіть директорії шейдерного кешу з антивірусу; зупиніть фонові завантаження.

3) «Зниження роздільності не допомагає»

  • Симптом: 1440p і 1080p майже однаково показують низьку продуктивність.
  • Корінна причина: вузьке місце на CPU або накладні витрати драйвера. Іноді новий драйвер змінює поведінку багатопотоковості або збільшує CPU-витрати на один draw call.
  • Виправлення: виміряйте завантаження по ядрах; закрийте фонові процеси, що забирають CPU; перевірте, чи гра не переключилася в borderless з накладними витратами композиції; розгляньте відкат, якщо чистий повтор показує збільшення CPU-часу на кадр.

4) «У повноекрані відчуття гірше, ніж у borderless (або навпаки)»

  • Симптом: один режим відображення має гіршу латентність або стутер.
  • Корінна причина: різні шляхи презентації й взаємодія з композицією; невідповідність політик VRR/V-Sync.
  • Виправлення: протестуйте обидва режими з тим самим обмеженням кадрів; перевірте налаштування VRR; підтвердьте частоту оновлення; як експеримент, вимкніть MPO/HAGS, якщо докази вказують на проблеми з презентацією.

5) «Пошкоджена лише одна гра»

  • Симптом: один тайтл падає; інші в нормі.
  • Корінна причина: зміна профілю драйвера для конкретної гри, таймінг патчу гри, інвалідація шейдерного кешу для цього рушія або взаємодія з античитом/оврлеєм.
  • Виправлення: зафіксуйте збірку гри; очистіть і перебудуйте її шейдерний кеш; вимкніть сторонні хук-інструменти; протестуйте відкат драйвера для перевірки, а не з містичною вірою.

6) «Після оновлення завантаження GPU низьке»

  • Симптом: завантаження GPU падає до 40–70% при низькому FPS.
  • Корінна причина: обмеження CPU, фоновий процес відбирає час, проблеми з плануванням драйвера або гра працює на iGPU.
  • Виправлення: підтвердьте активний GPU; перевірте по-ядрове завантаження CPU; захопіть трасу при потребі; переконайтеся, що немає прихованого обмеження кадрів.

7) «FPS тепер обмежено 60»

  • Симптом: жорстке обмеження на 60, незалежно від налаштувань.
  • Корінна причина: частота монітора скинута на 60 Гц, V-Sync змушує підгортати до оновлення, у драйвері ввімкнено обмежувач кадрів або гра переключилася в інший режим відображення.
  • Виправлення: підтвердіть частоту оновлення монітора, тимчасово відключіть драйверні обмеження, протестуйте ексклюзивний повноекран проти borderless і перевірте вбудований ліміт в грі.

Контрольні списки / покроковий план

Контрольний список A: Перш ніж торкатися чогось (дисципліна базової лінії)

  1. Перезавантажте один раз після інсталяції драйвера.
  2. Виберіть одну відтворювану сцену (бенчмарк, реплей, тренувальний полігон, фіксований кут камери).
  3. Запишіть: роздільність, пресет графіки, налаштування DLSS/FSR, статус V-Sync/VRR, обмежувач кадрів, режим відображення.
  4. Запустіть сцену двічі; запишіть другий прогін (кеш прогрітий).
  5. Захопіть: середній FPS, 1% low, графік фрамтаймів, якщо є.

Контрольний список B: Ізоляція (змінюйте по одному параметру)

  1. Вимикайте оверлеї по черзі (Discord, Steam, Xbox Game Bar, оверлей вендора).
  2. Призупиніть фонові завдання (браузер, хмарна синхронізація, завантаження).
  3. Тестуйте перемикання HAGS.
  4. Перемикайте між повноекраном і borderless; повторно тестуйте.
  5. Переключайте VRR (G-SYNC/FreeSync) і стратегію V-Sync; повторно тестуйте.
  6. Спробуйте останній відомо добрий драйвер (відкат) для підтвердження регресії.

Контрольний список C: Коли підозрюєте проблему інсталяції

  1. Експортуйте поточні налаштування (скріншоти панелі керування підходять).
  2. Виконайте чисту інсталяцію драйвера (опція інсталятора вендора) і перезавантаження.
  3. Повторно протестуйте спочатку з дефолтними налаштуваннями.
  4. Застосовуйте лише ті налаштування, які ви можете обґрунтувати вимірюваннями.

Контрольний список D: Коли підозрюєте проблеми зі зберіганням або шейдерним кешем

  1. Підтвердьте, що гра знаходиться на SSD.
  2. Перевірте вільне місце (залиште запас; SSD не люблять бути переповненими).
  3. Спостерігайте за дисковою латентністю під час підвисань.
  4. Запустіть ту саму сцену кілька разів, щоб побачити, чи стутер зникає після перебудови кешу.
  5. За потреби очистіть шейдерні кеші (гри й драйвера) і перебудуйте один раз — потім виміряйте другий прогін.

Питання та відповіді

1) Чи завжди мені відкатувати, якщо FPS впав після оновлення драйвера?

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

2) Чому перший прогін після оновлення драйвера гірший?

Шейдерні кеші часто інвалідовуються при оновленнях драйвера. Гра перекомпілює або спеціалізує шейдери під час гри, спричиняючи спайки фрамтаймів. Вимірюйте другий прогін, а не перший панічний.

3) Середній FPS нормальний, але «відчувається» гірше. Що вимірювати?

Графіки фрамтаймів і 1% lows. Також перевірте режим презентації і поведінку композиції (повноекран проти borderless) та вимкніть оверлеї. «Відчуття гірше» зазвичай — проблема таймінгу або латентності, а не сирої потужності GPU.

4) Чи може Windows Update замінити мій драйвер GPU і зіпсувати продуктивність?

Так. Він може встановити іншу гілку драйвера або «безпечний» варіант. Підтверджуйте встановлену версію драйвера з точки зору Windows, а не лише панелі вендора.

5) Чи справді оверлеї так впливають на продуктивність?

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

6) Чи варто переключати HAGS, MPO або інші системні графічні функції?

Тільки коли у вас є симптоми, що відповідають проблемам планування/презентації (стутер, дивна латентність, аномалії borderless) і ви вимірюєте до/після. Навмання перемикати без даних — це культ упевненості.

7) Чому зниження роздільності більше не підвищує FPS?

Ймовірно, ви обмежені CPU або на вас діє обмежувач кадрів (V-Sync, ліміт, поведінка VRR). Якщо GPU не завантажений на повну, не продовжуйте «оптимізувати» графічні налаштування — ви налаштовуєте неправильну частину конвеєра.

8) Чи може зберігання впливати на FPS, якщо гра «виконується нормально»?

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

9) Яка найпоширеніша причина дивної поведінки після оновлення?

Зсув налаштувань: скидання частоти оновлення, зміни політики V-Sync/VRR, зміни режиму живлення, повторне увімкнення оверлеїв або перехід гри в інший режим відображення. Виправлення — перевіряти середовище перед тим, як звинувачувати драйвер.

10) Коли слід ескалувати до «серйозної» траси (WPR/GPUView)?

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

Наступні кроки, які ви можете зробити сьогодні

Робіть це в порядку. Свідомо нудно.

  1. Зафіксуйте сцену. Та сама точка, ті самі налаштування, вимірюйте другий прогін.
  2. Підтвердіть походження. Запишіть версію/дату драйвера з Windows і (за потреби) з інструментів вендора.
  3. Класифікуйте вузьке місце. GPU-bound, CPU-bound, I/O-bound або pacing/present-bound.
  4. Знищіть очевидні накладні витрати. Тимчасово вимкніть оверлеї/захоплення; призупиніть фонові завдання.
  5. Підтвердіть частоту оновлення й обмеження. Переконайтеся, що ви не впали до 60 Гц або не ввімкнули ліміт.
  6. Вирішіть: відкат чи чиста інсталяція. Відтворювана регресія → відкат для валідації. Хаотична поведінка/TDRs/збиті налаштування → чиста інсталяція і тест з дефолтами.
  7. Якщо застрягли — трасуйте. Захопіть WPR-трасу і дослідіть планування та поведінку презентації. Докази сильніші за форумні археології.

Суть не в тому, щоб ніколи не оновлювати драйвери. Суть — оновлювати як системи: вимірювати, ізолювати і мати шлях відкату. Ваша GPU ще матиме погані дні, але принаймні ви будете знати чому.

← Попередня
Збої SMTP AUTH (SASL) у Postfix: підводні камені конфігурації та порядок виправлення
Наступна →
MySQL vs PostgreSQL: «CPU 100%» — як довести, що це запити, а не обладнання

Залишити коментар