Quick answer: Your shaders fail on some hardware because they use capabilities the affected GPUs don't support: features or instructions the GPU lacks (failing to compile or running wrong), a shader model/version higher than the GPU supports, precision the hardware handles differently (causing artifacts, especially on mobile), or limits the shader exceeds. Mobile and older/integrated GPUs are common failure points since they support fewer/lower shader capabilities.
Shaders are GPU programs, and not all GPUs support the same shader capabilities, so a shader that compiles and runs on your hardware can fail on others. Since shader support varies across the GPUs in the wild, finding the affected hardware and providing fallbacks is the fix.
Why Shaders Fail on Some Hardware
GPUs differ in shader capabilities, supported shader models/versions, features and instructions, precision support, and limits, so a shader can fail on hardware lacking what it uses. Causes: unsupported features/instructions (the shader uses something the GPU doesn't support, so it fails to compile or runs incorrectly), shader model/version mismatch (the shader targets a higher model than the GPU supports), precision issues (the shader assumes precision the hardware handles differently, especially mobile GPUs with limited precision, causing artifacts), and limits exceeded (instruction count, texture samplers).
The pattern, works on most GPUs, fails on specific ones, means the shader relies on capabilities those GPUs lack. Mobile and older/integrated GPUs are common failure points because they support fewer/lower shader capabilities than a modern desktop GPU.
How to Diagnose and Fix It
Capture which GPUs the shaders fail on, the affected hardware shares a capability gap. With device context (GPU, driver), see whether failures concentrate on a vendor, mobile GPUs, older/integrated GPUs, or a capability level. The failure type helps: compile failures point at unsupported features/shader model; artifacts point at precision. Bugnet captures device context with reports, so shader-failure reports arrive correlated with the GPUs they affect.
Fix by providing fallback shader variants within supported capabilities: create simpler variants using widely-supported features and a lower shader model, detect support and select the appropriate variant, handle precision properly (especially mobile), and stay within target-hardware limits. See our guide on fixing shaders that fail on some hardware.
Shaders fail on hardware that lacks the features, precision, or shader model they use. Capture the affected GPUs, then provide simpler fallback variants and detect support to pick the right one.