Ти пройшов увесь список. Нічого не запущено, температури в нормі, диск швидкий, гра стоїть на SSD, а машину все одно смикає. Диспетчер завдань показує систему без навантаження. Графік часу кадрів показує запізнілий кадр, але нічого не каже про те, чому він запізнився.
Є одна причина, яка пояснює саме такий вигляд, і в усіх інструментах, до яких зазвичай тягнуться, вона невидима, бо відбувається під ними.
Спершу чесне речення. Виправлення для драйвера, який тримає ядро, — це сам цей драйвер, від його виробника. Частина w0a — це вимірювання, ім'я файла і виправлення значень, які лишили старіші програми. Єдиний перемикач, який він колись пропонував поруч із цим, — спрямування переривань пристрою на вибрані ядра, — з 8 жовтня 2026 року працює лише на читання, бо жоден A/B-тест у грі так і не показав завдяки йому жодного здобутого кадру.
Що насправді відбувається
Пристрій — мережева карта, контролер диска, звуковий чип, контролер USB — потребує уваги процесора. Він піднімає переривання, і Windows негайно виконує процедуру обслуговування переривання цього драйвера. Ця процедура працює вище за будь-який пріоритет потоку, який взагалі існує: це не «високий пріоритет», а взагалі поза планувальником потоків. Доки вона не повернеться, на це ядро не можна поставити нічого іншого.
Оскільки місце це дороге, драйвери мають робити там мінімум і відкладати решту у відкладений виклик — DPC, — який виконується трохи згодом, усе ще поперед будь-якого потоку на цьому ядрі.
Поки виконується будь-яке з двох, це ядро нічого не малює і не читає ввід. Якщо на ньому був твій потік рендеру — твій кадр запізнився. Якщо за ним стояв у черзі звіт твоєї миші — запізнився твій ввід. І жодна з цих подій не з'являється в диспетчері завдань, бо немає процесу, якому її можна приписати.
Чому тут одна мілісекунда — це багато
Вартою гонитви це робить проста арифметика:
- На опитуванні 1000 Гц звіт приходить щомілісекунди. Утримання на 1 мс коштує одного звіту.
- На 240 Гц кадр триває 4,2 мс. Утримання на 1 мс — це приблизно чверть бюджету кадру, витрачена ні на що.
- Від 4 мс і вище машина не втримає рівного часу кадру, хоч що б ти ще змінював, — тому це місце в списку перед усім іншим, а не після.
Як це виміряти і два способи, якими вимірювання зривається
Тест затримки у w0a відкриває сеанс трасування ядра і записує протягом дванадцяти секунд справжнього руху мишею, скільки кожен драйвер тримав ядро. Йому потрібні права адміністратора. Чому тест просить дванадцять секунд пояснює тривалість; як читати тест затримки пояснює кольори.
Два результати не є відповідями, і обидва так і повідомляються, а не округлюються донизу до «чисто»:
- Сеанс не вдалося відкрити. Можливо, драйвер античиту забрав трасування ядра собі. Закрий гру й виміряй ще раз.
- Сеанс відкрився й нічого не приніс. У жодного працюючого Windows не буває нуля виконань драйверів за дванадцять секунд, тож це вимірювання, якого не відбулося. Прожени його ще раз.
Є й третій, тонший: сеанс, який втратив події, міг узагалі проґавити найгірше виконання, тому сторінка каже, що це число може не бути справжнім найгіршим. Це той самий принцип, який сканування фризів застосовує всюди: правило, яке не змогло виконатися, рахується як не перевірене, а не як чисте.
Числа, точно
| Число | Правило |
|---|---|
| Тривалість тесту | Типово дванадцять секунд: досить довго, щоб спіймати драйвер, який поводиться погано раз на секунду, і досить коротко, щоб ти справді рухав мишею весь цей час. |
| Достатньо даних миші | Дві секунди власних звітів пристрою, і ніколи не менше ніж 250 вибірок; для миші на 1000 Гц це 2 000. Нижче цього 99-й процентиль — це друга чи третя найгірша вибірка, а не статистика. |
| Вердикт щодо драйвера | Найгірше одиничне виконання драйвера позначається як попередження від 1 мс і як критичне від 4 мс. Це межі, якими ця галузь користується вже два десятиліття; це домовленість, а не вимірювання, яке w0a зробив на твоїй машині. |
| Повне вимірювання | Числа драйверів вважаються повними лише тоді, коли сеанс трасування ядра відпрацював і не втратив жодної події. Лічильник, який відмовляється відповідати, вважається прогоном із втратами, а не чистим. |
| Нижня межа системи | 99-й процентиль миші плюс половина інтервалу оновлення плюс найгірше виконання драйвера — останнє лише тоді, коли частину ядра було виміряно, бо додавання нуля за невиміряне ядро вивело б гарніше число саме тоді, коли інструмент знає найменше. Це нижня межа, а не сума: власне опитування вводу в грі, її черга рендерингу, робота GPU і відгук панелі — усе це поза нею. Затримка вводу, яку не виправить жодна програма — це решта ланцюжка. |
Як читати список
Кожен драйвер стоїть у списку зі своїм ім'ям файла, найдовшим одиничним утриманням, часткою виміряного часу й кількістю запусків. Сортуй за найдовшим утриманням: саме це число коштує тобі кадру.
Два прочитання, які роблять неправильно:
- Жовтий рядок — не проблема, яку ти мусиш полагодити. Це кандидат. Без симптому він нічого не пояснює, і в багатьох цілком здорових машин такий рядок є.
- Довгий обробник переривання гірший за довгий відкладений виклик тієї самої тривалості. Під час відкладеного виклику інші переривання ще можуть обслуговуватися; під час обробника переривання на це ядро не проходить узагалі нічого. Сторінка позначає випадок, коли найгіршим у драйвера було переривання.
Який файл до чого належить і що робити з кожним
Ім'я файла — це і є вся підказка, а родина, до якої він належить, вирішує, яким буде виправлення:
| Родина | Що це | Що справді допомагає |
|---|---|---|
| Бездротова мережа | Драйвер адаптера Wi-Fi | Драйвер самого виробника замість загального, який постачає Windows Update. Кабель прибирає цей рядок повністю. |
| Дротова мережа | Мережева карта плати або окрема | Драйвер від виробника плати. Вимкнення модерації переривань цей рядок не лікує: без неї пакети більше не збираються в пачки, кожен отриманий пакет викликає власне переривання, і драйвер працює не рідше, а частіше. Тому сторінка «Інтернет» не чіпає модерацію переривань на машинах із менш ніж шістьма фізичними ядрами — див. мережеві твіки. |
| Накопичувач | Контролер на шляху до твого диска | На NVMe спробуй штатний драйвер Windows і фірмовий та залиш той, з яким тест затримки показує менше значення. Сторонній драйвер накопичувача варто прибрати. |
| USB | Хост-контролер | Драйвери чипсета і перенесення миші в порт на платі, а не за хабом. |
| Звук | Кодек і все, що на нього накладено | Драйвер виробника; якщо не минає, загальний звуковий драйвер Windows зазвичай знижує це. Утиліти RGB і звуку працюють на цьому ж шляху. |
| Дисплей | Драйвер відеокарти | Сайт самого виробника. Якщо почалося після оновлення, відкотися на попередню версію. |
| Власні компоненти Windows | Час, витрачений за іншого драйвера | Тут нема чого «оновлювати» окремо — виправлення драйверів вище знижує і цей рядок. |
| Керування живленням | Шлях, який змінює частоти й стани простою | Підняти мінімальний стан процесора і зменшити глибину C-станів у прошивці — обидва скорочують його, і обидва піднімають споживання в простої. Це обмін, а не виправлення. |
Окремого рядка тут заслуговує драйвер-фільтр. Програми формування трафіку й перенаправлення з'єднань пропускають кожен пакет через власний драйвер, і багатосекундні мережеві ривки — їхній найвідоміший побічний ефект; сканування фризів називає їх, коли знаходить. Те саме стосується макронаборів і програм підсвітки, які ставлять фільтр у шлях миші та клавіатури.
Виправлення і не-виправлення
Виправлення — оновити саме той один драйвер, у виробника заліза. Не всю систему, не через програму-оновлювач драйверів і не перевстановленням Windows. Сторінка називає файл точно, щоб ти міг знайти, якому пристрою він належить.
Що цього не виправляє і саме тому тут відхиляється: підміна роздільності таймера, значення керування пам'яттю в ядрі (DisablePagingExecutive, LargeSystemCache) і списки значень реєстру, які ходять під словом «латентність». Жодне з них не змінює того, скільки драйвер тримає ядро, бо тримає його код самого драйвера. Вимикати пристрої навмання — теж не діагностика, хоча вимкнути один пристрій як перевірку, з вимірюванням до і після, — цілком добрий експеримент. Те саме стосується значень рівня пристрою, які ходять разом із цими списками: MSISupported перемикає режим переривань пристрою, і якщо виставити його неправильно, результатом може бути чорний екран, тому w0a ніколи його не записує, а картка відновлення спрямування переривань нижче його не чіпає.
Два сусідні налаштування, яких торкається w0a
Політика переривань пристрою: лише читання, з карткою відновлення
Де Windows її зберігає: для кожного пристрою, у HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI\<device>\<instance>\Device Parameters\Interrupt Management\Affinity Policy. DevicePolicy (DWORD) визначає, як розміщуються переривання пристрою; коли воно дорівнює 4, «указані процесори», AssignmentSetOverride — це маска процесорів, якими вони можуть користуватися.
Стандарт Windows: жодного з двох значень немає. Тоді Windows сам обчислює розміщення, а Microsoft радить стандартну політику всюди, де вона застосовна.
Що робить w0a: читає ці значення й не записує їх. З 8 жовтня 2026 року спрямування, яке він колись пропонував зі сторінки «Тест затримки», прибрано, з трьох причин: жоден A/B-тест у грі не показав завдяки йому здобутого кадру, Microsoft радить розміщення, яке обчислює Windows, а неправильна маска — це пристрій, який не запускається.
Шлях назад: якщо якась програма прив'язала переривання пристрою і щось зламалося — миша відпадає, «Код 10» у Диспетчері пристроїв, — картка Спрямування переривань пристрою видаляє обидва значення з усіх пристроїв PCI, зокрема й спрямування, яке лишили старіші версії w0a. Вона просить перезавантаження лише тоді, коли справді щось прибрала, і не чіпає MSISupported.
«Під навантаженням: вимкнути контроль потоку, модерацію переривань і об'єднання сегментів» (сторінка «Інтернет»)
Що записує: 0 у ключове слово *FlowControl мережевого адаптера, на кожному адаптері, який його оголошує. *InterruptModeration, *RscIPv4 і *RscIPv6 записуються лише на машинах щонайменше із шістьма фізичними ядрами і лише на адаптерах, про які відомо, що вони працюють на швидкості нижче 2,5 Гбіт/с; на цих машинах прапорець також вимикає об'єднання сегментів на рівні мережевого стека, якщо воно ще не вимкнене.
Чому модерація лишається ввімкненою на менших машинах: коли модерацію й об'єднання обидва вимкнено, кожен отриманий пакет стає окремим перериванням, а не одним на інтервал модерації, і навантаження відкладених викликів лягає на ядро, яке приймає. Тож вимкнення модерації — не спосіб укоротити рядок мережевого драйвера в «Тесті затримки»: за власним описом w0a, воно прибирає очікування в десятки чи сотні мікросекунд, яке пакет проводить в адаптері, доки не спливе таймер пачки, а додає по перериванню на кожен пакет. Його вплив на список драйверів не виміряно. Якщо твій рядок — мережевий драйвер, прожени тест із застосованим прапорцем і без нього.
Що обіцяє сам прапорець: мікросекунди, для пінгу під навантаженням. Його повідомлення каже, що середній пінг не змінюється.
Коли діє: коли адаптер перезапускається; w0a просить перезавантаження щоразу, коли щось записав.
Шлях назад: картка Розвантаження мережевого адаптера повертає апаратні розвантаження, модерацію переривань, енергоефективний Ethernet, вибіркове призупинення й буфери прийому до стандартних значень самого драйвера, як їх оголошує драйвер.
Перевір сам
Ці команди лише читають. У командному рядку або в PowerShell:
reg query "HKLM\SYSTEM\CurrentControlSet\Enum\PCI" /s /v DevicePolicy
reg query "HKLM\SYSTEM\CurrentControlSet\Enum\PCI" /s /v AssignmentSetOverride
Відповідь, яка каже, що пошук завершився без жодного збігу (в англомовному Windows — End of search: 0 match(es) found.), означає, що жоден пристрій не має перевизначення: це стандарт Windows. Збіг виводиться під розділом, у якому його знайдено, а частина PCI цього шляху визначає пристрій.
У PowerShell, для мережевого адаптера:
Get-NetAdapterAdvancedProperty -Name "*" -RegistryKeyword "*FlowControl","*InterruptModeration","*RscIPv4","*RscIPv6" -AllProperties
Це виводить для кожного адаптера поточне налаштування чотирьох ключових слів, які може записати прапорець на сторінці «Інтернет». Адаптер, якого немає у виводі для якогось ключового слова, його не оголошує, і прапорець там нічого не записує.
Потім виміряй ще раз
Той самий метод, ті самі дванадцять секунд, та сама машина. Сторінка порівнює з твоїм попереднім прогоном і зміну менш ніж на 5% повідомляє як відсутність зміни, а не як покращення, бо два прогони на незміненій машині й так різняться на кілька відсотків: рука щоразу рухається інакше.
Якщо рядок драйвера опустився, а фризи лишилися, ти дізнався щось справжнє: причина була не в цьому, а решта списку — у чому ігри фризять на Windows 11. Якщо ж у тебе частота кадрів падає й лишається внизу, а не смикається, то це ніколи не було воно — тоді потрібен інший список, раптові просідання FPS в іграх.
Пов'язане
- Як читати тест затримки
- Чому ігри фризять на Windows 11
- Як зменшити input lag: що програма може скоротити, а що ні
- Що шукає сканування фризів
- Чому тест просить дванадцять секунд руху мишею
- Мережеві твіки
Граєш у CS2? Які параметри запуску ще щось роблять і де в меню відео насправді лежать кадри: Низький FPS і фризи в CS2: виміряний контрольний список
Ця сторінка допомогла?
Чого бракувало або що не спрацювало? Ми читаємо кожну таку відповідь.
Якщо ця сторінка не розв'язала проблему, напиши нам — скажи, яку статтю ти читав, і ми виправимо статтю.