НАЖМИ, чтобы запустить свой Сервер Майнкрафт + 8🎁
modМоды/Ixeris
Ixeris

Ixeris

Мод Ixeris убирает просадки FPS при движении мыши в Minecraft: рендер уезжает в отдельный поток, а ввод на Windows читается пачками. На мыши 8000 Гц прирост до x10.

Оцените первым
Открыть в FateLauncher
13.9M
562

Ixeris (Иксерис) - клиентский мод для Майнкрафт, который чинит неприятную и малоизвестную проблему: просадку FPS в тот самый момент, когда вы двигаете мышью. Звучит как мелочь, но на деле разница огромная. В тестах разработчика на игровой мыши с частотой опроса 8000 Гц счётчик кадров подскакивает с 12 до 121 FPS. Это не опечатка, а честный десятикратный прирост.

Мод отлично дополняет классические оптимизаторы вроде Sodium: тот разгружает рендер чанков, а Ixeris убирает узкое место в обработке ввода. Конфликтов между ними нет, так что ставить Иксерис поверх сборки с Содиумом не просто можно, а нужно. У проекта открытый исходный код и около 11 миллионов скачиваний, что для узкоутилитарного мода говорит о многом.

Откуда вообще берутся фризы при движении мыши

Когда вы крутите камеру, игре правда есть чем заняться: пересчитать видимость чанков, собрать новый кадр. Это нормальная нагрузка. Проблема в другом. Нативный код, который опрашивает события мыши и клавиатуры, устроен неэффективно, а каждый вызов из Java в сторону нативной библиотеки (так называемый JNI upcall) тоже стоит процессорного времени. В итоге CPU греется на сам опрос ввода вместо того, чтобы рисовать кадры.

Сильнее всего это бьёт по Windows. Особенно если у вас игровая мышь с высокой частотой опроса: обычная офисная шлёт 125 событий в секунду, а топовые игровые - 1000, 2000 и даже 8000. Каждое событие ванильный Minecraft обрабатывает по одному, и на 8000 Гц клиент честно захлёбывается. Отсюда парадокс: дорогая мышь на мощном железе даёт 12 FPS просто потому, что вы ей шевельнули.

Что делает мод

Ixeris решает проблему двумя основными приёмами:

  • Многопоточный опрос событий (Threaded Event Polling). В ванилле рендер и опрос событий крутятся в одном потоке и мешают друг другу. Мод разводит их: опрос остаётся на главном потоке, а всё остальное, включая отрисовку, переезжает в отдельный рендер-поток. Пока мышь флудит событиями, рендер не простаивает.
  • Буферизованный raw input (только Windows). Вместо неэффективного GetRawInputData (один вызов на каждое событие) используется GetRawInputBuffer, который забирает события пачкой - один вызов на всю очередь. А поскольку эта работа перенесена в Java-код, накладные расходы JNI испаряются полностью.

По факту это мод, который ничего не добавляет в игру визуально. Он просто отдаёт вам кадры, которые Windows и ванильный клиент до этого тихо съедали.

Тесты и цифры

Замеры делались после полной загрузки мира, когда частота кадров успела стабилизироваться. Никакой синтетики, обычная игра.

Тест 1: в игре

Сравнение FPS с захваченным курсором (невидимым, как в обычном геймплее). Суперплоский мир без сущностей, Windows, где буферизованный ввод включён по умолчанию. Колонка "без буфера" показывает Ixeris с принудительно выключенной опцией буферизации, чтобы был виден вклад каждой из двух оптимизаций отдельно.

Частота опросаБез IxerisIxeris, без буфераIxeris, с буфером
8000 Гц12 FPS83 FPS (6.9x)121 FPS (10.1x)
2000 Гц76 FPS114 FPS (1.50x)135 FPS (1.78x)
500 Гц134 FPS145 FPS (1.08x)151 FPS (1.13x)

Закономерность простая: чем выше частота опроса мыши, тем яростнее выигрыш. На 8000 Гц мод буквально воскрешает клиент. На скромных 500 Гц прирост уже не драматичный, но всё равно приятный.

Тест 2: в меню

Здесь курсор не захвачен, то есть видим, как на экране паузы F3+Esc. В таком режиме raw input не используется вообще - игре нужна реальная позиция курсора, а не относительное смещение мыши. Частота опроса 1000 Гц. Первый столбец - FPS в покое, следующие два - при быстрых движениях мышью по окну игры, без мода и с ним. Учтите, замер делался ещё на первом релизе Ixeris, и с тех пор мод сильно поумнел.

FPS без движенияБез IxerisС Ixeris
Windows233 FPS133 FPS165 FPS (1.24x)
Linux (X11)358 FPS320 FPS355 FPS (1.11x)
Linux (Wayland)364 FPS289 FPS298 FPS (1.03x)

Windows снова выигрывает больше всех - плюс 24% к плавности. На Wayland прирост почти нулевой: там стек ввода и без мода работает заметно адекватнее.

Совет по совместимости

В отчётах игроков Ixeris регулярно стоит рядом с Sodium, Distant Horizons, Axiom, FPS Reducer и Cubes Without Borders, и жалоб на конфликты не замечено. Для сборки на производительность это однозначный must-have, особенно если вы играете на Windows.

