Zink’s NIR → SPIR-V → NIR round-trip is wasteful and can sometimes be avoided
Zink serializes NIR to SPIR-V. If the underlying Vulkan implementation is Mesa, Mesa will then convert the SPIR-V back to NIR. If Zink is being built as part of Mesa, it is using the same NIR as Mesa is using, so the NIR → SPIR-V → NIR round-trip is pointless and just wastes CPU and memory.
The simplest fix is likely to have a nonstandard Vulkan API function (not an extension) that allows providing raw NIR to Mesa’s Vulkan implementation. This would not be exported outside of Mesa itself for obvious reasons. Zink would use this function when built as part of Mesa but not otherwise.