The honest answer to "Sodium or Embeddium" in mid-2026 is: whichever one matches your mod loader. They are no longer interchangeable choices the way they were in 1.20. Two years of upstream divergence, one licensing fight, and a slow Forge port have created a real performance and feature gap — and most players never get to make this decision, because their modpack already picked.
This is the long version of that answer, version-pinned to Minecraft 1.21.4.
TL;DR
The fork tree
The lineage matters because it explains the feature gap.
Sodium (CaffeineMC, Fabric)
└─ Rubidium (Asek3, Forge port) [abandoned 2023]
└─ Embeddium (FiniteReality, NeoForge) ← based on Sodium 0.5.8
Embeddium picked up the torch when Rubidium stalled, but it forked off the 0.5.x branch — the last release under LGPL-3 before CaffeineMC started tightening control. That choice is why we're here.
The license fight
In November 2024, CaffeineMC opened issue #2400 on the Sodium repository proposing a license change from LGPL-3.0 to Polyform Shield. The stated rationale was direct: prevent third-party forks from "continuing to cut us out of our own project." In practice, that means stopping unauthorized Forge ports — Embeddium being the most prominent target.
The proposal is still under discussion at time of writing, and Embeddium maintains its position as the last LGPL inheritor of the Sodium rendering pipeline. CaffeineMC has been explicit that Embeddium is unsupported and that users should not file Sodium-tracker issues for it.
This drama matters to readers for two reasons:
- Sodium 0.6+ improvements are not flowing into Embeddium at the same pace they used to. The contract between projects is broken.
- If your modpack ships Embeddium today, you're locked into a slower release cadence than Sodium proper.
Architecture differences in 2026
Both mods replace Minecraft's chunk meshing pipeline with modern OpenGL multi-draw rendering. The CaffeineMC team reports a roughly 90% reduction in CPU overhead from their multi-draw approach, and roughly 40% lower vertex data bandwidth through compressed formats.
The relevant divergence on 1.21.4 specifically:
- Sodium 0.6.x rewrote vertex formats, integrated the Fabric Rendering API (FRAPI) directly, and retired the need for Indium as a compatibility shim.
- Embeddium 1.0.12-beta.1 is built on Sodium 0.5.8's pipeline. It includes FRAPI as well, but it does not have 0.6's vertex format work yet.
In practice, that's the difference between "current generation" and "one generation behind." Embeddium maintainers themselves acknowledge that it "may not perform quite as well as the native Fabric version of Sodium."
Performance numbers
A caveat first: CaffeineMC has not published head-to-head benchmarks, and Embeddium 1.0.12 on 1.21.4 is still flagged beta. The numbers below come from third-party aggregators and community testing, and should be treated as directional rather than exact.
Numbers via gamlio.com and evezone.evetech.co.za. For Embeddium on the same hardware, expect to land within a few percent of Sodium 0.5.x — meaning roughly 5–15% below Sodium 0.6.x in chunk-heavy and FRAPI-heavy scenes.
If you need first-party numbers for a specific decision, you'll have to bench your own pack on your own hardware. There is no substitute.
Compatibility matrix
The most common mistake we see in support threads: installing Indium with Sodium 0.6+. Don't. It's no longer needed and will cause a crash.
Modpack reality check
For most players this decision was already made for them by the modpack author.
- All The Mods 10 (NeoForge, ~400–500 mods) ships Embeddium + Oculus. Source: official ATM shader guide.
- Prominence II RPG (NeoForge, quest-driven) ships the same Embeddium + Oculus stack.
- Fabulously Optimized, Simply Optimized, Sodium Plus (Fabric, performance-focused) all ship Sodium.
If you're playing one of these, your renderer is fixed. If you're building a pack from scratch, your loader choice — Fabric vs NeoForge — is what really determines this, not your renderer preference.
What about the server?
This part trips people up constantly: neither Sodium nor Embeddium helps a dedicated server's TPS. Both are client-only render-pipeline replacements. They don't run on the server JVM at all.
If you're optimizing a server, you want:
- Lithium (Fabric) — game logic optimizations
- Krypton (Fabric) — network stack improvements
- Their NeoForge equivalents where available
A renderer mod will help every player's FPS at the same time, which is real value — but it won't keep your TPS from collapsing under 80 players. Different problem.
When to choose which
A flowchart, since the decision tree is short:
What's next
Sodium 0.8.x targets Minecraft 26.1, with a partial rewrite of the chunk culling pipeline. Embeddium has not announced when (or if) it will absorb 0.6's vertex format work, let alone 0.8's. The political situation around issue #2400 will likely determine whether Embeddium continues at all in the medium term — if Sodium relicenses to Polyform Shield, future merges become a legal question, not a technical one.
For 1.21.4 specifically, the picture is stable: Sodium 0.6.7 is the high-water mark on Fabric, Embeddium 1.0.12-beta.1 is the only serious option on NeoForge, and the gap between them is real but not catastrophic.
Most users won't notice the 5–15%. The ones who will are running 200-mod packs at 1440p with shaders, and they're stuck with whatever their loader allows. That's the actual answer.
Sources & further reading:
- Sodium 0.6.7 release notes: https://modrinth.com/mod/sodium/version/mc1.21.4-0.6.7-fabric
- Embeddium 1.0.12-beta.1 release notes: https://modrinth.com/mod/embeddium/version/1.0.12-beta.1+mc1.21.4
- Sodium licensing discussion (issue #2400): https://github.com/CaffeineMC/sodium/issues/2400
- Iris and Oculus shader compatibility FAQ: https://blog.curseforge.com/iris-shaders-frequently-asked-questions/
- Current state of shaders in 1.21: https://jangro.com/2024/08/24/the-current-state-of-shaders-in-minecraft-1-21

