Quick answer: SPIR-V Cross output translating image format qualifier (r32f, rgba8) inconsistently? Some platforms reject; specify explicitly per output.
GLSL output declares r32f; AMD compiler rejects with format mismatch.
Specify per-translator
spirv-cross flags for per-output format mapping. Explicit; portable.
Or use generic
If the platform doesn't support, fall back to a generic format. Detection at startup.
Verify per platform
Each shipped platform: load shader; verify validity.
“Image format qualifiers are platform-strict. Cross-platform shaders need explicit handling.”
Document the per-platform shader format mapping. Reusable; predictable.