Skip to content

NVIDIA GPUs: SIGABRT crash when entering world (GL_MAX_IMAGE_UNITS = 8, shader binding out of range) #134

Description

@brainAThome

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions