Complementary Shaders with Iris and Sodium: Compatibility Guide
If you ask experienced players how Complementary Shaders is meant to be run today, the answer is usually a pair of names: Iris and Sodium. Iris loads the shaders; Sodium makes the game underneath them faster. This guide explains what each does, why the pairing works so well, how to set it up, and the compatibility notes that matter.
Who does what
| Component | Job |
|---|---|
| Minecraft Java Edition | The game |
| Sodium | Optimises the game's own rendering engine, chunk rendering, culling, memory behaviour, for higher, steadier frame rates |
| Iris | The shader loader: reads shader packs (like Complementary) and runs them within the game, built to work with Sodium's renderer |
| Complementary Shaders | The shader pack itself: lighting, shadows, water, sky |
The key fact: Complementary officially supports the Iris loader, and Iris was built from the start to coexist with Sodium. Nothing in the chain fights anything else, which has not always been true in shader history, and is why this stack became the standard recommendation.
Why the pairing matters for shaders specifically
A shader pack adds rendering work on top of the game. Sodium removes rendering waste from underneath it. The two effects compound: players routinely find that Iris + Sodium + a shader pack outperforms OptiFine alone, and sometimes approaches their vanilla frame rates at modest shader settings. That headroom is spendable, on a higher profile, longer render distance, or simply steadier frame times. The tuning method is in the performance guide.
Setting up the stack
- Install Iris with its installer for your exact Minecraft version, and accept the bundled Sodium option (the installer offers them together for this reason). Full walkthrough: installing with Iris.
- Launch the Iris profile once and confirm the title screen shows the Iris/Sodium note.
- Add the Complementary ZIP to the shaderpacks folder and select it (complete installation guide).
- Tune the pack's profile to your machine; leave Sodium's own settings at defaults unless you have a specific reason, its defaults are well chosen.
Compatibility notes
- Versions move together. Iris and Sodium releases are tied to Minecraft versions. When the game updates, wait for both to update before moving your setup, the order of operations is in fixing shaders after an update.
- Other performance mods. The Sodium ecosystem includes companion mods (for entity culling, lighting and more). They are optional; add one at a time and test, rather than installing a bundle blind.
- OptiFine does not join this stack. OptiFine is an alternative loader with its own renderer, you run Iris + Sodium or OptiFine, never a blend. Moving between them is covered in the OptiFine guide.
- Modded play. Iris and Sodium live comfortably inside Fabric setups, so this stack scales from vanilla-plus to heavily modded games. See Fabric and Quilt.
When the stack misbehaves
Symptoms like missing shader menus, crashes on world load, or bizarre rendering inside this stack are usually version mismatches between the game, Iris and Sodium, three moving parts instead of two. The triage in Complementary Shaders not working starts with exactly that check. Keep the trio from one Minecraft version, from official sources, and most problems never occur.
Two ways to install Iris, and what changes
Iris reaches your game by one of two routes, and players often ask whether the choice affects Complementary. It does not affect the pack at all, the same ZIP, selected the same way, runs identically, but it does affect how the rest of your setup is managed:
- Standalone, via the Iris installer: the installer creates a dedicated game profile with Iris (and, if you accept it, Sodium) built in. This is the simplest route for players whose goal is shaders on an otherwise vanilla game. There is no separate mod loader to maintain, and updating means re-running the installer for the new game version.
- As a mod, inside Fabric or Quilt: Iris sits in the mods folder alongside Sodium and your other mods, managed by your launcher instance like any other mod. This is the route for modded play, covered in detail in Fabric and Quilt. Updating means replacing the mod files with builds for your game version.
What must not happen is a mixture: a standalone Iris profile and a Fabric instance are separate installations with separate folders. A pack placed in one installation's shaderpacks folder does not appear in the other, a frequent source of "the pack vanished" confusion after switching profiles. When you change route, move the ZIP deliberately and re-select it once in the new profile.
What Sodium does not do
Because the pairing is recommended so often, a few misconceptions are worth clearing up explicitly:
- Sodium does not load shaders. Without Iris (or OptiFine in its own stack), Sodium alone gives you a faster vanilla game and no shader menu at all. If the Shaders option is missing entirely, the missing component is the loader, not Sodium.
- Sodium does not set your shader profile. Potato through Ultra, shadow quality, water and lighting choices all live in Complementary's own settings screen. Sodium's options govern the game's rendering behaviour underneath; the pack's options govern the look. Tuning in the wrong menu is a common reason "changing settings does nothing".
- Sodium does not fix a weak GPU. It removes waste in the game's own rendering, which frees headroom, but the shader's own cost still lands on the graphics card. A machine that can only sustain Potato without Sodium will not sustain High with it, it will sustain Potato more steadily, which is its own real benefit.
- Sodium is not required by the pack. Complementary's stated loader support is Iris and OptiFine. Sodium is a companion within the Iris route, recommended on performance grounds, never a condition of compatibility.
Updating Iris and Sodium without breaking the setup
Game updates are the moment this stack most often breaks, and almost always for the same reason: one component moved and the others did not. The safe order is to treat the trio as a single unit. When a new Minecraft version arrives, wait until Iris and Sodium both publish builds for that exact version, then update all three together and test in a backed-up world before bringing the setup to your main world. Updating the game alone leaves you with loaders that refuse to start; updating a loader alone, to a build for a different game version, does the same from the other direction.
Within a single game version, smaller updates are lower risk but follow the same discipline: replace one component at a time, launch once, and confirm the shader still loads before changing anything else. That way, if a problem appears, you know which change introduced it. Keep the previous working files until the new combination has survived a real play session, rolling back one file is trivial; reconstructing a working trio from memory is not. The full recovery sequence for an update that has already gone wrong is in fixing shaders after a Minecraft update, and the settings themselves survive the move if you follow updating without losing your settings.
Frequently asked questions
Do I need Sodium for Complementary to work?
No, Iris alone loads the pack. Sodium is a performance companion, strongly recommended but not a requirement.
Can I use Sodium with OptiFine instead?
No. Sodium works with Iris's ecosystem; OptiFine has its own renderer and is not compatible with Sodium.
Does Sodium change how the game looks?
Its job is performance, not appearance. With shaders off, the game looks vanilla; with Complementary on, the look is the pack's. Any visual settings in Sodium are about rendering behaviour, not style.


