Skip to content

Ixeris Мод для Minecraft 1.21.1, 1.16.5

Буферизоване необроблене введення та багатопотокове опитування подій

від decce6 · Modrinth
завантажень
31 завантажень
переглядів
152 переглядів
Оновлено
Оновлено 19.10.2026

Ixeris

Огляд

Ixeris — це мод, який оптимізує опитування подій для покращення продуктивності клієнта.

Ви могли помітити помітне падіння FPS, коли рухаєте мишею. Частина падіння FPS спричинена тим, що гра має додаткову роботу, коли ви повертаєте камеру, як-от обчислення видимості чанків. Однак через неефективність нативного коду, який опитує події, та накладні витрати на виклики JNI, частина часу CPU, який інакше можна було б використати для рендерингу, марно витрачається на опитування подій. Це найпомітніше на Windows, особливо коли ваша миша має високу частоту опитування.

Ixeris вирішує цю проблему переважно двома заходами:

  • Багатопотокове опитування подій. Замість виконання рендерингу та опитування подій в одному потоці, Ixeris виконує опитування подій у головному потоці та виносить рендеринг в окремий потік рендерингу.
  • Буферизований Raw Input (лише Windows). Змінює метод, який використовується для опитування введення, з неефективного GetRawInputData (один виклик для кожної події введення) на GetRawInputBuffer, який дозволяє читати повідомлення raw input пакетами (один виклик для всіх подій). Крім того, виконання цієї роботи в Java-коді дозволило нам усунути накладні витрати на виклики JNI.

Бенчмарки

Ці тести виконано після повного завантаження світу та стабілізації частоти кадрів.

Тест 1: У грі

Цей тест порівнює продуктивність, коли мишу захоплено, тобто курсор невидимий. Цей тест виконується в суперпласкому світі без сутностей.

Цей тест виконано на Windows, де Ixeris за замовчуванням використовує буферизований raw input для покращення продуктивності. Стовпець "Ixeris, Non-buffered" показує FPS з вимкненою цією опцією.

Частота опитування - Без Ixeris - Ixeris, Non-buffered - Ixeris, Buffered

8000 Hz - 12 FPS - 83 FPS (6.9x) - 121 FPS (10.1x) 2000 Hz - 76 FPS - 114 FPS (1.50x) - 135 FPS (1.78x) 500 Hz - 134 FPS - 145 FPS (1.08x) - 151 FPS (1.13x)

Тест 2: У меню

Цей тест порівнює продуктивність, коли мишу не захоплено, тобто курсор видимий, як на екрані паузи F3+Esc. У цьому випадку raw input ніколи не використовується, оскільки грі потрібно знати фактичну позицію курсора, а не сирий відносний рух. Частота опитування становить 1000Hz.

Стовпець "Idle FPS" показує FPS, коли миша не рухається, а наступні два стовпці показують FPS під час швидкого руху мишею над вікном гри, відповідно без Ixeris та з Ixeris. Зауважте, що цей тест було виконано під час початкового випуску Ixeris, і з того часу було зроблено багато покращень.

Idle FPS - Без Ixeris - З Ixeris

Windows - 233 FPS - 133 FPS - 165 FPS (1.24x) Linux (X11) - 358 FPS - 320 FPS - 355 FPS (1.11x) Linux (Wayland) - 364 FPS - 289 FPS - 298 FPS (1.03x)

Технічні деталі

Потокова безпека

У своєму поточному стані Ixeris не повинен порушувати потокову безпеку. Зворотні виклики, зареєстровані через glfwSetCallback, виконуються в потоці рендерингу. Виклики функцій GLFW, які мають викликатися в головному потоці, якщо вони зроблені в інших потоках, передаються до головного потоку. Ці виклики можуть негайно повернутися, якщо їх можна безпечно відкласти, або інакше можуть блокувати викликача, доки виклик не завершиться.

Починаючи з версії 3.1.0, вимоги щодо потокової безпеки в документації GLFW суворо дотримуються.

Кешування стану GLFW

Більшість функцій GLFW мають викликатися з головного потоку. Однак багато модів можуть викликати їх із потоку рендерингу. Щоб уникнути погіршення продуктивності, спричиненого міжпотоковою комунікацією, Ixeris кешує часто використовувані стани GLFW для швидкого доступу з будь-якого потоку, без необхідності спрямовувати виклик до головного потоку. Кеші є безпечними та не створюють додаткових затримок.

Покращений обмежувач FPS

Ванільний обмежувач FPS (до 26.1) має недоліки, використовуючи glfwWaitEventsTimeout для сну. Однак цю функцію не можна викликати з потоку рендерингу, і тому вона не працює оптимально з Ixeris.

Ixeris переписує обмежувач FPS гібридним способом, точно засинаючи та починаючи активне очікування, коли час очікування дуже малий.

Глосарій

  • Головний потік — це потік, у якому запускається гра. Більшість функцій GLFW мають викликатися в цьому потоці, і він відповідає за опитування подій.
  • Потік рендерингу робить усе, що гра зазвичай робить, крім опитування подій.

Ці два терміни є синонімами у ванільному Minecraft.

Як встановити Ixeris

With Millida Launcher

  1. Install Millida Launcher

    The launcher is free: download it at millida.net/launcher and sign in with any nickname.

  2. Click “Install” on this page

    The launcher opens and installs the mod for Minecraft 1.16.5–26.3 on Fabric, Forge, NeoForge or Quilt automatically.

  3. Launch the game

    A profile with it appears in the launcher: click “Play”.

Manually

  1. Install Fabric, Forge, NeoForge or Quilt

    The loader must match the game version of the mod file, for example Minecraft 26.3. After installing it, a separate profile appears in your launcher.

  2. Download the file for your version

    In the version list above, pick the file Ixeris-4.6.10+26.3-neoforge.jar (677 KB) for your game version and loader.

  3. Put it in the mods folder

    The folder is inside .minecraft (Windows: %appdata%\.minecraft\mods). If it does not exist, create it.

  4. Launch the loader profile

    Open “Mods” in the main menu: Ixeris should be in the list.

Ixeris works on the player’s side only: there is no need to install it on a server.

Версії

Із залежностями

MinecraftЗавантажувачФайлДатаДії
26.3NeoForge26.3677 КБ
26.3Fabric, Quilt26.3751 КБ 6
26.2NeoForge26.2680 КБ
26.2Fabric, Quilt26.2754 КБ 5
26.1.2NeoForge26.1.2679 КБ
26.1.2Fabric, Quilt26.1.2753 КБ
1.21.11Forge1.21.111.5 МБ 2
1.21.11NeoForge1.21.11680 КБ

Відгуки

Станьте першим, хто оцінить Ixeris

Коментарі 0

Увійдіть, щоб коментуватиУвійти

Схожі моди

Усі моди

Детальніше про це

Автор: decce6Ліцензія: LGPL-3.0-onlyВихідний код

Ви автор? Зв'яжіться з нами — ми видалимо це протягом 48 годин.