Вход

Регистрация

Восстановление доступа

Ixeris

Ixeris

|

decce6

Оптимизация обработки событий ввода и повышения частоты кадров в Minecraft.

Скачать

Версия игры

1.21.10

1.21.11

1.21.4

1.21.5

1.21.6

1.21.7

1.21.8

1.21.9

26.1

26.1.1

26.1.2

26.2

26.3

Категория

Ссылка на сайт

modrinth.com

Скачиваний:

0

Обновлено:

22.09.2026

ID:

Мод Ixeris для Minecraft — оптимизация событий ввода

Ixeris — мод для клиента Minecraft, разработанный для решения проблемы падения частоты кадров (FPS) при активном движении мыши. Автор определяет причину снижения производительности как неэффективность нативного кода обработки событий и накладные расходы вызовов JNI. Решение базируется на буферизации сырых данных ввода (только для Windows) и выделении потока обработки событий из основного игрового цикла.

Проблема производительности при движении мыши

При активном движении мыши в Minecraft часто наблюдается заметное падение частоты кадров (FPS). Основная причина кроется в неэффективности нативного кода, отвечающего за опрос событий ввода, и накладных расходах на вызовы JNI. Когда игрок поворачивает камеру, игре приходится выполнять дополнительные задачи, такие как расчет видимости чанков, но часть процессорного времени, которую можно было бы использовать для рендеринга, тратится впустую на обработку событий. Эта проблема наиболее ярко проявляется на Windows, особенно при использовании мыши с высокой частотой опроса (high polling rate).

Решение: Буферизация сырого ввода и потоковая обработка

Ixeris решает проблему двумя ключевыми методами. Во-первых, применяется Буферизация сырого ввода (Buffered Raw Input), доступная только для Windows. Вместо обработки каждого события ввода отдельным вызовом функции GetRawInputData, мод использует GetRawInputBuffer. Это позволяет читать пакет сообщений за один вызов, что значительно снижает нагрузку. Кроме того, перенос этой логики в код на Java позволил полностью устранить накладные расходы вызовов JNI. Во-вторых, реализуется Потоковая обработка событий (Threaded Event Polling). В стандартном Minecraft рендеринг и опрос событий происходят на одном потоке. Ixeris разделяет эти задачи: основной поток (main thread) занимается исключительно обработкой событий ввода, а отдельный поток рендеринга (render thread) обрабатывает отрисовку. Это освобождает CPU для рендеринга во время движения мыши.

Сравнение производительности в игре (мышь захвачена)

{"header":"Частота опроса мыши","key":"polling_rate"}{"header":"Без мода","key":"without_mod"}{"header":"Ixeris (без буфера)","key":"ixeris_non_buffered"}{"header":"Ixeris (с буфером)","key":"ixeris_buffered"}
{"data":{"ixeris_buffered":"121 FPS (10.1x)","ixeris_non_buffered":"83 FPS (6.9x)","polling_rate":"8000 Гц","without_mod":"12 FPS"}}
{"data":{"ixeris_buffered":"135 FPS (1.78x)","ixeris_non_buffered":"114 FPS (1.50x)","polling_rate":"2000 Гц","without_mod":"76 FPS"}}
{"data":{"ixeris_buffered":"151 FPS (1.13x)","ixeris_non_buffered":"145 FPS (1.08x)","polling_rate":"500 Гц","without_mod":"134 FPS"}}

Производительность в меню (мышь не захвачена)

{"header":"Операционная система","key":"os"}{"header":"FPS в покое","key":"idle_fps"}{"header":"Без мода","key":"without_mod"}{"header":"С модом","key":"with_mod"}
{"data":{"idle_fps":"233 FPS","os":"Windows","with_mod":"165 FPS (1.24x)","without_mod":"133 FPS"}}
{"data":{"idle_fps":"358 FPS","os":"Linux (X11)","with_mod":"355 FPS (1.11x)","without_mod":"320 FPS"}}
{"data":{"idle_fps":"364 FPS","os":"Linux (Wayland)","with_mod":"298 FPS (1.03x)","without_mod":"289 FPS"}}

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

Ixeris строго соблюдает требования безопасности потоков. Обратные вызовы, зарегистрированные через glfwSet*Callback, выполняются на потоке рендеринга. Вызовы функций GLFW, которые должны выполняться на основном потоке, если инициированы с других потоков, автоматически перенаправляются на основной поток. Они могут возвращаться мгновенно, если задержку можно безопасно отложить, или блокировать вызывающий поток до завершения операции. С версии 3.1.0 требования безопасности потоков GLFW соблюдаются строго.

Кэширование состояния GLFW и улучшенный ограничитель FPS

