- 44
- 188
- Версия SA-MP
-
- Любая
HighPollingRateFix.asi - убирает просадки FPS и подергивания при игре на мышках с высокой герцовкой. На 8000 Гц баг особенно заметен: камера дергается при обычном осмотре, FPS при движении камеры сильно проседает.
github.com
Чувствительность, прицел и настройки игры не меняются - те же самые числа приходят через тот же самый вызов. Замер в сессии SA:MP на 8000 Гц: кадров длиннее 16 мс было по несколько десятков в минуту, худший 102 мс; после плагина таких кадров не осталось вообще, худший 2.3 мс.
Скачать:
Releases · sonochiwa/sa-high-polling-rate-fix
Removes the frame stutter GTA San Andreas shows with 1000 Hz and faster mice - sonochiwa/sa-high-polling-rate-fix
Чувствительность, прицел и настройки игры не меняются - те же самые числа приходят через тот же самый вызов. Замер в сессии SA:MP на 8000 Гц: кадров длиннее 16 мс было по несколько десятков в минуту, худший 102 мс; после плагина таких кадров не осталось вообще, худший 2.3 мс.
Игра читает мышь через DirectInput 8 один раз за кадр и берет накопленное с прошлого кадра смещение. Смотрит она только на сумму - но платит за каждый отдельный пакет, который присылает устройство. На 125 Гц эта плата незаметна, а на 8000 Гц она приходит в шестьдесят четыре раза чаще, и игровой поток ею захлебывается. Плат ровно две, обе измерены, а не додуманы:
- DirectInput обрабатывает каждый пакет - около 42 микросекунд процессорного времени на каждый, против ровно нуля у устройства, которое создано, но никогда не захватывалось. Поэтому плагин мышь через DirectInput и не захватывает: она читается через Raw Input в отдельном потоке, а игре смещение отдается тем же самым вызовом, что и раньше
- Windows генерирует легаси-сообщения мыши - и делает это под глобальной блокировкой ввода, то есть не просто отнимает процессор у игрового потока, а заставляет его ждать; на практике эта плата больше первой. Поэтому плагин их выключает, а те сообщения, что реально нужны меню и карте, присылает окну игры сам
Установка:
- Скопировать HighPollingRateFix.asi в папку с игрой (либо scripts)
- Запустить игру
Последнее редактирование: