38 Commits

Author SHA1 Message Date
cat 74e7fb7818 internal/rosa/package/spirv: spirv-llvm-translator 22.1.2 to 22.1.4
Test / Sandbox (push) Successful in 2m8s
Test / Create distribution (push) Successful in 56s
Test / Hakurei (push) Successful in 5m6s
Test / ShareFS (push) Successful in 3m10s
Test / Sandbox (race detector) (push) Successful in 4m11s
Test / Hakurei (race detector) (push) Successful in 7m22s
Test / Flake checks (push) Successful in 1m11s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-15 14:36:12 +09:00
cat 8366cdd224 internal/rosa/package/spirv: spirv-tools 2026.1 to 2026.2
Test / Create distribution (push) Successful in 56s
Test / Sandbox (push) Successful in 3m7s
Test / Hakurei (push) Successful in 4m40s
Test / ShareFS (push) Successful in 4m41s
Test / Sandbox (race detector) (push) Successful in 6m12s
Test / Hakurei (race detector) (push) Successful in 7m42s
Test / Flake checks (push) Successful in 1m16s
Upstream does not appear to understand the point of tags, so include relevant unreleased changes here.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-15 14:35:10 +09:00
cat 05f9939077 internal/rosa/package/glslang: 16.3.0 to 16.4.0
Test / Create distribution (push) Successful in 58s
Test / Sandbox (push) Successful in 2m49s
Test / ShareFS (push) Successful in 4m4s
Test / Hakurei (push) Successful in 4m12s
Test / Sandbox (race detector) (push) Successful in 5m53s
Test / Hakurei (race detector) (push) Successful in 7m3s
Test / Flake checks (push) Successful in 1m36s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-15 14:31:45 +09:00
cat ae30f627dd internal/rosa/package/glib: 2.89.1 to 2.89.2
Test / Create distribution (push) Successful in 57s
Test / Sandbox (push) Successful in 2m47s
Test / Hakurei (push) Successful in 4m5s
Test / ShareFS (push) Successful in 4m5s
Test / Sandbox (race detector) (push) Successful in 5m35s
Test / Hakurei (race detector) (push) Successful in 6m44s
Test / Flake checks (push) Successful in 1m10s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-15 01:41:12 +09:00
cat b4916dd431 internal/rosa/package/tamago: 1.26.4 to 1.26.5
Test / Create distribution (push) Successful in 53s
Test / Sandbox (push) Successful in 2m43s
Test / Hakurei (push) Successful in 3m50s
Test / ShareFS (push) Successful in 3m53s
Test / Sandbox (race detector) (push) Successful in 5m42s
Test / Hakurei (race detector) (push) Successful in 6m40s
Test / Flake checks (push) Successful in 1m6s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-14 22:29:37 +09:00
cat 4cf235675a internal/rosa/meson: always prepend D
Test / Create distribution (push) Successful in 58s
Test / Sandbox (push) Successful in 3m1s
Test / ShareFS (push) Successful in 4m37s
Test / Hakurei (push) Successful in 4m43s
Test / Sandbox (race detector) (push) Successful in 6m5s
Test / Hakurei (race detector) (push) Successful in 7m13s
Test / Flake checks (push) Successful in 1m6s
All flags in practice use this convention. An escape hatch is available by leaving the value empty.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-14 22:17:51 +09:00
cat 098943ab46 internal/rosa/meson: optionally use muon
Test / Create distribution (push) Successful in 58s
Test / Sandbox (push) Successful in 2m51s
Test / ShareFS (push) Successful in 3m54s
Test / Sandbox (race detector) (push) Successful in 5m33s
Test / Hakurei (race detector) (push) Successful in 6m44s
Test / Hakurei (push) Successful in 2m23s
Test / Flake checks (push) Successful in 1m8s
This is a much faster implementation free of python dependency hell, however currently fails to handle symbol visibility correctly, so unable to default to on. This change also cleans up some meson arguments.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-14 21:45:07 +09:00
cat fb3df67ba6 internal/rosa/package: muon
Test / Create distribution (push) Successful in 57s
Test / Sandbox (push) Successful in 2m51s
Test / ShareFS (push) Successful in 3m58s
Test / Hakurei (push) Successful in 4m14s
Test / Sandbox (race detector) (push) Successful in 5m37s
Test / Hakurei (race detector) (push) Successful in 6m41s
Test / Flake checks (push) Successful in 1m8s
Python-free meson drop-in replacement. Test suite still pulls in bootstrap python, but that is fine.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-14 20:09:41 +09:00
cat b1c882b4de internal/rosa/package/libucontext: 1.5.1 to 1.5.2
Test / Create distribution (push) Successful in 55s
Test / Sandbox (push) Successful in 3m24s
Test / Hakurei (push) Successful in 4m42s
Test / ShareFS (push) Successful in 4m54s
Test / Sandbox (race detector) (push) Successful in 6m7s
Test / Hakurei (race detector) (push) Successful in 7m24s
Test / Flake checks (push) Successful in 1m8s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-14 17:48:55 +09:00
cat 0ed0d8abde internal/rosa/package/libpsl: 0.22.0 to 0.23.0
Test / Create distribution (push) Successful in 54s
Test / Sandbox (push) Successful in 3m8s
Test / Hakurei (push) Successful in 4m30s
Test / ShareFS (push) Successful in 4m31s
Test / Sandbox (race detector) (push) Successful in 6m23s
Test / Hakurei (race detector) (push) Successful in 7m48s
Test / Flake checks (push) Successful in 1m9s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-14 17:48:28 +09:00
cat 51e4426a4f internal/rosa: remove gawk
Test / Create distribution (push) Successful in 58s
Test / Sandbox (push) Successful in 2m55s
Test / ShareFS (push) Successful in 3m58s
Test / Hakurei (push) Successful in 4m3s
Test / Sandbox (race detector) (push) Successful in 5m34s
Test / Hakurei (race detector) (push) Successful in 6m45s
Test / Flake checks (push) Successful in 1m10s
This change fully eliminates gawk.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-13 00:10:38 +09:00
cat 316edeb17b internal/rosa: fix GNU testsuite edge case
Test / Create distribution (push) Successful in 1m2s
Test / Sandbox (push) Successful in 3m2s
Test / ShareFS (push) Successful in 5m14s
Test / Sandbox (race detector) (push) Successful in 2m58s
Test / Hakurei (push) Successful in 3m6s
Test / Hakurei (race detector) (push) Successful in 4m5s
Test / Flake checks (push) Successful in 1m13s
For segments with a single test.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-12 22:37:57 +09:00
cat 8facae53c7 internal/rosa/package: replace gawk
Test / Create distribution (push) Successful in 1m1s
Test / Sandbox (push) Successful in 3m20s
Test / Hakurei (push) Successful in 4m54s
Test / ShareFS (push) Successful in 4m55s
Test / Sandbox (race detector) (push) Successful in 6m25s
Test / Hakurei (race detector) (push) Successful in 7m26s
Test / Flake checks (push) Successful in 1m21s
This replaces gawk in miscellaneous packages.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-12 22:09:56 +09:00
cat 7881bfd027 internal/rosa/package: awk
Test / Create distribution (push) Successful in 56s
Test / Sandbox (push) Successful in 3m7s
Test / Hakurei (push) Successful in 4m9s
Test / ShareFS (push) Successful in 4m10s
Test / Sandbox (race detector) (push) Successful in 5m57s
Test / Hakurei (race detector) (push) Successful in 7m30s
Test / Flake checks (push) Successful in 1m17s
This should replace gawk in many cases.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-12 22:08:22 +09:00
cat 9e9469fe6c internal/rosa/package/go: disable test broken on arm64
Test / Create distribution (push) Successful in 1m3s
Test / Sandbox (push) Successful in 4m11s
Test / ShareFS (push) Successful in 5m43s
Test / Hakurei (push) Successful in 5m44s
Test / Sandbox (race detector) (push) Successful in 7m29s
Test / Hakurei (race detector) (push) Successful in 8m55s
Test / Flake checks (push) Successful in 2m45s
Not currently able to investigate the failure due to performance of the arm64 development machine.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-12 19:58:22 +09:00
cat b6d90eb8e0 internal/rosa/package/gnu: findutils 4.10.0 to 4.11.0
Test / Create distribution (push) Successful in 1m17s
Test / Sandbox (push) Successful in 3m15s
Test / ShareFS (push) Successful in 5m55s
Test / Hakurei (push) Successful in 6m13s
Test / Sandbox (race detector) (push) Successful in 8m40s
Test / Hakurei (race detector) (push) Successful in 11m4s
Test / Flake checks (push) Successful in 1m26s
Yet another broken gnulib test.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-12 19:34:02 +09:00
cat 879f911fd8 internal/rosa/package/p11-kit: 0.26.2 to 0.26.4
Test / Create distribution (push) Successful in 56s
Test / Sandbox (push) Successful in 3m10s
Test / ShareFS (push) Successful in 4m36s
Test / Sandbox (race detector) (push) Successful in 5m58s
Test / Hakurei (race detector) (push) Successful in 7m10s
Test / Hakurei (push) Successful in 2m59s
Test / Flake checks (push) Successful in 3m33s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-12 19:21:39 +09:00
cat 1066fc0097 internal/rosa/package/meson: 1.11.1 to 1.11.2
Test / Create distribution (push) Successful in 51s
Test / Sandbox (push) Successful in 2m55s
Test / ShareFS (push) Successful in 4m26s
Test / Hakurei (push) Successful in 4m28s
Test / Sandbox (race detector) (push) Successful in 6m2s
Test / Hakurei (race detector) (push) Successful in 7m11s
Test / Flake checks (push) Successful in 1m31s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-12 19:21:15 +09:00
cat 3a3d8efb1e internal/rosa/package/python: early bootstrap variant
Test / Create distribution (push) Successful in 2m10s
Test / Sandbox (push) Successful in 6m44s
Test / ShareFS (push) Successful in 8m36s
Test / Sandbox (race detector) (push) Successful in 9m22s
Test / Hakurei (race detector) (push) Successful in 11m28s
Test / Hakurei (push) Successful in 2m25s
Test / Flake checks (push) Successful in 1m13s
This avoids pulling in python's insane dependency tree into the bootstrap path.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-11 21:13:44 +09:00
cat cb8c9e4e68 internal/rosa/package/git: disable more flaky tests
Test / Create distribution (push) Successful in 57s
Test / Sandbox (push) Successful in 2m47s
Test / ShareFS (push) Successful in 3m51s
Test / Sandbox (race detector) (push) Successful in 5m36s
Test / Hakurei (race detector) (push) Successful in 6m41s
Test / Hakurei (push) Successful in 2m23s
Test / Flake checks (push) Successful in 1m6s
Discovered these during the most recent libffi-induced world rebuild.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-11 15:40:48 +09:00
cat 1c4a3b72bf internal/rosa/package/libffi: 3.7.0 to 3.5.2
Test / Create distribution (push) Successful in 57s
Test / Sandbox (push) Successful in 2m55s
Test / ShareFS (push) Successful in 3m50s
Test / Hakurei (push) Successful in 4m2s
Test / Sandbox (race detector) (push) Successful in 5m48s
Test / Hakurei (race detector) (push) Successful in 6m55s
Test / Flake checks (push) Successful in 1m11s
Appears to be the final non-contaminated release. This package cannot be safely blocked indefinitely like rsync and vim. This change discontinues frequent bumps and limits damage by regressions introduced by AI slop until long-term plans are decided.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-11 12:23:05 +09:00
cat fdca05487c internal/rosa/package/cmake: 4.3.4 to 4.4.0
Test / Create distribution (push) Successful in 55s
Test / Sandbox (push) Successful in 2m53s
Test / ShareFS (push) Successful in 3m58s
Test / Sandbox (race detector) (push) Successful in 5m30s
Test / Hakurei (race detector) (push) Successful in 7m8s
Test / Hakurei (push) Successful in 2m20s
Test / Flake checks (push) Successful in 1m5s
This change also disables the bootstrap test because 4.4.0 broke the bootstrap test, and it makes little sense re-testing what has already succeeded.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 23:49:58 +09:00
cat 89db730bb9 internal/rosa/package/ncurses: enable deterministic archives
Test / Create distribution (push) Successful in 57s
Test / Sandbox (push) Successful in 2m53s
Test / ShareFS (push) Successful in 3m54s
Test / Hakurei (push) Successful in 4m6s
Test / Sandbox (race detector) (push) Successful in 5m51s
Test / Hakurei (race detector) (push) Successful in 6m57s
Test / Flake checks (push) Successful in 1m7s
This is not done by default in upstream build system.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 17:48:32 +09:00
cat 5161fc24ec internal/rosa/package/go: 1.26.4 to 1.26.5
Test / Create distribution (push) Successful in 1m20s
Test / Sandbox (push) Successful in 3m35s
Test / ShareFS (push) Successful in 4m41s
Test / Hakurei (push) Successful in 4m48s
Test / Sandbox (race detector) (push) Successful in 6m23s
Test / Hakurei (race detector) (push) Successful in 7m12s
Test / Flake checks (push) Successful in 1m7s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 15:51:57 +09:00
cat e1f16e7720 internal/rosa: apply patches in specified order
Test / Create distribution (push) Successful in 1m1s
Test / Sandbox (push) Successful in 2m59s
Test / ShareFS (push) Successful in 4m4s
Test / Hakurei (push) Successful in 4m15s
Test / Sandbox (race detector) (push) Successful in 5m40s
Test / Hakurei (race detector) (push) Successful in 6m45s
Test / Flake checks (push) Successful in 1m30s
This seems more intuitive than letting the filesystem decide, and having to use awkward names.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 15:39:55 +09:00
cat 8e9b3a2ed1 internal/rosa/go: migrate to azalea
Test / Create distribution (push) Successful in 1m3s
Test / Sandbox (push) Successful in 3m9s
Test / Hakurei (push) Successful in 4m13s
Test / ShareFS (push) Successful in 4m13s
Test / Sandbox (race detector) (push) Successful in 5m41s
Test / Hakurei (race detector) (push) Successful in 6m50s
Test / Flake checks (push) Successful in 1m15s
Bootstrap still remains native, however the final toolchain is migrated to azalea.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 14:48:54 +09:00
cat fd0a81b304 internal/rosa/package/libffi: 3.6.0 to 3.7.0
Test / Create distribution (push) Successful in 59s
Test / ShareFS (push) Successful in 6m32s
Test / Sandbox (race detector) (push) Successful in 7m23s
Test / Hakurei (race detector) (push) Successful in 8m36s
Test / Sandbox (push) Successful in 1m31s
Test / Hakurei (push) Successful in 2m33s
Test / Flake checks (push) Successful in 1m17s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 13:41:02 +09:00
cat 1d6d89a11a internal/rosa/package/go: bootstrap 1.25.11 to 1.25.12
Test / Create distribution (push) Successful in 1m22s
Test / Sandbox (push) Successful in 5m47s
Test / ShareFS (push) Successful in 7m0s
Test / Sandbox (race detector) (push) Successful in 7m56s
Test / Hakurei (race detector) (push) Successful in 10m6s
Test / Hakurei (push) Successful in 2m59s
Test / Flake checks (push) Successful in 1m14s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 02:37:38 +09:00
cat 6a6fdab92d internal/rosa/package/x: xwayland 24.1.12 to 24.1.13
Test / Create distribution (push) Successful in 1m27s
Test / Sandbox (push) Successful in 6m24s
Test / Hakurei (push) Successful in 9m39s
Test / ShareFS (push) Successful in 8m13s
Test / Sandbox (race detector) (push) Successful in 9m29s
Test / Hakurei (race detector) (push) Successful in 11m41s
Test / Flake checks (push) Successful in 1m19s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 02:37:15 +09:00
cat 67c67574e8 internal/rosa/package/x: xserver 21.1.23 to 21.1.24
Test / Create distribution (push) Successful in 1m16s
Test / Sandbox (push) Successful in 6m7s
Test / Hakurei (push) Successful in 9m42s
Test / ShareFS (push) Successful in 8m55s
Test / Sandbox (race detector) (push) Successful in 10m21s
Test / Hakurei (race detector) (push) Successful in 3m56s
Test / Flake checks (push) Successful in 1m10s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 02:36:53 +09:00
cat 79be25433b internal/rosa/package/x: libXfont2 2.0.7 to 2.0.8
Test / Create distribution (push) Successful in 1m28s
Test / Sandbox (push) Successful in 4m42s
Test / ShareFS (push) Successful in 6m15s
Test / Sandbox (race detector) (push) Successful in 8m22s
Test / Hakurei (race detector) (push) Successful in 12m18s
Test / Hakurei (push) Successful in 2m59s
Test / Flake checks (push) Successful in 1m16s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 02:36:24 +09:00
cat a4d78e8a32 internal/rosa/package/python: hatchling 1.17.0 to 1.17.1
Test / Create distribution (push) Successful in 57s
Test / Sandbox (push) Successful in 4m38s
Test / Hakurei (push) Successful in 9m19s
Test / Sandbox (race detector) (push) Successful in 7m50s
Test / ShareFS (push) Successful in 7m46s
Test / Hakurei (race detector) (push) Successful in 11m21s
Test / Flake checks (push) Successful in 2m53s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 02:35:41 +09:00
cat ab3c37f75a internal/rosa/package/wlroots: 0.20.1 to 0.20.2
Test / Create distribution (push) Successful in 57s
Test / Sandbox (push) Successful in 3m23s
Test / Hakurei (push) Successful in 8m1s
Test / Sandbox (race detector) (push) Successful in 6m20s
Test / ShareFS (push) Successful in 6m30s
Test / Hakurei (race detector) (push) Successful in 11m34s
Test / Flake checks (push) Successful in 3m2s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 02:35:07 +09:00
cat e6757fe254 internal/rosa/package/wayland: 1.25.0 to 1.25.91
Test / Create distribution (push) Successful in 57s
Test / Sandbox (push) Successful in 4m13s
Test / Hakurei (push) Successful in 7m1s
Test / ShareFS (push) Successful in 7m18s
Test / Sandbox (race detector) (push) Successful in 8m2s
Test / Hakurei (race detector) (push) Successful in 11m27s
Test / Flake checks (push) Successful in 3m12s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 02:34:32 +09:00
cat b0f0d9e060 internal/rosa/package/libva: 2.24.0 to 2.24.1
Test / Create distribution (push) Successful in 1m1s
Test / Sandbox (push) Successful in 3m34s
Test / ShareFS (push) Successful in 5m55s
Test / Sandbox (race detector) (push) Successful in 8m0s
Test / Hakurei (race detector) (push) Successful in 11m20s
Test / Hakurei (push) Successful in 4m8s
Test / Flake checks (push) Successful in 2m19s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 02:33:59 +09:00
cat ce58895a0d internal/rosa/package/fontconfig: 2.18.1 to 2.18.2
Test / Create distribution (push) Successful in 57s
Test / Sandbox (push) Successful in 3m10s
Test / Hakurei (push) Successful in 5m0s
Test / ShareFS (push) Successful in 5m16s
Test / Sandbox (race detector) (push) Successful in 7m33s
Test / Hakurei (race detector) (push) Successful in 10m34s
Test / Flake checks (push) Successful in 2m59s
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-10 02:33:16 +09:00
cat 3c78551b24 cmd/mbf: expose target load average
Test / Create distribution (push) Successful in 57s
Test / Sandbox (push) Successful in 2m56s
Test / ShareFS (push) Successful in 3m55s
Test / Hakurei (push) Successful in 4m0s
Test / Sandbox (race detector) (push) Successful in 5m34s
Test / Hakurei (race detector) (push) Successful in 6m47s
Test / Flake checks (push) Successful in 1m5s
There are often good reason to override this.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-09 20:07:16 +09:00
cat 223e8e56b3 internal/rosa/meson: respect preferred loadavg target and job count
Test / Create distribution (push) Successful in 56s
Test / Sandbox (push) Successful in 2m50s
Test / ShareFS (push) Successful in 3m55s
Test / Hakurei (push) Successful in 4m3s
Test / Sandbox (race detector) (push) Successful in 5m39s
Test / Hakurei (race detector) (push) Successful in 6m41s
Test / Flake checks (push) Successful in 1m5s
This was missed when first implementing jobs and was missed again implementing loadavg.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-09 19:37:08 +09:00
76 changed files with 4315 additions and 241 deletions
+4
View File
@@ -210,6 +210,10 @@ func main() {
&cm.attr.Jobs,
"jobs", command.IntFlag(0),
"Preferred number of jobs to run, when applicable",
).Flag(
&cm.attr.Load,
"load-average", command.IntFlag(0),
"Preferred load average number, when applicable",
).Flag(
&cm.base,
"d", command.StringFlag("$MBF_CACHE_DIR"),
+1 -1
View File
@@ -107,7 +107,7 @@ func skipGNUTests(tests ...int64) string {
buf.WriteString(strconv.Itoa(int(n - 1)))
buf.WriteString(" ")
}
if i == len(tests)-1 || tests[i+1] != n+1 {
if i == len(tests)-1 || (tests[i+1] != n+1 && tests[i+1] != n+2) {
buf.WriteString(strconv.Itoa(int(n + 1)))
buf.WriteString("-")
}
+1
View File
@@ -16,6 +16,7 @@ func TestSkipGNUTests(t *testing.T) {
}{
{[]int64{764}, "1-763 765-"},
{[]int64{764, 0xcafe, 37, 9}, "1-8 10-36 38-763 765-51965 51967-"},
{[]int64{168, 170, 623, 764}, "1-167 169 171-622 624-763 765-"},
{[]int64{1, 2, 0xbed}, "3-3052 3054-"},
{[]int64{3, 4}, "1-2 5-"},
}
+8 -26
View File
@@ -56,16 +56,15 @@ ln -s \
func init() {
const (
version = "1.26.4"
checksum = "fpqJlxa41wKRtbnviYNLk9VxgcL-5oIEDxsriF8svU6kNwQW70oRRA9gTz_ImVoB"
version = "1.25.12"
checksum = "XNrGD_boJl2-El_a_T3BuTcMin_WPoU-FGddcNG8dcXA8n2QuxZB7kaUaCWu60QX"
)
meta := Metadata{
Name: "go",
Description: "the Go programming language toolchain",
Name: "go-bootstrap",
Description: "the Go programming language toolchain (bootstrap)",
Website: "https://go.dev",
Version: version,
ID: 1227,
Exclude: true,
}
native.MustRegister(meta.Name, func(t Toolchain) (*Metadata, pkg.Artifact) {
var (
@@ -152,8 +151,8 @@ sed -i \
)
go125 := t.newGo(
"1.25.11",
"cnqAQ8wpVZXcM6nHAfSqFkIW4L3H73ALB9rBfKUBbfgg4_pOF3I9zOZARgYQ6MR2",
version,
checksum,
[]string{"CGO_ENABLED=0"}, `
sed -i \
's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \
@@ -165,23 +164,6 @@ rm \
`, go123,
)
return &meta, t.newGo(
version,
checksum,
finalEnv, `
sed -i \
's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+t.arch+`/obj.go
sed -i \
's/cpu.X86.HasAVX512VBMI/& \&\& cpu.X86.HasPOPCNT/' \
internal/runtime/gc/scan/scan_amd64.go
rm \
os/root_unix_test.go \
cmd/cgo/internal/testsanitizers/tsan_test.go \
cmd/cgo/internal/testsanitizers/cshared_test.go
`, go125,
)
return &meta, go125
})
}
+10 -9
View File
@@ -17,11 +17,12 @@ var (
_earlyRuntimes = H("early-runtimes")
_musl = H("musl")
_bash = H("bash")
_gawk = H("gawk")
_coreutils = H("coreutils")
_diffutils = H("diffutils")
_findutils = H("findutils")
_bash = H("bash")
_awk = H("awk")
_pythonEarly = H("python-early")
_coreutils = H("coreutils")
_diffutils = H("diffutils")
_findutils = H("findutils")
_zlib = H("zlib")
_zstd = H("zstd")
@@ -124,7 +125,7 @@ ln -s \
"/work/system/lib/${ROSA_TRIPLE}/crtendS.o"
`,
},
_python,
_pythonEarly,
_muslHeaders,
_kernelHeaders,
@@ -180,7 +181,7 @@ ln -s \
},
SkipTest: true,
},
_python,
_pythonEarly,
_zlib,
_zstd,
@@ -367,11 +368,11 @@ ln -s clang++ /work/system/bin/c++
Test: "ninja " + jobsFlagE + " " + loadFlagE + " check-all",
},
_python,
_pythonEarly,
_perl,
_diffutils,
_bash,
_gawk,
_awk,
_coreutils,
_findutils,
+1 -1
View File
@@ -8,7 +8,7 @@ import (
)
func TestLLVMInputs(t *testing.T) {
const wantInputCount = 553
const wantInputCount = 467
_, llvm := rosa.Native().Std().MustLoad(rosa.H("llvm"))
var n int
+1 -1
View File
@@ -56,7 +56,7 @@ func (attr *MakeHelper) extra(flag int) P {
extra := P{_make}
if (attr == nil || !attr.OmitDefaults) && flag&TEarly == 0 {
extra = append(extra,
_gawk,
_awk,
_coreutils,
)
}
+45 -16
View File
@@ -5,10 +5,16 @@ import (
"strings"
)
var _meson = H("meson")
var (
_muon = H("muon")
_meson = H("meson")
)
// MesonHelper builds and tests a meson project.
type MesonHelper struct {
// Use muon instead of meson.
Muon bool
// Runs after setup.
ScriptCompileEarly string
// Runs after compile.
@@ -29,7 +35,12 @@ type MesonHelper struct {
var _ Helper = new(MesonHelper)
// extra returns hardcoded meson runtime dependencies.
func (*MesonHelper) extra(int) P { return P{_meson} }
func (attr *MesonHelper) extra(int) P {
if !attr.isPython() {
return P{_muon}
}
return P{_meson}
}
// wantsChmod returns false.
func (*MesonHelper) wantsChmod() bool { return false }
@@ -43,6 +54,12 @@ func (*MesonHelper) scriptEarly() string { return "" }
// wantsDir requests a new directory in TMPDIR.
func (*MesonHelper) wantsDir() (string, bool) { return `"$(mktemp -d)"`, false }
// isPython returns whether the legacy python implementation is used.
func (attr *MesonHelper) isPython() bool {
return attr == nil ||
!attr.Muon || len(attr.SkipTests) != 0 || attr.InteractiveTest
}
// script generates the cure script.
func (attr *MesonHelper) script(t Toolchain, name string) string {
if attr == nil {
@@ -54,12 +71,28 @@ func (attr *MesonHelper) script(t Toolchain, name string) string {
scriptCompiled = "\n" + scriptCompiled
}
python := attr.isPython()
muon := "muon"
compile := " samu " + jobsFlagE
destdir := "-d"
if python {
muon = "meson"
compile = " compile " + jobsFlagE + " " + loadFlagE
destdir = "--destdir"
}
var scriptTest string
if !attr.SkipTest && t.opts&OptSkipCheck == 0 {
scriptTest = `
meson test \
-t 10 \
` + muon + ` test \
` + jobsFlagE + ` \
-t 10`
if python {
scriptTest += ` \
--print-errorlogs`
} else {
scriptTest += " -Rv"
}
if attr.InteractiveTest {
scriptTest += ` \
--interactive`
@@ -70,29 +103,25 @@ meson test \
}
return `
cd "$(mktemp -d)"
meson setup \
` + muon + ` setup \
` + strings.Join(slices.Collect(func(yield func(string) bool) {
for _, v := range append([]KV{
{"wrap-mode", "nofallback"},
{"wrap_mode", "nofallback"},
{"prefix", "/system"},
{"buildtype", "release"},
}, attr.Setup...) {
s := "-" + v[0]
if len(v[0]) > 0 && v[0][0] != 'D' {
s = "-" + s
}
s := v[0]
if v[1] != "" {
s += "=" + v[1]
s = "-D" + s + "=" + v[1]
}
if !yield(s) {
return
}
}
}), " \\\n\t") + ` \
. '/usr/src/` + name + `'
meson compile` + scriptCompiled + scriptTest + `
meson install \
--destdir=/work
'/usr/src/` + name + `'
` + muon + compile + scriptCompiled + scriptTest + `
` + muon + ` install \
` + destdir + ` /work
` + attr.Script
}
+30
View File
@@ -0,0 +1,30 @@
package awk {
description = "one true awk";
website = "https://github.com/onetrueawk/awk";
anitya = 16171;
version# = "20260426";
source = remoteGitHub {
suffix = "onetrueawk/awk";
tag = version;
checksum = "ewAvWLEHajhm7cA7v4DsKVk1c11niCLKIE5Q-8W_sxv1XXsbZlcOuWn1KOBYMxjo";
};
enterSource = true;
writable = true;
chmod = true;
exec = make {
omitDefaults = true;
inPlace = true;
skipConfigure = true;
preCheck = "install -vD a.out /system/bin/awk\n";
install = "install -vD a.out /work/system/bin/awk";
};
inputs = [
m4,
bison,
diffutils,
];
}
+6 -5
View File
@@ -10,10 +10,15 @@ package bison {
compress = gzip;
};
// awk dependency loop
toyboxEarly = true;
exec = make {
check = [
"TESTSUITEFLAGS=" + jobsFlagE + "' " + skipGNUTests {
tests = [
// GNU-isms not implemented in toybox
168, 170, 623,
// clang miscompiles (SIGILL)
764,
];
@@ -22,9 +27,5 @@ package bison {
];
};
inputs = [
m4,
diffutils,
sed,
];
inputs = [ m4 ];
}
+10 -10
View File
@@ -13,16 +13,16 @@ package cairo {
exec = meson {
setup = {
"Ddwrite": "enabled";
"Dfontconfig": "enabled";
"Dfreetype": "enabled";
"dwrite": "enabled";
"fontconfig": "enabled";
"freetype": "enabled";
"Dpng": "enabled";
"Dtee": "enabled";
"Dxcb": "enabled";
"Dxlib": "disabled";
"Dxlib-xcb": "disabled";
"Dzlib": "enabled";
"png": "enabled";
"tee": "enabled";
"xcb": "enabled";
"xlib": "disabled";
"xlib-xcb": "disabled";
"zlib": "enabled";
};
// runs the entire test suite in a single meson test
interactiveTest = true;
@@ -31,7 +31,7 @@ package cairo {
};
inputs = [
gawk,
awk,
zlib,
libpng,
@@ -1,13 +0,0 @@
diff --git a/Tests/BootstrapTest.cmake b/Tests/BootstrapTest.cmake
index 137de78bc1..b4da52e664 100644
--- a/Tests/BootstrapTest.cmake
+++ b/Tests/BootstrapTest.cmake
@@ -9,7 +9,7 @@ if(NOT nproc EQUAL 0)
endif()
message(STATUS "running bootstrap: ${bootstrap} ${ninja_arg} ${parallel_arg}")
execute_process(
- COMMAND ${bootstrap} ${ninja_arg} ${parallel_arg}
+ COMMAND ${bootstrap} ${ninja_arg} ${parallel_arg} -- -DCMAKE_USE_OPENSSL=OFF
WORKING_DIRECTORY "${bin_dir}"
RESULT_VARIABLE result
)
+4 -6
View File
@@ -3,18 +3,15 @@ package cmake {
website = "https://cmake.org";
anitya = 306;
version# = "4.3.4";
version# = "4.4.0";
source = remoteGitHubRelease {
suffix = "Kitware/CMake";
tag = "v"+version;
name = "cmake-"+version+".tar.gz";
checksum = "6A50pqarKDXKOCv7ffKMvWJWmNTVp_ep8KoaWwNdg-RYQRddgKbxayHveTo6jZ_7";
checksum = "ZL0Y19_mSJWsl3dMjRRQJAaCvl4_PqbwpgUC1aBA-cdVdrK_gt4ylpUM2GMoQMku";
compress = gzip;
};
patches = [
"bootstrap-test-no-openssl.patch",
"disable-broken-tests-musl.patch",
];
patches = [ "disable-broken-tests-musl.patch" ];
// test suite expects writable source tree
writable = true;
@@ -32,6 +29,7 @@ package cmake {
"--";
"-DCMAKE_USE_OPENSSL": "OFF";
"-DCMake_TEST_NO_NETWORK": "ON";
"-DCMake_TEST_BOOTSTRAP": "OFF";
};
check = [
+4 -4
View File
@@ -19,9 +19,9 @@ package dbus {
exec = meson {
setup = {
"Depoll": "enabled";
"Dinotify": "enabled";
"Dx11_autolaunch": "disabled";
"epoll": "enabled";
"inotify": "enabled";
"x11_autolaunch": "disabled";
};
};
@@ -50,7 +50,7 @@ package xdg-dbus-proxy {
exec = meson {
setup = {
"Dman": "disabled";
"man": "disabled";
};
};
+1 -1
View File
@@ -18,7 +18,7 @@ package dtc {
exec = meson {
setup = {
"Dyaml": "disabled";
"yaml": "disabled";
};
};
+2 -2
View File
@@ -3,12 +3,12 @@ package fontconfig {
website = "https://www.freedesktop.org/wiki/Software/fontconfig";
anitya = 827;
version# = "2.18.1";
version# = "2.18.2";
source = remoteGitLab {
domain = "gitlab.freedesktop.org";
suffix = "fontconfig/fontconfig";
ref = version;
checksum = "S3FJfh-PeZ2_YgNrUqL0H2G4Wf_ilj5HpIGV2oURnkK672AQHpWk526bNtRHwyJt";
checksum = "P8YoQunIynBhc3gdDyPkImw_GGYoy1U4aX0jTnpkgtLmU4nqIgUyeqCH3-rNzpTd";
};
exec = make {
+1 -1
View File
@@ -12,7 +12,7 @@ package fribidi {
exec = meson {
setup = {
"Ddocs": "false";
"docs": "false";
};
};
}
+4 -4
View File
@@ -14,10 +14,10 @@ package fuse {
exec = meson {
setup = {
"Ddefault_library": "both";
"Dtests": "true";
"Duseroot": "false";
"Dinitscriptdir": "/system/etc";
"default_library": "both";
"tests": "true";
"useroot": "false";
"initscriptdir": "/system/etc";
};
postCompile = "python3 -m pytest test/";
+2
View File
@@ -60,6 +60,8 @@ disable_test t1451-fsck-buffer
disable_test t4104-apply-boundary
disable_test t4200-rerere
disable_test t5515-fetch-merge-logic
disable_test t4124-apply-ws-rule
disable_test t3404-rebase-interactive
`;
check = [
+3 -3
View File
@@ -3,11 +3,11 @@ package glib {
website = "https://developer.gnome.org/glib";
anitya = 10024;
version# = "2.89.1";
version# = "2.89.2";
source = remoteGit {
url = "https://gitlab.gnome.org/GNOME/glib.git";
tag = version;
checksum = "9_6Eew2KIwa1AHopjU7CqC13_nur5FPJMu-iGUd7sD_1gAM1pa_HVUuAtqExJoYU";
checksum = "ZetUwjVOKs0v2xtndzy7_4kvZY2VEESOTT45AAMJVLr22fmTRKit4MJOwruB0als";
};
files = {
@@ -17,7 +17,7 @@ package glib {
exec = meson {
setup = {
"Ddefault_library": "both";
"default_library": "both";
};
// fails with ipv6 disabled
skipTests = [ "gio" ];
+2 -2
View File
@@ -3,11 +3,11 @@ package glslang {
website = "https://github.com/KhronosGroup/glslang";
anitya = 205796;
version# = "16.3.0";
version# = "16.4.0";
source = remoteGitHub {
suffix = "KhronosGroup/glslang";
tag = version;
checksum = "xyqDf8k3-D0_BXHGi0uLgMglnJ05Rf3j73QgbDs3sGtKNdBIQhY8JfqX1NcNoJQN";
checksum = "u67ps8Fv_75QDiusvKjzgttPPPxb5V7HsObb0q6OvqQfHh0UGN2_x8Y0RKb9JEie";
};
// test suite writes to source
+7 -22
View File
@@ -12,6 +12,9 @@ package m4 {
compress = bzip2;
};
// awk dependency loop
toyboxEarly = true;
writable = true;
early = `
chmod +w tests/test-c32ispunct.sh && echo '#!/bin/sh' > tests/test-c32ispunct.sh
@@ -220,25 +223,6 @@ test_disable '#!/bin/sh' tests/need-filename
exec = make {};
}
package gawk {
description = "an implementation of awk with GNU extensions";
website = "https://www.gnu.org/software/gawk";
anitya = 868;
version# = "5.4.0";
source = remoteTar {
url = "https://ftpmirror.gnu.org/gnu/gawk/gawk-"+version+".tar.gz";
checksum = "m0RkIolC-PI7EY5q8pcx5Y-0twlIW0Yp3wXXmV-QaHorSdf8BhZ7kW9F8iWomz0C";
compress = gzip;
};
toyboxEarly = true;
exec = make {
// dependency loop
skipCheck = true;
};
}
package grep {
description = "searches input for lines containing a match to a pattern";
website = "https://www.gnu.org/software/grep";
@@ -309,14 +293,15 @@ package findutils {
website = "https://www.gnu.org/software/findutils";
anitya = 812;
version# = "4.10.0";
version# = "4.11.0";
source = remoteFile {
url = "https://ftpmirror.gnu.org/gnu/findutils/findutils-"+version+".tar.xz";
checksum = "ZXABdNBQXL7QjTygynRRTdXYWxQKZ0Wn5eMd3NUnxR0xaS0u0VfcKoTlbo50zxv6";
checksum = "X-qsv9aUoBL583q-4iZcBI3_7Ufd3fSIqFmNLXWdEpUihlRfMpGGyAUt8SAvDKae";
};
early = `
echo '#!/bin/sh' > gnulib-tests/test-c32ispunct.sh
echo 'int main(){return 0;}' > gnulib-tests/test-fstatat.c
echo 'int main(){return 0;}' > tests/xargs/test-sigusr.c
`;
@@ -450,7 +435,7 @@ package texinfo {
runtime = [
perl,
gawk,
awk,
];
}
+29
View File
@@ -0,0 +1,29 @@
From 45929774c3d5c084cc478afba63c77cf67a68bd7 Mon Sep 17 00:00:00 2001
From: khr@golang.org <khr@golang.org>
Date: Wed, 18 Feb 2026 09:09:57 -0800
Subject: [PATCH] internal/runtime/gc/scan: require popcnt for x86
The GOAMD64=v1 test disables popcnt instructions, which is a feature
this package's amd64 assembly uses.
Fixes #77674
Change-Id: I7be9bb665838f5da50275f96ef3df398412bb44a
Reviewed-on: https://go-review.googlesource.com/c/go/+/746640
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Keith Randall <khr@google.com>
Auto-Submit: Keith Randall <khr@golang.org>
---
diff --git a/src/internal/runtime/gc/scan/scan_amd64.go b/src/internal/runtime/gc/scan/scan_amd64.go
index c03021c7d4..544b237770 100644
--- a/src/internal/runtime/gc/scan/scan_amd64.go
+++ b/src/internal/runtime/gc/scan/scan_amd64.go
@@ -39,4 +39,5 @@ var avx512ScanPackedReqsMet = cpu.X86.HasAVX512VL &&
cpu.X86.HasGFNI &&
cpu.X86.HasAVX512BITALG &&
cpu.X86.HasAVX512DQ && // for kmovb, see #79871
- cpu.X86.HasAVX512VBMI
+ cpu.X86.HasAVX512VBMI &&
+ cpu.X86.HasPOPCNT
+135
View File
@@ -0,0 +1,135 @@
From 06f90ebfa6f3e0a744584513e2786988b26569da Mon Sep 17 00:00:00 2001
From: Damien Neil <dneil@google.com>
Date: Wed, 08 Jul 2026 11:11:48 -0700
Subject: [PATCH] os: properly handle trailing / in Root.MkdirAll
MkdirAll("dir/") should create "dir", not return an error.
Fixes #80308
Change-Id: I75458c30b6cb94be3a3d368f6024caef6a6a6964
---
diff --git a/src/os/root_noopenat.go b/src/os/root_noopenat.go
index 228b580..a84e952 100644
--- a/src/os/root_noopenat.go
+++ b/src/os/root_noopenat.go
@@ -158,6 +158,9 @@
if err := checkPathEscapes(r, name); err == errPathEscapes {
return &PathError{Op: "mkdirat", Path: name, Err: err}
}
+ if name == "" {
+ return &PathError{Op: "mkdirat", Path: name, Err: syscall.ENOENT}
+ }
prefix := r.root.name + string(PathSeparator)
if err := MkdirAll(prefix+name, perm); err != nil {
if pe, ok := err.(*PathError); ok {
diff --git a/src/os/root_openat.go b/src/os/root_openat.go
index d7c9334..92865e4 100644
--- a/src/os/root_openat.go
+++ b/src/os/root_openat.go
@@ -167,6 +167,12 @@
fi, e := r.Stat(fullname)
if e == nil && fi.Mode().IsDir() {
err = nil
+ } else if e == nil {
+ err = syscall.ENOTDIR
+ } else if !IsNotExist(e) {
+ // EPERM, ELOOP, etc.,
+ // probably more useful than EEXIST.
+ err = e
}
}
}
@@ -177,7 +183,12 @@
}
return struct{}{}, &PathError{Op: "mkdirat", Err: err}
}
- _, err := doInRoot(r, fullname, 0, openDirFunc, openLastComponentFunc)
+ flags := uint(doInRootCreatingDirectory)
+ switch runtime.GOOS {
+ case "linux", "windows":
+ flags = doInRootNoHandleTerminalSlash // see rootMkdir
+ }
+ _, err := doInRoot(r, fullname, flags, openDirFunc, openLastComponentFunc)
if err != nil {
if _, ok := err.(*PathError); !ok {
err = &PathError{Op: "mkdirat", Path: fullname, Err: err}
diff --git a/src/os/root_test.go b/src/os/root_test.go
index 5e0acf9..33a2f33 100644
--- a/src/os/root_test.go
+++ b/src/os/root_test.go
@@ -585,6 +585,11 @@
func TestRootMkdirAll(t *testing.T) {
for _, test := range rootTestCases {
+ if test.name == "directory does not exist" {
+ // Test expects error, mkdirall creates the missing directory.
+ // TestRootMultiMkdirAll covers this case better anyway, just skip.
+ continue
+ }
test.run(t, func(t *testing.T, target string, root *os.Root) {
wantError := test.wantError
if test.ltarget != "" {
@@ -593,7 +598,7 @@
wantError = true
}
- err := root.Mkdir(test.open, 0o777)
+ err := root.MkdirAll(test.open, 0o777)
if errEndsTest(t, err, wantError, "root.MkdirAll(%q)", test.open) {
return
}
@@ -3133,6 +3138,52 @@
})
}
+func TestRootMultiMkdirAllShallow(t *testing.T) {
+ runRootMultiTest(t, func(t *testing.T, test *rootMultiTest) (string, error) {
+ return testRootMultiMkdirAll(t, test, test.targetPath)
+ })
+}
+
+func TestRootMultiMkdirAllDeep(t *testing.T) {
+ runRootMultiTest(t, func(t *testing.T, test *rootMultiTest) (string, error) {
+ targetPath := test.targetPath
+ if len(targetPath) > 0 && os.IsPathSeparator(targetPath[len(targetPath)-1]) {
+ targetPath += "a/b/"
+ } else {
+ targetPath += "/a/b"
+ }
+ return testRootMultiMkdirAll(t, test, targetPath)
+ })
+}
+
+func testRootMultiMkdirAll(t *testing.T, test *rootMultiTest, targetPath string) (string, error) {
+ var mkdirAll = os.MkdirAll
+ if test.root != nil {
+ mkdirAll = test.root.MkdirAll
+ }
+
+ test.setOp("MkdirAll(%q, 0o777)", targetPath)
+ gotErr := mkdirAll(targetPath, 0o777)
+
+ switch {
+ case test.root != nil && test.target.lescapes():
+ // "mkdir ../target", or equivalent escaping path.
+ test.wantError(t, gotErr, os.ErrPathEscapes)
+ case test.root != nil && test.target.escapes():
+ // "mkdir ../target", or equivalent escaping path.
+ test.wantError(t, gotErr, errAny)
+ return "", errSkipRootConsistencyCheck
+ case test.root != nil && test.target.kind == testFileSymlink && test.target.target.kind == testFileAbsent && targetPath != test.targetPath:
+ // A minor inconsistency between Root.MkdirAll and os.MkdirAll:
+ // When an intermediate component of the tree being constructed is a
+ // dangling symlink, Root.MkdirAll will follow the symlink and create
+ // its target directory, while os.MkdirAll will fail with an error.
+ return "", errSkipRootConsistencyCheck
+ default:
+ }
+ return "", gotErr
+}
+
func TestRootMultiRename(t *testing.T) {
if runtime.GOOS == "wasip1" {
switch os.Getenv("GOWASIRUNTIME") {
+64
View File
@@ -0,0 +1,64 @@
package go {
description = "the Go programming language toolchain";
website = "https://go.dev";
anitya = 1227;
version# = "1.26.5";
source = remoteTar {
url = "https://go.dev/dl/go"+version+".src.tar.gz";
checksum = "13yt1u_NGOd62LO-WZ8W6CUXodOrEF5CdkiTTiH9E635IHn1luvlXYjsHpBXNFSw";
compress = gzip;
};
patches = [
// https://go.dev/issue/77674
"746640.patch",
// https://go.dev/issue/80308
"799064.patch",
];
env = [
"CC=cc",
"GOCACHE=/tmp/gocache",
"GOROOT_BOOTSTRAP=/system/go",
"TMPDIR=/dev/shm/go",
];
enterSource = true;
exec = generic {
inPlace = true;
build = `
mkdir /work/system/ "${TMPDIR}"
cp -r . /work/system/go
cd /work/system/go/src/
chmod -R +w ..
sed -i \
's,/lib/ld-musl-`+linuxArch+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+arch+`/obj.go
rm \
os/root_unix_test.go \
runtime/crash_cgo_test.go \
cmd/cgo/internal/testsanitizers/tsan_test.go \
cmd/cgo/internal/testsanitizers/cshared_test.go
set +u
. ./make.bash "$@" --no-banner
set -u
`;
check = "bash run.bash --no-rebuild\n";
install = `
../bin/go tool dist banner # print build info
mkdir /work/system/bin
ln -s \
../go/bin/go \
../go/bin/gofmt \
/work/system/bin
`;
};
inputs = [ bash, go-bootstrap ];
}
+4 -4
View File
@@ -12,10 +12,10 @@ package harfbuzz {
exec = meson {
setup = {
"Dcairo": "enabled";
"Dpng": "enabled";
"Dzlib": "enabled";
"Dfreetype": "enabled";
"cairo": "enabled";
"png": "enabled";
"zlib": "enabled";
"freetype": "enabled";
};
};
+1 -1
View File
@@ -132,7 +132,7 @@ rm -v "/work/system/lib/modules/$(make -f /usr/src/kernel/Makefile kernelversion
perl,
bc,
sed,
gawk,
awk,
coreutils,
diffutils,
bash,
+6 -6
View File
@@ -13,12 +13,12 @@ package kmod {
exec = meson {
setup = {
"Dmoduledir": "/system/lib/modules";
"Dsysconfdir": "/system/etc";
"Dbashcompletiondir": "no";
"Dfishcompletiondir": "no";
"Dxz": "disabled";
"Dmanpages": "false";
"moduledir": "/system/lib/modules";
"sysconfdir": "/system/etc";
"bashcompletiondir": "no";
"fishcompletiondir": "no";
"xz": "disabled";
"manpages": "false";
};
// makes assumptions about the running kernel
+1 -1
View File
@@ -13,7 +13,7 @@ package libdrm {
exec = meson {
setup = {
"Dintel": "enabled";
"intel": "enabled";
};
};
+2 -2
View File
@@ -12,8 +12,8 @@ package libepoxy {
exec = meson {
setup = {
"Dglx": "yes";
"Degl": "yes";
"glx": "yes";
"egl": "yes";
};
};
+1 -1
View File
@@ -13,7 +13,7 @@ package libevdev {
exec = meson {
setup = {
"Ddocumentation": "disabled";
"documentation": "disabled";
};
};
+4 -2
View File
@@ -3,12 +3,14 @@ package libffi {
website = "https://sourceware.org/libffi";
anitya = 1611;
version# = "3.6.0";
block = "severe regressions caused by questionable maintainer decisions";
version# = "3.5.2";
source = remoteGitHubRelease {
suffix = "libffi/libffi";
tag = "v"+version;
name = "libffi-"+version+".tar.gz";
checksum = "y3H_jP_eoByznlztjvni3wDfGA4CIJoOh3eRnzjnE3G3Ms3AWk53oOZxkbruvLxM";
checksum = "2_Q-ZNBBbVhltfL5zEr0wljxPegUimTK4VeMSiwJEGksls3n4gj3lV0Ly3vviSFH";
compress = gzip;
};
+2 -2
View File
@@ -13,8 +13,8 @@ package libglvnd {
exec = meson {
setup = {
"Dx11": "enabled";
"Dglx": "enabled";
"x11": "enabled";
"glx": "enabled";
};
postCompile = `
+3 -3
View File
@@ -14,9 +14,9 @@ package libinput {
bin = [ "bash" ];
exec = meson {
setup = {
"Dmtdev": "false";
"Dlibwacom": "false";
"Ddebug-gui": "false";
"mtdev": "false";
"libwacom": "false";
"debug-gui": "false";
};
};
+2 -2
View File
@@ -3,12 +3,12 @@ package libpsl {
website = "https://rockdaboot.github.io/libpsl";
anitya = 7305;
version# = "0.22.0";
version# = "0.23.0";
source = remoteGitHubRelease {
suffix = "rockdaboot/libpsl";
tag = version;
name = "libpsl-"+version+".tar.gz";
checksum = "sYrq75kNAJvU5gA2gv2tFYIFbFFit6PuYuW1tYSgcsJsIUzwMJTodofsaEGq3iGf";
checksum = "7M0i3g6snxXGri0PcE5iYJFVGhZjBq1QxEom45ML0tCyu8b7i-ydvlcIAS2g9zqa";
compress = gzip;
};
+2 -2
View File
@@ -3,11 +3,11 @@ package libucontext {
website = "https://github.com/kaniini/libucontext";
anitya = 17085;
version# = "1.5.1";
version# = "1.5.2";
source = remoteGitHub {
suffix = "kaniini/libucontext";
tag = "libucontext-"+version;
checksum = "mUgeyJknjMxT-5fORzz-rqhZfP3Y7EZGBhOwvhuX7MsF4Pk9wkuwtrLf5IML-jWu";
checksum = "SSIdb9LVzAel9JPGfkrnG1MIF60Hx5ZJoXBDbmxi9swbrjSfsLkTyldB1wEAnAH0";
};
// uses source tree as scratch space
+5 -5
View File
@@ -3,18 +3,18 @@ package libva {
website = "https://01.org/vaapi";
anitya = 1752;
version# = "2.24.0";
version# = "2.24.1";
source = remoteGitHub {
suffix = "intel/libva";
tag = version;
checksum = "Jb5bdeHXLPPTWFlmauKDZlfAjFiXiILs17Pp7F8kAiyctFiDItpzYY0prIlnW7mu";
checksum = "4IdXxvDFLvl_7lXbJne4_TQA4PZhG89MZXLyvQEkGSb4LcX7CGLrMOjRNZOWb9d6";
};
exec = meson {
setup = {
"Dwith_x11": "yes";
"Dwith_glx": "yes";
"Dwith_wayland": "yes";
"with_x11": "yes";
"with_glx": "yes";
"with_wayland": "yes";
};
};
+10 -10
View File
@@ -14,14 +14,14 @@ package mesa {
exec = meson {
setup = {
"Dplatforms": "x11,wayland";
"Dvideo-codecs": "all";
"platforms": "x11,wayland";
"video-codecs": "all";
"Dglvnd": "enabled";
"Dgbm": "enabled";
"Degl": "enabled";
"glvnd": "enabled";
"gbm": "enabled";
"egl": "enabled";
"Dgallium-drivers": join {
"gallium-drivers": join {
elems = [
"asahi", // Apple AGX
"crocus", // Intel legacy
@@ -51,7 +51,7 @@ package mesa {
sep = ",";
};
"Dvulkan-drivers": join {
"vulkan-drivers": join {
elems = [
"amd", // AMD (aka RADV)
"broadcom", // Broadcom VC5 (Raspberry Pi 4, aka V3D)
@@ -72,7 +72,7 @@ package mesa {
sep = ",";
};
"Dvulkan-layers": join {
"vulkan-layers": join {
elems = [
"device-select",
"intel-nullhw",
@@ -84,8 +84,8 @@ package mesa {
sep = ",";
};
"Dfreedreno-kmds": "msm,virtio";
"Damdgpu-virtio": "true";
"freedreno-kmds": "msm,virtio";
"amdgpu-virtio": "true";
};
};
+2 -2
View File
@@ -3,11 +3,11 @@ package meson {
website = "https://mesonbuild.com";
anitya = 6472;
version# = "1.11.1";
version# = "1.11.2";
source = remoteGitHub {
suffix = "mesonbuild/meson";
tag = version;
checksum = "uvILRxdopwc6Dy17UbIeClcQr0qHqyTaqyk1M9OqWKN9PwB9N6UVAiyN8kSSz3r2";
checksum = "9AMilGxTOVqPA2DaGMASyuVs1BeTzgDZ0NH2oSYoRZk846ApvfOBa4cc18XEEK7M";
};
env = [
+62
View File
@@ -0,0 +1,62 @@
package meson-tests {
description = "tests from meson/test cases, updated alongside muon";
website = "https://github.com/muon-build/meson-tests";
exclude = true;
version# = "0bbaa42e7ba553356fbec038e8b40cf89f90da82";
output = remoteTar {
url = "https://github.com/muon-build/meson-tests/archive/"+
version+".tar.gz";
checksum = "W_yNC2Id1aGBXLmBhrQ53UARVBl-nZ2bDZJcmZDaE4GyoZyj6tSURojuTyWgG1U8";
compress = gzip;
};
}
package muon {
description = "meson implementation in C";
website = "https://muon.build";
anitya = 391173;
version# = "0.6.0";
source = remoteTar {
url = "https://git.sr.ht/~lattis/muon/archive/"+version+".tar.gz";
checksum = "DiRw1dTaHlL5d3TNK8gykFHI_BAWK7ERooSmVC-kltUkjOubWkN9b-DG21a1ETCe";
compress = gzip;
};
extra = [ meson-tests ];
writable = true;
early = `
chmod +w subprojects
cp -r ../extra/meson-tests subprojects
chmod -R +w subprojects/meson-tests
sed -i '/common.220 fs module/d' subprojects/meson-tests/meson.build
`;
exec = generic {
build = `
(cd /usr/src/muon && CC=cc ./bootstrap.sh /boot)
/boot/muon-bootstrap setup \
-Dprefix=/system \
-Dbuildtype=release \
-Dlibcurl=disabled \
-Dlibarchive=disabled \
-Dlibpkgconf=disabled \
-Dtracy=disabled \
-Dmeson-docs=disabled \
-Dmeson-tests=enabled \
-Dwebsite=disabled \
/usr/src/muon
/boot/muon-bootstrap samu `+jobsFlagE+`
`;
check = "./muon test "+jobsFlagE+" -Rv\n";
install = "./muon install -d /work\n";
};
inputs = [
python-early,
kernel-headers,
];
runtime = [ pkg-config ];
}
+7
View File
@@ -20,6 +20,13 @@ package ncurses {
// "tests" are actual demo programs, not a test suite.
skipCheck = true;
postInstall = `
find /work/system/lib \
-type f \
-name '*.a' \
-exec objcopy --enable-deterministic-archives {} \;
`;
};
inputs = [ pkg-config ];
+1 -1
View File
@@ -34,7 +34,7 @@ cp ninja /work/system/bin/`;
};
inputs = [
python,
python-early,
bash,
];
}
+1 -1
View File
@@ -61,7 +61,7 @@ cp -r \
inputs = [
perl,
python,
gawk,
awk,
coreutils,
zlib,
+4 -4
View File
@@ -3,17 +3,17 @@ package p11-kit {
website = "https://p11-glue.freedesktop.org/p11-kit.html";
anitya = 2582;
version# = "0.26.2";
version# = "0.26.4";
source = remoteGit {
url = "https://github.com/p11-glue/p11-kit.git";
tag = version;
checksum = "3ei-6DUVtYzrRVe-SubtNgRlweXd6H2qHmUu-_5qVyIn6gSTvZbGS2u79Y8IFb2N";
checksum = "iqkBuTqqBAc6suv7wY89DyceN1arWTn2QwaXVwKN_J_IqNyRGNKPLq9RAmkumYD7";
};
exec = meson {
setup = {
"Dsystemd": "disabled";
"Dlibffi": "enabled";
"systemd": "disabled";
"libffi": "enabled";
};
};
+3 -3
View File
@@ -13,9 +13,9 @@ package pango {
exec = meson {
setup = {
"Dfontconfig": "enabled";
"Dfreetype": "enabled";
"Dcairo": "enabled";
"fontconfig": "enabled";
"freetype": "enabled";
"cairo": "enabled";
};
// Fontconfig error: Cannot load default config file: File not found: /etc/fonts/fonts.conf
skipTest = true;
+1 -1
View File
@@ -13,7 +13,7 @@ package pixman {
exec = meson {
setup = {
"Dtests": "enabled";
"tests": "enabled";
};
};
}
+72 -2
View File
@@ -73,6 +73,76 @@ package python {
];
}
package python-early {
description = "minimal python interpreter exclusive to the bootstrap path";
website = "https://www.python.org";
exclude = true;
anitya = 13254;
block = "exclusive to the bootstrap path";
version# = "3.14.6";
source = remoteTar {
url = "https://www.python.org/ftp/python/"+version+
"/Python-"+version+".tgz";
checksum = "yynwXnElUvlAweA_RkBKQY35P59Gu5YU6ickJs6Z-blIoHgw5KgKXROY1gq2w0ez";
compress = gzip;
};
// test_synopsis_sourceless assumes this is writable and checks __pycache__
writable = true;
chmod = true;
env = [
"EXTRATESTOPTS=-j0 -x " + join {
elems = [
// requires internet access (http://www.pythontest.net/)
"test_asyncio",
"test_socket",
"test_urllib2",
"test_urllibnet",
"test_urllib2net",
// makes assumptions about uid_map/gid_map
"test_os",
"test_subprocess",
// insane strict_timestamps default
"test_zipfile",
// requires gcc
"test_ctypes",
// breaks on llvm
"test_dbm_gnu",
];
sep = " -x ";
},
// _ctypes appears to infer something from the linker name
"LDFLAGS=-Wl,--dynamic-linker=/system/lib/" +
"ld-musl-" + linuxArch + ".so.1",
];
exec = make {
check = [ "test" ];
postInstall = "ln -s python3 /work/system/bin/python";
};
inputs = [
zlib,
bzip2,
libffi,
kernel-headers,
];
runtime = [
zlib,
bzip2,
libffi,
];
}
package python-setuptools {
description = "the autotools of the Python ecosystem";
website = "https://pypi.org/project/setuptools";
@@ -302,11 +372,11 @@ package python-hatchling {
website = "https://hatch.pypa.io";
anitya = 16137;
version# = "1.17.0";
version# = "1.17.1";
source = remoteGitHub {
suffix = "pypa/hatch";
tag = "hatch-v"+version;
checksum = "fK85G542FXEXTP1QZNVhhfp8_Y8f9u1DAyeeFO3PWyv3JLTCPdPl9WTz8Ov6tfYp";
checksum = "FK9PkGIkL3wyVFHOKrx9lSRqoevuQ_TFrN-pMqsoFKsh5eim4pfzx7MvL3ioif9o";
};
exec = pip {
+3 -3
View File
@@ -17,9 +17,9 @@ package seatd {
exec = meson {
setup = {
"Dlibseat-logind": "disabled";
"Dlibseat-seatd": "enabled";
"Dlibseat-builtin": "enabled";
"libseat-logind": "disabled";
"libseat-seatd": "enabled";
"libseat-builtin": "enabled";
};
};
@@ -0,0 +1,341 @@
From b8a32968473ce852a809b9de5f04f02a5a9dfa78 Mon Sep 17 00:00:00 2001
From: Yury Plyakhin <yury.plyakhin@intel.com>
Date: Wed, 29 Apr 2026 07:52:53 -0700
Subject: [PATCH 01/26] grammar and header changes for SPV_INTEL_predicated_io
(#585)
---
include/spirv/unified1/spirv.bf | 3 ++
.../spirv/unified1/spirv.core.grammar.json | 34 +++++++++++++++++++
include/spirv/unified1/spirv.cs | 3 ++
include/spirv/unified1/spirv.h | 8 +++++
include/spirv/unified1/spirv.hpp | 8 +++++
include/spirv/unified1/spirv.hpp11 | 8 +++++
include/spirv/unified1/spirv.json | 3 ++
include/spirv/unified1/spirv.lua | 3 ++
include/spirv/unified1/spirv.py | 3 ++
include/spirv/unified1/spv.d | 3 ++
10 files changed, 76 insertions(+)
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
index b705259..0fd8703 100644
--- a/include/spirv/unified1/spirv.bf
+++ b/include/spirv/unified1/spirv.bf
@@ -1426,6 +1426,7 @@ namespace Spv
UntypedVariableLengthArrayINTEL = 6243,
SpecConditionalINTEL = 6245,
FunctionVariantsINTEL = 6246,
+ PredicatedIOINTEL = 6257,
GroupUniformArithmeticKHR = 6400,
TensorFloat32RoundingINTEL = 6425,
MaskedGatherScatterINTEL = 6427,
@@ -2694,6 +2695,8 @@ namespace Spv
OpSpecConstantArchitectureINTEL = 6252,
OpSpecConstantCapabilitiesINTEL = 6253,
OpConditionalCopyObjectINTEL = 6254,
+ OpPredicatedLoadINTEL = 6258,
+ OpPredicatedStoreINTEL = 6259,
OpGroupIMulKHR = 6401,
OpGroupFMulKHR = 6402,
OpGroupBitwiseAndKHR = 6403,
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 22f5fe9..0a282c5 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -11598,6 +11598,34 @@
"provisional" : true,
"version" : "None"
},
+ {
+ "opname" : "OpPredicatedLoadINTEL",
+ "class" : "Memory",
+ "opcode" : 6258,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "Pointer" },
+ { "kind" : "IdRef", "name" : "Predicate" },
+ { "kind" : "IdRef", "name" : "Default Value" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "PredicatedIOINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpPredicatedStoreINTEL",
+ "class" : "Memory",
+ "opcode" : 6259,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Pointer" },
+ { "kind" : "IdRef", "name" : "Object" },
+ { "kind" : "IdRef", "name" : "Predicate" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "PredicatedIOINTEL" ],
+ "version" : "None"
+ },
{
"opname" : "OpGroupIMulKHR",
"class" : "Group",
@@ -18659,6 +18687,12 @@
"provisional" : true,
"version": "None"
},
+ {
+ "enumerant" : "PredicatedIOINTEL",
+ "value" : 6257,
+ "extensions" : [ "SPV_INTEL_predicated_io" ],
+ "version" : "None"
+ },
{
"enumerant" : "GroupUniformArithmeticKHR",
"value" : 6400,
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index 2f8c1ff..375dd0b 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -1425,6 +1425,7 @@ namespace Spv
UntypedVariableLengthArrayINTEL = 6243,
SpecConditionalINTEL = 6245,
FunctionVariantsINTEL = 6246,
+ PredicatedIOINTEL = 6257,
GroupUniformArithmeticKHR = 6400,
TensorFloat32RoundingINTEL = 6425,
MaskedGatherScatterINTEL = 6427,
@@ -2693,6 +2694,8 @@ namespace Spv
OpSpecConstantArchitectureINTEL = 6252,
OpSpecConstantCapabilitiesINTEL = 6253,
OpConditionalCopyObjectINTEL = 6254,
+ OpPredicatedLoadINTEL = 6258,
+ OpPredicatedStoreINTEL = 6259,
OpGroupIMulKHR = 6401,
OpGroupFMulKHR = 6402,
OpGroupBitwiseAndKHR = 6403,
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index d00cf0f..9233ff0 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -1396,6 +1396,7 @@ typedef enum SpvCapability_ {
SpvCapabilityUntypedVariableLengthArrayINTEL = 6243,
SpvCapabilitySpecConditionalINTEL = 6245,
SpvCapabilityFunctionVariantsINTEL = 6246,
+ SpvCapabilityPredicatedIOINTEL = 6257,
SpvCapabilityGroupUniformArithmeticKHR = 6400,
SpvCapabilityTensorFloat32RoundingINTEL = 6425,
SpvCapabilityMaskedGatherScatterINTEL = 6427,
@@ -2628,6 +2629,8 @@ typedef enum SpvOp_ {
SpvOpSpecConstantArchitectureINTEL = 6252,
SpvOpSpecConstantCapabilitiesINTEL = 6253,
SpvOpConditionalCopyObjectINTEL = 6254,
+ SpvOpPredicatedLoadINTEL = 6258,
+ SpvOpPredicatedStoreINTEL = 6259,
SpvOpGroupIMulKHR = 6401,
SpvOpGroupFMulKHR = 6402,
SpvOpGroupBitwiseAndKHR = 6403,
@@ -3510,6 +3513,8 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpSpecConstantArchitectureINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpSpecConstantCapabilitiesINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpConditionalCopyObjectINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpPredicatedLoadINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpPredicatedStoreINTEL: *hasResult = false; *hasResultType = false; break;
case SpvOpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpGroupFMulKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break;
@@ -4517,6 +4522,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) {
case SpvCapabilityUntypedVariableLengthArrayINTEL: return "UntypedVariableLengthArrayINTEL";
case SpvCapabilitySpecConditionalINTEL: return "SpecConditionalINTEL";
case SpvCapabilityFunctionVariantsINTEL: return "FunctionVariantsINTEL";
+ case SpvCapabilityPredicatedIOINTEL: return "PredicatedIOINTEL";
case SpvCapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
case SpvCapabilityTensorFloat32RoundingINTEL: return "TensorFloat32RoundingINTEL";
case SpvCapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
@@ -5575,6 +5581,8 @@ inline const char* SpvOpToString(SpvOp value) {
case SpvOpSpecConstantArchitectureINTEL: return "OpSpecConstantArchitectureINTEL";
case SpvOpSpecConstantCapabilitiesINTEL: return "OpSpecConstantCapabilitiesINTEL";
case SpvOpConditionalCopyObjectINTEL: return "OpConditionalCopyObjectINTEL";
+ case SpvOpPredicatedLoadINTEL: return "OpPredicatedLoadINTEL";
+ case SpvOpPredicatedStoreINTEL: return "OpPredicatedStoreINTEL";
case SpvOpGroupIMulKHR: return "OpGroupIMulKHR";
case SpvOpGroupFMulKHR: return "OpGroupFMulKHR";
case SpvOpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR";
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index 462c3f6..055086c 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -1392,6 +1392,7 @@ enum Capability {
CapabilityUntypedVariableLengthArrayINTEL = 6243,
CapabilitySpecConditionalINTEL = 6245,
CapabilityFunctionVariantsINTEL = 6246,
+ CapabilityPredicatedIOINTEL = 6257,
CapabilityGroupUniformArithmeticKHR = 6400,
CapabilityTensorFloat32RoundingINTEL = 6425,
CapabilityMaskedGatherScatterINTEL = 6427,
@@ -2624,6 +2625,8 @@ enum Op {
OpSpecConstantArchitectureINTEL = 6252,
OpSpecConstantCapabilitiesINTEL = 6253,
OpConditionalCopyObjectINTEL = 6254,
+ OpPredicatedLoadINTEL = 6258,
+ OpPredicatedStoreINTEL = 6259,
OpGroupIMulKHR = 6401,
OpGroupFMulKHR = 6402,
OpGroupBitwiseAndKHR = 6403,
@@ -3506,6 +3509,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpSpecConstantArchitectureINTEL: *hasResult = true; *hasResultType = true; break;
case OpSpecConstantCapabilitiesINTEL: *hasResult = true; *hasResultType = true; break;
case OpConditionalCopyObjectINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpPredicatedLoadINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpPredicatedStoreINTEL: *hasResult = false; *hasResultType = false; break;
case OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
case OpGroupFMulKHR: *hasResult = true; *hasResultType = true; break;
case OpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break;
@@ -4513,6 +4518,7 @@ inline const char* CapabilityToString(Capability value) {
case CapabilityUntypedVariableLengthArrayINTEL: return "UntypedVariableLengthArrayINTEL";
case CapabilitySpecConditionalINTEL: return "SpecConditionalINTEL";
case CapabilityFunctionVariantsINTEL: return "FunctionVariantsINTEL";
+ case CapabilityPredicatedIOINTEL: return "PredicatedIOINTEL";
case CapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
case CapabilityTensorFloat32RoundingINTEL: return "TensorFloat32RoundingINTEL";
case CapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
@@ -5571,6 +5577,8 @@ inline const char* OpToString(Op value) {
case OpSpecConstantArchitectureINTEL: return "OpSpecConstantArchitectureINTEL";
case OpSpecConstantCapabilitiesINTEL: return "OpSpecConstantCapabilitiesINTEL";
case OpConditionalCopyObjectINTEL: return "OpConditionalCopyObjectINTEL";
+ case OpPredicatedLoadINTEL: return "OpPredicatedLoadINTEL";
+ case OpPredicatedStoreINTEL: return "OpPredicatedStoreINTEL";
case OpGroupIMulKHR: return "OpGroupIMulKHR";
case OpGroupFMulKHR: return "OpGroupFMulKHR";
case OpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR";
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index 41ebe91..0d85dfe 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -1392,6 +1392,7 @@ enum class Capability : unsigned {
UntypedVariableLengthArrayINTEL = 6243,
SpecConditionalINTEL = 6245,
FunctionVariantsINTEL = 6246,
+ PredicatedIOINTEL = 6257,
GroupUniformArithmeticKHR = 6400,
TensorFloat32RoundingINTEL = 6425,
MaskedGatherScatterINTEL = 6427,
@@ -2624,6 +2625,8 @@ enum class Op : unsigned {
OpSpecConstantArchitectureINTEL = 6252,
OpSpecConstantCapabilitiesINTEL = 6253,
OpConditionalCopyObjectINTEL = 6254,
+ OpPredicatedLoadINTEL = 6258,
+ OpPredicatedStoreINTEL = 6259,
OpGroupIMulKHR = 6401,
OpGroupFMulKHR = 6402,
OpGroupBitwiseAndKHR = 6403,
@@ -3506,6 +3509,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpSpecConstantArchitectureINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpSpecConstantCapabilitiesINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpConditionalCopyObjectINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpPredicatedLoadINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpPredicatedStoreINTEL: *hasResult = false; *hasResultType = false; break;
case Op::OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpGroupFMulKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break;
@@ -4513,6 +4518,7 @@ inline const char* CapabilityToString(Capability value) {
case Capability::UntypedVariableLengthArrayINTEL: return "UntypedVariableLengthArrayINTEL";
case Capability::SpecConditionalINTEL: return "SpecConditionalINTEL";
case Capability::FunctionVariantsINTEL: return "FunctionVariantsINTEL";
+ case Capability::PredicatedIOINTEL: return "PredicatedIOINTEL";
case Capability::GroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
case Capability::TensorFloat32RoundingINTEL: return "TensorFloat32RoundingINTEL";
case Capability::MaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
@@ -5571,6 +5577,8 @@ inline const char* OpToString(Op value) {
case Op::OpSpecConstantArchitectureINTEL: return "OpSpecConstantArchitectureINTEL";
case Op::OpSpecConstantCapabilitiesINTEL: return "OpSpecConstantCapabilitiesINTEL";
case Op::OpConditionalCopyObjectINTEL: return "OpConditionalCopyObjectINTEL";
+ case Op::OpPredicatedLoadINTEL: return "OpPredicatedLoadINTEL";
+ case Op::OpPredicatedStoreINTEL: return "OpPredicatedStoreINTEL";
case Op::OpGroupIMulKHR: return "OpGroupIMulKHR";
case Op::OpGroupFMulKHR: return "OpGroupFMulKHR";
case Op::OpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR";
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index 0a200b2..ec778af 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -1358,6 +1358,7 @@
"UntypedVariableLengthArrayINTEL": 6243,
"SpecConditionalINTEL": 6245,
"FunctionVariantsINTEL": 6246,
+ "PredicatedIOINTEL": 6257,
"GroupUniformArithmeticKHR": 6400,
"TensorFloat32RoundingINTEL": 6425,
"MaskedGatherScatterINTEL": 6427,
@@ -2595,6 +2596,8 @@
"OpSpecConstantArchitectureINTEL": 6252,
"OpSpecConstantCapabilitiesINTEL": 6253,
"OpConditionalCopyObjectINTEL": 6254,
+ "OpPredicatedLoadINTEL": 6258,
+ "OpPredicatedStoreINTEL": 6259,
"OpGroupIMulKHR": 6401,
"OpGroupFMulKHR": 6402,
"OpGroupBitwiseAndKHR": 6403,
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index e612025..b883dd8 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -1383,6 +1383,7 @@ spv = {
UntypedVariableLengthArrayINTEL = 6243,
SpecConditionalINTEL = 6245,
FunctionVariantsINTEL = 6246,
+ PredicatedIOINTEL = 6257,
GroupUniformArithmeticKHR = 6400,
TensorFloat32RoundingINTEL = 6425,
MaskedGatherScatterINTEL = 6427,
@@ -2615,6 +2616,8 @@ spv = {
OpSpecConstantArchitectureINTEL = 6252,
OpSpecConstantCapabilitiesINTEL = 6253,
OpConditionalCopyObjectINTEL = 6254,
+ OpPredicatedLoadINTEL = 6258,
+ OpPredicatedStoreINTEL = 6259,
OpGroupIMulKHR = 6401,
OpGroupFMulKHR = 6402,
OpGroupBitwiseAndKHR = 6403,
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index 1085498..590ee22 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -1354,6 +1354,7 @@ spv = {
'UntypedVariableLengthArrayINTEL' : 6243,
'SpecConditionalINTEL' : 6245,
'FunctionVariantsINTEL' : 6246,
+ 'PredicatedIOINTEL' : 6257,
'GroupUniformArithmeticKHR' : 6400,
'TensorFloat32RoundingINTEL' : 6425,
'MaskedGatherScatterINTEL' : 6427,
@@ -2558,6 +2559,8 @@ spv = {
'OpSpecConstantArchitectureINTEL' : 6252,
'OpSpecConstantCapabilitiesINTEL' : 6253,
'OpConditionalCopyObjectINTEL' : 6254,
+ 'OpPredicatedLoadINTEL' : 6258,
+ 'OpPredicatedStoreINTEL' : 6259,
'OpGroupIMulKHR' : 6401,
'OpGroupFMulKHR' : 6402,
'OpGroupBitwiseAndKHR' : 6403,
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index c9cde5d..0323867 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -1428,6 +1428,7 @@ enum Capability : uint
UntypedVariableLengthArrayINTEL = 6243,
SpecConditionalINTEL = 6245,
FunctionVariantsINTEL = 6246,
+ PredicatedIOINTEL = 6257,
GroupUniformArithmeticKHR = 6400,
TensorFloat32RoundingINTEL = 6425,
MaskedGatherScatterINTEL = 6427,
@@ -2696,6 +2697,8 @@ enum Op : uint
OpSpecConstantArchitectureINTEL = 6252,
OpSpecConstantCapabilitiesINTEL = 6253,
OpConditionalCopyObjectINTEL = 6254,
+ OpPredicatedLoadINTEL = 6258,
+ OpPredicatedStoreINTEL = 6259,
OpGroupIMulKHR = 6401,
OpGroupFMulKHR = 6402,
OpGroupBitwiseAndKHR = 6403,
--
2.54.0
@@ -0,0 +1,170 @@
From 948a3b0997e2dffea5484b3df7bd5590c5b844cc Mon Sep 17 00:00:00 2001
From: Ben Ashbaugh <ben.ashbaugh@intel.com>
Date: Wed, 29 Apr 2026 08:10:46 -0700
Subject: [PATCH 02/26] header updates for SPV_INTEL_rounded_divide_sqrt (#582)
---
include/spirv/unified1/spirv.bf | 1 +
include/spirv/unified1/spirv.core.grammar.json | 6 ++++++
include/spirv/unified1/spirv.cs | 1 +
include/spirv/unified1/spirv.h | 2 ++
include/spirv/unified1/spirv.hpp | 2 ++
include/spirv/unified1/spirv.hpp11 | 2 ++
include/spirv/unified1/spirv.json | 1 +
include/spirv/unified1/spirv.lua | 1 +
include/spirv/unified1/spirv.py | 1 +
include/spirv/unified1/spv.d | 1 +
10 files changed, 18 insertions(+)
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
index 0fd8703..3d24085 100644
--- a/include/spirv/unified1/spirv.bf
+++ b/include/spirv/unified1/spirv.bf
@@ -1427,6 +1427,7 @@ namespace Spv
SpecConditionalINTEL = 6245,
FunctionVariantsINTEL = 6246,
PredicatedIOINTEL = 6257,
+ RoundedDivideSqrtINTEL = 6265,
GroupUniformArithmeticKHR = 6400,
TensorFloat32RoundingINTEL = 6425,
MaskedGatherScatterINTEL = 6427,
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 0a282c5..4fc0ec9 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -18693,6 +18693,12 @@
"extensions" : [ "SPV_INTEL_predicated_io" ],
"version" : "None"
},
+ {
+ "enumerant" : "RoundedDivideSqrtINTEL",
+ "value" : 6265,
+ "extensions" : [ "SPV_INTEL_rounded_divide_sqrt" ],
+ "version": "None"
+ },
{
"enumerant" : "GroupUniformArithmeticKHR",
"value" : 6400,
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index 375dd0b..35b9aff 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -1426,6 +1426,7 @@ namespace Spv
SpecConditionalINTEL = 6245,
FunctionVariantsINTEL = 6246,
PredicatedIOINTEL = 6257,
+ RoundedDivideSqrtINTEL = 6265,
GroupUniformArithmeticKHR = 6400,
TensorFloat32RoundingINTEL = 6425,
MaskedGatherScatterINTEL = 6427,
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index 9233ff0..a9e4998 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -1397,6 +1397,7 @@ typedef enum SpvCapability_ {
SpvCapabilitySpecConditionalINTEL = 6245,
SpvCapabilityFunctionVariantsINTEL = 6246,
SpvCapabilityPredicatedIOINTEL = 6257,
+ SpvCapabilityRoundedDivideSqrtINTEL = 6265,
SpvCapabilityGroupUniformArithmeticKHR = 6400,
SpvCapabilityTensorFloat32RoundingINTEL = 6425,
SpvCapabilityMaskedGatherScatterINTEL = 6427,
@@ -4523,6 +4524,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) {
case SpvCapabilitySpecConditionalINTEL: return "SpecConditionalINTEL";
case SpvCapabilityFunctionVariantsINTEL: return "FunctionVariantsINTEL";
case SpvCapabilityPredicatedIOINTEL: return "PredicatedIOINTEL";
+ case SpvCapabilityRoundedDivideSqrtINTEL: return "RoundedDivideSqrtINTEL";
case SpvCapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
case SpvCapabilityTensorFloat32RoundingINTEL: return "TensorFloat32RoundingINTEL";
case SpvCapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index 055086c..6676d71 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -1393,6 +1393,7 @@ enum Capability {
CapabilitySpecConditionalINTEL = 6245,
CapabilityFunctionVariantsINTEL = 6246,
CapabilityPredicatedIOINTEL = 6257,
+ CapabilityRoundedDivideSqrtINTEL = 6265,
CapabilityGroupUniformArithmeticKHR = 6400,
CapabilityTensorFloat32RoundingINTEL = 6425,
CapabilityMaskedGatherScatterINTEL = 6427,
@@ -4519,6 +4520,7 @@ inline const char* CapabilityToString(Capability value) {
case CapabilitySpecConditionalINTEL: return "SpecConditionalINTEL";
case CapabilityFunctionVariantsINTEL: return "FunctionVariantsINTEL";
case CapabilityPredicatedIOINTEL: return "PredicatedIOINTEL";
+ case CapabilityRoundedDivideSqrtINTEL: return "RoundedDivideSqrtINTEL";
case CapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
case CapabilityTensorFloat32RoundingINTEL: return "TensorFloat32RoundingINTEL";
case CapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index 0d85dfe..e08b65b 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -1393,6 +1393,7 @@ enum class Capability : unsigned {
SpecConditionalINTEL = 6245,
FunctionVariantsINTEL = 6246,
PredicatedIOINTEL = 6257,
+ RoundedDivideSqrtINTEL = 6265,
GroupUniformArithmeticKHR = 6400,
TensorFloat32RoundingINTEL = 6425,
MaskedGatherScatterINTEL = 6427,
@@ -4519,6 +4520,7 @@ inline const char* CapabilityToString(Capability value) {
case Capability::SpecConditionalINTEL: return "SpecConditionalINTEL";
case Capability::FunctionVariantsINTEL: return "FunctionVariantsINTEL";
case Capability::PredicatedIOINTEL: return "PredicatedIOINTEL";
+ case Capability::RoundedDivideSqrtINTEL: return "RoundedDivideSqrtINTEL";
case Capability::GroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
case Capability::TensorFloat32RoundingINTEL: return "TensorFloat32RoundingINTEL";
case Capability::MaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index ec778af..bd3f41b 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -1359,6 +1359,7 @@
"SpecConditionalINTEL": 6245,
"FunctionVariantsINTEL": 6246,
"PredicatedIOINTEL": 6257,
+ "RoundedDivideSqrtINTEL": 6265,
"GroupUniformArithmeticKHR": 6400,
"TensorFloat32RoundingINTEL": 6425,
"MaskedGatherScatterINTEL": 6427,
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index b883dd8..347e010 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -1384,6 +1384,7 @@ spv = {
SpecConditionalINTEL = 6245,
FunctionVariantsINTEL = 6246,
PredicatedIOINTEL = 6257,
+ RoundedDivideSqrtINTEL = 6265,
GroupUniformArithmeticKHR = 6400,
TensorFloat32RoundingINTEL = 6425,
MaskedGatherScatterINTEL = 6427,
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index 590ee22..a5c118d 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -1355,6 +1355,7 @@ spv = {
'SpecConditionalINTEL' : 6245,
'FunctionVariantsINTEL' : 6246,
'PredicatedIOINTEL' : 6257,
+ 'RoundedDivideSqrtINTEL' : 6265,
'GroupUniformArithmeticKHR' : 6400,
'TensorFloat32RoundingINTEL' : 6425,
'MaskedGatherScatterINTEL' : 6427,
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index 0323867..781154a 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -1429,6 +1429,7 @@ enum Capability : uint
SpecConditionalINTEL = 6245,
FunctionVariantsINTEL = 6246,
PredicatedIOINTEL = 6257,
+ RoundedDivideSqrtINTEL = 6265,
GroupUniformArithmeticKHR = 6400,
TensorFloat32RoundingINTEL = 6425,
MaskedGatherScatterINTEL = 6427,
--
2.54.0
@@ -0,0 +1,282 @@
From 157de8e260e9362225c0ce9a6675d034968abe15 Mon Sep 17 00:00:00 2001
From: mjkrol <mjkrol@gmail.com>
Date: Wed, 29 Apr 2026 17:42:37 +0200
Subject: [PATCH 03/26] Add SPV_MESA_fragment_coverage_mask enumerants (#580)
Reserve BuiltIn FragmentCoverageMaskMESA (4096) and Capability
FragmentCoverageMESA (4097) for SPV_MESA_fragment_coverage_mask.
---
include/spirv/unified1/spirv.bf | 2 ++
include/spirv/unified1/spirv.core.grammar.json | 13 +++++++++++++
include/spirv/unified1/spirv.cs | 2 ++
include/spirv/unified1/spirv.h | 4 ++++
include/spirv/unified1/spirv.hpp | 4 ++++
include/spirv/unified1/spirv.hpp11 | 4 ++++
include/spirv/unified1/spirv.json | 2 ++
include/spirv/unified1/spirv.lua | 2 ++
include/spirv/unified1/spirv.py | 2 ++
include/spirv/unified1/spv.d | 2 ++
10 files changed, 37 insertions(+)
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
index 3d24085..efd329f 100644
--- a/include/spirv/unified1/spirv.bf
+++ b/include/spirv/unified1/spirv.bf
@@ -757,6 +757,7 @@ namespace Spv
SubgroupLocalInvocationId = 41,
VertexIndex = 42,
InstanceIndex = 43,
+ FragmentCoverageMaskMESA = 4096,
CoreIDARM = 4160,
CoreCountARM = 4161,
CoreMaxIDARM = 4162,
@@ -1169,6 +1170,7 @@ namespace Spv
ShaderLayer = 69,
ShaderViewportIndex = 70,
UniformDecoration = 71,
+ FragmentCoverageMESA = 4097,
CoreBuiltinsARM = 4165,
TileImageColorReadAccessEXT = 4166,
TileImageDepthReadAccessEXT = 4167,
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 4fc0ec9..1a6a490 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -16170,6 +16170,12 @@
"capabilities" : [ "Shader" ],
"version": "1.0"
},
+ {
+ "enumerant" : "FragmentCoverageMaskMESA",
+ "value" : 4096,
+ "capabilities" : [ "FragmentCoverageMESA" ],
+ "version" : "None"
+ },
{
"enumerant" : "CoreIDARM",
"value" : 4160,
@@ -17309,6 +17315,13 @@
"value" : 71,
"version" : "1.6"
},
+ {
+ "enumerant" : "FragmentCoverageMESA",
+ "value" : 4097,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_MESA_fragment_coverage_mask" ],
+ "version" : "None"
+ },
{
"enumerant" : "CoreBuiltinsARM",
"value" : 4165,
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index 35b9aff..248e593 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -756,6 +756,7 @@ namespace Spv
SubgroupLocalInvocationId = 41,
VertexIndex = 42,
InstanceIndex = 43,
+ FragmentCoverageMaskMESA = 4096,
CoreIDARM = 4160,
CoreCountARM = 4161,
CoreMaxIDARM = 4162,
@@ -1168,6 +1169,7 @@ namespace Spv
ShaderLayer = 69,
ShaderViewportIndex = 70,
UniformDecoration = 71,
+ FragmentCoverageMESA = 4097,
CoreBuiltinsARM = 4165,
TileImageColorReadAccessEXT = 4166,
TileImageDepthReadAccessEXT = 4167,
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index a9e4998..ea4fb66 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -743,6 +743,7 @@ typedef enum SpvBuiltIn_ {
SpvBuiltInSubgroupLocalInvocationId = 41,
SpvBuiltInVertexIndex = 42,
SpvBuiltInInstanceIndex = 43,
+ SpvBuiltInFragmentCoverageMaskMESA = 4096,
SpvBuiltInCoreIDARM = 4160,
SpvBuiltInCoreCountARM = 4161,
SpvBuiltInCoreMaxIDARM = 4162,
@@ -1139,6 +1140,7 @@ typedef enum SpvCapability_ {
SpvCapabilityShaderLayer = 69,
SpvCapabilityShaderViewportIndex = 70,
SpvCapabilityUniformDecoration = 71,
+ SpvCapabilityFragmentCoverageMESA = 4097,
SpvCapabilityCoreBuiltinsARM = 4165,
SpvCapabilityTileImageColorReadAccessEXT = 4166,
SpvCapabilityTileImageDepthReadAccessEXT = 4167,
@@ -4118,6 +4120,7 @@ inline const char* SpvBuiltInToString(SpvBuiltIn value) {
case SpvBuiltInSubgroupLocalInvocationId: return "SubgroupLocalInvocationId";
case SpvBuiltInVertexIndex: return "VertexIndex";
case SpvBuiltInInstanceIndex: return "InstanceIndex";
+ case SpvBuiltInFragmentCoverageMaskMESA: return "FragmentCoverageMaskMESA";
case SpvBuiltInCoreIDARM: return "CoreIDARM";
case SpvBuiltInCoreCountARM: return "CoreCountARM";
case SpvBuiltInCoreMaxIDARM: return "CoreMaxIDARM";
@@ -4316,6 +4319,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) {
case SpvCapabilityShaderLayer: return "ShaderLayer";
case SpvCapabilityShaderViewportIndex: return "ShaderViewportIndex";
case SpvCapabilityUniformDecoration: return "UniformDecoration";
+ case SpvCapabilityFragmentCoverageMESA: return "FragmentCoverageMESA";
case SpvCapabilityCoreBuiltinsARM: return "CoreBuiltinsARM";
case SpvCapabilityTileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
case SpvCapabilityTileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index 6676d71..3a61c4d 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -739,6 +739,7 @@ enum BuiltIn {
BuiltInSubgroupLocalInvocationId = 41,
BuiltInVertexIndex = 42,
BuiltInInstanceIndex = 43,
+ BuiltInFragmentCoverageMaskMESA = 4096,
BuiltInCoreIDARM = 4160,
BuiltInCoreCountARM = 4161,
BuiltInCoreMaxIDARM = 4162,
@@ -1135,6 +1136,7 @@ enum Capability {
CapabilityShaderLayer = 69,
CapabilityShaderViewportIndex = 70,
CapabilityUniformDecoration = 71,
+ CapabilityFragmentCoverageMESA = 4097,
CapabilityCoreBuiltinsARM = 4165,
CapabilityTileImageColorReadAccessEXT = 4166,
CapabilityTileImageDepthReadAccessEXT = 4167,
@@ -4114,6 +4116,7 @@ inline const char* BuiltInToString(BuiltIn value) {
case BuiltInSubgroupLocalInvocationId: return "SubgroupLocalInvocationId";
case BuiltInVertexIndex: return "VertexIndex";
case BuiltInInstanceIndex: return "InstanceIndex";
+ case BuiltInFragmentCoverageMaskMESA: return "FragmentCoverageMaskMESA";
case BuiltInCoreIDARM: return "CoreIDARM";
case BuiltInCoreCountARM: return "CoreCountARM";
case BuiltInCoreMaxIDARM: return "CoreMaxIDARM";
@@ -4312,6 +4315,7 @@ inline const char* CapabilityToString(Capability value) {
case CapabilityShaderLayer: return "ShaderLayer";
case CapabilityShaderViewportIndex: return "ShaderViewportIndex";
case CapabilityUniformDecoration: return "UniformDecoration";
+ case CapabilityFragmentCoverageMESA: return "FragmentCoverageMESA";
case CapabilityCoreBuiltinsARM: return "CoreBuiltinsARM";
case CapabilityTileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
case CapabilityTileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index e08b65b..a3c8b1c 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -739,6 +739,7 @@ enum class BuiltIn : unsigned {
SubgroupLocalInvocationId = 41,
VertexIndex = 42,
InstanceIndex = 43,
+ FragmentCoverageMaskMESA = 4096,
CoreIDARM = 4160,
CoreCountARM = 4161,
CoreMaxIDARM = 4162,
@@ -1135,6 +1136,7 @@ enum class Capability : unsigned {
ShaderLayer = 69,
ShaderViewportIndex = 70,
UniformDecoration = 71,
+ FragmentCoverageMESA = 4097,
CoreBuiltinsARM = 4165,
TileImageColorReadAccessEXT = 4166,
TileImageDepthReadAccessEXT = 4167,
@@ -4114,6 +4116,7 @@ inline const char* BuiltInToString(BuiltIn value) {
case BuiltIn::SubgroupLocalInvocationId: return "SubgroupLocalInvocationId";
case BuiltIn::VertexIndex: return "VertexIndex";
case BuiltIn::InstanceIndex: return "InstanceIndex";
+ case BuiltIn::FragmentCoverageMaskMESA: return "FragmentCoverageMaskMESA";
case BuiltIn::CoreIDARM: return "CoreIDARM";
case BuiltIn::CoreCountARM: return "CoreCountARM";
case BuiltIn::CoreMaxIDARM: return "CoreMaxIDARM";
@@ -4312,6 +4315,7 @@ inline const char* CapabilityToString(Capability value) {
case Capability::ShaderLayer: return "ShaderLayer";
case Capability::ShaderViewportIndex: return "ShaderViewportIndex";
case Capability::UniformDecoration: return "UniformDecoration";
+ case Capability::FragmentCoverageMESA: return "FragmentCoverageMESA";
case Capability::CoreBuiltinsARM: return "CoreBuiltinsARM";
case Capability::TileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
case Capability::TileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index bd3f41b..88f2605 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -765,6 +765,7 @@
"SubgroupLocalInvocationId": 41,
"VertexIndex": 42,
"InstanceIndex": 43,
+ "FragmentCoverageMaskMESA": 4096,
"CoreIDARM": 4160,
"CoreCountARM": 4161,
"CoreMaxIDARM": 4162,
@@ -1101,6 +1102,7 @@
"ShaderLayer": 69,
"ShaderViewportIndex": 70,
"UniformDecoration": 71,
+ "FragmentCoverageMESA": 4097,
"CoreBuiltinsARM": 4165,
"TileImageColorReadAccessEXT": 4166,
"TileImageDepthReadAccessEXT": 4167,
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index 347e010..db1bfd5 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -730,6 +730,7 @@ spv = {
SubgroupLocalInvocationId = 41,
VertexIndex = 42,
InstanceIndex = 43,
+ FragmentCoverageMaskMESA = 4096,
CoreIDARM = 4160,
CoreCountARM = 4161,
CoreMaxIDARM = 4162,
@@ -1126,6 +1127,7 @@ spv = {
ShaderLayer = 69,
ShaderViewportIndex = 70,
UniformDecoration = 71,
+ FragmentCoverageMESA = 4097,
CoreBuiltinsARM = 4165,
TileImageColorReadAccessEXT = 4166,
TileImageDepthReadAccessEXT = 4167,
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index a5c118d..976e23b 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -711,6 +711,7 @@ spv = {
'SubgroupLocalInvocationId' : 41,
'VertexIndex' : 42,
'InstanceIndex' : 43,
+ 'FragmentCoverageMaskMESA' : 4096,
'CoreIDARM' : 4160,
'CoreCountARM' : 4161,
'CoreMaxIDARM' : 4162,
@@ -1097,6 +1098,7 @@ spv = {
'ShaderLayer' : 69,
'ShaderViewportIndex' : 70,
'UniformDecoration' : 71,
+ 'FragmentCoverageMESA' : 4097,
'CoreBuiltinsARM' : 4165,
'TileImageColorReadAccessEXT' : 4166,
'TileImageDepthReadAccessEXT' : 4167,
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index 781154a..a9093d6 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -759,6 +759,7 @@ enum BuiltIn : uint
SubgroupLocalInvocationId = 41,
VertexIndex = 42,
InstanceIndex = 43,
+ FragmentCoverageMaskMESA = 4096,
CoreIDARM = 4160,
CoreCountARM = 4161,
CoreMaxIDARM = 4162,
@@ -1171,6 +1172,7 @@ enum Capability : uint
ShaderLayer = 69,
ShaderViewportIndex = 70,
UniformDecoration = 71,
+ FragmentCoverageMESA = 4097,
CoreBuiltinsARM = 4165,
TileImageColorReadAccessEXT = 4166,
TileImageDepthReadAccessEXT = 4167,
--
2.54.0
@@ -0,0 +1,26 @@
From 1a22b167081842915a1c78a0b5b5a353a23284aa Mon Sep 17 00:00:00 2001
From: alelenv <40001162+alelenv@users.noreply.github.com>
Date: Wed, 29 Apr 2026 08:50:18 -0700
Subject: [PATCH 04/26] Update headers for spirv issue 373 (#584)
---
include/spirv/unified1/spirv.core.grammar.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 1a6a490..c7e3cc3 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -6505,7 +6505,8 @@
{ "kind" : "IdRef", "name" : "Hit Object" },
{ "kind" : "IdRef", "name" : "Ray Query" },
{ "kind" : "IdRef", "name" : "SBT Record Index" },
- { "kind" : "IdRef", "name" : "Hit Object Attributes" }
+ { "kind" : "IdRef", "name" : "Hit Object Attributes" },
+ { "kind" : "IdRef", "quantifier" : "?", "name" : "Hit Kind" }
],
"capabilities" : [ "ShaderInvocationReorderEXT" ],
"version" : "None"
--
2.54.0
@@ -0,0 +1,32 @@
From 53b334f4a5f18fb1f2d367baeba8b43e2eb0b62b Mon Sep 17 00:00:00 2001
From: Matthew Moulton <30711895+mmoult@users.noreply.github.com>
Date: Wed, 29 Apr 2026 22:25:01 +0000
Subject: [PATCH 05/26] Reserve some tokens for Samsung (#586)
---
include/spirv/spir-v.xml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/spirv/spir-v.xml b/include/spirv/spir-v.xml
index 15eeb4d..3b3cfb3 100644
--- a/include/spirv/spir-v.xml
+++ b/include/spirv/spir-v.xml
@@ -179,13 +179,14 @@
<ids type="enumerant" start="6784" end="6911" vendor="Intel" comment="Contact mariusz.merecki@intel.com"/>
<ids type="enumerant" start="6912" end="6975" vendor="Valve" comment="Contact michael.blumenkrantz@gmail.com"/>
<ids type="enumerant" start="6976" end="7039" vendor="Broadcom" comment="Contact gleese@broadcom.com"/>
+ <ids type="enumerant" start="7040" end="7103" vendor="Samsung" comment="Contact r.potter@samsung.com"/>
<!-- Enumerants to reserve for future use. To get a block, allocate
multiples of 64 starting at the lowest available point in this
block and add a corresponding <ids> tag immediately above. Make
sure to fill in the vendor attribute, and preferably add a contact
person/address in a comment attribute. -->
<!-- Example new block: <ids type="enumerant" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
- <ids type="enumerant" start="7040" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
+ <ids type="enumerant" start="7104" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
<!-- End reservations of enumerants -->
--
2.54.0
@@ -0,0 +1,74 @@
From 126038020c2bd47efaa942ccc364ca5353ffccde Mon Sep 17 00:00:00 2001
From: Arseniy Obolenskiy <gooddoog@student.su>
Date: Thu, 30 Apr 2026 22:51:58 +0200
Subject: [PATCH 06/26] Fix OpCompositeConstructContinuedINTEL operands (#587)
* Fix OpCompositeConstructContinuedINTEL operands
Remove IdResultType and IdResult from OpCompositeConstructContinuedINTEL
This instruction is a continuation that supplies additional constituents to a preceding OpCompositeConstruct and does not produce its own result
* Update headers
---
include/spirv/unified1/spirv.core.grammar.json | 2 --
include/spirv/unified1/spirv.h | 2 +-
include/spirv/unified1/spirv.hpp | 2 +-
include/spirv/unified1/spirv.hpp11 | 2 +-
4 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index c7e3cc3..2ca9fe4 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -11223,8 +11223,6 @@
"class" : "Composite",
"opcode" : 6096,
"operands" : [
- { "kind" : "IdResultType" },
- { "kind" : "IdResult" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "Constituents" }
],
"capabilities" : [ "LongCompositesINTEL" ],
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index ea4fb66..169cb06 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -3489,7 +3489,7 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case SpvOpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case SpvOpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
- case SpvOpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpCompositeConstructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case SpvOpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index 3a61c4d..c159586 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -3485,7 +3485,7 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
- case OpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpCompositeConstructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case OpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
case OpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
case OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index a3c8b1c..189dbbc 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -3485,7 +3485,7 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case Op::OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case Op::OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
- case Op::OpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpCompositeConstructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case Op::OpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
--
2.54.0
@@ -0,0 +1,25 @@
From 1f2dd1627ae782fa999b6ed86514c6a905438e3c Mon Sep 17 00:00:00 2001
From: Spencer Fricke <115671160+spencer-lunarg@users.noreply.github.com>
Date: Tue, 5 May 2026 12:29:58 -0400
Subject: [PATCH 07/26] Update spirv.core.grammar.json revision (#593)
---
include/spirv/unified1/spirv.core.grammar.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 2ca9fe4..bd716cb 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -11,7 +11,7 @@
"magic_number" : "0x07230203",
"major_version" : 1,
"minor_version" : 6,
- "revision" : 4,
+ "revision" : 7,
"instruction_printing_class" : [
{
"tag" : "@exclude"
--
2.54.0
@@ -0,0 +1,26 @@
From 58006c901d1d5c37dece6b6610e9af87fa951375 Mon Sep 17 00:00:00 2001
From: Shahbaz Youssefi <syoussefi@chromium.org>
Date: Thu, 7 May 2026 21:05:26 -0400
Subject: [PATCH 08/26] Reserve ImageOperand 17 for Google (#589)
---
include/spirv/spir-v.xml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/spirv/spir-v.xml b/include/spirv/spir-v.xml
index 3b3cfb3..69a2c2a 100644
--- a/include/spirv/spir-v.xml
+++ b/include/spirv/spir-v.xml
@@ -290,7 +290,8 @@
<!-- Reserved image operand bits -->
<ids type="ImageOperand" start="0" end="15" vendor="Khronos" comment="Reserved ImageOperand bits, not available to vendors - see the SPIR-V Specification"/>
<ids type="ImageOperand" start="16" end="16" vendor="Nvidia" comment="Contact pmistry@nvidia.com"/>
- <ids type="ImageOperand" start="17" end="30" comment="Unreserved bits reservable for use by vendors"/>
+ <ids type="ImageOperand" start="17" end="17" vendor="Google" comment="Contact syoussefi@google.com"/>
+ <ids type="ImageOperand" start="18" end="30" comment="Unreserved bits reservable for use by vendors"/>
<ids type="ImageOperand" start="31" end="31" vendor="Khronos" comment="Reserved ImageOperand bit, not available to vendors"/>
</registry>
--
2.54.0
@@ -0,0 +1,88 @@
From 98c842bd561ac67c5ff98d599c8c960ba9edb7fd Mon Sep 17 00:00:00 2001
From: Arseniy Obolenskiy <gooddoog@student.su>
Date: Mon, 11 May 2026 13:11:51 +0200
Subject: [PATCH 09/26] Fix OpReadPipeBlockingINTEL/OpWritePipeBlockingINTEL
operands (#588)
Per the SPV_INTEL_blocking_pipes spec, these instructions do not produce a result, but have Pipe and Pointer id arguments instead
---
include/spirv/unified1/spirv.core.grammar.json | 8 ++++----
include/spirv/unified1/spirv.h | 4 ++--
include/spirv/unified1/spirv.hpp | 4 ++--
include/spirv/unified1/spirv.hpp11 | 4 ++--
4 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index bd716cb..d8d36df 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -10803,8 +10803,8 @@
"aliases" : [ "OpReadPipeBlockingINTEL" ],
"opcode" : 5946,
"operands" : [
- { "kind" : "IdResultType" },
- { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "Pipe" },
+ { "kind" : "IdRef", "name" : "Pointer" },
{ "kind" : "IdRef", "name" : "Packet Size" },
{ "kind" : "IdRef", "name" : "Packet Alignment" }
],
@@ -10817,8 +10817,8 @@
"aliases" : [ "OpWritePipeBlockingINTEL" ],
"opcode" : 5947,
"operands" : [
- { "kind" : "IdResultType" },
- { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "Pipe" },
+ { "kind" : "IdRef", "name" : "Pointer" },
{ "kind" : "IdRef", "name" : "Packet Size" },
{ "kind" : "IdRef", "name" : "Packet Alignment" }
],
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index 169cb06..1759d89 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -3464,8 +3464,8 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpFixedExpALTERA: *hasResult = true; *hasResultType = true; break;
case SpvOpPtrCastToCrossWorkgroupALTERA: *hasResult = true; *hasResultType = true; break;
case SpvOpCrossWorkgroupCastToPtrALTERA: *hasResult = true; *hasResultType = true; break;
- case SpvOpReadPipeBlockingALTERA: *hasResult = true; *hasResultType = true; break;
- case SpvOpWritePipeBlockingALTERA: *hasResult = true; *hasResultType = true; break;
+ case SpvOpReadPipeBlockingALTERA: *hasResult = false; *hasResultType = false; break;
+ case SpvOpWritePipeBlockingALTERA: *hasResult = false; *hasResultType = false; break;
case SpvOpFPGARegALTERA: *hasResult = true; *hasResultType = true; break;
case SpvOpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index c159586..e6cc26c 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -3460,8 +3460,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpFixedExpALTERA: *hasResult = true; *hasResultType = true; break;
case OpPtrCastToCrossWorkgroupALTERA: *hasResult = true; *hasResultType = true; break;
case OpCrossWorkgroupCastToPtrALTERA: *hasResult = true; *hasResultType = true; break;
- case OpReadPipeBlockingALTERA: *hasResult = true; *hasResultType = true; break;
- case OpWritePipeBlockingALTERA: *hasResult = true; *hasResultType = true; break;
+ case OpReadPipeBlockingALTERA: *hasResult = false; *hasResultType = false; break;
+ case OpWritePipeBlockingALTERA: *hasResult = false; *hasResultType = false; break;
case OpFPGARegALTERA: *hasResult = true; *hasResultType = true; break;
case OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
case OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index 189dbbc..c841190 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -3460,8 +3460,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpFixedExpALTERA: *hasResult = true; *hasResultType = true; break;
case Op::OpPtrCastToCrossWorkgroupALTERA: *hasResult = true; *hasResultType = true; break;
case Op::OpCrossWorkgroupCastToPtrALTERA: *hasResult = true; *hasResultType = true; break;
- case Op::OpReadPipeBlockingALTERA: *hasResult = true; *hasResultType = true; break;
- case Op::OpWritePipeBlockingALTERA: *hasResult = true; *hasResultType = true; break;
+ case Op::OpReadPipeBlockingALTERA: *hasResult = false; *hasResultType = false; break;
+ case Op::OpWritePipeBlockingALTERA: *hasResult = false; *hasResultType = false; break;
case Op::OpFPGARegALTERA: *hasResult = true; *hasResultType = true; break;
case Op::OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
--
2.54.0
@@ -0,0 +1,283 @@
From 5c50cbd25a40f8b60e44a2ccc2f1ba3c9e0d0299 Mon Sep 17 00:00:00 2001
From: Dmitry Sidorov <dsidorov@amd.com>
Date: Wed, 13 May 2026 15:01:58 +0200
Subject: [PATCH 10/26] Add SPV_AMD_weak_linkage extension (#583)
Spec is available here KhronosGroup/SPIRV-Registry#401
---
include/spirv/unified1/spirv.bf | 2 ++
include/spirv/unified1/spirv.core.grammar.json | 13 +++++++++++++
include/spirv/unified1/spirv.cs | 2 ++
include/spirv/unified1/spirv.h | 4 ++++
include/spirv/unified1/spirv.hpp | 4 ++++
include/spirv/unified1/spirv.hpp11 | 4 ++++
include/spirv/unified1/spirv.json | 4 +++-
include/spirv/unified1/spirv.lua | 2 ++
include/spirv/unified1/spirv.py | 2 ++
include/spirv/unified1/spv.d | 2 ++
10 files changed, 38 insertions(+), 1 deletion(-)
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
index efd329f..8d0bc34 100644
--- a/include/spirv/unified1/spirv.bf
+++ b/include/spirv/unified1/spirv.bf
@@ -485,6 +485,7 @@ namespace Spv
Export = 0,
Import = 1,
LinkOnceODR = 2,
+ WeakAMD = 3,
Max = 0x7fffffff,
}
@@ -1238,6 +1239,7 @@ namespace Spv
DescriptorHeapEXT = 5128,
ConstantDataKHR = 5146,
PoisonFreezeKHR = 5156,
+ WeakLinkageAMD = 5181,
SampleMaskOverrideCoverageNV = 5249,
GeometryShaderPassthroughNV = 5251,
ShaderViewportIndexLayerEXT = 5254,
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index d8d36df..c84dc2d 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -14595,6 +14595,12 @@
"capabilities" : [ "Linkage" ],
"extensions" : [ "SPV_KHR_linkonce_odr" ],
"version" : "None"
+ },
+ {
+ "enumerant" : "WeakAMD",
+ "value" : 3,
+ "capabilities" : [ "WeakLinkageAMD" ],
+ "version" : "None"
}
]
},
@@ -17744,6 +17750,13 @@
"provisional" : true,
"version" : "None"
},
+ {
+ "enumerant" : "WeakLinkageAMD",
+ "value" : 5181,
+ "capabilities" : [ "Linkage" ],
+ "extensions" : [ "SPV_AMD_weak_linkage" ],
+ "version" : "None"
+ },
{
"enumerant" : "SampleMaskOverrideCoverageNV",
"value" : 5249,
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index 248e593..b0a8f1e 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -484,6 +484,7 @@ namespace Spv
Export = 0,
Import = 1,
LinkOnceODR = 2,
+ WeakAMD = 3,
Max = 0x7fffffff,
}
@@ -1237,6 +1238,7 @@ namespace Spv
DescriptorHeapEXT = 5128,
ConstantDataKHR = 5146,
PoisonFreezeKHR = 5156,
+ WeakLinkageAMD = 5181,
SampleMaskOverrideCoverageNV = 5249,
GeometryShaderPassthroughNV = 5251,
ShaderViewportIndexLayerEXT = 5254,
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index 1759d89..4f76b90 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -475,6 +475,7 @@ typedef enum SpvLinkageType_ {
SpvLinkageTypeExport = 0,
SpvLinkageTypeImport = 1,
SpvLinkageTypeLinkOnceODR = 2,
+ SpvLinkageTypeWeakAMD = 3,
SpvLinkageTypeMax = 0x7fffffff,
} SpvLinkageType;
@@ -1208,6 +1209,7 @@ typedef enum SpvCapability_ {
SpvCapabilityDescriptorHeapEXT = 5128,
SpvCapabilityConstantDataKHR = 5146,
SpvCapabilityPoisonFreezeKHR = 5156,
+ SpvCapabilityWeakLinkageAMD = 5181,
SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
SpvCapabilityGeometryShaderPassthroughNV = 5251,
SpvCapabilityShaderViewportIndexLayerEXT = 5254,
@@ -3893,6 +3895,7 @@ inline const char* SpvLinkageTypeToString(SpvLinkageType value) {
case SpvLinkageTypeExport: return "Export";
case SpvLinkageTypeImport: return "Import";
case SpvLinkageTypeLinkOnceODR: return "LinkOnceODR";
+ case SpvLinkageTypeWeakAMD: return "WeakAMD";
default: return "Unknown";
}
}
@@ -4385,6 +4388,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) {
case SpvCapabilityDescriptorHeapEXT: return "DescriptorHeapEXT";
case SpvCapabilityConstantDataKHR: return "ConstantDataKHR";
case SpvCapabilityPoisonFreezeKHR: return "PoisonFreezeKHR";
+ case SpvCapabilityWeakLinkageAMD: return "WeakLinkageAMD";
case SpvCapabilitySampleMaskOverrideCoverageNV: return "SampleMaskOverrideCoverageNV";
case SpvCapabilityGeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV";
case SpvCapabilityShaderViewportIndexLayerEXT: return "ShaderViewportIndexLayerEXT";
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index e6cc26c..fd64eb7 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -471,6 +471,7 @@ enum LinkageType {
LinkageTypeExport = 0,
LinkageTypeImport = 1,
LinkageTypeLinkOnceODR = 2,
+ LinkageTypeWeakAMD = 3,
LinkageTypeMax = 0x7fffffff,
};
@@ -1204,6 +1205,7 @@ enum Capability {
CapabilityDescriptorHeapEXT = 5128,
CapabilityConstantDataKHR = 5146,
CapabilityPoisonFreezeKHR = 5156,
+ CapabilityWeakLinkageAMD = 5181,
CapabilitySampleMaskOverrideCoverageNV = 5249,
CapabilityGeometryShaderPassthroughNV = 5251,
CapabilityShaderViewportIndexLayerEXT = 5254,
@@ -3889,6 +3891,7 @@ inline const char* LinkageTypeToString(LinkageType value) {
case LinkageTypeExport: return "Export";
case LinkageTypeImport: return "Import";
case LinkageTypeLinkOnceODR: return "LinkOnceODR";
+ case LinkageTypeWeakAMD: return "WeakAMD";
default: return "Unknown";
}
}
@@ -4381,6 +4384,7 @@ inline const char* CapabilityToString(Capability value) {
case CapabilityDescriptorHeapEXT: return "DescriptorHeapEXT";
case CapabilityConstantDataKHR: return "ConstantDataKHR";
case CapabilityPoisonFreezeKHR: return "PoisonFreezeKHR";
+ case CapabilityWeakLinkageAMD: return "WeakLinkageAMD";
case CapabilitySampleMaskOverrideCoverageNV: return "SampleMaskOverrideCoverageNV";
case CapabilityGeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV";
case CapabilityShaderViewportIndexLayerEXT: return "ShaderViewportIndexLayerEXT";
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index c841190..4e626c9 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -471,6 +471,7 @@ enum class LinkageType : unsigned {
Export = 0,
Import = 1,
LinkOnceODR = 2,
+ WeakAMD = 3,
Max = 0x7fffffff,
};
@@ -1204,6 +1205,7 @@ enum class Capability : unsigned {
DescriptorHeapEXT = 5128,
ConstantDataKHR = 5146,
PoisonFreezeKHR = 5156,
+ WeakLinkageAMD = 5181,
SampleMaskOverrideCoverageNV = 5249,
GeometryShaderPassthroughNV = 5251,
ShaderViewportIndexLayerEXT = 5254,
@@ -3889,6 +3891,7 @@ inline const char* LinkageTypeToString(LinkageType value) {
case LinkageType::Export: return "Export";
case LinkageType::Import: return "Import";
case LinkageType::LinkOnceODR: return "LinkOnceODR";
+ case LinkageType::WeakAMD: return "WeakAMD";
default: return "Unknown";
}
}
@@ -4381,6 +4384,7 @@ inline const char* CapabilityToString(Capability value) {
case Capability::DescriptorHeapEXT: return "DescriptorHeapEXT";
case Capability::ConstantDataKHR: return "ConstantDataKHR";
case Capability::PoisonFreezeKHR: return "PoisonFreezeKHR";
+ case Capability::WeakLinkageAMD: return "WeakLinkageAMD";
case Capability::SampleMaskOverrideCoverageNV: return "SampleMaskOverrideCoverageNV";
case Capability::GeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV";
case Capability::ShaderViewportIndexLayerEXT: return "ShaderViewportIndexLayerEXT";
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index 88f2605..135663c 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -484,7 +484,8 @@
{
"Export": 0,
"Import": 1,
- "LinkOnceODR": 2
+ "LinkOnceODR": 2,
+ "WeakAMD": 3
}
},
{
@@ -1170,6 +1171,7 @@
"DescriptorHeapEXT": 5128,
"ConstantDataKHR": 5146,
"PoisonFreezeKHR": 5156,
+ "WeakLinkageAMD": 5181,
"SampleMaskOverrideCoverageNV": 5249,
"GeometryShaderPassthroughNV": 5251,
"ShaderViewportIndexLayerEXT": 5254,
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index db1bfd5..8cbe093 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -462,6 +462,7 @@ spv = {
Export = 0,
Import = 1,
LinkOnceODR = 2,
+ WeakAMD = 3,
Max = 0x7fffffff,
},
@@ -1195,6 +1196,7 @@ spv = {
DescriptorHeapEXT = 5128,
ConstantDataKHR = 5146,
PoisonFreezeKHR = 5156,
+ WeakLinkageAMD = 5181,
SampleMaskOverrideCoverageNV = 5249,
GeometryShaderPassthroughNV = 5251,
ShaderViewportIndexLayerEXT = 5254,
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index 976e23b..bb65ae9 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -447,6 +447,7 @@ spv = {
'Export' : 0,
'Import' : 1,
'LinkOnceODR' : 2,
+ 'WeakAMD' : 3,
},
'AccessQualifier' : {
@@ -1166,6 +1167,7 @@ spv = {
'DescriptorHeapEXT' : 5128,
'ConstantDataKHR' : 5146,
'PoisonFreezeKHR' : 5156,
+ 'WeakLinkageAMD' : 5181,
'SampleMaskOverrideCoverageNV' : 5249,
'GeometryShaderPassthroughNV' : 5251,
'ShaderViewportIndexLayerEXT' : 5254,
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index a9093d6..8d31fee 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -487,6 +487,7 @@ enum LinkageType : uint
Export = 0,
Import = 1,
LinkOnceODR = 2,
+ WeakAMD = 3,
Max = 0x7fffffff,
}
@@ -1240,6 +1241,7 @@ enum Capability : uint
DescriptorHeapEXT = 5128,
ConstantDataKHR = 5146,
PoisonFreezeKHR = 5156,
+ WeakLinkageAMD = 5181,
SampleMaskOverrideCoverageNV = 5249,
GeometryShaderPassthroughNV = 5251,
ShaderViewportIndexLayerEXT = 5254,
--
2.54.0
@@ -0,0 +1,520 @@
From 62d3e8314d2c4f26de24ca508bca2070f3d254aa Mon Sep 17 00:00:00 2001
From: Spencer Fricke <115671160+spencer-lunarg@users.noreply.github.com>
Date: Wed, 13 May 2026 11:47:28 -0400
Subject: [PATCH 11/26] Add SPV_KHR_opacity_micromap (#599)
---
include/spirv/unified1/spirv.bf | 5 ++++
.../spirv/unified1/spirv.core.grammar.json | 26 ++++++++++++++++---
include/spirv/unified1/spirv.cs | 5 ++++
include/spirv/unified1/spirv.h | 7 +++++
include/spirv/unified1/spirv.hpp | 7 +++++
include/spirv/unified1/spirv.hpp11 | 7 +++++
include/spirv/unified1/spirv.json | 6 ++++-
include/spirv/unified1/spirv.lua | 5 ++++
include/spirv/unified1/spirv.py | 5 ++++
include/spirv/unified1/spv.d | 5 ++++
10 files changed, 73 insertions(+), 5 deletions(-)
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
index 8d0bc34..a512a3e 100644
--- a/include/spirv/unified1/spirv.bf
+++ b/include/spirv/unified1/spirv.bf
@@ -206,6 +206,7 @@ namespace Spv
SchedulerTargetFmaxMhzINTEL = 5903,
MaximallyReconvergesKHR = 6023,
FPFastMathDefault = 6028,
+ OpacityMicromapIdKHR = 6031,
StreamingInterfaceINTEL = 6154,
RegisterMapInterfaceINTEL = 6160,
NamedBarrierCountINTEL = 6417,
@@ -1304,6 +1305,7 @@ namespace Spv
DemoteToHelperInvocationEXT = 5379,
DisplacementMicromapNV = 5380,
RayTracingOpacityMicromapEXT = 5381,
+ RayTracingOpacityMicromapKHR = 5381,
ShaderInvocationReorderNV = 5383,
ShaderInvocationReorderEXT = 5388,
BindlessTextureNV = 5390,
@@ -1398,6 +1400,7 @@ namespace Spv
GroupNonUniformRotateKHR = 6026,
FloatControls2 = 6029,
FMAKHR = 6030,
+ RayTracingOpacityMicromapExecutionModeKHR = 6032,
AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034,
LongCompositesINTEL = 6089,
@@ -1459,6 +1462,7 @@ namespace Spv
SkipTrianglesKHR = 8,
SkipAABBsKHR = 9,
ForceOpacityMicromap2StateEXT = 10,
+ ForceOpacityMicromap2StateKHR = 10,
Max = 0x7fffffff,
}
@@ -1477,6 +1481,7 @@ namespace Spv
SkipTrianglesKHR = 0x00000100,
SkipAABBsKHR = 0x00000200,
ForceOpacityMicromap2StateEXT = 0x00000400,
+ ForceOpacityMicromap2StateKHR = 0x00000400,
}
[AllowDuplicates, CRepr] public enum RayQueryIntersection
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index c84dc2d..32a350a 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -12549,9 +12549,10 @@
"version" : "None"
},
{
- "enumerant" : "ForceOpacityMicromap2StateEXT",
+ "enumerant" : "ForceOpacityMicromap2StateKHR",
+ "aliases" : [ "ForceOpacityMicromap2StateEXT" ],
"value" : "0x0400",
- "capabilities" : [ "RayTracingOpacityMicromapEXT" ],
+ "capabilities" : [ "RayTracingOpacityMicromapKHR" ],
"version" : "None"
}
]
@@ -13576,6 +13577,15 @@
"capabilities" : [ "FloatControls2" ],
"version" : "None"
},
+ {
+ "enumerant" : "OpacityMicromapIdKHR",
+ "value" : 6031,
+ "capabilities" : [ "RayTracingOpacityMicromapExecutionModeKHR" ],
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "Enable" }
+ ],
+ "version" : "None"
+ },
{
"enumerant" : "StreamingInterfaceINTEL",
"value" : 6154,
@@ -18062,10 +18072,11 @@
"version" : "None"
},
{
- "enumerant" : "RayTracingOpacityMicromapEXT",
+ "enumerant" : "RayTracingOpacityMicromapKHR",
+ "aliases" : ["RayTracingOpacityMicromapEXT"],
"value" : 5381,
"capabilities" : [ "Shader" ],
- "extensions" : [ "SPV_EXT_opacity_micromap" ],
+ "extensions" : ["SPV_KHR_opacity_micromap", "SPV_EXT_opacity_micromap"],
"version" : "None"
},
{
@@ -18542,6 +18553,13 @@
"extensions" : [ "SPV_KHR_fma" ],
"version" : "None"
},
+ {
+ "enumerant" : "RayTracingOpacityMicromapExecutionModeKHR",
+ "value" : 6032,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_opacity_micromap" ],
+ "version" : "None"
+ },
{
"enumerant" : "AtomicFloat32AddEXT",
"value" : 6033,
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index b0a8f1e..4d33ffa 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -205,6 +205,7 @@ namespace Spv
SchedulerTargetFmaxMhzINTEL = 5903,
MaximallyReconvergesKHR = 6023,
FPFastMathDefault = 6028,
+ OpacityMicromapIdKHR = 6031,
StreamingInterfaceINTEL = 6154,
RegisterMapInterfaceINTEL = 6160,
NamedBarrierCountINTEL = 6417,
@@ -1303,6 +1304,7 @@ namespace Spv
DemoteToHelperInvocationEXT = 5379,
DisplacementMicromapNV = 5380,
RayTracingOpacityMicromapEXT = 5381,
+ RayTracingOpacityMicromapKHR = 5381,
ShaderInvocationReorderNV = 5383,
ShaderInvocationReorderEXT = 5388,
BindlessTextureNV = 5390,
@@ -1397,6 +1399,7 @@ namespace Spv
GroupNonUniformRotateKHR = 6026,
FloatControls2 = 6029,
FMAKHR = 6030,
+ RayTracingOpacityMicromapExecutionModeKHR = 6032,
AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034,
LongCompositesINTEL = 6089,
@@ -1458,6 +1461,7 @@ namespace Spv
SkipTrianglesKHR = 8,
SkipAABBsKHR = 9,
ForceOpacityMicromap2StateEXT = 10,
+ ForceOpacityMicromap2StateKHR = 10,
Max = 0x7fffffff,
}
@@ -1476,6 +1480,7 @@ namespace Spv
SkipTrianglesKHR = 0x00000100,
SkipAABBsKHR = 0x00000200,
ForceOpacityMicromap2StateEXT = 0x00000400,
+ ForceOpacityMicromap2StateKHR = 0x00000400,
}
public enum RayQueryIntersection
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index 4f76b90..d9dedc0 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -209,6 +209,7 @@ typedef enum SpvExecutionMode_ {
SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
SpvExecutionModeMaximallyReconvergesKHR = 6023,
SpvExecutionModeFPFastMathDefault = 6028,
+ SpvExecutionModeOpacityMicromapIdKHR = 6031,
SpvExecutionModeStreamingInterfaceINTEL = 6154,
SpvExecutionModeRegisterMapInterfaceINTEL = 6160,
SpvExecutionModeNamedBarrierCountINTEL = 6417,
@@ -1274,6 +1275,7 @@ typedef enum SpvCapability_ {
SpvCapabilityDemoteToHelperInvocationEXT = 5379,
SpvCapabilityDisplacementMicromapNV = 5380,
SpvCapabilityRayTracingOpacityMicromapEXT = 5381,
+ SpvCapabilityRayTracingOpacityMicromapKHR = 5381,
SpvCapabilityShaderInvocationReorderNV = 5383,
SpvCapabilityShaderInvocationReorderEXT = 5388,
SpvCapabilityBindlessTextureNV = 5390,
@@ -1368,6 +1370,7 @@ typedef enum SpvCapability_ {
SpvCapabilityGroupNonUniformRotateKHR = 6026,
SpvCapabilityFloatControls2 = 6029,
SpvCapabilityFMAKHR = 6030,
+ SpvCapabilityRayTracingOpacityMicromapExecutionModeKHR = 6032,
SpvCapabilityAtomicFloat32AddEXT = 6033,
SpvCapabilityAtomicFloat64AddEXT = 6034,
SpvCapabilityLongCompositesINTEL = 6089,
@@ -1428,6 +1431,7 @@ typedef enum SpvRayFlagsShift_ {
SpvRayFlagsSkipTrianglesKHRShift = 8,
SpvRayFlagsSkipAABBsKHRShift = 9,
SpvRayFlagsForceOpacityMicromap2StateEXTShift = 10,
+ SpvRayFlagsForceOpacityMicromap2StateKHRShift = 10,
SpvRayFlagsMax = 0x7fffffff,
} SpvRayFlagsShift;
@@ -1445,6 +1449,7 @@ typedef enum SpvRayFlagsMask_ {
SpvRayFlagsSkipTrianglesKHRMask = 0x00000100,
SpvRayFlagsSkipAABBsKHRMask = 0x00000200,
SpvRayFlagsForceOpacityMicromap2StateEXTMask = 0x00000400,
+ SpvRayFlagsForceOpacityMicromap2StateKHRMask = 0x00000400,
} SpvRayFlagsMask;
typedef enum SpvRayQueryIntersection_ {
@@ -3696,6 +3701,7 @@ inline const char* SpvExecutionModeToString(SpvExecutionMode value) {
case SpvExecutionModeSchedulerTargetFmaxMhzINTEL: return "SchedulerTargetFmaxMhzINTEL";
case SpvExecutionModeMaximallyReconvergesKHR: return "MaximallyReconvergesKHR";
case SpvExecutionModeFPFastMathDefault: return "FPFastMathDefault";
+ case SpvExecutionModeOpacityMicromapIdKHR: return "OpacityMicromapIdKHR";
case SpvExecutionModeStreamingInterfaceINTEL: return "StreamingInterfaceINTEL";
case SpvExecutionModeRegisterMapInterfaceINTEL: return "RegisterMapInterfaceINTEL";
case SpvExecutionModeNamedBarrierCountINTEL: return "NamedBarrierCountINTEL";
@@ -4505,6 +4511,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) {
case SpvCapabilityGroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR";
case SpvCapabilityFloatControls2: return "FloatControls2";
case SpvCapabilityFMAKHR: return "FMAKHR";
+ case SpvCapabilityRayTracingOpacityMicromapExecutionModeKHR: return "RayTracingOpacityMicromapExecutionModeKHR";
case SpvCapabilityAtomicFloat32AddEXT: return "AtomicFloat32AddEXT";
case SpvCapabilityAtomicFloat64AddEXT: return "AtomicFloat64AddEXT";
case SpvCapabilityLongCompositesINTEL: return "LongCompositesINTEL";
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index fd64eb7..d0a1606 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -205,6 +205,7 @@ enum ExecutionMode {
ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
ExecutionModeMaximallyReconvergesKHR = 6023,
ExecutionModeFPFastMathDefault = 6028,
+ ExecutionModeOpacityMicromapIdKHR = 6031,
ExecutionModeStreamingInterfaceINTEL = 6154,
ExecutionModeRegisterMapInterfaceINTEL = 6160,
ExecutionModeNamedBarrierCountINTEL = 6417,
@@ -1270,6 +1271,7 @@ enum Capability {
CapabilityDemoteToHelperInvocationEXT = 5379,
CapabilityDisplacementMicromapNV = 5380,
CapabilityRayTracingOpacityMicromapEXT = 5381,
+ CapabilityRayTracingOpacityMicromapKHR = 5381,
CapabilityShaderInvocationReorderNV = 5383,
CapabilityShaderInvocationReorderEXT = 5388,
CapabilityBindlessTextureNV = 5390,
@@ -1364,6 +1366,7 @@ enum Capability {
CapabilityGroupNonUniformRotateKHR = 6026,
CapabilityFloatControls2 = 6029,
CapabilityFMAKHR = 6030,
+ CapabilityRayTracingOpacityMicromapExecutionModeKHR = 6032,
CapabilityAtomicFloat32AddEXT = 6033,
CapabilityAtomicFloat64AddEXT = 6034,
CapabilityLongCompositesINTEL = 6089,
@@ -1424,6 +1427,7 @@ enum RayFlagsShift {
RayFlagsSkipTrianglesKHRShift = 8,
RayFlagsSkipAABBsKHRShift = 9,
RayFlagsForceOpacityMicromap2StateEXTShift = 10,
+ RayFlagsForceOpacityMicromap2StateKHRShift = 10,
RayFlagsMax = 0x7fffffff,
};
@@ -1441,6 +1445,7 @@ enum RayFlagsMask {
RayFlagsSkipTrianglesKHRMask = 0x00000100,
RayFlagsSkipAABBsKHRMask = 0x00000200,
RayFlagsForceOpacityMicromap2StateEXTMask = 0x00000400,
+ RayFlagsForceOpacityMicromap2StateKHRMask = 0x00000400,
};
enum RayQueryIntersection {
@@ -3692,6 +3697,7 @@ inline const char* ExecutionModeToString(ExecutionMode value) {
case ExecutionModeSchedulerTargetFmaxMhzINTEL: return "SchedulerTargetFmaxMhzINTEL";
case ExecutionModeMaximallyReconvergesKHR: return "MaximallyReconvergesKHR";
case ExecutionModeFPFastMathDefault: return "FPFastMathDefault";
+ case ExecutionModeOpacityMicromapIdKHR: return "OpacityMicromapIdKHR";
case ExecutionModeStreamingInterfaceINTEL: return "StreamingInterfaceINTEL";
case ExecutionModeRegisterMapInterfaceINTEL: return "RegisterMapInterfaceINTEL";
case ExecutionModeNamedBarrierCountINTEL: return "NamedBarrierCountINTEL";
@@ -4501,6 +4507,7 @@ inline const char* CapabilityToString(Capability value) {
case CapabilityGroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR";
case CapabilityFloatControls2: return "FloatControls2";
case CapabilityFMAKHR: return "FMAKHR";
+ case CapabilityRayTracingOpacityMicromapExecutionModeKHR: return "RayTracingOpacityMicromapExecutionModeKHR";
case CapabilityAtomicFloat32AddEXT: return "AtomicFloat32AddEXT";
case CapabilityAtomicFloat64AddEXT: return "AtomicFloat64AddEXT";
case CapabilityLongCompositesINTEL: return "LongCompositesINTEL";
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index 4e626c9..fb5d724 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -205,6 +205,7 @@ enum class ExecutionMode : unsigned {
SchedulerTargetFmaxMhzINTEL = 5903,
MaximallyReconvergesKHR = 6023,
FPFastMathDefault = 6028,
+ OpacityMicromapIdKHR = 6031,
StreamingInterfaceINTEL = 6154,
RegisterMapInterfaceINTEL = 6160,
NamedBarrierCountINTEL = 6417,
@@ -1270,6 +1271,7 @@ enum class Capability : unsigned {
DemoteToHelperInvocationEXT = 5379,
DisplacementMicromapNV = 5380,
RayTracingOpacityMicromapEXT = 5381,
+ RayTracingOpacityMicromapKHR = 5381,
ShaderInvocationReorderNV = 5383,
ShaderInvocationReorderEXT = 5388,
BindlessTextureNV = 5390,
@@ -1364,6 +1366,7 @@ enum class Capability : unsigned {
GroupNonUniformRotateKHR = 6026,
FloatControls2 = 6029,
FMAKHR = 6030,
+ RayTracingOpacityMicromapExecutionModeKHR = 6032,
AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034,
LongCompositesINTEL = 6089,
@@ -1424,6 +1427,7 @@ enum class RayFlagsShift : unsigned {
SkipTrianglesKHR = 8,
SkipAABBsKHR = 9,
ForceOpacityMicromap2StateEXT = 10,
+ ForceOpacityMicromap2StateKHR = 10,
Max = 0x7fffffff,
};
@@ -1441,6 +1445,7 @@ enum class RayFlagsMask : unsigned {
SkipTrianglesKHR = 0x00000100,
SkipAABBsKHR = 0x00000200,
ForceOpacityMicromap2StateEXT = 0x00000400,
+ ForceOpacityMicromap2StateKHR = 0x00000400,
};
enum class RayQueryIntersection : unsigned {
@@ -3692,6 +3697,7 @@ inline const char* ExecutionModeToString(ExecutionMode value) {
case ExecutionMode::SchedulerTargetFmaxMhzINTEL: return "SchedulerTargetFmaxMhzINTEL";
case ExecutionMode::MaximallyReconvergesKHR: return "MaximallyReconvergesKHR";
case ExecutionMode::FPFastMathDefault: return "FPFastMathDefault";
+ case ExecutionMode::OpacityMicromapIdKHR: return "OpacityMicromapIdKHR";
case ExecutionMode::StreamingInterfaceINTEL: return "StreamingInterfaceINTEL";
case ExecutionMode::RegisterMapInterfaceINTEL: return "RegisterMapInterfaceINTEL";
case ExecutionMode::NamedBarrierCountINTEL: return "NamedBarrierCountINTEL";
@@ -4501,6 +4507,7 @@ inline const char* CapabilityToString(Capability value) {
case Capability::GroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR";
case Capability::FloatControls2: return "FloatControls2";
case Capability::FMAKHR: return "FMAKHR";
+ case Capability::RayTracingOpacityMicromapExecutionModeKHR: return "RayTracingOpacityMicromapExecutionModeKHR";
case Capability::AtomicFloat32AddEXT: return "AtomicFloat32AddEXT";
case Capability::AtomicFloat64AddEXT: return "AtomicFloat64AddEXT";
case Capability::LongCompositesINTEL: return "LongCompositesINTEL";
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index 135663c..af571b5 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -224,6 +224,7 @@
"SchedulerTargetFmaxMhzINTEL": 5903,
"MaximallyReconvergesKHR": 6023,
"FPFastMathDefault": 6028,
+ "OpacityMicromapIdKHR": 6031,
"StreamingInterfaceINTEL": 6154,
"RegisterMapInterfaceINTEL": 6160,
"NamedBarrierCountINTEL": 6417,
@@ -1236,6 +1237,7 @@
"DemoteToHelperInvocationEXT": 5379,
"DisplacementMicromapNV": 5380,
"RayTracingOpacityMicromapEXT": 5381,
+ "RayTracingOpacityMicromapKHR": 5381,
"ShaderInvocationReorderNV": 5383,
"ShaderInvocationReorderEXT": 5388,
"BindlessTextureNV": 5390,
@@ -1330,6 +1332,7 @@
"GroupNonUniformRotateKHR": 6026,
"FloatControls2": 6029,
"FMAKHR": 6030,
+ "RayTracingOpacityMicromapExecutionModeKHR": 6032,
"AtomicFloat32AddEXT": 6033,
"AtomicFloat64AddEXT": 6034,
"LongCompositesINTEL": 6089,
@@ -1392,7 +1395,8 @@
"SkipBuiltinPrimitivesNV": 8,
"SkipTrianglesKHR": 8,
"SkipAABBsKHR": 9,
- "ForceOpacityMicromap2StateEXT": 10
+ "ForceOpacityMicromap2StateEXT": 10,
+ "ForceOpacityMicromap2StateKHR": 10
}
},
{
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index 8cbe093..f3da312 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -196,6 +196,7 @@ spv = {
SchedulerTargetFmaxMhzINTEL = 5903,
MaximallyReconvergesKHR = 6023,
FPFastMathDefault = 6028,
+ OpacityMicromapIdKHR = 6031,
StreamingInterfaceINTEL = 6154,
RegisterMapInterfaceINTEL = 6160,
NamedBarrierCountINTEL = 6417,
@@ -1261,6 +1262,7 @@ spv = {
DemoteToHelperInvocationEXT = 5379,
DisplacementMicromapNV = 5380,
RayTracingOpacityMicromapEXT = 5381,
+ RayTracingOpacityMicromapKHR = 5381,
ShaderInvocationReorderNV = 5383,
ShaderInvocationReorderEXT = 5388,
BindlessTextureNV = 5390,
@@ -1355,6 +1357,7 @@ spv = {
GroupNonUniformRotateKHR = 6026,
FloatControls2 = 6029,
FMAKHR = 6030,
+ RayTracingOpacityMicromapExecutionModeKHR = 6032,
AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034,
LongCompositesINTEL = 6089,
@@ -1415,6 +1418,7 @@ spv = {
SkipTrianglesKHR = 8,
SkipAABBsKHR = 9,
ForceOpacityMicromap2StateEXT = 10,
+ ForceOpacityMicromap2StateKHR = 10,
Max = 0x7fffffff,
},
@@ -1432,6 +1436,7 @@ spv = {
SkipTrianglesKHR = 0x00000100,
SkipAABBsKHR = 0x00000200,
ForceOpacityMicromap2StateEXT = 0x00000400,
+ ForceOpacityMicromap2StateKHR = 0x00000400,
},
RayQueryIntersection = {
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index bb65ae9..88e5cbc 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -192,6 +192,7 @@ spv = {
'SchedulerTargetFmaxMhzINTEL' : 5903,
'MaximallyReconvergesKHR' : 6023,
'FPFastMathDefault' : 6028,
+ 'OpacityMicromapIdKHR' : 6031,
'StreamingInterfaceINTEL' : 6154,
'RegisterMapInterfaceINTEL' : 6160,
'NamedBarrierCountINTEL' : 6417,
@@ -1232,6 +1233,7 @@ spv = {
'DemoteToHelperInvocationEXT' : 5379,
'DisplacementMicromapNV' : 5380,
'RayTracingOpacityMicromapEXT' : 5381,
+ 'RayTracingOpacityMicromapKHR' : 5381,
'ShaderInvocationReorderNV' : 5383,
'ShaderInvocationReorderEXT' : 5388,
'BindlessTextureNV' : 5390,
@@ -1326,6 +1328,7 @@ spv = {
'GroupNonUniformRotateKHR' : 6026,
'FloatControls2' : 6029,
'FMAKHR' : 6030,
+ 'RayTracingOpacityMicromapExecutionModeKHR' : 6032,
'AtomicFloat32AddEXT' : 6033,
'AtomicFloat64AddEXT' : 6034,
'LongCompositesINTEL' : 6089,
@@ -1385,6 +1388,7 @@ spv = {
'SkipTrianglesKHR' : 8,
'SkipAABBsKHR' : 9,
'ForceOpacityMicromap2StateEXT' : 10,
+ 'ForceOpacityMicromap2StateKHR' : 10,
},
'RayFlagsMask' : {
@@ -1401,6 +1405,7 @@ spv = {
'SkipTrianglesKHR' : 0x00000100,
'SkipAABBsKHR' : 0x00000200,
'ForceOpacityMicromap2StateEXT' : 0x00000400,
+ 'ForceOpacityMicromap2StateKHR' : 0x00000400,
},
'RayQueryIntersection' : {
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index 8d31fee..aab392c 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -208,6 +208,7 @@ enum ExecutionMode : uint
SchedulerTargetFmaxMhzINTEL = 5903,
MaximallyReconvergesKHR = 6023,
FPFastMathDefault = 6028,
+ OpacityMicromapIdKHR = 6031,
StreamingInterfaceINTEL = 6154,
RegisterMapInterfaceINTEL = 6160,
NamedBarrierCountINTEL = 6417,
@@ -1306,6 +1307,7 @@ enum Capability : uint
DemoteToHelperInvocationEXT = 5379,
DisplacementMicromapNV = 5380,
RayTracingOpacityMicromapEXT = 5381,
+ RayTracingOpacityMicromapKHR = 5381,
ShaderInvocationReorderNV = 5383,
ShaderInvocationReorderEXT = 5388,
BindlessTextureNV = 5390,
@@ -1400,6 +1402,7 @@ enum Capability : uint
GroupNonUniformRotateKHR = 6026,
FloatControls2 = 6029,
FMAKHR = 6030,
+ RayTracingOpacityMicromapExecutionModeKHR = 6032,
AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034,
LongCompositesINTEL = 6089,
@@ -1461,6 +1464,7 @@ enum RayFlagsShift : uint
SkipTrianglesKHR = 8,
SkipAABBsKHR = 9,
ForceOpacityMicromap2StateEXT = 10,
+ ForceOpacityMicromap2StateKHR = 10,
Max = 0x7fffffff,
}
@@ -1479,6 +1483,7 @@ enum RayFlagsMask : uint
SkipTrianglesKHR = 0x00000100,
SkipAABBsKHR = 0x00000200,
ForceOpacityMicromap2StateEXT = 0x00000400,
+ ForceOpacityMicromap2StateKHR = 0x00000400,
}
enum RayQueryIntersection : uint
--
2.54.0
@@ -0,0 +1,128 @@
From 3541d11cabd489bfa898ce2da631efab9870979b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?K=C3=A9vin=20Petit?= <kevin.petit@arm.com>
Date: Wed, 13 May 2026 16:59:08 +0100
Subject: [PATCH 12/26] Add NonSemanticGraphDebugInfo instruction set (#591)
Change-Id: Ibd080a73abc630fbd2b3068f9c22ab8c0e01c806
Signed-off-by: Kevin Petit <kevin.petit@arm.com>
---
BUILD.bazel | 6 ++++
.../unified1/NonSemanticGraphDebugInfo.h | 28 +++++++++++++++
...t.nonsemantic.graph.debuginfo.grammar.json | 35 +++++++++++++++++++
tools/buildHeaders/bin/makeExtinstHeaders.py | 1 +
4 files changed, 70 insertions(+)
create mode 100644 include/spirv/unified1/NonSemanticGraphDebugInfo.h
create mode 100644 include/spirv/unified1/extinst.nonsemantic.graph.debuginfo.grammar.json
diff --git a/BUILD.bazel b/BUILD.bazel
index badf2c1..61ef7e8 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -138,6 +138,11 @@ filegroup(
srcs = ["include/spirv/unified1/extinst.arm.motion-engine.100.grammar.json"],
)
+filegroup(
+ name = "spirv_ext_inst_non_semantic_graph_debuginfo_grammar_unified1",
+ srcs = ["include/spirv/unified1/extinst.nonsemantic.graph.debuginfo.grammar.json"],
+)
+
cc_library(
name = "spirv_common_headers",
hdrs = [
@@ -152,6 +157,7 @@ cc_library(
"include/spirv/unified1/NonSemanticClspvReflection.h",
"include/spirv/unified1/NonSemanticDebugBreak.h",
"include/spirv/unified1/NonSemanticDebugPrintf.h",
+ "include/spirv/unified1/NonSemanticGraphDebugInfo.h",
"include/spirv/unified1/NonSemanticShaderDebugInfo.h",
"include/spirv/unified1/NonSemanticShaderDebugInfo100.h",
"include/spirv/unified1/NonSemanticVkspReflection.h",
diff --git a/include/spirv/unified1/NonSemanticGraphDebugInfo.h b/include/spirv/unified1/NonSemanticGraphDebugInfo.h
new file mode 100644
index 0000000..3046842
--- /dev/null
+++ b/include/spirv/unified1/NonSemanticGraphDebugInfo.h
@@ -0,0 +1,28 @@
+// SPDX-FileCopyrightText: 2022-2026 Arm Ltd.
+// SPDX-License-Identifier: MIT
+
+#ifndef SPIRV_UNIFIED1_NonSemanticGraphDebugInfo_H_
+#define SPIRV_UNIFIED1_NonSemanticGraphDebugInfo_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum {
+ NonSemanticGraphDebugInfoRevision = 1,
+ NonSemanticGraphDebugInfoRevision_BitWidthPadding = 0x7fffffff
+};
+
+enum NonSemanticGraphDebugInfoInstructions {
+ NonSemanticGraphDebugInfoDebugGraph = 1,
+ NonSemanticGraphDebugInfoDebugOperation = 2,
+ NonSemanticGraphDebugInfoDebugTensor = 3,
+ NonSemanticGraphDebugInfoInstructionsMax = 0x7fffffff
+};
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SPIRV_UNIFIED1_NonSemanticGraphDebugInfo_H_
diff --git a/include/spirv/unified1/extinst.nonsemantic.graph.debuginfo.grammar.json b/include/spirv/unified1/extinst.nonsemantic.graph.debuginfo.grammar.json
new file mode 100644
index 0000000..b740775
--- /dev/null
+++ b/include/spirv/unified1/extinst.nonsemantic.graph.debuginfo.grammar.json
@@ -0,0 +1,35 @@
+{
+ "copyright": [
+ "SPDX-FileCopyrightText: 2022-2026 Arm Ltd.",
+ "SPDX-License-Identifier: MIT"
+ ],
+ "revision" : 1,
+ "instructions" : [
+ {
+ "opname" : "DebugGraph",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Graph" },
+ { "kind" : "IdRef", "name" : "Name" }
+ ]
+ },
+ {
+ "opname" : "DebugOperation",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "DebugGraph" },
+ { "kind" : "IdRef", "name" : "Name" },
+ { "kind" : "IdRef", "name" : "Instructions", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugTensor",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Tensor" },
+ { "kind" : "IdRef", "name" : "Name" },
+ { "kind" : "IdRef", "name" : "Index", "quantifier" : "?" }
+ ]
+ }
+ ]
+}
diff --git a/tools/buildHeaders/bin/makeExtinstHeaders.py b/tools/buildHeaders/bin/makeExtinstHeaders.py
index e5fd640..1c9fbfd 100755
--- a/tools/buildHeaders/bin/makeExtinstHeaders.py
+++ b/tools/buildHeaders/bin/makeExtinstHeaders.py
@@ -31,3 +31,4 @@ mk_extinst('NonSemanticDebugBreak', 'extinst.nonsemantic.debugbreak.grammar.json
mk_extinst('NonSemanticVkspReflection', 'extinst.nonsemantic.vkspreflection.grammar.json')
mk_extinst('TOSA', 'extinst.tosa.001000.1.grammar.json', 'TOSA.001000.1')
mk_extinst('ArmMotionEngine', 'extinst.arm.motion-engine.100.grammar.json', 'ArmMotionEngine.100')
+mk_extinst('NonSemanticGraphDebugInfo', 'extinst.nonsemantic.graph.debuginfo.grammar.json')
--
2.54.0
@@ -0,0 +1,282 @@
From 82dfca37143878c848d8df1f9e4d746f65e6827e Mon Sep 17 00:00:00 2001
From: Faith Ekstrand <faith.ekstrand@collabora.com>
Date: Wed, 13 May 2026 12:00:42 -0400
Subject: [PATCH 13/26] Revert "Add SPV_MESA_fragment_coverage_mask enumerants
(#580)" (#598)
This reverts commit 157de8e260e9362225c0ce9a6675d034968abe15.
---
include/spirv/unified1/spirv.bf | 2 --
include/spirv/unified1/spirv.core.grammar.json | 13 -------------
include/spirv/unified1/spirv.cs | 2 --
include/spirv/unified1/spirv.h | 4 ----
include/spirv/unified1/spirv.hpp | 4 ----
include/spirv/unified1/spirv.hpp11 | 4 ----
include/spirv/unified1/spirv.json | 2 --
include/spirv/unified1/spirv.lua | 2 --
include/spirv/unified1/spirv.py | 2 --
include/spirv/unified1/spv.d | 2 --
10 files changed, 37 deletions(-)
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
index a512a3e..119ea89 100644
--- a/include/spirv/unified1/spirv.bf
+++ b/include/spirv/unified1/spirv.bf
@@ -759,7 +759,6 @@ namespace Spv
SubgroupLocalInvocationId = 41,
VertexIndex = 42,
InstanceIndex = 43,
- FragmentCoverageMaskMESA = 4096,
CoreIDARM = 4160,
CoreCountARM = 4161,
CoreMaxIDARM = 4162,
@@ -1172,7 +1171,6 @@ namespace Spv
ShaderLayer = 69,
ShaderViewportIndex = 70,
UniformDecoration = 71,
- FragmentCoverageMESA = 4097,
CoreBuiltinsARM = 4165,
TileImageColorReadAccessEXT = 4166,
TileImageDepthReadAccessEXT = 4167,
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 32a350a..0f1b083 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -16185,12 +16185,6 @@
"capabilities" : [ "Shader" ],
"version": "1.0"
},
- {
- "enumerant" : "FragmentCoverageMaskMESA",
- "value" : 4096,
- "capabilities" : [ "FragmentCoverageMESA" ],
- "version" : "None"
- },
{
"enumerant" : "CoreIDARM",
"value" : 4160,
@@ -17330,13 +17324,6 @@
"value" : 71,
"version" : "1.6"
},
- {
- "enumerant" : "FragmentCoverageMESA",
- "value" : 4097,
- "capabilities" : [ "Shader" ],
- "extensions" : [ "SPV_MESA_fragment_coverage_mask" ],
- "version" : "None"
- },
{
"enumerant" : "CoreBuiltinsARM",
"value" : 4165,
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index 4d33ffa..7f66ede 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -758,7 +758,6 @@ namespace Spv
SubgroupLocalInvocationId = 41,
VertexIndex = 42,
InstanceIndex = 43,
- FragmentCoverageMaskMESA = 4096,
CoreIDARM = 4160,
CoreCountARM = 4161,
CoreMaxIDARM = 4162,
@@ -1171,7 +1170,6 @@ namespace Spv
ShaderLayer = 69,
ShaderViewportIndex = 70,
UniformDecoration = 71,
- FragmentCoverageMESA = 4097,
CoreBuiltinsARM = 4165,
TileImageColorReadAccessEXT = 4166,
TileImageDepthReadAccessEXT = 4167,
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index d9dedc0..99b983c 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -745,7 +745,6 @@ typedef enum SpvBuiltIn_ {
SpvBuiltInSubgroupLocalInvocationId = 41,
SpvBuiltInVertexIndex = 42,
SpvBuiltInInstanceIndex = 43,
- SpvBuiltInFragmentCoverageMaskMESA = 4096,
SpvBuiltInCoreIDARM = 4160,
SpvBuiltInCoreCountARM = 4161,
SpvBuiltInCoreMaxIDARM = 4162,
@@ -1142,7 +1141,6 @@ typedef enum SpvCapability_ {
SpvCapabilityShaderLayer = 69,
SpvCapabilityShaderViewportIndex = 70,
SpvCapabilityUniformDecoration = 71,
- SpvCapabilityFragmentCoverageMESA = 4097,
SpvCapabilityCoreBuiltinsARM = 4165,
SpvCapabilityTileImageColorReadAccessEXT = 4166,
SpvCapabilityTileImageDepthReadAccessEXT = 4167,
@@ -4129,7 +4127,6 @@ inline const char* SpvBuiltInToString(SpvBuiltIn value) {
case SpvBuiltInSubgroupLocalInvocationId: return "SubgroupLocalInvocationId";
case SpvBuiltInVertexIndex: return "VertexIndex";
case SpvBuiltInInstanceIndex: return "InstanceIndex";
- case SpvBuiltInFragmentCoverageMaskMESA: return "FragmentCoverageMaskMESA";
case SpvBuiltInCoreIDARM: return "CoreIDARM";
case SpvBuiltInCoreCountARM: return "CoreCountARM";
case SpvBuiltInCoreMaxIDARM: return "CoreMaxIDARM";
@@ -4328,7 +4325,6 @@ inline const char* SpvCapabilityToString(SpvCapability value) {
case SpvCapabilityShaderLayer: return "ShaderLayer";
case SpvCapabilityShaderViewportIndex: return "ShaderViewportIndex";
case SpvCapabilityUniformDecoration: return "UniformDecoration";
- case SpvCapabilityFragmentCoverageMESA: return "FragmentCoverageMESA";
case SpvCapabilityCoreBuiltinsARM: return "CoreBuiltinsARM";
case SpvCapabilityTileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
case SpvCapabilityTileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index d0a1606..966be25 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -741,7 +741,6 @@ enum BuiltIn {
BuiltInSubgroupLocalInvocationId = 41,
BuiltInVertexIndex = 42,
BuiltInInstanceIndex = 43,
- BuiltInFragmentCoverageMaskMESA = 4096,
BuiltInCoreIDARM = 4160,
BuiltInCoreCountARM = 4161,
BuiltInCoreMaxIDARM = 4162,
@@ -1138,7 +1137,6 @@ enum Capability {
CapabilityShaderLayer = 69,
CapabilityShaderViewportIndex = 70,
CapabilityUniformDecoration = 71,
- CapabilityFragmentCoverageMESA = 4097,
CapabilityCoreBuiltinsARM = 4165,
CapabilityTileImageColorReadAccessEXT = 4166,
CapabilityTileImageDepthReadAccessEXT = 4167,
@@ -4125,7 +4123,6 @@ inline const char* BuiltInToString(BuiltIn value) {
case BuiltInSubgroupLocalInvocationId: return "SubgroupLocalInvocationId";
case BuiltInVertexIndex: return "VertexIndex";
case BuiltInInstanceIndex: return "InstanceIndex";
- case BuiltInFragmentCoverageMaskMESA: return "FragmentCoverageMaskMESA";
case BuiltInCoreIDARM: return "CoreIDARM";
case BuiltInCoreCountARM: return "CoreCountARM";
case BuiltInCoreMaxIDARM: return "CoreMaxIDARM";
@@ -4324,7 +4321,6 @@ inline const char* CapabilityToString(Capability value) {
case CapabilityShaderLayer: return "ShaderLayer";
case CapabilityShaderViewportIndex: return "ShaderViewportIndex";
case CapabilityUniformDecoration: return "UniformDecoration";
- case CapabilityFragmentCoverageMESA: return "FragmentCoverageMESA";
case CapabilityCoreBuiltinsARM: return "CoreBuiltinsARM";
case CapabilityTileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
case CapabilityTileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index fb5d724..bdc4ac0 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -741,7 +741,6 @@ enum class BuiltIn : unsigned {
SubgroupLocalInvocationId = 41,
VertexIndex = 42,
InstanceIndex = 43,
- FragmentCoverageMaskMESA = 4096,
CoreIDARM = 4160,
CoreCountARM = 4161,
CoreMaxIDARM = 4162,
@@ -1138,7 +1137,6 @@ enum class Capability : unsigned {
ShaderLayer = 69,
ShaderViewportIndex = 70,
UniformDecoration = 71,
- FragmentCoverageMESA = 4097,
CoreBuiltinsARM = 4165,
TileImageColorReadAccessEXT = 4166,
TileImageDepthReadAccessEXT = 4167,
@@ -4125,7 +4123,6 @@ inline const char* BuiltInToString(BuiltIn value) {
case BuiltIn::SubgroupLocalInvocationId: return "SubgroupLocalInvocationId";
case BuiltIn::VertexIndex: return "VertexIndex";
case BuiltIn::InstanceIndex: return "InstanceIndex";
- case BuiltIn::FragmentCoverageMaskMESA: return "FragmentCoverageMaskMESA";
case BuiltIn::CoreIDARM: return "CoreIDARM";
case BuiltIn::CoreCountARM: return "CoreCountARM";
case BuiltIn::CoreMaxIDARM: return "CoreMaxIDARM";
@@ -4324,7 +4321,6 @@ inline const char* CapabilityToString(Capability value) {
case Capability::ShaderLayer: return "ShaderLayer";
case Capability::ShaderViewportIndex: return "ShaderViewportIndex";
case Capability::UniformDecoration: return "UniformDecoration";
- case Capability::FragmentCoverageMESA: return "FragmentCoverageMESA";
case Capability::CoreBuiltinsARM: return "CoreBuiltinsARM";
case Capability::TileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
case Capability::TileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index af571b5..eb646f6 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -767,7 +767,6 @@
"SubgroupLocalInvocationId": 41,
"VertexIndex": 42,
"InstanceIndex": 43,
- "FragmentCoverageMaskMESA": 4096,
"CoreIDARM": 4160,
"CoreCountARM": 4161,
"CoreMaxIDARM": 4162,
@@ -1104,7 +1103,6 @@
"ShaderLayer": 69,
"ShaderViewportIndex": 70,
"UniformDecoration": 71,
- "FragmentCoverageMESA": 4097,
"CoreBuiltinsARM": 4165,
"TileImageColorReadAccessEXT": 4166,
"TileImageDepthReadAccessEXT": 4167,
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index f3da312..e425dd5 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -732,7 +732,6 @@ spv = {
SubgroupLocalInvocationId = 41,
VertexIndex = 42,
InstanceIndex = 43,
- FragmentCoverageMaskMESA = 4096,
CoreIDARM = 4160,
CoreCountARM = 4161,
CoreMaxIDARM = 4162,
@@ -1129,7 +1128,6 @@ spv = {
ShaderLayer = 69,
ShaderViewportIndex = 70,
UniformDecoration = 71,
- FragmentCoverageMESA = 4097,
CoreBuiltinsARM = 4165,
TileImageColorReadAccessEXT = 4166,
TileImageDepthReadAccessEXT = 4167,
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index 88e5cbc..a35941b 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -713,7 +713,6 @@ spv = {
'SubgroupLocalInvocationId' : 41,
'VertexIndex' : 42,
'InstanceIndex' : 43,
- 'FragmentCoverageMaskMESA' : 4096,
'CoreIDARM' : 4160,
'CoreCountARM' : 4161,
'CoreMaxIDARM' : 4162,
@@ -1100,7 +1099,6 @@ spv = {
'ShaderLayer' : 69,
'ShaderViewportIndex' : 70,
'UniformDecoration' : 71,
- 'FragmentCoverageMESA' : 4097,
'CoreBuiltinsARM' : 4165,
'TileImageColorReadAccessEXT' : 4166,
'TileImageDepthReadAccessEXT' : 4167,
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index aab392c..8fa24b9 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -761,7 +761,6 @@ enum BuiltIn : uint
SubgroupLocalInvocationId = 41,
VertexIndex = 42,
InstanceIndex = 43,
- FragmentCoverageMaskMESA = 4096,
CoreIDARM = 4160,
CoreCountARM = 4161,
CoreMaxIDARM = 4162,
@@ -1174,7 +1173,6 @@ enum Capability : uint
ShaderLayer = 69,
ShaderViewportIndex = 70,
UniformDecoration = 71,
- FragmentCoverageMESA = 4097,
CoreBuiltinsARM = 4165,
TileImageColorReadAccessEXT = 4166,
TileImageDepthReadAccessEXT = 4167,
--
2.54.0
@@ -0,0 +1,366 @@
From fe44b2002bf7871e2e92fc001bc9f6e09f92194f Mon Sep 17 00:00:00 2001
From: Ralph Potter <r.potter@samsung.com>
Date: Thu, 14 May 2026 14:30:23 +0100
Subject: [PATCH 14/26] SPV_EXT_split_barrier (#600)
* SPV_EXT_split_barrier
* Remove spurious capability
---
include/spirv/unified1/spirv.bf | 3 +++
include/spirv/unified1/spirv.core.grammar.json | 15 +++++++++------
include/spirv/unified1/spirv.cs | 3 +++
include/spirv/unified1/spirv.h | 13 ++++++++-----
include/spirv/unified1/spirv.hpp | 13 ++++++++-----
include/spirv/unified1/spirv.hpp11 | 13 ++++++++-----
include/spirv/unified1/spirv.json | 3 +++
include/spirv/unified1/spirv.lua | 3 +++
include/spirv/unified1/spirv.py | 3 +++
include/spirv/unified1/spv.d | 3 +++
10 files changed, 51 insertions(+), 21 deletions(-)
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
index 119ea89..0ecf295 100644
--- a/include/spirv/unified1/spirv.bf
+++ b/include/spirv/unified1/spirv.bf
@@ -1407,6 +1407,7 @@ namespace Spv
AtomicFloat16AddEXT = 6095,
DebugInfoModuleINTEL = 6114,
BFloat16ConversionINTEL = 6115,
+ SplitBarrierEXT = 6141,
SplitBarrierINTEL = 6141,
ArithmeticFenceEXT = 6144,
FPGAClusterAttributesV2ALTERA = 6150,
@@ -2674,7 +2675,9 @@ namespace Spv
OpCompositeConstructContinuedINTEL = 6096,
OpConvertFToBF16INTEL = 6116,
OpConvertBF16ToFINTEL = 6117,
+ OpControlBarrierArriveEXT = 6142,
OpControlBarrierArriveINTEL = 6142,
+ OpControlBarrierWaitEXT = 6143,
OpControlBarrierWaitINTEL = 6143,
OpArithmeticFenceEXT = 6145,
OpTaskSequenceCreateALTERA = 6163,
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 0f1b083..b2b665b 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -11253,27 +11253,29 @@
"version" : "None"
},
{
- "opname" : "OpControlBarrierArriveINTEL",
+ "opname" : "OpControlBarrierArriveEXT",
"class" : "Barrier",
+ "aliases" : [ "OpControlBarrierArriveINTEL" ],
"opcode" : 6142,
"operands" : [
{ "kind" : "IdScope", "name" : "Execution" },
{ "kind" : "IdScope", "name" : "Memory" },
{ "kind" : "IdMemorySemantics", "name" : "Semantics" }
],
- "capabilities" : [ "SplitBarrierINTEL" ],
+ "capabilities" : [ "SplitBarrierEXT" ],
"version" : "None"
},
{
- "opname" : "OpControlBarrierWaitINTEL",
+ "opname" : "OpControlBarrierWaitEXT",
"class" : "Barrier",
+ "aliases" : [ "OpControlBarrierWaitINTEL" ],
"opcode" : 6143,
"operands" : [
{ "kind" : "IdScope", "name" : "Execution" },
{ "kind" : "IdScope", "name" : "Memory" },
{ "kind" : "IdMemorySemantics", "name" : "Semantics" }
],
- "capabilities" : [ "SplitBarrierINTEL" ],
+ "capabilities" : [ "SplitBarrierEXT" ],
"version" : "None"
},
{
@@ -18591,9 +18593,10 @@
"version" : "None"
},
{
- "enumerant" : "SplitBarrierINTEL",
+ "enumerant" : "SplitBarrierEXT",
+ "aliases" : [ "SplitBarrierINTEL" ],
"value" : 6141,
- "extensions" : [ "SPV_INTEL_split_barrier" ],
+ "extensions" : [ "SPV_EXT_split_barrier", "SPV_INTEL_split_barrier" ],
"version" : "None"
},
{
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index 7f66ede..06845bb 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -1406,6 +1406,7 @@ namespace Spv
AtomicFloat16AddEXT = 6095,
DebugInfoModuleINTEL = 6114,
BFloat16ConversionINTEL = 6115,
+ SplitBarrierEXT = 6141,
SplitBarrierINTEL = 6141,
ArithmeticFenceEXT = 6144,
FPGAClusterAttributesV2ALTERA = 6150,
@@ -2673,7 +2674,9 @@ namespace Spv
OpCompositeConstructContinuedINTEL = 6096,
OpConvertFToBF16INTEL = 6116,
OpConvertBF16ToFINTEL = 6117,
+ OpControlBarrierArriveEXT = 6142,
OpControlBarrierArriveINTEL = 6142,
+ OpControlBarrierWaitEXT = 6143,
OpControlBarrierWaitINTEL = 6143,
OpArithmeticFenceEXT = 6145,
OpTaskSequenceCreateALTERA = 6163,
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index 99b983c..964f5aa 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -1377,6 +1377,7 @@ typedef enum SpvCapability_ {
SpvCapabilityAtomicFloat16AddEXT = 6095,
SpvCapabilityDebugInfoModuleINTEL = 6114,
SpvCapabilityBFloat16ConversionINTEL = 6115,
+ SpvCapabilitySplitBarrierEXT = 6141,
SpvCapabilitySplitBarrierINTEL = 6141,
SpvCapabilityArithmeticFenceEXT = 6144,
SpvCapabilityFPGAClusterAttributesV2ALTERA = 6150,
@@ -2608,7 +2609,9 @@ typedef enum SpvOp_ {
SpvOpCompositeConstructContinuedINTEL = 6096,
SpvOpConvertFToBF16INTEL = 6116,
SpvOpConvertBF16ToFINTEL = 6117,
+ SpvOpControlBarrierArriveEXT = 6142,
SpvOpControlBarrierArriveINTEL = 6142,
+ SpvOpControlBarrierWaitEXT = 6143,
SpvOpControlBarrierWaitINTEL = 6143,
SpvOpArithmeticFenceEXT = 6145,
SpvOpTaskSequenceCreateALTERA = 6163,
@@ -3497,8 +3500,8 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpCompositeConstructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case SpvOpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
- case SpvOpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
- case SpvOpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpControlBarrierArriveEXT: *hasResult = false; *hasResultType = false; break;
+ case SpvOpControlBarrierWaitEXT: *hasResult = false; *hasResultType = false; break;
case SpvOpArithmeticFenceEXT: *hasResult = true; *hasResultType = true; break;
case SpvOpTaskSequenceCreateALTERA: *hasResult = true; *hasResultType = true; break;
case SpvOpTaskSequenceAsyncALTERA: *hasResult = false; *hasResultType = false; break;
@@ -4515,7 +4518,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) {
case SpvCapabilityAtomicFloat16AddEXT: return "AtomicFloat16AddEXT";
case SpvCapabilityDebugInfoModuleINTEL: return "DebugInfoModuleINTEL";
case SpvCapabilityBFloat16ConversionINTEL: return "BFloat16ConversionINTEL";
- case SpvCapabilitySplitBarrierINTEL: return "SplitBarrierINTEL";
+ case SpvCapabilitySplitBarrierEXT: return "SplitBarrierEXT";
case SpvCapabilityArithmeticFenceEXT: return "ArithmeticFenceEXT";
case SpvCapabilityFPGAClusterAttributesV2ALTERA: return "FPGAClusterAttributesV2ALTERA";
case SpvCapabilityFPGAKernelAttributesv2INTEL: return "FPGAKernelAttributesv2INTEL";
@@ -5570,8 +5573,8 @@ inline const char* SpvOpToString(SpvOp value) {
case SpvOpCompositeConstructContinuedINTEL: return "OpCompositeConstructContinuedINTEL";
case SpvOpConvertFToBF16INTEL: return "OpConvertFToBF16INTEL";
case SpvOpConvertBF16ToFINTEL: return "OpConvertBF16ToFINTEL";
- case SpvOpControlBarrierArriveINTEL: return "OpControlBarrierArriveINTEL";
- case SpvOpControlBarrierWaitINTEL: return "OpControlBarrierWaitINTEL";
+ case SpvOpControlBarrierArriveEXT: return "OpControlBarrierArriveEXT";
+ case SpvOpControlBarrierWaitEXT: return "OpControlBarrierWaitEXT";
case SpvOpArithmeticFenceEXT: return "OpArithmeticFenceEXT";
case SpvOpTaskSequenceCreateALTERA: return "OpTaskSequenceCreateALTERA";
case SpvOpTaskSequenceAsyncALTERA: return "OpTaskSequenceAsyncALTERA";
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index 966be25..655a79c 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -1373,6 +1373,7 @@ enum Capability {
CapabilityAtomicFloat16AddEXT = 6095,
CapabilityDebugInfoModuleINTEL = 6114,
CapabilityBFloat16ConversionINTEL = 6115,
+ CapabilitySplitBarrierEXT = 6141,
CapabilitySplitBarrierINTEL = 6141,
CapabilityArithmeticFenceEXT = 6144,
CapabilityFPGAClusterAttributesV2ALTERA = 6150,
@@ -2604,7 +2605,9 @@ enum Op {
OpCompositeConstructContinuedINTEL = 6096,
OpConvertFToBF16INTEL = 6116,
OpConvertBF16ToFINTEL = 6117,
+ OpControlBarrierArriveEXT = 6142,
OpControlBarrierArriveINTEL = 6142,
+ OpControlBarrierWaitEXT = 6143,
OpControlBarrierWaitINTEL = 6143,
OpArithmeticFenceEXT = 6145,
OpTaskSequenceCreateALTERA = 6163,
@@ -3493,8 +3496,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpCompositeConstructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case OpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
case OpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
- case OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
- case OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpControlBarrierArriveEXT: *hasResult = false; *hasResultType = false; break;
+ case OpControlBarrierWaitEXT: *hasResult = false; *hasResultType = false; break;
case OpArithmeticFenceEXT: *hasResult = true; *hasResultType = true; break;
case OpTaskSequenceCreateALTERA: *hasResult = true; *hasResultType = true; break;
case OpTaskSequenceAsyncALTERA: *hasResult = false; *hasResultType = false; break;
@@ -4511,7 +4514,7 @@ inline const char* CapabilityToString(Capability value) {
case CapabilityAtomicFloat16AddEXT: return "AtomicFloat16AddEXT";
case CapabilityDebugInfoModuleINTEL: return "DebugInfoModuleINTEL";
case CapabilityBFloat16ConversionINTEL: return "BFloat16ConversionINTEL";
- case CapabilitySplitBarrierINTEL: return "SplitBarrierINTEL";
+ case CapabilitySplitBarrierEXT: return "SplitBarrierEXT";
case CapabilityArithmeticFenceEXT: return "ArithmeticFenceEXT";
case CapabilityFPGAClusterAttributesV2ALTERA: return "FPGAClusterAttributesV2ALTERA";
case CapabilityFPGAKernelAttributesv2INTEL: return "FPGAKernelAttributesv2INTEL";
@@ -5566,8 +5569,8 @@ inline const char* OpToString(Op value) {
case OpCompositeConstructContinuedINTEL: return "OpCompositeConstructContinuedINTEL";
case OpConvertFToBF16INTEL: return "OpConvertFToBF16INTEL";
case OpConvertBF16ToFINTEL: return "OpConvertBF16ToFINTEL";
- case OpControlBarrierArriveINTEL: return "OpControlBarrierArriveINTEL";
- case OpControlBarrierWaitINTEL: return "OpControlBarrierWaitINTEL";
+ case OpControlBarrierArriveEXT: return "OpControlBarrierArriveEXT";
+ case OpControlBarrierWaitEXT: return "OpControlBarrierWaitEXT";
case OpArithmeticFenceEXT: return "OpArithmeticFenceEXT";
case OpTaskSequenceCreateALTERA: return "OpTaskSequenceCreateALTERA";
case OpTaskSequenceAsyncALTERA: return "OpTaskSequenceAsyncALTERA";
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index bdc4ac0..270b33f 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -1373,6 +1373,7 @@ enum class Capability : unsigned {
AtomicFloat16AddEXT = 6095,
DebugInfoModuleINTEL = 6114,
BFloat16ConversionINTEL = 6115,
+ SplitBarrierEXT = 6141,
SplitBarrierINTEL = 6141,
ArithmeticFenceEXT = 6144,
FPGAClusterAttributesV2ALTERA = 6150,
@@ -2604,7 +2605,9 @@ enum class Op : unsigned {
OpCompositeConstructContinuedINTEL = 6096,
OpConvertFToBF16INTEL = 6116,
OpConvertBF16ToFINTEL = 6117,
+ OpControlBarrierArriveEXT = 6142,
OpControlBarrierArriveINTEL = 6142,
+ OpControlBarrierWaitEXT = 6143,
OpControlBarrierWaitINTEL = 6143,
OpArithmeticFenceEXT = 6145,
OpTaskSequenceCreateALTERA = 6163,
@@ -3493,8 +3496,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpCompositeConstructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case Op::OpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
- case Op::OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
- case Op::OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
+ case Op::OpControlBarrierArriveEXT: *hasResult = false; *hasResultType = false; break;
+ case Op::OpControlBarrierWaitEXT: *hasResult = false; *hasResultType = false; break;
case Op::OpArithmeticFenceEXT: *hasResult = true; *hasResultType = true; break;
case Op::OpTaskSequenceCreateALTERA: *hasResult = true; *hasResultType = true; break;
case Op::OpTaskSequenceAsyncALTERA: *hasResult = false; *hasResultType = false; break;
@@ -4511,7 +4514,7 @@ inline const char* CapabilityToString(Capability value) {
case Capability::AtomicFloat16AddEXT: return "AtomicFloat16AddEXT";
case Capability::DebugInfoModuleINTEL: return "DebugInfoModuleINTEL";
case Capability::BFloat16ConversionINTEL: return "BFloat16ConversionINTEL";
- case Capability::SplitBarrierINTEL: return "SplitBarrierINTEL";
+ case Capability::SplitBarrierEXT: return "SplitBarrierEXT";
case Capability::ArithmeticFenceEXT: return "ArithmeticFenceEXT";
case Capability::FPGAClusterAttributesV2ALTERA: return "FPGAClusterAttributesV2ALTERA";
case Capability::FPGAKernelAttributesv2INTEL: return "FPGAKernelAttributesv2INTEL";
@@ -5566,8 +5569,8 @@ inline const char* OpToString(Op value) {
case Op::OpCompositeConstructContinuedINTEL: return "OpCompositeConstructContinuedINTEL";
case Op::OpConvertFToBF16INTEL: return "OpConvertFToBF16INTEL";
case Op::OpConvertBF16ToFINTEL: return "OpConvertBF16ToFINTEL";
- case Op::OpControlBarrierArriveINTEL: return "OpControlBarrierArriveINTEL";
- case Op::OpControlBarrierWaitINTEL: return "OpControlBarrierWaitINTEL";
+ case Op::OpControlBarrierArriveEXT: return "OpControlBarrierArriveEXT";
+ case Op::OpControlBarrierWaitEXT: return "OpControlBarrierWaitEXT";
case Op::OpArithmeticFenceEXT: return "OpArithmeticFenceEXT";
case Op::OpTaskSequenceCreateALTERA: return "OpTaskSequenceCreateALTERA";
case Op::OpTaskSequenceAsyncALTERA: return "OpTaskSequenceAsyncALTERA";
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index eb646f6..5a21f07 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -1339,6 +1339,7 @@
"AtomicFloat16AddEXT": 6095,
"DebugInfoModuleINTEL": 6114,
"BFloat16ConversionINTEL": 6115,
+ "SplitBarrierEXT": 6141,
"SplitBarrierINTEL": 6141,
"ArithmeticFenceEXT": 6144,
"FPGAClusterAttributesV2ALTERA": 6150,
@@ -2574,7 +2575,9 @@
"OpCompositeConstructContinuedINTEL": 6096,
"OpConvertFToBF16INTEL": 6116,
"OpConvertBF16ToFINTEL": 6117,
+ "OpControlBarrierArriveEXT": 6142,
"OpControlBarrierArriveINTEL": 6142,
+ "OpControlBarrierWaitEXT": 6143,
"OpControlBarrierWaitINTEL": 6143,
"OpArithmeticFenceEXT": 6145,
"OpTaskSequenceCreateALTERA": 6163,
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index e425dd5..64b0a1f 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -1364,6 +1364,7 @@ spv = {
AtomicFloat16AddEXT = 6095,
DebugInfoModuleINTEL = 6114,
BFloat16ConversionINTEL = 6115,
+ SplitBarrierEXT = 6141,
SplitBarrierINTEL = 6141,
ArithmeticFenceEXT = 6144,
FPGAClusterAttributesV2ALTERA = 6150,
@@ -2595,7 +2596,9 @@ spv = {
OpCompositeConstructContinuedINTEL = 6096,
OpConvertFToBF16INTEL = 6116,
OpConvertBF16ToFINTEL = 6117,
+ OpControlBarrierArriveEXT = 6142,
OpControlBarrierArriveINTEL = 6142,
+ OpControlBarrierWaitEXT = 6143,
OpControlBarrierWaitINTEL = 6143,
OpArithmeticFenceEXT = 6145,
OpTaskSequenceCreateALTERA = 6163,
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index a35941b..5f3bae6 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -1335,6 +1335,7 @@ spv = {
'AtomicFloat16AddEXT' : 6095,
'DebugInfoModuleINTEL' : 6114,
'BFloat16ConversionINTEL' : 6115,
+ 'SplitBarrierEXT' : 6141,
'SplitBarrierINTEL' : 6141,
'ArithmeticFenceEXT' : 6144,
'FPGAClusterAttributesV2ALTERA' : 6150,
@@ -2538,7 +2539,9 @@ spv = {
'OpCompositeConstructContinuedINTEL' : 6096,
'OpConvertFToBF16INTEL' : 6116,
'OpConvertBF16ToFINTEL' : 6117,
+ 'OpControlBarrierArriveEXT' : 6142,
'OpControlBarrierArriveINTEL' : 6142,
+ 'OpControlBarrierWaitEXT' : 6143,
'OpControlBarrierWaitINTEL' : 6143,
'OpArithmeticFenceEXT' : 6145,
'OpTaskSequenceCreateALTERA' : 6163,
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index 8fa24b9..4e4e3dc 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -1409,6 +1409,7 @@ enum Capability : uint
AtomicFloat16AddEXT = 6095,
DebugInfoModuleINTEL = 6114,
BFloat16ConversionINTEL = 6115,
+ SplitBarrierEXT = 6141,
SplitBarrierINTEL = 6141,
ArithmeticFenceEXT = 6144,
FPGAClusterAttributesV2ALTERA = 6150,
@@ -2676,7 +2677,9 @@ enum Op : uint
OpCompositeConstructContinuedINTEL = 6096,
OpConvertFToBF16INTEL = 6116,
OpConvertBF16ToFINTEL = 6117,
+ OpControlBarrierArriveEXT = 6142,
OpControlBarrierArriveINTEL = 6142,
+ OpControlBarrierWaitEXT = 6143,
OpControlBarrierWaitINTEL = 6143,
OpArithmeticFenceEXT = 6145,
OpTaskSequenceCreateALTERA = 6163,
--
2.54.0
@@ -0,0 +1,324 @@
From aaffbc59b41bf8faea671b0d1c6b34a584c45171 Mon Sep 17 00:00:00 2001
From: Jeff Bolz <jbolz@nvidia.com>
Date: Fri, 15 May 2026 10:51:25 -0500
Subject: [PATCH 15/26] SPV_NV_cooperative_matrix_decode_vector (#601)
---
include/spirv/unified1/spirv.bf | 3 +++
include/spirv/unified1/spirv.core.grammar.json | 16 ++++++++++++++++
include/spirv/unified1/spirv.cs | 3 +++
include/spirv/unified1/spirv.h | 4 ++++
include/spirv/unified1/spirv.hpp | 4 ++++
include/spirv/unified1/spirv.hpp11 | 4 ++++
include/spirv/unified1/spirv.json | 4 +++-
include/spirv/unified1/spirv.lua | 3 +++
include/spirv/unified1/spirv.py | 3 +++
include/spirv/unified1/spv.d | 3 +++
10 files changed, 46 insertions(+), 1 deletion(-)
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
index 0ecf295..9497023 100644
--- a/include/spirv/unified1/spirv.bf
+++ b/include/spirv/unified1/spirv.bf
@@ -1325,6 +1325,7 @@ namespace Spv
CooperativeVectorTrainingNV = 5435,
RayTracingClusterAccelerationStructureNV = 5437,
TensorAddressingNV = 5439,
+ CooperativeMatrixDecodeVectorNV = 5447,
SubgroupShuffleINTEL = 5568,
SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570,
@@ -1633,6 +1634,7 @@ namespace Spv
{
TensorView = 0,
DecodeFunc = 1,
+ DecodeVectorFunc = 2,
Max = 0x7fffffff,
}
@@ -1641,6 +1643,7 @@ namespace Spv
MaskNone = 0,
TensorView = 0x00000001,
DecodeFunc = 0x00000002,
+ DecodeVectorFunc = 0x00000004,
}
[AllowDuplicates, CRepr] public enum TensorOperandsShift
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index b2b665b..4f96982 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -18200,6 +18200,13 @@
"extensions" : [ "SPV_NV_tensor_addressing" ],
"version" : "None"
},
+ {
+ "enumerant" : "CooperativeMatrixDecodeVectorNV",
+ "value" : 5447,
+ "capabilities" : [ "CooperativeMatrixBlockLoadsNV" ],
+ "extensions" : [ "SPV_NV_cooperative_matrix_decode_vector" ],
+ "version" : "None"
+ },
{
"enumerant" : "SubgroupShuffleINTEL",
"value" : 5568,
@@ -19035,6 +19042,15 @@
],
"capabilities" : [ "CooperativeMatrixBlockLoadsNV" ],
"version" : "None"
+ },
+ {
+ "enumerant" : "DecodeVectorFunc",
+ "value" : "0x0004",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ],
+ "capabilities" : [ "CooperativeMatrixDecodeVectorNV" ],
+ "version" : "None"
}
]
},
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index 06845bb..7631bf2 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -1324,6 +1324,7 @@ namespace Spv
CooperativeVectorTrainingNV = 5435,
RayTracingClusterAccelerationStructureNV = 5437,
TensorAddressingNV = 5439,
+ CooperativeMatrixDecodeVectorNV = 5447,
SubgroupShuffleINTEL = 5568,
SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570,
@@ -1632,6 +1633,7 @@ namespace Spv
{
TensorView = 0,
DecodeFunc = 1,
+ DecodeVectorFunc = 2,
Max = 0x7fffffff,
}
@@ -1640,6 +1642,7 @@ namespace Spv
MaskNone = 0,
TensorView = 0x00000001,
DecodeFunc = 0x00000002,
+ DecodeVectorFunc = 0x00000004,
}
public enum TensorOperandsShift
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index 964f5aa..5ab265f 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -1295,6 +1295,7 @@ typedef enum SpvCapability_ {
SpvCapabilityCooperativeVectorTrainingNV = 5435,
SpvCapabilityRayTracingClusterAccelerationStructureNV = 5437,
SpvCapabilityTensorAddressingNV = 5439,
+ SpvCapabilityCooperativeMatrixDecodeVectorNV = 5447,
SpvCapabilitySubgroupShuffleINTEL = 5568,
SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
@@ -1583,6 +1584,7 @@ typedef enum SpvTensorClampMode_ {
typedef enum SpvTensorAddressingOperandsShift_ {
SpvTensorAddressingOperandsTensorViewShift = 0,
SpvTensorAddressingOperandsDecodeFuncShift = 1,
+ SpvTensorAddressingOperandsDecodeVectorFuncShift = 2,
SpvTensorAddressingOperandsMax = 0x7fffffff,
} SpvTensorAddressingOperandsShift;
@@ -1590,6 +1592,7 @@ typedef enum SpvTensorAddressingOperandsMask_ {
SpvTensorAddressingOperandsMaskNone = 0,
SpvTensorAddressingOperandsTensorViewMask = 0x00000001,
SpvTensorAddressingOperandsDecodeFuncMask = 0x00000002,
+ SpvTensorAddressingOperandsDecodeVectorFuncMask = 0x00000004,
} SpvTensorAddressingOperandsMask;
typedef enum SpvTensorOperandsShift_ {
@@ -4457,6 +4460,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) {
case SpvCapabilityCooperativeVectorTrainingNV: return "CooperativeVectorTrainingNV";
case SpvCapabilityRayTracingClusterAccelerationStructureNV: return "RayTracingClusterAccelerationStructureNV";
case SpvCapabilityTensorAddressingNV: return "TensorAddressingNV";
+ case SpvCapabilityCooperativeMatrixDecodeVectorNV: return "CooperativeMatrixDecodeVectorNV";
case SpvCapabilitySubgroupShuffleINTEL: return "SubgroupShuffleINTEL";
case SpvCapabilitySubgroupBufferBlockIOINTEL: return "SubgroupBufferBlockIOINTEL";
case SpvCapabilitySubgroupImageBlockIOINTEL: return "SubgroupImageBlockIOINTEL";
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index 655a79c..33b4a8b 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -1291,6 +1291,7 @@ enum Capability {
CapabilityCooperativeVectorTrainingNV = 5435,
CapabilityRayTracingClusterAccelerationStructureNV = 5437,
CapabilityTensorAddressingNV = 5439,
+ CapabilityCooperativeMatrixDecodeVectorNV = 5447,
CapabilitySubgroupShuffleINTEL = 5568,
CapabilitySubgroupBufferBlockIOINTEL = 5569,
CapabilitySubgroupImageBlockIOINTEL = 5570,
@@ -1579,6 +1580,7 @@ enum TensorClampMode {
enum TensorAddressingOperandsShift {
TensorAddressingOperandsTensorViewShift = 0,
TensorAddressingOperandsDecodeFuncShift = 1,
+ TensorAddressingOperandsDecodeVectorFuncShift = 2,
TensorAddressingOperandsMax = 0x7fffffff,
};
@@ -1586,6 +1588,7 @@ enum TensorAddressingOperandsMask {
TensorAddressingOperandsMaskNone = 0,
TensorAddressingOperandsTensorViewMask = 0x00000001,
TensorAddressingOperandsDecodeFuncMask = 0x00000002,
+ TensorAddressingOperandsDecodeVectorFuncMask = 0x00000004,
};
enum TensorOperandsShift {
@@ -4453,6 +4456,7 @@ inline const char* CapabilityToString(Capability value) {
case CapabilityCooperativeVectorTrainingNV: return "CooperativeVectorTrainingNV";
case CapabilityRayTracingClusterAccelerationStructureNV: return "RayTracingClusterAccelerationStructureNV";
case CapabilityTensorAddressingNV: return "TensorAddressingNV";
+ case CapabilityCooperativeMatrixDecodeVectorNV: return "CooperativeMatrixDecodeVectorNV";
case CapabilitySubgroupShuffleINTEL: return "SubgroupShuffleINTEL";
case CapabilitySubgroupBufferBlockIOINTEL: return "SubgroupBufferBlockIOINTEL";
case CapabilitySubgroupImageBlockIOINTEL: return "SubgroupImageBlockIOINTEL";
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index 270b33f..eb15ea2 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -1291,6 +1291,7 @@ enum class Capability : unsigned {
CooperativeVectorTrainingNV = 5435,
RayTracingClusterAccelerationStructureNV = 5437,
TensorAddressingNV = 5439,
+ CooperativeMatrixDecodeVectorNV = 5447,
SubgroupShuffleINTEL = 5568,
SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570,
@@ -1579,6 +1580,7 @@ enum class TensorClampMode : unsigned {
enum class TensorAddressingOperandsShift : unsigned {
TensorView = 0,
DecodeFunc = 1,
+ DecodeVectorFunc = 2,
Max = 0x7fffffff,
};
@@ -1586,6 +1588,7 @@ enum class TensorAddressingOperandsMask : unsigned {
MaskNone = 0,
TensorView = 0x00000001,
DecodeFunc = 0x00000002,
+ DecodeVectorFunc = 0x00000004,
};
enum class TensorOperandsShift : unsigned {
@@ -4453,6 +4456,7 @@ inline const char* CapabilityToString(Capability value) {
case Capability::CooperativeVectorTrainingNV: return "CooperativeVectorTrainingNV";
case Capability::RayTracingClusterAccelerationStructureNV: return "RayTracingClusterAccelerationStructureNV";
case Capability::TensorAddressingNV: return "TensorAddressingNV";
+ case Capability::CooperativeMatrixDecodeVectorNV: return "CooperativeMatrixDecodeVectorNV";
case Capability::SubgroupShuffleINTEL: return "SubgroupShuffleINTEL";
case Capability::SubgroupBufferBlockIOINTEL: return "SubgroupBufferBlockIOINTEL";
case Capability::SubgroupImageBlockIOINTEL: return "SubgroupImageBlockIOINTEL";
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index 5a21f07..35f85d9 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -1257,6 +1257,7 @@
"CooperativeVectorTrainingNV": 5435,
"RayTracingClusterAccelerationStructureNV": 5437,
"TensorAddressingNV": 5439,
+ "CooperativeMatrixDecodeVectorNV": 5447,
"SubgroupShuffleINTEL": 5568,
"SubgroupBufferBlockIOINTEL": 5569,
"SubgroupImageBlockIOINTEL": 5570,
@@ -1551,7 +1552,8 @@
"Values":
{
"TensorView": 0,
- "DecodeFunc": 1
+ "DecodeFunc": 1,
+ "DecodeVectorFunc": 2
}
},
{
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index 64b0a1f..f244e9a 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -1282,6 +1282,7 @@ spv = {
CooperativeVectorTrainingNV = 5435,
RayTracingClusterAccelerationStructureNV = 5437,
TensorAddressingNV = 5439,
+ CooperativeMatrixDecodeVectorNV = 5447,
SubgroupShuffleINTEL = 5568,
SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570,
@@ -1570,6 +1571,7 @@ spv = {
TensorAddressingOperandsShift = {
TensorView = 0,
DecodeFunc = 1,
+ DecodeVectorFunc = 2,
Max = 0x7fffffff,
},
@@ -1577,6 +1579,7 @@ spv = {
MaskNone = 0,
TensorView = 0x00000001,
DecodeFunc = 0x00000002,
+ DecodeVectorFunc = 0x00000004,
},
TensorOperandsShift = {
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index 5f3bae6..af0e61f 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -1253,6 +1253,7 @@ spv = {
'CooperativeVectorTrainingNV' : 5435,
'RayTracingClusterAccelerationStructureNV' : 5437,
'TensorAddressingNV' : 5439,
+ 'CooperativeMatrixDecodeVectorNV' : 5447,
'SubgroupShuffleINTEL' : 5568,
'SubgroupBufferBlockIOINTEL' : 5569,
'SubgroupImageBlockIOINTEL' : 5570,
@@ -1525,12 +1526,14 @@ spv = {
'TensorAddressingOperandsShift' : {
'TensorView' : 0,
'DecodeFunc' : 1,
+ 'DecodeVectorFunc' : 2,
},
'TensorAddressingOperandsMask' : {
'MaskNone' : 0,
'TensorView' : 0x00000001,
'DecodeFunc' : 0x00000002,
+ 'DecodeVectorFunc' : 0x00000004,
},
'TensorOperandsShift' : {
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index 4e4e3dc..1ed7d76 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -1327,6 +1327,7 @@ enum Capability : uint
CooperativeVectorTrainingNV = 5435,
RayTracingClusterAccelerationStructureNV = 5437,
TensorAddressingNV = 5439,
+ CooperativeMatrixDecodeVectorNV = 5447,
SubgroupShuffleINTEL = 5568,
SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570,
@@ -1635,6 +1636,7 @@ enum TensorAddressingOperandsShift : uint
{
TensorView = 0,
DecodeFunc = 1,
+ DecodeVectorFunc = 2,
Max = 0x7fffffff,
}
@@ -1643,6 +1645,7 @@ enum TensorAddressingOperandsMask : uint
MaskNone = 0,
TensorView = 0x00000001,
DecodeFunc = 0x00000002,
+ DecodeVectorFunc = 0x00000004,
}
enum TensorOperandsShift : uint
--
2.54.0
@@ -0,0 +1,116 @@
From 8c5559c134abcf432ec59db842404087b9906c1a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?K=C3=A9vin=20Petit?= <kevin.petit@arm.com>
Date: Wed, 20 May 2026 16:39:51 +0100
Subject: [PATCH 16/26] Add ArmExperimentalMLOperations instruction set (#602)
Change-Id: Id5e6f036ed0a1653ea9817c1d5b193c58403fe1d
Signed-off-by: Kevin Petit <kevin.petit@arm.com>
---
BUILD.bazel | 6 +++++
.../unified1/ArmExperimentalMLOperations.h | 26 +++++++++++++++++++
...rm.experimental-ml-operations.grammar.json | 25 ++++++++++++++++++
tools/buildHeaders/bin/makeExtinstHeaders.py | 1 +
4 files changed, 58 insertions(+)
create mode 100644 include/spirv/unified1/ArmExperimentalMLOperations.h
create mode 100644 include/spirv/unified1/extinst.arm.experimental-ml-operations.grammar.json
diff --git a/BUILD.bazel b/BUILD.bazel
index 61ef7e8..db21aeb 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -143,6 +143,11 @@ filegroup(
srcs = ["include/spirv/unified1/extinst.nonsemantic.graph.debuginfo.grammar.json"],
)
+filegroup(
+ name = "spirv_ext_inst_arm_experimental_ml_operations",
+ srcs = ["include/spirv/unified1/extinst.arm.experimental-ml-operations.grammar.json"],
+)
+
cc_library(
name = "spirv_common_headers",
hdrs = [
@@ -152,6 +157,7 @@ cc_library(
"include/spirv/1.1/OpenCL.std.h",
"include/spirv/1.2/GLSL.std.450.h",
"include/spirv/1.2/OpenCL.std.h",
+ "include/spirv/unified1/ArmExperimentalMLOperations.h",
"include/spirv/unified1/ArmMotionEngine.100.h",
"include/spirv/unified1/GLSL.std.450.h",
"include/spirv/unified1/NonSemanticClspvReflection.h",
diff --git a/include/spirv/unified1/ArmExperimentalMLOperations.h b/include/spirv/unified1/ArmExperimentalMLOperations.h
new file mode 100644
index 0000000..64b0e70
--- /dev/null
+++ b/include/spirv/unified1/ArmExperimentalMLOperations.h
@@ -0,0 +1,26 @@
+// SPDX-FileCopyrightText: 2025 Arm Ltd.
+// SPDX-License-Identifier: MIT
+
+#ifndef SPIRV_UNIFIED1_ArmExperimentalMLOperations_H_
+#define SPIRV_UNIFIED1_ArmExperimentalMLOperations_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum {
+ ArmExperimentalMLOperationsRevision = 1,
+ ArmExperimentalMLOperationsRevision_BitWidthPadding = 0x7fffffff
+};
+
+enum ArmExperimentalMLOperationsInstructions {
+ ArmExperimentalMLOperationsCALL = 0,
+ ArmExperimentalMLOperationsInstructionsMax = 0x7fffffff
+};
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SPIRV_UNIFIED1_ArmExperimentalMLOperations_H_
diff --git a/include/spirv/unified1/extinst.arm.experimental-ml-operations.grammar.json b/include/spirv/unified1/extinst.arm.experimental-ml-operations.grammar.json
new file mode 100644
index 0000000..169dfe9
--- /dev/null
+++ b/include/spirv/unified1/extinst.arm.experimental-ml-operations.grammar.json
@@ -0,0 +1,25 @@
+{
+ "copyright": [
+ "SPDX-FileCopyrightText: 2025 Arm Ltd.",
+ "SPDX-License-Identifier: MIT"
+ ],
+ "revision": 1,
+ "instructions": [
+ {
+ "opname": "CALL",
+ "opcode": 0,
+ "operands": [
+ {
+ "kind": "LiteralInteger",
+ "name": "Opcode"
+ },
+ {
+ "kind": "IdRef",
+ "quantifier": "*",
+ "name": "Parameters"
+ }
+ ]
+ }
+ ],
+ "operand_kinds": []
+}
diff --git a/tools/buildHeaders/bin/makeExtinstHeaders.py b/tools/buildHeaders/bin/makeExtinstHeaders.py
index 1c9fbfd..863fca1 100755
--- a/tools/buildHeaders/bin/makeExtinstHeaders.py
+++ b/tools/buildHeaders/bin/makeExtinstHeaders.py
@@ -32,3 +32,4 @@ mk_extinst('NonSemanticVkspReflection', 'extinst.nonsemantic.vkspreflection.gram
mk_extinst('TOSA', 'extinst.tosa.001000.1.grammar.json', 'TOSA.001000.1')
mk_extinst('ArmMotionEngine', 'extinst.arm.motion-engine.100.grammar.json', 'ArmMotionEngine.100')
mk_extinst('NonSemanticGraphDebugInfo', 'extinst.nonsemantic.graph.debuginfo.grammar.json')
+mk_extinst('ArmExperimentalMLOperations', 'extinst.arm.experimental-ml-operations.grammar.json')
--
2.54.0
@@ -0,0 +1,207 @@
From 1e770e7de8373a8dd49f23416cf7ca4001d01040 Mon Sep 17 00:00:00 2001
From: Jebrim <jebscapeplugin@gmail.com>
Date: Wed, 27 May 2026 10:48:38 -0500
Subject: [PATCH 17/26] Add Pred as a new SPIR-V source language (#606)
* Add Pred as a new SPIR-V source language
* Update spirv.bf
* Update spirv.core.grammar.json
* Update spirv.cs
* Update spirv.hpp
* Update spirv.hpp11
* Update spirv.json
* Update spirv.lua
* Update spirv.py
* Update spv.d
* Update spir-v.xml
---
include/spirv/spir-v.xml | 3 ++-
include/spirv/unified1/spirv.bf | 1 +
include/spirv/unified1/spirv.core.grammar.json | 5 +++++
include/spirv/unified1/spirv.cs | 1 +
include/spirv/unified1/spirv.h | 2 ++
include/spirv/unified1/spirv.hpp | 2 ++
include/spirv/unified1/spirv.hpp11 | 2 ++
include/spirv/unified1/spirv.json | 3 ++-
include/spirv/unified1/spirv.lua | 1 +
include/spirv/unified1/spirv.py | 1 +
include/spirv/unified1/spv.d | 1 +
11 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/include/spirv/spir-v.xml b/include/spirv/spir-v.xml
index 69a2c2a..1463dd6 100644
--- a/include/spirv/spir-v.xml
+++ b/include/spirv/spir-v.xml
@@ -82,7 +82,8 @@
<id value="47" vendor="ARM" comment="Contact Christopher Gautier, christopher.gautier@arm.com"/>
<id value="48" vendor="Goopax" comment="Contact Ingo Josopait, josopait@goopax.com"/>
<id value="49" vendor="Icyllis Milica" tool="Arc3D Shader Compiler" comment="Contact Icyllis Milica, https://github.com/BloCamLimb/Arc3D"/>
- <unused start="50" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
+ <id value="50" vendor="Isochron" tool="Pred" comment="Contact Justin Ead, jebrim@isochrontechnologies.com"/>
+ <unused start="51" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
</ids>
<!-- SECTION: SPIR-V Opcodes and Enumerants -->
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
index 9497023..fb9644e 100644
--- a/include/spirv/unified1/spirv.bf
+++ b/include/spirv/unified1/spirv.bf
@@ -56,6 +56,7 @@ namespace Spv
Slang = 11,
Zig = 12,
Rust = 13,
+ Pred = 14,
Max = 0x7fffffff,
}
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 4f96982..9e1adee 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -12684,6 +12684,11 @@
"enumerant" : "Rust",
"value" : 13,
"version" : "1.0"
+ },
+ {
+ "enumerant" : "Pred",
+ "value" : 14,
+ "version" : "1.0"
}
]
},
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index 7631bf2..d0f69b9 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -55,6 +55,7 @@ namespace Spv
Slang = 11,
Zig = 12,
Rust = 13,
+ Pred = 14,
Max = 0x7fffffff,
}
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index 5ab265f..966ad68 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -63,6 +63,7 @@ typedef enum SpvSourceLanguage_ {
SpvSourceLanguageSlang = 11,
SpvSourceLanguageZig = 12,
SpvSourceLanguageRust = 13,
+ SpvSourceLanguagePred = 14,
SpvSourceLanguageMax = 0x7fffffff,
} SpvSourceLanguage;
@@ -3564,6 +3565,7 @@ inline const char* SpvSourceLanguageToString(SpvSourceLanguage value) {
case SpvSourceLanguageSlang: return "Slang";
case SpvSourceLanguageZig: return "Zig";
case SpvSourceLanguageRust: return "Rust";
+ case SpvSourceLanguagePred: return "Pred";
default: return "Unknown";
}
}
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index 33b4a8b..517b7cf 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -59,6 +59,7 @@ enum SourceLanguage {
SourceLanguageSlang = 11,
SourceLanguageZig = 12,
SourceLanguageRust = 13,
+ SourceLanguagePred = 14,
SourceLanguageMax = 0x7fffffff,
};
@@ -3560,6 +3561,7 @@ inline const char* SourceLanguageToString(SourceLanguage value) {
case SourceLanguageSlang: return "Slang";
case SourceLanguageZig: return "Zig";
case SourceLanguageRust: return "Rust";
+ case SourceLanguagePred: return "Pred";
default: return "Unknown";
}
}
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index eb15ea2..4fa5f8f 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -59,6 +59,7 @@ enum class SourceLanguage : unsigned {
Slang = 11,
Zig = 12,
Rust = 13,
+ Pred = 14,
Max = 0x7fffffff,
};
@@ -3560,6 +3561,7 @@ inline const char* SourceLanguageToString(SourceLanguage value) {
case SourceLanguage::Slang: return "Slang";
case SourceLanguage::Zig: return "Zig";
case SourceLanguage::Rust: return "Rust";
+ case SourceLanguage::Pred: return "Pred";
default: return "Unknown";
}
}
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index 35f85d9..43a7891 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -65,7 +65,8 @@
"WGSL": 10,
"Slang": 11,
"Zig": 12,
- "Rust": 13
+ "Rust": 13,
+ "Pred": 14
}
},
{
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index f244e9a..bb4c52f 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -50,6 +50,7 @@ spv = {
Slang = 11,
Zig = 12,
Rust = 13,
+ Pred = 14,
Max = 0x7fffffff,
},
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index af0e61f..e01e462 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -50,6 +50,7 @@ spv = {
'Slang' : 11,
'Zig' : 12,
'Rust' : 13,
+ 'Pred' : 14,
},
'ExecutionModel' : {
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index 1ed7d76..3e631ef 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -58,6 +58,7 @@ enum SourceLanguage : uint
Slang = 11,
Zig = 12,
Rust = 13,
+ Pred = 14,
Max = 0x7fffffff,
}
--
2.54.0
@@ -0,0 +1,186 @@
From c63848ecf2200425511319fd8bf2c17b751e501e Mon Sep 17 00:00:00 2001
From: apilatosba <104633944+apilatosba@users.noreply.github.com>
Date: Wed, 17 Jun 2026 17:38:53 +0200
Subject: [PATCH 18/26] added source language entry ApilaJai (#607)
---
include/spirv/spir-v.xml | 3 ++-
include/spirv/unified1/spirv.bf | 1 +
include/spirv/unified1/spirv.core.grammar.json | 5 +++++
include/spirv/unified1/spirv.cs | 1 +
include/spirv/unified1/spirv.h | 2 ++
include/spirv/unified1/spirv.hpp | 2 ++
include/spirv/unified1/spirv.hpp11 | 2 ++
include/spirv/unified1/spirv.json | 3 ++-
include/spirv/unified1/spirv.lua | 1 +
include/spirv/unified1/spirv.py | 1 +
include/spirv/unified1/spv.d | 1 +
11 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/include/spirv/spir-v.xml b/include/spirv/spir-v.xml
index 1463dd6..1b083a4 100644
--- a/include/spirv/spir-v.xml
+++ b/include/spirv/spir-v.xml
@@ -83,7 +83,8 @@
<id value="48" vendor="Goopax" comment="Contact Ingo Josopait, josopait@goopax.com"/>
<id value="49" vendor="Icyllis Milica" tool="Arc3D Shader Compiler" comment="Contact Icyllis Milica, https://github.com/BloCamLimb/Arc3D"/>
<id value="50" vendor="Isochron" tool="Pred" comment="Contact Justin Ead, jebrim@isochrontechnologies.com"/>
- <unused start="51" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
+ <id value="51" vendor="apilatosba" tool="Apila Jai Compiler" comment="https://github.com/apilatosba/jai_to_spirv_compiler"/>
+ <unused start="52" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
</ids>
<!-- SECTION: SPIR-V Opcodes and Enumerants -->
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
index fb9644e..40fbfff 100644
--- a/include/spirv/unified1/spirv.bf
+++ b/include/spirv/unified1/spirv.bf
@@ -57,6 +57,7 @@ namespace Spv
Zig = 12,
Rust = 13,
Pred = 14,
+ ApilaJai = 15,
Max = 0x7fffffff,
}
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 9e1adee..8b5595c 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -12689,6 +12689,11 @@
"enumerant" : "Pred",
"value" : 14,
"version" : "1.0"
+ },
+ {
+ "enumerant" : "ApilaJai",
+ "value" : 15,
+ "version" : "1.0"
}
]
},
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index d0f69b9..a1b7d58 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -56,6 +56,7 @@ namespace Spv
Zig = 12,
Rust = 13,
Pred = 14,
+ ApilaJai = 15,
Max = 0x7fffffff,
}
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index 966ad68..d1f88cf 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -64,6 +64,7 @@ typedef enum SpvSourceLanguage_ {
SpvSourceLanguageZig = 12,
SpvSourceLanguageRust = 13,
SpvSourceLanguagePred = 14,
+ SpvSourceLanguageApilaJai = 15,
SpvSourceLanguageMax = 0x7fffffff,
} SpvSourceLanguage;
@@ -3566,6 +3567,7 @@ inline const char* SpvSourceLanguageToString(SpvSourceLanguage value) {
case SpvSourceLanguageZig: return "Zig";
case SpvSourceLanguageRust: return "Rust";
case SpvSourceLanguagePred: return "Pred";
+ case SpvSourceLanguageApilaJai: return "ApilaJai";
default: return "Unknown";
}
}
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index 517b7cf..9f3cb01 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -60,6 +60,7 @@ enum SourceLanguage {
SourceLanguageZig = 12,
SourceLanguageRust = 13,
SourceLanguagePred = 14,
+ SourceLanguageApilaJai = 15,
SourceLanguageMax = 0x7fffffff,
};
@@ -3562,6 +3563,7 @@ inline const char* SourceLanguageToString(SourceLanguage value) {
case SourceLanguageZig: return "Zig";
case SourceLanguageRust: return "Rust";
case SourceLanguagePred: return "Pred";
+ case SourceLanguageApilaJai: return "ApilaJai";
default: return "Unknown";
}
}
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index 4fa5f8f..4eb6fbd 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -60,6 +60,7 @@ enum class SourceLanguage : unsigned {
Zig = 12,
Rust = 13,
Pred = 14,
+ ApilaJai = 15,
Max = 0x7fffffff,
};
@@ -3562,6 +3563,7 @@ inline const char* SourceLanguageToString(SourceLanguage value) {
case SourceLanguage::Zig: return "Zig";
case SourceLanguage::Rust: return "Rust";
case SourceLanguage::Pred: return "Pred";
+ case SourceLanguage::ApilaJai: return "ApilaJai";
default: return "Unknown";
}
}
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index 43a7891..1b124e4 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -66,7 +66,8 @@
"Slang": 11,
"Zig": 12,
"Rust": 13,
- "Pred": 14
+ "Pred": 14,
+ "ApilaJai": 15
}
},
{
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index bb4c52f..a5f9267 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -51,6 +51,7 @@ spv = {
Zig = 12,
Rust = 13,
Pred = 14,
+ ApilaJai = 15,
Max = 0x7fffffff,
},
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index e01e462..17cb6b1 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -51,6 +51,7 @@ spv = {
'Zig' : 12,
'Rust' : 13,
'Pred' : 14,
+ 'ApilaJai' : 15,
},
'ExecutionModel' : {
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index 3e631ef..ceb9aac 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -59,6 +59,7 @@ enum SourceLanguage : uint
Zig = 12,
Rust = 13,
Pred = 14,
+ ApilaJai = 15,
Max = 0x7fffffff,
}
--
2.54.0
@@ -0,0 +1,116 @@
From ed734383000313dd53e57aec28b35effc28f8f61 Mon Sep 17 00:00:00 2001
From: Khronos Group Web Services <webservices@khronosgroup.org>
Date: Wed, 24 Jun 2026 11:37:39 -0400
Subject: [PATCH 19/26] license: Add or update REUSE compliance (#609)
---
CODE_OF_CONDUCT.md | 7 ++++++-
README.md | 5 +++++
REUSE.toml | 42 ++++++++++++------------------------------
SECURITY.md | 5 +++++
4 files changed, 28 insertions(+), 31 deletions(-)
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index a11610b..f601007 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -1 +1,6 @@
-A reminder that this issue tracker is managed by the Khronos Group. Interactions here should follow the Khronos Code of Conduct (https://www.khronos.org/developers/code-of-conduct), which prohibits aggressive or derogatory language. Please keep the discussion friendly and civil.
+<!--
+SPDX-FileCopyrightText: 2026 The Khronos Group Inc.
+SPDX-License-Identifier: CC-BY-4.0
+-->
+
+A reminder that this repository is managed by the Khronos Group. Interactions here should follow the Khronos Code of Conduct (https://www.khronos.org/developers/code-of-conduct), which prohibits aggressive or derogatory language. Please keep the discussion friendly and civil.
diff --git a/README.md b/README.md
index ed38828..16fa0cd 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,8 @@
+<!--
+SPDX-FileCopyrightText: 2026 The Khronos Group Inc.
+SPDX-License-Identifier: CC-BY-4.0
+-->
+
# SPIR-V Headers
This repository contains machine-readable files for the
diff --git a/REUSE.toml b/REUSE.toml
index 8392272..00837a5 100644
--- a/REUSE.toml
+++ b/REUSE.toml
@@ -4,46 +4,28 @@ SPDX-PackageSupplier = "The Khronos Group, Inc."
SPDX-PackageDownloadLocation = "https://github.com/KhronosGroup/SPIRV-Headers"
[[annotations]]
-path = ["**.md", "WORKSPACE", ".git**"]
-precedence = "aggregate"
+path = [
+ "WORKSPACE",
+ ".git**",
+]
+precedence = "closest"
SPDX-FileCopyrightText = "The Khronos Group, Inc."
SPDX-License-Identifier = "CC-BY-4.0"
[[annotations]]
-path = ["include/**/*.json" ]
-precedence = "aggregate"
+path = ["**" ]
+precedence = "closest"
SPDX-FileCopyrightText = "The Khronos Group, Inc."
SPDX-License-Identifier = "MIT"
[[annotations]]
-path = ["include/spirv/1.0/spir*", "include/spirv/1.1/spir*", "include/spirv/1.2/spir*"]
-precedence = "aggregate"
-SPDX-FileCopyrightText = "2014-2018 The Khronos Group, Inc."
-SPDX-License-Identifier = "MIT"
-
-[[annotations]]
-path = ["include/spirv/unified1/spir*", "include/spirv/unified1/spv.d"]
-precedence = "aggregate"
-SPDX-FileCopyrightText = "2014-2024 The Khronos Group, Inc."
-SPDX-License-Identifier = "MIT"
-
-[[annotations]]
-path = [
- "BUILD.bazel",
- "MODULE.bazel",
- "cmake/SPIRV-Headers.pc.in",
- "tools/buildHeaders/CMakeLists.txt",
- "tools/buildHeaders/bin/makeExtinstHeaders.py",
- "tools/buildHeaders/bin/makeHeaders",
- "include/spirv/unified1/OpenCLDebugInfo100.h",
- "include/spirv/unified1/DebugInfo.h"
-]
-precedence = "aggregate"
-SPDX-FileCopyrightText = "The Khronos Group, Inc."
+path = "tools/buildHeaders/bin/generate_language_headers.py"
+precedence = "closest"
+SPDX-FileCopyrightText = "Google LLC"
SPDX-License-Identifier = "MIT"
[[annotations]]
path = "tools/buildHeaders/jsoncpp/**"
-precedence = "aggregate"
-SPDX-FileCopyrightText = "2007-2010 by Baptiste Lepilleur"
+precedence = "closest"
+SPDX-FileCopyrightText = "Baptiste Lepilleur"
SPDX-License-Identifier = "MIT"
diff --git a/SECURITY.md b/SECURITY.md
index 9b51f0c..cdc2060 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -1,3 +1,8 @@
+<!--
+SPDX-FileCopyrightText: 2026 The Khronos Group Inc.
+SPDX-License-Identifier: CC-BY-4.0
+-->
+
# Security Policy
## Supported Versions
--
2.54.0
@@ -0,0 +1,47 @@
From daa093dd29aab8cbb6562b808370562f56e399fb Mon Sep 17 00:00:00 2001
From: Khronos Group Web Services <webservices@khronosgroup.org>
Date: Wed, 24 Jun 2026 11:39:24 -0400
Subject: [PATCH 20/26] chore: Add CONTRIBUTING file (#608)
---
CONTRIBUTING.md | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
create mode 100644 CONTRIBUTING.md
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..3d3062c
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,28 @@
+<!--
+SPDX-FileCopyrightText: 2026 The Khronos Group Inc.
+SPDX-License-Identifier: CC-BY-4.0
+-->
+
+# Contributing to SPIRV-Headers
+
+## Contributing
+
+This project welcomes contributions and suggestions. Contributions require you
+to agree to a
+[Contributor License Agreement (CLA)](https://cla-assistant.io/KhronosGroup/SPIRV-Headers)
+declaring that you have the right to, and actually do, grant the rights to use
+your contribution.
+
+When you submit a pull request, a CLA bot will determine whether you need to
+sign a CLA. Simply follow the instructions provided.
+
+## AI-Assisted Contributions
+
+By submitting a Contribution to this repository, you additionally represent
+that, to the extent any of Your Contributions were developed with the
+assistance of artificial intelligence tools or AI-generated code, You have
+exercised sufficient review, judgment, and creative direction over such tools
+and resulting material to reasonably consider it Your original creation, and
+You are not aware of any third-party license, intellectual property claim, or
+other restriction arising from such use that is associated with any part of
+Your Contribution or use thereof.
--
2.54.0
@@ -12,6 +12,29 @@ package spirv-headers {
checksum = "6cmvMCH5aiHykXcozckfMOVA0nm0am4Xr2g9swBB9FtOV1vYBHgats5aRv4uQ9Kq";
};
patches = [
"0001-grammar-and-header-changes-for-SPV_INTEL_predicated_.patch",
"0002-header-updates-for-SPV_INTEL_rounded_divide_sqrt-582.patch",
"0003-Add-SPV_MESA_fragment_coverage_mask-enumerants-580.patch",
"0004-Update-headers-for-spirv-issue-373-584.patch",
"0005-Reserve-some-tokens-for-Samsung-586.patch",
"0006-Fix-OpCompositeConstructContinuedINTEL-operands-587.patch",
"0007-Update-spirv.core.grammar.json-revision-593.patch",
"0008-Reserve-ImageOperand-17-for-Google-589.patch",
"0009-Fix-OpReadPipeBlockingINTEL-OpWritePipeBlockingINTEL.patch",
"0010-Add-SPV_AMD_weak_linkage-extension-583.patch",
"0011-Add-SPV_KHR_opacity_micromap-599.patch",
"0012-Add-NonSemanticGraphDebugInfo-instruction-set-591.patch",
"0013-Revert-Add-SPV_MESA_fragment_coverage_mask-enumerant.patch",
"0014-SPV_EXT_split_barrier-600.patch",
"0015-SPV_NV_cooperative_matrix_decode_vector-601.patch",
"0016-Add-ArmExperimentalMLOperations-instruction-set-602.patch",
"0017-Add-Pred-as-a-new-SPIR-V-source-language-606.patch",
"0018-added-source-language-entry-ApilaJai-607.patch",
"0019-license-Add-or-update-REUSE-compliance-609.patch",
"0020-chore-Add-CONTRIBUTING-file-608.patch",
];
exec = cmake {
// upstream has no tests
skipTest = true;
@@ -24,11 +47,11 @@ package spirv-tools {
anitya = 14894;
latest = anityaFallback;
version# = "2026.1";
version# = "2026.2";
source = remoteGitHub {
suffix = "KhronosGroup/SPIRV-Tools";
tag = "v"+version;
checksum = "ZSQPQx8NltCDzQLk4qlaVxyWRWeI_JtsjEpeFt3kezTanl9DTHfLixSUCezMFBjv";
checksum = "pJ78inb4VzLy8CjQOESpIHHGYVVOR6qN-ZqB-2MzGTcKaoYb3bqhSjkKupiaJzIk";
};
exec = cmake {
@@ -51,11 +74,11 @@ package spirv-llvm-translator {
website = "https://github.com/KhronosGroup/SPIRV-LLVM-Translator";
anitya = 227273;
version# = "22.1.2";
version# = "22.1.4";
source = remoteGitHub {
suffix = "KhronosGroup/SPIRV-LLVM-Translator";
tag = "v"+version;
checksum = "JZAaV5ewYcm-35YA_U2BM2IcsQouZtX1BLZR0zh2vSlfEXMsT5OCtY4Gh5RJkcGy";
checksum = "xh5ReZ2_i2vX56dZBnizXdHjwsl1y4D32Ptu5IrBdqoCzBqxOlynSj83FvlkcphS";
};
// litArgs emits shell syntax
@@ -66,6 +89,22 @@ package spirv-llvm-translator {
default = [
// error: line 13: OpTypeCooperativeMatrixKHR Scope is limited to Workgroup and Subgroup
"cooperative_matrix_constant_null.spvasm",
// error: line 66: NonSemantic.Shader.DebugInfo.200 DebugTypeFunction: expected operand Return Type is not a valid debug type
"DebugInfo/NonSemantic/Shader200/DebugLineOnlyOnce.ll",
// error: line 52: End of input reached while decoding OpExtInst starting at word 236: expected more operands after 8 words.
"DebugInfo/NonSemantic/Shader200/DebugLinePriority.spt",
// error: line 28: FPRoundingMode decoration can be applied only to a conversion instruction to or from a floating-point type.
"llvm-intrinsics/constrained-arithmetic.ll",
// error: line 78: OpLifetimeStart pointer operand type must be a OpTypePointer.
"llvm-intrinsics/lifetime.ll",
// error: line 61: FPRoundingMode decoration can be applied only to a conversion instruction to or from a floating-point type.
"transcoding/OpenCL/convert_functions.ll",
// error: line 56: OpConstantComposite must not have spec constant operands: <id> '30[%30]'
"transcoding/constant-vars.ll",
// error: line 61: Expected input and Result Type to point to the same type: SpecConstantOp
"transcoding/global_block.cl",
// error: line 55: OpConstantComposite must not have spec constant operands: <id> '16[%16]'
"type-scavenger/globals.ll",
];
arm64 = [
+2 -2
View File
@@ -3,11 +3,11 @@ package tamago {
website = "https://github.com/usbarmory/tamago-go";
anitya = 388872;
version# = "1.26.4";
version# = "1.26.5";
source = remoteGitHub {
suffix = "usbarmory/tamago-go";
tag = "tamago-go"+version;
checksum = "3-VmJ2mRLQnJtbcXny2unpc7RMNzvVxajirl_M4o-JP7_oRrWOFuaJqUfE-yrZL-";
checksum = "QESl24dveM1jniFx_PkPGbxQe7daHcnMlMQXC1MXz6EEmxSeYyrI-tMLi0NEu8QE";
};
env = [
+6 -6
View File
@@ -3,12 +3,12 @@ package wayland {
website = "https://wayland.freedesktop.org";
anitya = 10061;
version# = "1.25.0";
version# = "1.25.91";
source = remoteGitLab {
domain = "gitlab.freedesktop.org";
suffix = "wayland/wayland";
ref = version;
checksum = "q-4dYXme46JPgLGtXAxyZGTy7udll9RfT0VXtcW2YRR1WWViUhvdZXZneXzLqpCg";
checksum = "SvltMSgObMdDmRoqlSRg_TlKoemR3R-uXtRlRE8bvdw6MFxFp69f0geLOJvahyLT";
};
writable = true;
@@ -19,14 +19,14 @@ echo 'int main(){}' > tests/sanity-test.c
exec = meson {
setup = {
"Ddefault_library": "both";
"Ddocumentation": "false";
"Dtests": "true";
"default_library": "both";
"documentation": "false";
"tests": "true";
};
};
inputs = [
gawk,
awk,
diffutils,
libffi,
+5 -5
View File
@@ -3,19 +3,19 @@ package wlroots {
website = "https://gitlab.freedesktop.org/wlroots/wlroots";
anitya = 18357;
version# = "0.20.1";
version# = "0.20.2";
source = remoteGitLab {
domain = "gitlab.freedesktop.org";
suffix = "wlroots/wlroots";
ref = version;
checksum = "NQAn59GTXYBE4JHkgKnOUGZi9TGKcIrgH0khj53zDUj0whIQvNAc-sE_8xWYF66a";
checksum = "TDDJLXJ83uZEu-81LZeDlM0f1wNxaFd4Xn2q1NlKhm7IAEHnZJQHSdLmJIC4As_e";
};
exec = meson {
setup = {
"Dxwayland": "enabled";
"Dallocators": "gbm";
"Dbackends": "drm,libinput";
"xwayland": "enabled";
"allocators": "gbm";
"backends": "drm,libinput";
};
};
+20 -20
View File
@@ -80,7 +80,7 @@ package libXau {
exec = meson {
setup = {
"Ddefault_library": "both";
"default_library": "both";
};
};
@@ -576,12 +576,12 @@ package libXfont2 {
website = "https://gitlab.freedesktop.org/xorg/lib/libxfont";
anitya = 17165;
version# = "2.0.7";
version# = "2.0.8";
source = remoteGitLab {
domain = "gitlab.freedesktop.org";
suffix = "xorg/lib/libxfont";
ref = "libXfont2-"+version;
checksum = "jv9BZNA02493KB8j1lfAErF5SA3ZFcAhm3_UVJ--Bp1maz-vNprl_wXpkHApBi9M";
checksum = "8bYRkoiDkbZC2nFs0cOlcmLUNKS6_ZkDTrxas2KxxCJm_PsUD_E58HkMCmGfPGkp";
};
exec = make {
@@ -682,7 +682,7 @@ package libpciaccess {
exec = meson {
setup = {
"Dzlib": "enabled";
"zlib": "enabled";
};
};
@@ -695,32 +695,32 @@ package xserver {
website = "https://gitlab.freedesktop.org/xorg/xserver";
anitya = 5250;
version# = "21.1.23";
version# = "21.1.24";
source = remoteGitLab {
domain = "gitlab.freedesktop.org";
suffix = "xorg/xserver";
ref = "xorg-server-"+version;
checksum = "-hXqyWClfhoRYilXFruZFPCdT4bdYVn8S4BFW6teHqyuSjL2nxx3Fy7yhP2hJDZ6";
checksum = "ueBiwKIOHZkSmJPzxAeze_SJHt4QxEHQTk1kMkic-GYxC7Fs41ckwgVzcwr2N3ca";
};
exec = meson {
setup = {
"Dxorg": "true";
"Dxephyr": "true";
"Dxnest": "true";
"Dipv6": "false";
"xorg": "true";
"xephyr": "true";
"xnest": "true";
"ipv6": "false";
"Dudev": "false";
"Dudev_kms": "false";
"Dglx": "false";
"udev": "false";
"udev_kms": "false";
"glx": "false";
// ../../usr/src/xserver/glamor/glamor_glx.c:24:10: fatal error: 'epoxy/glx.h' file not found
"Dglamor": "false";
"glamor": "false";
};
};
inputs = [
gawk,
awk,
xorgproto,
libxtrans,
@@ -773,25 +773,25 @@ package xwayland {
website = "https://gitlab.freedesktop.org/xorg/xserver";
anitya = 180949;
version# = "24.1.12";
version# = "24.1.13";
source = remoteGitLab {
domain = "gitlab.freedesktop.org";
suffix = "xorg/xserver";
ref = "xwayland-"+version;
checksum = "0D0bs8EbDzlyLIULvm6lizqzdx4g1-umdbjVVO7zk-cS1kVIaSkKronCqj95tz-A";
checksum = "dZpEGlcPJ72TBCtnR1mvquvN4iUypGvGJ4tN9hpa-ljux28EkSCQRlQHLPRijz36";
};
bin = [ "bash" ];
exec = meson {
setup = {
"Dipv6": "false";
"Dsystemd_notify": "false";
"ipv6": "false";
"systemd_notify": "false";
};
};
inputs = [
bash,
gawk,
awk,
mesa,
libglvnd,
+1 -1
View File
@@ -16,7 +16,7 @@ package xkbcommon {
exec = meson {
setup = {
"Denable-x11": "false";
"enable-x11": "false";
};
};
+23 -17
View File
@@ -10,6 +10,7 @@ import (
"strings"
"sync"
"time"
"unsafe"
"hakurei.app/fhs"
"hakurei.app/internal/pkg"
@@ -332,7 +333,7 @@ func (s *S) HasStageEarly() (ok bool) {
}
// NewPatchedSource returns [pkg.Artifact] of source with patches applied. If
// passthrough is true, source is returned as is for zero length patches.
// passthrough is true, source is returned as is for zero-length patches.
func (t Toolchain) NewPatchedSource(
name string,
source pkg.Artifact,
@@ -346,29 +347,34 @@ func (t Toolchain) NewPatchedSource(
paths := make([]pkg.ExecPath, len(patches)+1)
for i, p := range patches {
paths[i+1] = pkg.Path(
AbsUsrSrc.Append(name+"-patches", p[0]+".patch"), false,
pkg.NewFile(p[0]+".patch", []byte(p[1])),
fhs.AbsRoot.Append("patches", p[0]), false,
pkg.NewFile(p[0], unsafe.Slice(unsafe.StringData(p[1]), len(p[1]))),
)
}
paths[0] = pkg.Path(AbsUsrSrc.Append(name), false, source)
paths[0] = pkg.Path(fhs.AbsRoot.Append("src"), false, source)
aname := name + "-src"
script := `
cp -r /usr/src/` + name + `/. /work/.
var buf strings.Builder
buf.WriteString(`
cp -r /src/. /work/.
chmod -R +w /work && cd /work
`
`)
if len(paths) > 1 {
script += `
cat /usr/src/` + name + `-patches/* | \
patch \
-p 1 \
--ignore-whitespace
`
aname += "-patched"
buf.WriteString(`
function apply {
echo "applying $1"
patch -p 1 < "/patches/$1"
}
`)
for _, p := range patches {
buf.WriteString("apply '")
buf.WriteString(p[0])
buf.WriteString("'\n")
}
}
return t.New(aname, 0, t.Append(nil,
return t.New(name+"-src", 0, t.Append(nil,
_patch,
), nil, nil, script, paths...)
), nil, nil, buf.String(), paths...)
}
// helperInPlace is a special directory value for omitting the cd statement.
+2 -1
View File
@@ -878,6 +878,7 @@ func (s *S) getFrame() azalea.Frame {
) (v any, set bool, err error) {
var attr MesonHelper
if err = args.Apply(map[unique.Handle[azalea.Ident]]any{
k("muon"): &attr.Muon,
k("preCompile"): &attr.ScriptCompileEarly,
k("postCompile"): &attr.ScriptCompiled,
k("postInstall"): &attr.Script,
@@ -1053,7 +1054,7 @@ func (ctx *evalContext) pf(
return
}
attr.Patches = append(attr.Patches, KV{
strings.TrimSuffix(filepath.Base(pathname), ".patch"),
filepath.Base(pathname),
unsafe.String(unsafe.SliceData(p), len(p)),
})
}