Quick answer: SPIR-V Cross output containing vendor-specific extension declarations on non-vendor targets? Generator emits extensions seen in source; strip during cross-compile.
Cross-compiled GLSL contains #extension GL_NV_*. AMD driver rejects.
Strip extensions
Post-process the generated GLSL; remove vendor-specific #extension lines.
Or specialize per target
Cross-compile to different outputs per vendor. More builds; smaller outputs.
Audit source SPIR-V
If the SPIR-V has vendor extensions, the cross-compile can't help. Remove at source.
“Cross-compilers preserve extensions. Preservation isn't always desired.”
If your shader pipeline targets multiple vendors, the cleanup step is mandatory. Validate on each vendor.