Твоя миша може звітувати не з тією частотою, що написана на коробці, і це перше, що варто виміряти, а не припустити. Миша «на 1000 Гц» на спільному USB-контролері або на довгому непідживлюваному хабі здатна видавати менше звітів, ніж заявляє, — а число, яке вона видає насправді, вимірюється на твоїй машині секунд за п'ятнадцять.
До кожної з шести причин нижче додано спосіб її виключити. Їхній порядок — не рейтинг: як часто кожна з них виявляється відповіддю, не виміряно.
Заявлена частота і виміряна частота — це різні числа
USB-пристрій вводу сам просить хост, як часто його опитувати. Це прохання лежить у полі дескриптора кінцевої точки, яке зветься bInterval, і довідник Microsoft каже прямо: "This value reflects the device's configuration in firmware. Drivers cannot change it." На повношвидкісному пристрої bInterval = 1 означає одне опитування на кадр по 1 мілісекунді; на високошвидкісному інтервал рахують у мікрокадрах, по вісім на мілісекунду.
Це — прохання. А що ти отримаєш, залежить від лінії, контролера, драйвера і політики живлення між ними. Тому ці два числа треба читати поряд, і w0a показує їх поряд:
- Сторінка Порти USB перелічує кожен під'єднаний пристрій і в його детальній картці показує Інтервал опитування (bInterval) — те, що пристрій попросив, — поряд із показником Частота звітів, виміряним із реального вводу. Показник 1000 Гц при проханні в 1 мс означає пристрій, який робить рівно те, що сказав. Той самий показник при проханні в 125 мкс означає лінію або драйвер, які не встигають.
- На сторінці Головна є картка Частота опитування миші, яка міряє твою мишу з реального руху й показує медіанний інтервал у мілісекундах і те, наскільки він був стабільним, у відсотках. Вона показує, що твоя миша робить. Вона не переказує число з коробки й не округлить чесні 940 Гц до впевнених 1000.

