Black rectangles behind galaxy-map labels
Posted: Sat Jul 11, 2026 6:26 am
Hi,
I hit a rendering bug and dug into it a bit with AI's help. Posting because it reproduces cleanly on two very different GL stacks.
Symptom: on the galaxy map, from the zoom level where the system inset appears, each star's inset (the planets + orbits view, composited onto the map) renders as a solid opaque black rectangle. Star names sitting under that region are hidden as collateral.
Where it reproduces:
- Windows 11 ARM guest in VMware Fusion (VMware SVGA GL driver) — clean stock install, release branch and current beta branch.
- macOS via CrossOver/Wine (Apple OpenGL) — only when the GLSL path is forced.
Why I believe it's the Cg→GLSL path: both drivers report arbfp1-class fragment profiles, so init_cg_context takes the prefer_glsl branch (use_glsl=true). On CrossOver, where the engine happens to default to a native Cg profile, the insets composite correctly — and forcing use_glsl=true there reproduces the exact same black rectangles. So the offscreen-composite path appears broken specifically under the Cg→GLSL cross-compile, which NVIDIA users never hit. Possibly related: compose_start_screen was also the first shader to fail compiling when I forced GLSL under CrossOver — the compose family may be the common thread.
Bonus finding: forcing the native-Cg branch in the VMware VM (bypassing prefer_glsl) fails at startup compiling planet_super.cg with -DSIMPLE_SHADERS: warning C7102: unmatched #if at planet_super.cg(623), then error C0000: syntax error, unexpected $end at token <EOF> — looks like an untested preprocessor combination in the SIMPLE_SHADERS variant.
Beta branch note: the new GL-debug reporting shows GL_INVALID_ENUM in glMatrixMode (source 0x8246, type 0x824c, id 1) on the VMware driver at startup; game continues, black rectangles unchanged.
Happy to provide screenshots, logs/shaders.txt, or test a patch.
Thanks for keeping this gem alive!
Ludo
I hit a rendering bug and dug into it a bit with AI's help. Posting because it reproduces cleanly on two very different GL stacks.
Symptom: on the galaxy map, from the zoom level where the system inset appears, each star's inset (the planets + orbits view, composited onto the map) renders as a solid opaque black rectangle. Star names sitting under that region are hidden as collateral.
Where it reproduces:
- Windows 11 ARM guest in VMware Fusion (VMware SVGA GL driver) — clean stock install, release branch and current beta branch.
- macOS via CrossOver/Wine (Apple OpenGL) — only when the GLSL path is forced.
Why I believe it's the Cg→GLSL path: both drivers report arbfp1-class fragment profiles, so init_cg_context takes the prefer_glsl branch (use_glsl=true). On CrossOver, where the engine happens to default to a native Cg profile, the insets composite correctly — and forcing use_glsl=true there reproduces the exact same black rectangles. So the offscreen-composite path appears broken specifically under the Cg→GLSL cross-compile, which NVIDIA users never hit. Possibly related: compose_start_screen was also the first shader to fail compiling when I forced GLSL under CrossOver — the compose family may be the common thread.
Bonus finding: forcing the native-Cg branch in the VMware VM (bypassing prefer_glsl) fails at startup compiling planet_super.cg with -DSIMPLE_SHADERS: warning C7102: unmatched #if at planet_super.cg(623), then error C0000: syntax error, unexpected $end at token <EOF> — looks like an untested preprocessor combination in the SIMPLE_SHADERS variant.
Beta branch note: the new GL-debug reporting shows GL_INVALID_ENUM in glMatrixMode (source 0x8246, type 0x824c, id 1) on the VMware driver at startup; game continues, black rectangles unchanged.
Happy to provide screenshots, logs/shaders.txt, or test a patch.
Thanks for keeping this gem alive!
Ludo