
DX12MC: Experimenting with a Direct3D 12 Renderer for Minecraft
The story behind DX12MC, an experimental Fabric mod that renders Minecraft through a Direct3D 12 backend using bgfx, including what works, what does not, and why I built it.
DX12MC: Experimenting with a Direct3D 12 Renderer for Minecraft
DX12MC (or DXMC) is an experimental Fabric mod that renders Minecraft through a Direct3D 12 backend using bgfx, instead of the usual OpenGL path.
This started as a hobby project and a way for me to learn more about graphics rendering. It is not a claim that Direct3D 12 is better than other renderers, and it is not meant to replace anyone else’s work. I had an idea I wanted to try, so I built it.
How it started
Seeing people add DLSS to different games got me thinking: could I get Minecraft rendering through Direct3D 12, as directly as Java would allow?
I first experimented with Mesa around version 0.3. That approach did not feel right for this project, and I was not eager to write all the bindings myself. I eventually switched to bgfx through LWJGL, which already fits into Minecraft’s Java ecosystem.
There were a few milestones that made the work feel real. Version 0.8.8 was the first build that actually opened the game. I was almost in tears when it worked. Version 0.9 fixed the very low frame rate, although the mod was still unstable.
What works today
The current target is Minecraft 1.21.1 with Fabric on Windows. The renderer can currently draw:
- Terrain, entities, and text
- Fog, block outlines, and End portals
- Menu blur, glowing outlines, and spectator effects
- Screenshots
Some existing video settings are also connected to the Direct3D 12 backend, including VSync, mipmap levels, and glint strength. The F3 debug screen shows the GPU, driver, and feature level being used.
Known limitations
This is still experimental, so there are important gaps:
- Fabulous graphics is not supported yet.
- Panorama rendering and off-screen screenshots are not supported yet.
- Other mods are not guaranteed to work, especially mods that change Minecraft’s rendering pipeline.
- If the game needs a rendering path that DX12MC does not implement, it stops with an error rather than silently falling back to OpenGL.
- Windows is the intended platform. I have tried Linux through WSL and Zorin OS 17, but Linux support is not something I can promise.
Testing and feedback
So far, my testing has been limited to a GT 1030, Ryzen 5 3600, 16 GB of RAM, and Windows 11. I would especially like to hear from people testing on other GPUs, including RTX cards. If you try it, please share your hardware and results through a GitHub issue.
GPT Codex has been my main helper for documentation and debugging. For jars prepared for release on CurseForge or Modrinth, I also use Claude Opus for an additional review. I am still responsible for what I publish. English is not my strongest area, so if you spot a confusing sentence or a documentation mistake, feedback is welcome.
Where the project is going
I am focusing on Fabric 1.21.1 until the project is stable enough, possibly around version 1.0. A Minecraft 1.20.1 build may come later, but it is not ready yet.
I should also set expectations: I tend to ship a project once it works and may not be quick to maintain it afterward. Issues and pull requests are welcome, though replies may be slow. Please use the main branch.
If you want to explore the project or try a build, here are the links:
This is one idea among many ways to experiment with Minecraft rendering. It is simply the version I wanted to build—and mine uses bgfx.