Обидва показники беруться з потоку raw input і хронометруються високоточним лічильником продуктивності, а не системним годинником. Ця деталь важить більше, ніж звучить: звичайний шлях повідомлень Windows зливає рух миші до темпу того вікна, яке його читає, тож інструмент, побудований на ньому, не відрізнить мишу на 1000 Гц від миші на 125 Гц. Чому тест просить дванадцять секунд руху мишею — це довша версія того самого аргументу.
Поки знімається будь-який із цих показників, води мишею по колу. Нерухома миша не надсилає нічого, а вимірювання нічого — це не низька частота звітів, це відсутнє вимірювання.
Стабільність важить більше за пікове число
Середня частота звітів ховає саме те, що ти відчуваєш. А відчуваєш ти той звіт, який прийшов пізно.
Сторінка Тест затримки показує по кожному пристрою: Частота звітів, Найкоротший, Середнє, Медіана, Найповільніші 1% і Найповільніші 0,1%, а ще рядок розкиду, який розкладає кожен інтервал по трьох кошиках — вчасно, із запізненням (1,5–3× від твоєї власної медіани) і втрачено (понад 3×). Пороги свідомо рахуються від твоєї власної медіани. Машина, рівномірно повільна, і машина, здебільшого швидка з викидами, — це різні проблеми, а фіксоване число сховало б цю різницю.
Миша, яка звітує на чистих 1000 Гц, але має 2% інтервалів у кошику «втрачено», у фліку відчуватиметься гірше за мишу на 500 Гц, у якої там нуль. Саме тому сторінка друкує розподіл, а не одне число.
Шість причин і як виключити кожну з них
1. Порт, хаб і контролер
Кожен пристрій за хабом ділить лінію цього хаба, а кожен пристрій на одному хост-контролері ділить розклад цього контролера. Миша з високою частотою звітів поряд із вебкамерою, гарнітурою і зовнішнім диском на тому самому контролері конкурує за ті самі слоти.
- Переткни мишу в порт на самій машині — бажано в такий, що не ділить контролер із завантаженим пристроєм. Сторінка Порти USB групує пристрої за контролером, за яким вони сидять, і саме це робить перевірку перевіркою, а не здогадом.
- На час тесту повністю прибери мишу з хабів монітора, KVM і непідживлюваних хабів.
- Зніми показник на сторінці Головна ще раз. Якщо виміряний інтервал став коротшим або стабільнішим — лишай новий порт.
2. Windows дозволили приспати порт
Якщо перший рух після паузи відчувається важким, а далі все гаразд, цю причину варто виключити. Сама Windows так не робить: для мишей і клавіатур вона тримає вибіркове призупинення вимкненим, якщо про нього не просить сам пристрій або драйвер його виробника. Картка живлення портів USB одним натисканням повертає дозволи живлення пристроїв вводу до стандартних значень Windows, а на сторінці Порти USB для окремого пристрою можна вибрати Не призупиняти.
3. Бездротове з'єднання
Бездротова миша додає радіоланку і приймач із власним розкладом. Сучасний фірмовий приймач не мусить бути повільнішим за кабель; шукати тут варто не постійне зміщення, а перевантаження каналу — забитий діапазон 2,4 ГГц, приймач, увімкнений позаду корпуса за металевою панеллю, або донгл, який ділить блок портів із пристроєм USB 3.
Bluetooth — це вже окремий випадок, і для цього він не призначений. Якщо миша на Bluetooth, а відчуття для тебе важать, візьми фірмовий приймач або кабель. Bluetooth розбирає бік спарювання, коли негаразди в самому пристрої.
Тестуй бездротову мишу з приймачем у передньому порту або на короткому подовжувачі на столі, а не позаду корпуса. Це не коштує нічого, забирає хвилину і показує, чи не стоїть за скаргою «моя бездротова миша смикається в одній кімнаті» положення приймача.
4. Прискорення вказівника і швидкість вказівника
Прискорення означає, що відстань, яку проходить курсор, залежить від того, як швидко ти рухнув рукою, — тож той самий рух руки щоразу дає інший результат. Це не затримка, але читається як «мій приціл непослідовний», і люди приходять сюди по виправлення затримки.
Що робить w0a: на сторінці Оптимізації є перемикач, який вимикає прискорення, записуючи MouseSpeed, MouseThreshold1 і MouseThreshold2 у 0 під HKCU\Control Panel\Mouse, і вирівнює криву вказівника так, щоб один відлік давав одну одиницю.
Чого він свідомо не робить: він ніколи не пише MouseSensitivity. Швидкість вказівника на робочому столі — це твоє налаштування, і інструмент тонкого налаштування, який мовчки його змінює, ламає те, що ти обрав сам. Якщо давніший інструмент таки його змінив, миша, клавіатура і сенсорна панель повертає стандартні значення Windows — зокрема й прискорення, яке в стандартному Windows увімкнене.
Шутери, які для прицілювання читають raw input, і CS2 серед них, ігнорують криву вказівника Windows, тож вимкнення прискорення стосується передусім робочого стола і меню. Робити це все одно варто — і воно не є причиною, чому твої фліки промазують.
5. DPI і внутрішньоігрова чутливість — це одне число, а не два
Відліки на дюйм, помножені на внутрішньоігрову чутливість, і вирішують, наскільки далеко піде приціл. Підняти DPI і опустити чутливість для компенсації — це той самий результат з іншим округленням, а опустити DPI до числа, яке для сенсора не рідне, означає зробити рух зернистим, а не плавним.
Програмного виправлення тут немає, і ніщо в w0a цього не чіпає. Це налаштування твоєї миші й налаштування твоєї гри, а єдиний корисний метод — обрати одне і перестати його міняти.
6. Сенсор, поверхня і власне згладжування гри
Висота відриву, блискучий або брудний килимок, сенсор, від якого вимагають працювати за межами його швидкості стеження, — усе це дає рівно те відчуття «приціл поїхав кудись не туди», і програма їх не бачить взагалі. Жоден драйвер не читає впевненості сенсора; Windows отримує звіт про рух і не має способу дізнатися, що звіт був хибний. Якщо поряд із виміряною, стабільною частотою звітів приціл усе одно відчувається непередбачуваним, спершу почисти поверхню й спробуй інший килимок, а вже потім міняй ще якесь налаштування.
Деякі ігри до того ж застосовують власне згладжування чи прискорення вводу незалежно від Windows. Перевір налаштування самої гри; ніщо поза грою цього не вимкне.
Прогін, який ти справді можеш зробити
- Відкрий Головну, поводи мишею по колу кілька секунд і запиши показник картки Частота опитування миші — інтервал у мс і відсоток стабільності.
- Відкрий Тест затримки, проганяй усі 12 секунд, не припиняючи рухати мишею, і запиши Частоту звітів, Медіану, Найповільніші 1% і три відсотки розкиду.
- Зміни одну річ: порт, положення приймача, хаб, налаштування живлення.
- Повтори крок 2 так само і порівняй. Той самий рух, та сама тривалість — інакше ти порівнюєш дві різні речі.
- Лишай зміну тільки тоді, коли числа зрушили. Якщо не зрушили — скасуй; картки Fix існують саме для цього.
Чого програма тут не може
- Вона не може підняти частоту, яку просить прошивка твоєї миші. Власна документація Microsoft каже, що драйвери це поле змінити не можуть.
- Вона не бачить ні сенсора, ні поверхні, ні висоти відриву.
- Вона не може прибрати радіоланку на бездротовому з'єднанні — лише не дати приспати порт навколо неї.
- Вона не може змусити гру зчитувати ввід частіше, ніж раз на кадр.
Дві речі, які вона може, — показати тобі виміряну частоту поряд із заявленою і показати, який драйвер тримає ядро, — це саме ті дві речі, яких більше ніде не візьмеш, і їх досить, щоб відрізнити апаратну відповідь від програмної.
Пов'язане
- Як читати тест затримки
- Чому тест просить дванадцять секунд руху мишею
- Чому натискання клавіш запізнюються в іграх
- Як зменшити input lag: що програма може скоротити, а що ні
- Живлення портів USB
Із приблизно дванадцяти етапів між кліком і зміною пікселя програмі належать три, а решта належить прошивці, дисплею і грі: Як зменшити input lag: що програма може скоротити, а що ні
Ця сторінка допомогла?
Чого бракувало або що не спрацювало? Ми читаємо кожну таку відповідь.
Якщо ця сторінка не розв'язала проблему, напиши нам — скажи, яку статтю ти читав, і ми виправимо статтю.