Quick answer: SPIR-V Cross-output tessellation shader using wrong patch type? Default is triangles; specify if quads or isolines.
Quad tessellation domain in source; cross-output declares triangle patches; pipeline rejects.
Specify patch type
In tessellation control shader: layout(vertices = 4, quads, equal_spacing) out;
Or use simpler tessellation
If quads aren't required, triangle-only avoids the bug class. Pick simpler primitives.
Verify per backend
Some backends accept implicit defaults; others reject. Explicit is portable.
“Tessellation has multiple knobs. Explicit declarations are portable.”
Tessellation shaders are rare and bug-prone. Document the project's tessellation spec; consistent across shaders.