June 29, 2026

Shader glow-up, comment meltdown

Zig – SPIR-V Backend Progress

Zig’s shader comeback has fans cheering, skeptics squinting, and rivals getting name-dropped

TLDR: Zig made a big leap toward letting people write graphics and compute code more reliably, with faster building and fewer broken pieces. Commenters were split between “this is exciting” and “I still don’t get why I’d use Zig,” with Rust inevitably entering the ring.

Zig’s latest progress report should have been a dry developer update about fixing a neglected graphics toolchain. Instead, the comments turned it into a classic tech soap opera: hope, confusion, comparisons, and a little existential dread. The big news is that Zig is getting much better at targeting SPIR-V, the format used for graphics shaders and compute programs, meaning developers are closer to writing serious GPU code in Zig without everything feeling half-broken. The backend got cleaned up, multi-core compilation arrived, object files can now link together, and test results jumped by nearly 10%. In normal-person terms: it’s less fragile, more useful, and finally starting to look real.

But the crowd wasn’t just clapping. One camp was all-in, with reactions like “really cool” and dreams of using Zig for serious shader work someday. Another camp immediately hit the brakes with the most deliciously backhanded compliment in the thread: one commenter said they love “everything about Zig except the language itself,” then basically asked why anyone would pick it at all. Ouch. That sparked the familiar language-war energy, with Rust GPU getting dragged into the chat as the obvious rival. Meanwhile, another commenter tried to connect Zig’s “bring your own” design to Go’s Context pattern, giving the whole thread a side quest into “is this elegant flexibility or just passing stuff around forever?” The funniest part: even in a post about major progress, the community still managed to turn the spotlight onto the eternal tech-comment question — cool, but why should I care?

Key Points

  • Zig added a new `@SpirvType` builtin to represent SPIR-V types that Zig’s type system could not express, addressing a long-standing blocker for shader development.
  • SPIR-V execution mode metadata is now encoded in calling conventions, replacing inline assembly `OpExecutionMode` usage and removing `std.gpu.executionMode()`.
  • SPIR-V capabilities and extensions are now driven by CPU feature sets, with dependency chains sourced from SPIRV-Headers, and direct `OpCapability`/`OpExtension` emission is rejected by the assembler.
  • The SPIR-V backend now uses multithreaded code generation through the compiler thread pool and restored the `dedup_types` and `prune_unused` passes.
  • `.spv` files are now recognized as object files, and passing behavior tests on the `spirv64-vulkan` target increased to 49%, nearly a 10% gain.

Hottest takes

I really love everything about zig except the language itself — laszlojamf
It would be awesome to one day be able to use Zig for serious shader work — Gerharddc
See also the rust spir-v backend — LegNeato
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.