А вот с SpecialK (инжектором для глобального снижения задержек) зафиксирована несовместимость. Если пользуетесь им, перед установкой мода его лучше отключить.

Технические детали

Потокобезопасность

Разнос рендера и опроса событий по разным потокам - дело тонкое, и автор подошёл к нему серьёзно. Колбэки, зарегистрированные через glfwSet*Callback, выполняются на рендер-потоке. Вызовы функций GLFW, которые по документации обязаны идти с главного потока, при обращении с других потоков перенаправляются на главный. Часть таких вызовов возвращается сразу, если её можно безопасно отложить, остальные блокируют вызывающего до завершения. Начиная с версии 3.1.0 требования потокобезопасности из документации GLFW соблюдаются строго, так что мод крашить игру по race condition не должен.

Кэширование состояний GLFW

Большинство функций GLFW требуют вызова с главного потока, но многие моды дёргают их с рендер-потока. Чтобы постоянные перегоны между потоками не съели весь выигрыш, Ixeris кэширует часто используемые состояния GLFW и отдаёт их с любого потока напрямую. Кэши безопасны и лишних задержек не создают.

Улучшенный ограничитель FPS

Ванильный лимитер кадров (в версиях до 26.1) устроен криво: для сна потока он использует glfwWaitEventsTimeout, а эту функцию нельзя вызывать с рендер-потока, так что с Ixeris она работала бы неоптимально. Мод переписывает лимитер по гибридной схеме - точный сон, а когда оставшееся время ожидания становится мизерным, переход на спин-ожидание. Кадр выходит ровно в срок, без микрофризов на ровном месте.

Глоссарий

  • Главный поток - поток, на котором запускается игра. Большинство функций GLFW обязаны вызываться именно здесь, и именно он отвечает за опрос событий.
  • Рендер-поток - делает всё, что игра обычно делает, кроме опроса событий.

В ванильном Minecraft это один и тот же поток. Ixeris как раз разрывает это единство.

Совместимость и версии

Мод чисто клиентский - на сервер его ставить не нужно, другим игрокам на вашем сервере он тоже не потребуется. Доступны сборки под Fabric, Forge, NeoForge и Quilt. Список поддерживаемых версий широкий: Minecraft 1.16.5, 1.18.2, 1.19.2, 1.19.4, линейки 1.20.x и 1.21.x, а также свежие 26.1.x, 26.2 и 26.3. Актуальная ветка мода - 4.6.8, в последнем обновлении, помимо прочего, исправлен краш на NeoForge 26.3. Буферизованный ввод при желании можно выключить в настройках, что пригодится для диагностики, если какой-то другой мод начнёт капризничать.

Кому стоит скачать Ixeris

Коротко: всем, у кого игровая мышь с частотой опроса 1000 Гц и выше и система на Windows. Для вас прирост будет не косметическим, а ударным. Владельцам обычных мышей на 125 Гц и игрокам на Linux мод тоже не помешает, но эффект будет скромнее. И если вы собираете клиент на производительность вокруг Sodium и Ириса, оставьте в модпапке место и под Иксерис - он закрывает дыру, которую рендерные оптимизаторы в принципе не трогают.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

Нажмите на диапазон, чтобы выбрать точную версию.

Платформы

Поддерживаемые окружения

Клиент

Создатели

Детали

Лицензия:
Опубликован:1 год назад
Обновлён:3 дня назад

Версии мода Ixeris

Доступно 989 версий. Сначала показаны самые популярные и самые свежие.

16 из 970 версий
Самые популярные
R
4.6.5+26.2-fabricIxeris 4.6.5+26.2-fabric
26.2
R
4.6.8+26.3-fabricIxeris 4.6.8+26.3-fabric
26.3
R
4.5.2+26.2-fabricIxeris 4.5.2+26.2-fabric
26.226.3-snapshot-126.3-snapshot-2
R
4.4.1+1.21.11-fabricIxeris 4.4.1+1.21.11-fabric
1.21.9–1.21.11
R
4.5.1+26.2-fabricIxeris 4.5.1+26.2-fabric
26.226.3-snapshot-1
R
4.6.2+26.2-fabricIxeris 4.6.2+26.2-fabric
26.2
Самые Новые
R
4.6.8+26.3-neoforgeIxeris 4.6.8+26.3-neoforge
26.3
R
4.6.8+26.2-neoforgeIxeris 4.6.8+26.2-neoforge
26.2
R
4.6.8+26.2-fabricIxeris 4.6.8+26.2-fabric
26.2
R
4.6.8+26.1.2-neoforgeIxeris 4.6.8+26.1.2-neoforge
26.1.x
R
4.6.8+26.1.2-fabricIxeris 4.6.8+26.1.2-fabric
26.1.x
R
4.6.8+1.21.11-forgeIxeris 4.6.8+1.21.11-forge
1.21.9–1.21.11
R
4.6.8+1.21.11-neoforgeIxeris 4.6.8+1.21.11-neoforge
1.21.10–1.21.11
R
4.6.8+1.21.11-fabricIxeris 4.6.8+1.21.11-fabric
1.21.9–1.21.11
R
4.6.8+1.21.8-forgeIxeris 4.6.8+1.21.8-forge
1.21.4–1.21.8
R
4.6.8+1.21.8-neoforgeIxeris 4.6.8+1.21.8-neoforge
1.21.4–1.21.8
Главная