Since its first release, Minecraft: Java Edition has drawn every frame through OpenGL. In 2026 Mojang started replacing it with Vulkan, the modern, lower-level graphics API from the Khronos Group. For players it is a performance story. For anyone who ships resource packs that use the game's shaders, like we do, it is a rewrite of the ground we build on.
The timeline so far
18 February 2026: the announcement. Mojang announced that Java Edition would switch from OpenGL to Vulkan as part of the work towards Vibrant Visuals, the graphics update already available on Bedrock Edition. The plan: ship Vulkan in development snapshots alongside OpenGL, let players toggle between the two during testing, and remove OpenGL entirely once Mojang is happy with Vulkan's performance and stability. The new renderer also runs on its own thread, separate from the game logic. Mojang asked mod developers to start preparing to move away from OpenGL and to rely on the game's internal rendering APIs where possible.
7 April 2026: 26.2 Snapshot 1, Vulkan arrives. The first snapshot of 26.2 added an experimental Vulkan backend and a new Graphics API option in Video Settings with three values: Default, Prefer Vulkan and Prefer OpenGL. Other details from that snapshot:
- The minimum requirement is Vulkan 1.2 with dynamic rendering and push descriptors.
- On macOS, which has no native Vulkan support, the game translates Vulkan to Apple's Metal through MoltenVK.
- Under Vulkan, the game prefers a dedicated graphics card over integrated graphics, a change from OpenGL.
- Rendering moved to a reversed depth buffer, which reduces Z-fighting on most hardware.
- The text shaders were consolidated into
core/textandcore/text_background, with variants selected by the shader definesIS_GUI,IS_SEE_THROUGHandIS_GRAYSCALE. The resource pack format moved to 85.0.
22 September 2026: 26.4 Snapshot 1, Vulkan becomes the default. In the latest snapshot, the Default option now behaves exactly like Prefer Vulkan, so Vulkan is the first choice on every system. The game also no longer switches the Graphics API setting by itself after a crash on startup. OpenGL can still be chosen by hand, for now.
Why this matters for shader-based packs
Many server features that look like plugins are really resource pack tricks. Custom tab lists, coloured and animated text, hidden or restyled interface elements: these work by shipping modified core shaders in the server resource pack, which change how the client draws text and interface elements.
Those shaders are written against the game's rendering pipeline, and that pipeline is exactly what is being replaced. The text shaders our packs rely on have already been merged and restructured in the snapshots, and more of the pipeline will keep changing until Vulkan is final and OpenGL is removed.
Our decision: holding shader products until Vulkan is stable
Tablist Mixed and our other shader-based products will not receive new shader-dependent updates or ports to new Minecraft versions while the renderer is still changing in snapshots. We will rebuild them against the Vulkan pipeline once it ships in a stable release.
We made this call for three reasons:
- Snapshots move fast. A shader written against one snapshot can break in the next. Chasing every change would mean shipping updates that stop working a week later.
- One clean rebuild beats many patches. Once the Vulkan pipeline is final, we can rebuild each pack once, properly, and test it on the renderer players will actually use.
- Your server should not be a test bed. Customers run these packs on live servers. We would rather hold an update than hand players a tab list that renders wrong.
Existing purchases and licenses are not affected by this decision.
What happens next
We are following the snapshots as Mojang finishes the move. When a stable release ships with Vulkan, we will announce the rebuilt versions here on the articles page and on the Speaway Discord.