Оптимизация обработки событий ввода и повышения частоты кадров в 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
Категория
Ixeris-4.6.7+1.21.11-neoforge.jar
1.21.11, 1.21.10 | neoforge
17.09.2026
Последние файлы
Ixeris-4.6.7+26.3-neoforge.jar
26.3 | neoforge
17.09.2026
Ixeris-4.6.7+26.3-fabric.jar
26.3 | fabric, quilt
17.09.2026
Ixeris-4.6.7+26.2-neoforge.jar
26.2 | neoforge
17.09.2026
Ссылка на сайт
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.
Связанные материалы
- Iris Shaders — похожий мод
- Lithium — похожий мод
- ImmediatelyFast — похожий мод
Войдите, чтобы поставить оценку и оставить отзыв.
| Канал | Файл | Игра | Модлоадер | Язык | Скачиваний | Загружен | |
|---|---|---|---|---|---|---|---|
| Релиз | Ixeris-4.6.7+1.21.11-neoforge.jar 668.2 KB | 1.21.11, 1.21.10 |
|
— | 0 | 17.09.2026 | |
| Релиз | Ixeris-4.6.7+26.3-neoforge.jar 665 KB | 26.3 |
|
— | 0 | 17.09.2026 | |
| Релиз | Ixeris-4.6.7+26.3-fabric.jar 741.7 KB | 26.3 |
|
— | 0 | 17.09.2026 | |
| Релиз | Ixeris-4.6.7+26.2-neoforge.jar 667.9 KB | 26.2 |
|
— | 0 | 17.09.2026 | |
| Релиз | Ixeris-4.6.7+26.2-fabric.jar 744.5 KB | 26.2 |
|
— | 0 | 17.09.2026 | |
| Релиз | Ixeris-4.6.7+26.1.2-neoforge.jar 667.3 KB | 26.1.2, 26.1.1, 26.1 |
|
— | 0 | 17.09.2026 | |
| Релиз | Ixeris-4.6.7+26.1.2-fabric.jar 743.9 KB | 26.1.2, 26.1.1, 26.1 |
|
— | 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 |
|
— | 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 |
|
— | 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 |
|
— | 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 |
|
— | 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 |
|
— | 0 | 17.09.2026 | |
| Релиз | Ixeris-4.6.5+26.2-neoforge.jar 667 KB | 26.2 |
|
— | 0 | 15.08.2026 | |
| Релиз | Ixeris-4.6.5+26.2-fabric.jar 743.7 KB | 26.2 |
|
— | 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 |
|
— | 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 |
|
— | 0 | 03.06.2026 | |
| Релиз | Ixeris-4.3.0+1.21.11-neoforge.jar 610.7 KB | 1.21.11, 1.21.10 |
|
— | 0 | 15.05.2026 | |
| Релиз | Ixeris-4.3.0+26.1.2-neoforge.jar 610 KB | 26.1.2, 26.1.1, 26.1 |
|
— | 0 | 15.05.2026 | |
| Релиз | Ixeris-4.3.0+26.1.2-fabric.jar 686.3 KB | 26.1.2, 26.1.1, 26.1 |
|
— | 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
Категория
Ixeris-4.6.7+1.21.11-neoforge.jar
1.21.11, 1.21.10 | neoforge
17.09.2026
Последние файлы
Ixeris-4.6.7+26.3-neoforge.jar
26.3 | neoforge
17.09.2026
Ixeris-4.6.7+26.3-fabric.jar
26.3 | fabric, quilt
17.09.2026
Ixeris-4.6.7+26.2-neoforge.jar
26.2 | neoforge
17.09.2026
Ссылка на сайт
modrinth.com
Скачиваний:
0
Обновлено:
22.09.2026
ID: