Minecraft Java Edition Switches from GLFW to SDL3 for Better Performance
Minecraft: Java Edition now uses SDL3
We are thrilled to announce that Minecraft Java Edition now uses SDL3 instead of GLFW for window management and input. This snapshot also introduces new item components for custom furnace fuels, improves sign mechanics, and updates world generation logic. While we've made significant technical strides, please note that exclusive fullscreen mode may cause crashes on Windows and Wayland systems.
"Happy Snapshot Tues... Thursday? Yes, you read that right! As we've entered peak vacation season here in Sweden, snapshots might not come out on their usual schedule."
HN discussion
- Switching from GLFW to SDL3 addresses the aging GPU API abstraction in SDL2, specifically improving Vulkan and Metal support to potentially resolve long-standing input lag and alt-tab issues on Linux.
- The split between Java and Bedrock editions stems from the difficulty of porting the JVM to consoles, leading Microsoft to rewrite the game in C++ for performance and platform compatibility while retaining Java for its massive modding community.
- Java Edition's performance limitations are primarily due to its single-threaded architecture, as demonstrated by the Sodium mod family, rather than inherent flaws in the JVM itself.
- For game servers, the ZGC garbage collector is superior to G1 because it eliminates the 50ms latency spikes that G1 tolerates, making the trade-off of higher CPU usage worthwhile for real-time gameplay.
- Native fullscreen mode on Apple Silicon Macs significantly reduces input lag by triggering Game Mode, which prioritizes resources and doubles Bluetooth polling rates, whereas borderless windowed mode introduces latency via the Desktop Window Manager compositor.