Crash: IrisRenderSystem.samplers is null when Voxy calls clearIrisSamplers() (Intel Iris Xe, Mesa Vulkan/OpenGL)
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 1.2k
- Forks
- 1.1k
- PR merge metrics
- No merged PRs in 30d
Description
Description:
During rendering, the client crashes consistently when Voxy, Iris and Sodium are all active at the same time.
The crash only occurs on my Intel Iris Xe system (Mesa 25.3.6, Fedora 43).
The error does not occur on my other PC (NVIDIA).
The crash report shows that IrisRenderSystem.samplers is null when Voxy attempts to delete the Iris samplers:
java.lang.NullPointerException: Cannot load from int array because "net.irisshaders.iris.gl.IrisRenderSystem.samplers" is null at net.irisshaders.iris.gl.IrisRenderSystem.bindSamplerToUnit(IrisRenderSystem.java:428) at me.cortex.voxy.client.core.util.IrisUtil.clearIrisSamplers0(IrisUtil.java:57) at me.cortex.voxy.client.core.util.IrisUtil.clearIrisSamplers(IrisUtil.java:39) at me.cortex.voxy.client.core.VoxyRenderSystem.renderOpaque(VoxyRenderSystem.java:360)
Important Details:
-
Backend: Vulkan and OpenGL affected -
GPU: Intel Iris Xe (TigerLake‑LP GT2) -
Treiber: Mesa 25.3.6 -
OS: Fedora 43 -
Java: OpenJDK 25 -
Mods: 1. Iris 1.11.2 2. Sodium 0.9.1 3. Voxy 0.2.19‑beta 4. Fabric Loader 0.19.5 5. Minecraft 26.2
Observation:
On Intel GPUs, Iris does not appear to initialise the sampler structure (samplers == null).
However, Voxy calls clearIrisSamplers() and expects the samplers to exist → crash.
Expected behaviour:
Voxy should check whether IrisRenderSystem.samplers != null before accessing it.
Alternatively, Iris should ensure that samplers is always initialised, even if certain GPU features are missing.
Crash report:
---> I have attached the full crash report here.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with me.cortex.voxy.client.core.util.IrisUtil.java, especially clearIrisSamplers0(), and trace its call from VoxyRenderSystem.renderOpaque() around line 360. Reproduce with the listed Iris, Sodium, Voxy, Intel Iris Xe, and Mesa setup, then verify rendering no longer crashes when IrisRenderSystem.samplers is null while sampler cleanup still works when it exists.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- computer-graphics, game-dev
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 64/100