Repository navigation
Graphics Troubleshooting
Devin edited this page Oct 13, 2026
·
1 revision
If the game dies during GL/EGL startup — a native driver crash never reaches the Java crash handler — the app notices on next launch:
- A marker is written before GL init and cleared after the first successful frame.
- If the marker survives, the next launch escalates the persisted GL fallback level.
- Level 0: normal detection — ES 3.2 + geometry shaders when available.
-
Level 1: forces the ES 3.1-compatible renderer (pretranspiled
-310shaders, no geometry shaders, per-face PS1 depth viagl_FragDepth).
So if the game closes itself on launch, just open it again — the second attempt runs the compatibility renderer. The level is recorded in logs as GL fallback level: N.
The app opts into ANGLE via manifest metadata. If your device has an ANGLE package (most Android 11+ devices ship com.google.android.angle), you can force GLES-over-Vulkan rendering:
- Developer Options → Preferred graphics driver → Severed Chains → ANGLE, or
adb shell settings put global angle_gl_driver_selection_pkgs com.legendofdragoon.severedchains && adb shell settings put global angle_gl_driver_selection_values angle
If the device has no ANGLE package this does nothing — check adb logcat | grep ANGLE for Failed to find ANGLE package.
| Device | SoC/GPU | Android | Status |
|---|---|---|---|
| moto g82 5G | Snapdragon 695 / Adreno 619 | 13 | Works on ES 3.1 fallback (level 1) — see notes |
| Test device | Adreno 610 | 14 | Works on ES 3.2 geometry-shader path |
Notes:
- Android 13 blocks reflective access to
java.util.TimSortinternals the engine uses — fixed in v0.1.12 via a publicArrays.sortfallback. - The ES 3.1 path restores per-face PS1 depth ordering through a
flatvarying +gl_FragDepth(no geometry shader available). Fixed in v0.1.13.
Everything lands in Documents/Severed Chains/logs/:
-
crash-*.log— Java-level crashes, captured by the app's handler -
debug-*.log— verbose engine log (debug builds) - A native crash leaves the log truncated with no
crash-*file — that's the signal the GL fallback ladder heals.