Skip to content

fix: implement missing GLSL.std.450 opcodes (#334) - #350

Open
lkmavi wants to merge 2 commits into
mainfrom
fix/334-glsl-std450-opcodes
Open

fix: implement missing GLSL.std.450 opcodes (#334)#350
lkmavi wants to merge 2 commits into
mainfrom
fix/334-glsl-std450-opcodes

Conversation

@lkmavi

@lkmavi lkmavi commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Fix incorrect Khronos opcode numbers (Determinant/MatrixInverse were 76/77; correct values are 33/34) and implement the remaining GLSL.std.450 ExtInst ops in the software SPIR-V interpreter.
  • Add hal.Logger().Warn on unknown opcodes to stop silent zero corruption on CI/servers/software backend.
  • Cover matrix (det/inverse), pack/unpack (incl. half + double), Modf/Frexp/Ldexp, bit-find, FaceForward/Refract, NaN-aware NMin/NMax/NClamp, Radians/Degrees/Fma; InterpolateAt* is identity + warn.

Closes #334

Test plan

  • go test ./hal/software/shader — coverage 86.2% (≥86%)
  • go test ./...
  • golangci-lint run --timeout=5m
  • CI green on this PR

…reter

Stop silent zero returns for unimplemented ExtInst ops (#334): align Khronos
opcode numbers, warn on unknowns, and implement matrix/pack/split/bit/geom ops
with ≥86% package coverage.
@lkmavi
lkmavi requested a review from kolkov as a code owner September 3, 2026 12:05
@codecov

codecov Bot commented Sep 3, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug: SPIR-V interpreter silent zero on ~36 unimplemented opcodes

1 participant