Skip to content

适用于 Minecraft 1.21.1, 1.16.5 的 Ixeris 模组

缓冲的原始输入和线程化的事件轮询

起价 decce6 · Modrinth
次下载
31 次下载
次浏览
157 次浏览
已更新
已更新 19.10.2026

Ixeris

概述

Ixeris 是一个通过优化事件轮询来提升客户端性能的模组。

你可能已经注意到,移动鼠标时 FPS 会明显下降。FPS 下降的部分原因是游戏在转动视角时确实有额外的工作要做,比如计算区块的可见性。然而,由于轮询事件的原生代码效率低下以及 JNI 上调开销,一些本可用于渲染的 CPU 时间被不必要地花在了事件轮询上。这在 Windows 上最为明显,尤其是当你的鼠标具有高轮询率时。

Ixeris 主要通过两项措施解决该问题:

  • 线程化事件轮询。Ixeris 不在同一线程上执行渲染和事件轮询,而是在主线程上执行事件轮询,并将渲染转移到单独的渲染线程。
  • 缓冲原始输入(仅限 Windows)。将输入轮询所用的方法从低效的 GetRawInputData(每个输入事件调用一次)切换为 GetRawInputBuffer,后者允许批量读取原始输入消息(所有事件只需一次调用)。此外,在 Java 代码中执行此工作使我们得以消除 JNI 上调开销。

基准测试

这些测试是在世界完全加载且帧率稳定后进行的。

测试 1:游戏内

此测试比较鼠标被捕获(即光标不可见)时的性能。该测试在没有任何实体的超平坦世界中进行。

此测试在 Windows 上进行,Ixeris 默认使用缓冲原始输入以提升性能。“Ixeris,非缓冲”列显示禁用该选项时的 FPS。

轮询率 - 无 Ixeris - Ixeris,非缓冲 - Ixeris,缓冲

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 暂停界面。在这种情况下,从不使用原始输入,因为游戏需要知道实际的光标位置,而不是原始的相对移动。轮询率为 1000Hz。

“空闲 FPS”列显示不移动鼠标时的 FPS,接下来的两列分别显示在游戏窗口上快速移动鼠标时、无 Ixeris 和有 Ixeris 时的 FPS。请注意,此测试是在 Ixeris 初始发布时进行的,此后已做出许多改进。

空闲 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 KB
26.3Fabric, Quilt26.3751 KB 6
26.2NeoForge26.2680 KB
26.2Fabric, Quilt26.2754 KB 5
26.1.2NeoForge26.1.2679 KB
26.1.2Fabric, Quilt26.1.2753 KB
1.21.11Forge1.21.111.5 MB 2
1.21.11NeoForge1.21.11680 KB

评价

成为第一个评价 Ixeris 的人

评论 0

登录后即可评论登录

相似模组

全部模组

了解更多

作者: decce6许可证: LGPL-3.0-only源代码

您是作者吗? 联系我们 —— 我们将在 48 小时内下架。