# SPIR-V Backend Progress Devlog

**URL:** <https://ziggit.dev/t/spir-v-backend-progress-devlog/16351>\
**Category:** News\
**Tags:** compiler, devlog, spir-v\
**Created:** [June 25, 2026, 10:04pm UTC](https://ziggit.dev/t/spir-v-backend-progress-devlog/16351 "2026-06-25T22:04:02Z")\
**Posts on this page:** 11\
**Page:** 2

<div class="post-metadata">

**Author:** ![stdgregwar](https://ziggit.dev/letter_avatar_proxy/v4/letter/s/c6cbf5/32.png) [@stdgregwar](https://ziggit.dev/u/stdgregwar)\
**Post date:** [July 7, 2026, 6:23am UTC](https://ziggit.dev/t/spir-v-backend-progress-devlog/16351/21 "2026-07-07T06:23:09Z")

</div>

> [@andrewrk](#):
>
> Is Zig already a better language than glsl for shaders??

Well @andrewrk it solves so many issues on the CPU-GPU code sharing front but the still missing matrix math and vector swizzle looks really painful.  
Really looking forward to [this](https://codeberg.org/ziglang/zig/issues/35376) landing.  
The work is amazing, having comptime on the GPU really is something !

Btw, is there any example around that touches spec constants ?

---

<div class="post-metadata">

**Author:** ![ali](https://ziggit.dev/user_avatar/ziggit.dev/ali/32/10235_2.png) [@ali](https://ziggit.dev/u/ali)\
**Post date:** [July 8, 2026, 12:07pm UTC](https://ziggit.dev/t/spir-v-backend-progress-devlog/16351/22 "2026-07-08T12:07:06Z")

</div>

This thread might be interesting for you [Use of specialization constants in zig shaders](https://ziggit.dev/t/use-of-specialization-constants-in-zig-shaders/16578)

---

<div class="post-metadata">

**Author:** ![buzmeg](https://ziggit.dev/user_avatar/ziggit.dev/buzmeg/32/622_2.png) [@buzmeg](https://ziggit.dev/u/buzmeg)\
**Post date:** [July 14, 2026, 3:33am UTC](https://ziggit.dev/t/spir-v-backend-progress-devlog/16351/23 "2026-07-14T03:33:39Z")

</div>

> [@alanza](#):
>
> If you haven’t messed with shaders at all before, I’d suggest doing an intro tutorial to them, just in GLSL. there are lots and lots, but I’d be happy to find you some links if you’d like.

I would never direct anybody to GLSL for anything, anymore. Slang is so much better it’s ridiculous, at this point.

> **[The Slang Shading Language](https://shader-slang.org/)**
>
> Empowering real-time graphics developers with advanced language features and machine learning capabilities.

That doesn’t make me happy, and I’m really looking forward to when Zig is good enough to supplant slang, but that’s the current state of the industry.

---

<div class="post-metadata">

**Author:** ![floooh](https://ziggit.dev/user_avatar/ziggit.dev/floooh/32/2989_2.png) [@floooh](https://ziggit.dev/u/floooh)\
**Post date:** [July 14, 2026, 9:40am UTC](https://ziggit.dev/t/spir-v-backend-progress-devlog/16351/24 "2026-07-14T09:40:51Z")

</div>

IMHO GLSL is still perfectly fine if you need a slim solution, e.g. the combo glslang as frontend and SPIRVCross as backend is much smaller and much easier to integrate and customize than Slang. Also, one major advantage of GLSL is that it hasn’t been infected by the OOP/C++ virus like HLSL or MSL 😉

---

<div class="post-metadata">

**Author:** ![khskarl](https://ziggit.dev/user_avatar/ziggit.dev/khskarl/32/9844_2.png) [@khskarl](https://ziggit.dev/u/khskarl)\
**Post date:** [July 14, 2026, 12:36pm UTC](https://ziggit.dev/t/spir-v-backend-progress-devlog/16351/25 "2026-07-14T12:36:11Z")

</div>

> [@andrewrk](#):
>
> I can’t believe how well all this stuff is working already. Is Zig already a better language than glsl for shaders??

I’ve been using Zig for my shaders since 0.15.1 (SDF + tile based GUI, mostly compute shaders) and I wouldn’t go back to GLSL.

The largest warts in my pipeline are relying on `spirv-opt` and (iirc) doing some inline SpirV to get `PhysicalStorageBufferAddresses` working properly, I need to revisit this.

My GUI was crawling before `spirv-opt`, but I haven’t tried without it in a while.

---

<div class="post-metadata">

**Author:** ![KilianHanich](https://ziggit.dev/user_avatar/ziggit.dev/kilianhanich/32/8254_2.png) [@KilianHanich](https://ziggit.dev/u/KilianHanich)\
**Post date:** [July 14, 2026, 12:46pm UTC](https://ziggit.dev/t/spir-v-backend-progress-devlog/16351/26 "2026-07-14T12:46:55Z")

</div>

> [@floooh](#):
>
> GLSL is that it hasn’t been infected by the OOP/C++ virus like HLSL or MSL 😉

Have you heard of object oriented assembly? 😉

---

<div class="post-metadata">

**Author:** ![WeeBull](https://ziggit.dev/user_avatar/ziggit.dev/weebull/32/6828_2.png) [@WeeBull](https://ziggit.dev/u/WeeBull)\
**Post date:** [July 15, 2026, 12:19pm UTC](https://ziggit.dev/t/spir-v-backend-progress-devlog/16351/27 "2026-07-15T12:19:05Z")

</div>

> [@buzmeg](#):
>
> I’m really looking forward to when Zig is good enough to supplant slang,

Auto-differentiation is the killer feature keeping me on Slang right now. I’m not sure if that’s possible in Zig without custom arithmetic types / operator overloading.

---

<div class="post-metadata">

**Author:** ![Lowell](https://ziggit.dev/user_avatar/ziggit.dev/lowell/32/7145_2.png) [@Lowell](https://ziggit.dev/u/Lowell)\
**Post date:** [July 15, 2026, 1:36pm UTC](https://ziggit.dev/t/spir-v-backend-progress-devlog/16351/28 "2026-07-15T13:36:34Z")

</div>

Possible, just not as ergonomic. You’d have to use userspace types and functions instead of arithmetic operators.

The whole `a.mul(b.add(c))` instead of `a * (b + c)` stuff.

---

<div class="post-metadata">

**Author:** ![WeeBull](https://ziggit.dev/user_avatar/ziggit.dev/weebull/32/6828_2.png) [@WeeBull](https://ziggit.dev/u/WeeBull)\
**Post date:** [July 15, 2026, 1:40pm UTC](https://ziggit.dev/t/spir-v-backend-progress-devlog/16351/29 "2026-07-15T13:40:15Z")

</div>

Yeah… It would be so easy to mess that up. I don’t think that’s a real solution.

---

<div class="post-metadata">

**Author:** ![Playful](https://ziggit.dev/user_avatar/ziggit.dev/playful/32/5780_2.png) [@Playful](https://ziggit.dev/u/Playful)\
**Post date:** [July 15, 2026, 10:16pm UTC](https://ziggit.dev/t/spir-v-backend-progress-devlog/16351/30 "2026-07-15T22:16:36Z")

</div>

Another thing that you could do here that was pointed out I think a couple weeks was instead of writing it as `a.mul(b.add(c))` because it is just syntax sugar you can keep the methods defined the same and write something like:

```zig
const res: Thing = .mul(
        a,
        .add(
            b,
            c,
        ),
    );

/// OR

const res: Thing = .mul(a, .add(b, c));               

```

Doesn’t solve the not able to use operators problem but I find it much more readable and reminds me of lisp.

---

<div class="post-metadata">

**Author:** ![alanza](https://ziggit.dev/user_avatar/ziggit.dev/alanza/32/6006_2.png) [@alanza](https://ziggit.dev/u/alanza)\
**Post date:** [July 15, 2026, 11:13pm UTC](https://ziggit.dev/t/spir-v-backend-progress-devlog/16351/31 "2026-07-15T23:13:19Z")

</div>

also wanna plug [comath](https://codeberg.org/InKryption/comath) as something neat that’s possible in userland

[Previous page](https://ziggit.dev/t/spir-v-backend-progress-devlog/16351.md?page=1)
