GLFW X11修复

GLFW X11修复

修复了在Linux上使用LWJGL 3.3.3的GLFW原生库时,因高文件描述符导致的GLFW X11崩溃问题。

Bug修复

修复了 Minecraft 1.19–1.20.1 模组包在 Linux x86_64 和 ARM64 上出现的 GLFW/X11 崩溃问题。

某些模组包会打开足够多的文件,使得 X11 连接的文件描述符达到 1024 或更高。较旧版本的 GLFW 使用 select()/FD_SET,这些方法无法处理此类描述符编号,可能导致游戏崩溃。

Fabric Loader 会为每个模组打开 2 个文件描述符。有些模组还会额外打开文件描述符。因此,如果显示的模组数量(而非 JAR 文件数量)超过约 450 个,在受影响的 Minecraft 版本中,您很可能需要此模组。

此模组捆绑了 LWJGL 3.3.3 中的 GLFW 原生库,其中包含 GLFW PR #2024 中讨论的上游修复。它将 X11 事件等待中的 select() 替换为 poll(),从而在不减少打开文件数量的情况下修复崩溃问题。

预计不会出现兼容性问题:添加此模组与通过 JVM 参数(例如 -Dorg.lwjgl.glfw.libname=...)指向更新版 GLFW 库的 LWJGL 目的相同。它不会修改 Minecraft 的 Java 代码,也不会替换 LWJGL 的 Java 绑定。

此模组包含适用于 Linux x86_64 和 ARM64 的 libglfw.so。Windows 和 macOS 将继续使用其正常的原生库,因此在共享模组包中添加此模组预计不会影响这些平台上的游戏。