Большинство функций GLFW требуют вызова с основного потока. Чтобы избежать задержек от коммуникации между потоками, Ixeris кэширует часто используемое состояние GLFW для быстрого доступа с любого потока без маршрутизации вызова на основной поток. Кэши безопасны и не добавляют задержку. Также мод переписал ограничитель FPS гибридным способом: использует точный сон и переключается на активное ожидание (spin waiting) при очень малом времени ожидания, что решает проблему стандартного ограничителя, использующего glfwWaitEventsTimeout, который не может быть вызван с потока рендеринга.

Определения терминов

  • Основной поток (Main thread): Поток запуска игры. Отвечает за обработку событий ввода. Большинство функций GLFW должны вызываться именно с него.
  • Поток рендеринга (Render thread): Выполняет все стандартные задачи игры, кроме обработки событий ввода.

Эти два термина являются синонимами в ванильном Minecraft.

Связанные материалы

Автор: decce6 · Лицензия: LGPL-3.0-only

D

decce6

4 проекта

|

0 скачиваний

Войдите, чтобы поставить оценку и оставить отзыв.

Отзывов пока нет — будьте первым!
Канал Файл Игра Модлоадер Язык Скачиваний Загружен
Релиз Ixeris-4.6.7+1.21.11-neoforge.jar 668.2 KB 1.21.11, 1.21.10 NeoForge 0 17.09.2026
Релиз Ixeris-4.6.7+26.3-neoforge.jar 665 KB 26.3 NeoForge 0 17.09.2026
Релиз Ixeris-4.6.7+26.3-fabric.jar 741.7 KB 26.3 FabricQuilt 0 17.09.2026
Релиз Ixeris-4.6.7+26.2-neoforge.jar 667.9 KB 26.2 NeoForge 0 17.09.2026
Релиз Ixeris-4.6.7+26.2-fabric.jar 744.5 KB 26.2 FabricQuilt 0 17.09.2026
Релиз Ixeris-4.6.7+26.1.2-neoforge.jar 667.3 KB 26.1.2, 26.1.1, 26.1 NeoForge 0 17.09.2026
Релиз Ixeris-4.6.7+26.1.2-fabric.jar 743.9 KB 26.1.2, 26.1.1, 26.1 FabricQuilt 0 17.09.2026
Релиз Ixeris-4.6.7+1.21.8-neoforge.jar 671.5 KB 1.21.8, 1.21.7, 1.21.6, 1.21.5, 1.21.4 NeoForge 0 17.09.2026
Релиз Ixeris-4.6.7+1.21.8-forge.jar 1.49 MB 1.21.8, 1.21.7, 1.21.6, 1.21.5, 1.21.4 Forge 0 17.09.2026
Релиз Ixeris-4.6.7+1.21.8-fabric.jar 758.5 KB 1.21.8, 1.21.7, 1.21.6, 1.21.5, 1.21.4 FabricQuilt 0 17.09.2026
Релиз Ixeris-4.6.7+1.21.11-forge.jar 1.49 MB 1.21.11, 1.21.10, 1.21.9 Forge 0 17.09.2026
Релиз Ixeris-4.6.7+1.21.11-fabric.jar 758.5 KB 1.21.11, 1.21.10, 1.21.9 FabricQuilt 0 17.09.2026
Релиз Ixeris-4.6.5+26.2-neoforge.jar 667 KB 26.2 NeoForge 0 15.08.2026
Релиз Ixeris-4.6.5+26.2-fabric.jar 743.7 KB 26.2 FabricQuilt 0 15.08.2026
Релиз Ixeris-4.6.5+1.21.8-fabric.jar 757.6 KB 1.21.8, 1.21.7, 1.21.6, 1.21.5, 1.21.4 FabricQuilt 0 15.08.2026
Релиз Ixeris-4.4.1+1.21.11-fabric.jar 706.1 KB 1.21.11, 1.21.10, 1.21.9 FabricQuilt 0 03.06.2026
Релиз Ixeris-4.3.0+1.21.11-neoforge.jar 610.7 KB 1.21.11, 1.21.10 NeoForge 0 15.05.2026
Релиз Ixeris-4.3.0+26.1.2-neoforge.jar 610 KB 26.1.2, 26.1.1, 26.1 NeoForge 0 15.05.2026
Релиз Ixeris-4.3.0+26.1.2-fabric.jar 686.3 KB 26.1.2, 26.1.1, 26.1 FabricQuilt 0 15.05.2026
Зависимостей нет.

Скачать

Версия игры

1.21.10

1.21.11

1.21.4

1.21.5

1.21.6

1.21.7

1.21.8

1.21.9

26.1

26.1.1

26.1.2

26.2

26.3

Категория

Ссылка на сайт

modrinth.com

Скачиваний:

0

Обновлено:

22.09.2026

ID: