Vulkan: a compute shader the driver can't build is left out, not a crash

The Galaxy S22 (Xclipse 920) says it has ray queries but can't build the
ray-traced light and fog shaders; Fry3DX crashed on start there. Android
builds use a current glslc (not the NDK's 2022 one).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NMSrd5oe1GpUD7E6d825KP
This commit is contained in:
Nexoniarz 2026-10-19 22:56:10 +02:00
commit 5d4ff6338a
3 changed files with 20 additions and 11 deletions

View file

@ -44,8 +44,12 @@ def main():
llvm = os.path.join(ndk, "toolchains", "llvm", "prebuilt", "linux-x86_64", "bin")
if not os.path.isdir(BUILD):
glslc = os.environ.get("GLSLC") or os.path.join(ndk, "shader-tools", "linux-x86_64", "glslc") # (the NDK's own, if none's given)
run("cmake", "--preset", "android", *([f"-DGLSLC={glslc}"] if os.path.exists(glslc) else []), cwd=ROOT)
# A current glslc: $GLSLC, or the one on PATH. (Not the NDK's: its 2022 shaderc makes compute
# shaders some phone drivers can't build, e.g. the Galaxy S22's.)
glslc = os.environ.get("GLSLC") or shutil.which("glslc")
if not glslc:
sys.exit("No glslc: install shaderc (or the Vulkan SDK), or set GLSLC")
run("cmake", "--preset", "android", f"-DGLSLC={glslc}", cwd=ROOT)
run("cmake", "--build", "--preset", "android", cwd=ROOT)
stage = os.path.join(BUILD, "apk")