Bug Report
Description
Minecraft Bedrock crashes with Signal 6 (SIGABRT) in the "Rendering Pool" thread immediately after entering a world on all NVIDIA desktop GPUs using the proprietary driver.
The main menu renders fine — the crash happens when compute shaders for world rendering are loaded.
Root Cause
Minecraft's GLSL compute shaders declare image2DArray uniforms with binding = 9 (and potentially higher). On NVIDIA desktop GPUs, GL_MAX_IMAGE_UNITS = 8 (units 0–7), so binding index 9 is out of range.
// This line in Minecraft's shader causes the crash:
layout(binding = 9, rgba16f) uniform writeonly image2DArray outputBuffer;
The shader fails to compile, Minecraft doesn't check the compile status, and the game attempts to use the invalid program → std::terminate() → SIGABRT.
Crash Log
Signal 6 in thread "Rendering Pool" at
[libminecraftpe.so + 0x5dc9898]
gsignal → abort → __gnu_cxx::__verbose_terminate_handler()
→ __cxxabiv1::__terminate(void (*)()) → std::terminate()
Affected Hardware
Any NVIDIA GPU reporting GL_MAX_IMAGE_UNITS = 8:
- GeForce RTX 4090/4080/4070/4060 (all variants)
- GeForce RTX 3090/3080/3070/3060
- GeForce RTX 2080/2070/2060
- GeForce GTX 1080/1070/1060
- All Quadro/Tesla cards
AMD/Intel GPUs are not affected (they typically report higher values).
Test System
| Component |
Details |
| OS |
Kubuntu 24.04.4 LTS, Kernel 6.17.0-19-generic |
| GPU |
NVIDIA GeForce RTX 4080, Driver 590.48.01 |
| MC |
Bedrock Edition 1.26.0.2 via mcpelauncher (ng branch) |
Fix
PR #133 fixes this by intercepting glShaderSource and remapping image binding values ≥ 8 to val % 8. Only image* type declarations are affected — sampler, UBO, and SSBO bindings are left untouched.
Additionally, glBindImageTexture calls are remapped consistently to match the shader changes.
See PR #133 for full implementation details and documentation.
Bug Report
Description
Minecraft Bedrock crashes with Signal 6 (SIGABRT) in the "Rendering Pool" thread immediately after entering a world on all NVIDIA desktop GPUs using the proprietary driver.
The main menu renders fine — the crash happens when compute shaders for world rendering are loaded.
Root Cause
Minecraft's GLSL compute shaders declare
image2DArrayuniforms withbinding = 9(and potentially higher). On NVIDIA desktop GPUs,GL_MAX_IMAGE_UNITS = 8(units 0–7), so binding index 9 is out of range.The shader fails to compile, Minecraft doesn't check the compile status, and the game attempts to use the invalid program →
std::terminate()→ SIGABRT.Crash Log
Affected Hardware
Any NVIDIA GPU reporting
GL_MAX_IMAGE_UNITS = 8:AMD/Intel GPUs are not affected (they typically report higher values).
Test System
ngbranch)Fix
PR #133 fixes this by intercepting
glShaderSourceand remapping image binding values ≥ 8 toval % 8. Onlyimage*type declarations are affected — sampler, UBO, and SSBO bindings are left untouched.Additionally,
glBindImageTexturecalls are remapped consistently to match the shader changes.See PR #133 for full implementation details and documentation.