Skip to content

Releases: shader-slang/slang

v2026.3

17 Feb 13:47
0c484bf

Choose a tag to compare

=== Breaking changes ===
No breaking changes
=== All changes for this release ===
0c484bf Simplify CodeRabbit configuration (#10025)
4dc5364 Include lz4 and miniz dependencies in WASM C++ libs package (#9818)
af57b50 Require colon after prefix in diagnostic annotation tests (#10035)
b0a623e Improve diagnostic testing infrastructure (#10033)
7ffb51d remove unused diagnostics (#10012)
f73e98c Add -diagnostic-color auto/never/always (#9955)

v2026.2.2

16 Feb 06:01
4724809

Choose a tag to compare

Slang v2026.2.2

=== Breaking changes ===
No breaking changes

=== All changes for this release ===
4724809cc Ensure generated getters of optional operands don't crash (#10019)
2942719f1 Support relaxed coopmat conversions in coop_mat_2. (#9994)
e78d03a3c Language reference: program execution and divergence/reconvergence (#9960)
2b9e28bd6 Language reference: Add pointer types (#9881)
e3d5e4256 Add diagnostic tests for __ref/__constref interface params in dynamic dispatch (#9909)
c7d0c0165 Fix thread group size for GLSL compute shaders (#9959)
bc3bbf889 Fix lambda expr capture logic. (#9992)
ba1a4b326 Add tests for circular interface conformance in dynamic dispatch (#9911)
5c201bfd6 Fix debug source mapping for #line remapped locations (#9945)
adb73326a Add tests for generic specialization with associated type of existential (error 33180) (#9935)
66f598228 Add Claude AI workflows for PR review, CI analysis, and assistant (#9973)
d53e5f9be Add negative test for extension methods on dynamic dispatch interfaces (#9858)

v2026.2.1

12 Feb 22:17
ae33f43

Choose a tag to compare

=== Breaking changes ===
No breaking changes

=== All changes for this release ===
ae33f43 Add tests for [Specialize] interface dynamic dispatch error: 52008 (#9930)
d49ba11 Set layout size for TensorView (#9944)
cd26b40 Reduce sccache local cache size to 2G (#10002)
940ad92 Fix boolean comparison for build-llvm in coverage workflow (#10001)
f0ae9a0 Fix coverage workflow LLVM setup (#10000)
6a45af5 Fetch LLVM prebuilts from new location in GCS (#9998)
de9037e Fix coverage nightly workflow id-token permission (#9993)
8d37bd0 Add cache restore for use-local-sccache in container workflow (#9990)
75e0c71 Add atomic_reduce intrinsic for cuda target(#9969)
ce3bbb1 Specialize [CUDAKernel] functions as compute stage entry point for __stage_switch (#9970)
6bb1b4a Add use-local-sccache input to force local backend in container (#9988)
b32145e Use container workflow for Linux x86_64 in populate-fork-cache (#9987)
8016752 Add cache restore to populate-fork-cache workflow (#9985)
10410ba Fix container cache path to /tmp/.cache/sccache (#9984)
7d11148 Add negative tests for interface type specialization of generics (#9854)
a90d0db Add GCP authentication to coverage and VK-GL-CTS nightly workflows (#9977)
1a377c5 Expand fork PR cache to all 6 configurations (#9979)
76b04ae Use local backend when populating fork cache (#9978)
187e714 Add id-token permissions to reusable workflow calls (#9976)
5e478fd Skip GCP auth for fork PRs in Copilot setup, MDL benchmark and Compile Regression test (#9974)
6a84feb Add workflow to populate fork PR cache on master (#9963)
c86bb9f Add test for tuples of interfaces with tuple-containing implementation (#9918)
8c72921 Allocate bindless resource heap space-index during the reflection processing step (#9870)
d0b0afb Improve diagnostic output and testing (#9947)
e8dff23 Add GCP auth to benchmark and compile-regression-test workflows (#9952)
6e88b88 Add fork PR caching with GitHub Actions cache (#9950)
3093bcf Add unit tests for record-replay subsystem (#9896)
a86fbbf Add sccache with Google Cloud Storage for GitHub-hosted builds (#9904)
90b9f47 Revert claude workflows (#9937)
d0ce57d Add a unit test to verify the separate debuginfo with modules (#8833)
3581f9f Enable link-time constant expressions in generic type parameters (#9776)
8e817d5 Fix YAML formatting in .coderabbit.yaml
c56bf91 Add Claude AI-powered code review and assistant workflows
ad80e84 Add Claude AI-powered code review and assistant workflows
f860761 Add wrapper script for local coverage runs (#9898)

v2026.2

09 Feb 05:09
eaa54ed

Choose a tag to compare

=== Breaking changes ===
No breaking changes
=== All changes for this release ===
eaa54ed neural slang: expose Layout as generic parameter (#9915)
950715b Include slang-glslang.pdb in debug-info package (#9922)
18b9390 Fix internal error in getTypeNameHint for generic texture types (#9803) (#9902)
a83a63b Refactor GCC/Clang compiler output parsing (#9874)
3489207 Skip eliminating load-store pairs that prevent dominace violations (#9890)
adddb6b Hash grid encoder implementation (#9715)
c3ad80c Language reference: improve introduction, add behavior classes, typographical conventions (#9732)
45d28fa Add container image consistency check (#9861)

v2026.1.2

04 Feb 05:02
8dc2705

Choose a tag to compare

=== Breaking changes ===
f955cbb neural.slang: implement CoopVec-like interface by using CoopMat intrinsics (#9512)

=== All changes for this release ===
8dc2705 Don't rewrite entrypoint in to borrow during ir lowering. (#9869)
a9ba4fc Fix the release CI broken (#9868)
f718c7c Add missing constant folding for fp8/bf16. (#9863)
e9cc1f6 Don't eliminate debug info instructions (#9860)
a920ad9 Use CUDA 13 in all Linux CI workflows (#9851)
3056ebe Add diagnostic annotation system to slang-test (#9853)
a24c5a5 Fix visibility of TargetEnum. (#9834)
f022290 Treat logical AND and OR as constant-fold-able (#9833)
dbe2768 Fix WGSL semantic removal when struct is used as both input and output (#9752)
3e03578 Validate semantic usage for stages, add diagnostic (#9260)
1cf8e77 Expose version string in slang-wasm. (#9832)
29e8e75 Fix data race in expected failure list copying across test threads (#9820)
686beee Update Copilot code formatting (#9822)
8c3ed57 Add support for various array and tuple operations to dynamic specialization pass (#9773)
c49ca30 Port getTargetHostCallable over to the recommended slang api (#9707)
4a0b5ef Fix 8590 - Empty Raypayload IR (#9031)
f72a2a6 Fix empty debug type name for void return types in SPIRV emission (#9749)
45774a4 Support fp8 and bfloat16 types. (#9780)
db758d5 Carry over initExpr when creating UserDefinedAttribute from StructDecl. (#9786)
535637c Update CLAUDE.md for slangpy repro instruction (#9804)
2856c13 neural: add frontend APIs (#9713)
077bba8 Partially revert to fix nightly ci on slangpy (#9791)
39fb1e3 Reapply "Add Linux ARM64 (aarch64) CI supportth CPU-only tests" (#9802)
a1065ee Fix OptiX payload mismatch for types containing bool/half (#9793)
8f05424 Build only completely missing LLVM by default (#9800)
f246695 Add workflows for LLVM caching (#9794)
d3b0cff Revert "Add Linux ARM64 (aarch64) CI support with CPU-only tests" (#9792)
5e0a22a Remove CLAUDE hooks (#9775)
743ddc6 Fix the issue when detecting the reachable inst for auto-diff worklist (#9764)
08c30f0 Add placeholder for update-spirv-tools CI workflow (#9778)
f2bbf83 Remove Slang build cache from RTX Remix nightly workflow (#9779)
d24c8e4 Fix *= in GLSL for vectors and matrices (#9774)
8610741 Add syntax to interfaces, extensions, type specifiers, alias declarations (#9769)
9688eaf Add Linux ARM64 (aarch64) CI support with CPU-only tests (#9725)
be4c8ef Fix #9509: Restrict HitObject.SetShaderTableIndex to DXR native (#9744)
c6ce094 Add [noinline] attribute support for SPIRV backend (#9735)
e705058 Add dynamic specialization logic for OpGetElement. (#9766)
f0719cb Change Conditional<> to Use Vector internally (#9655)
7fdfd5b Enable LLVM caching in Copilot CI setup (#9746)
[BREAKING] f955cbb neural.slang: implement CoopVec-like interface by using CoopMat intrinsics (#9512)
557e45c Add DescriptorHandle Support to AnyValue Marshalling (#9386)
801ae99 Fix issue with dynamic dispatch lowering of externally visible existential parameters (#9751)
efbbc4f Fix an enum lowering bug that can lead to duplicated int lit. (#9740)
fb09d1d Explicitly remove unused ByteAddressBuffer types after the legalization (#9742)
b61ab2a Remove obsolete where-clause note in generics guide (#9710)
7fed198 Language server highlighting fix for generic value param. (#9743)
a59c62c Language reference: add syntax for struct (#9610)

v2026.1.1

27 Jan 15:13
4923e88

Choose a tag to compare

Slang v2026.1.1

=== Breaking changes ===
d4803234f Enable back PR #9230 for SER enabling which were reverted in #9375 (#9504)
d310530c7 Retain switch/case fall-through structure (#9411)

=== All changes for this release ===
4923e8883 Fix Optional none lowering for DifferentialPair (#9562)
f10d60219 Use 64-bit stat on Windows for large files (#9631)
e21bc1b72 Fix temporarily unparented insts wrecking stuff in specializeFunctionCalls (#9718)
812dc3419 spv: assign default names to nameless struct members (#9696)
237d05fd2 Fixes for `reflection-parameter-block` example (#9594)
5a296afd2 Use CUDA 13.0.1 in Linux CI (#9724)
7d9829ab2 Fix RenderDoc F11 step-into failure for cross-module Slang functions (#9650)
68c20f07a Add support for enums in reflection API (#9615)
ad4a20eb2 Fix parameter pack bugs (#9686)
f46882557 Update logic in `_replaceInstUsesWith` to ensure that insts that represent sets are always ordered correctly (#9275)
ac82d5cd5 Guard system dependency aliases against existing targets (#9720)
7e6105f97 Add support for casting DescriptorHandle <-> uint64_t on CUDA (#9665)
0dfb54ab5 Make firstbithigh, firstbitlow and reversebits work with a variety of integer sizes (#9611)
013df68a3 Add a new example for running shaders on CPU via LLVM (#9646)
ff8d636c0 Remove unreachable IR after discard (#9714)
777c038e5 Fix emission of SPIR-V DebugTypeMatrix matrix layout operand (#9708)
9b4461c9e Fix MaterialX shader generation detection on Windows CI (#9607)
94c09c527 Fix default->case fallthrough and add HLSL output tests (#9677)
b4046ee58 Fix#7070 Optimize OptiX ray payload access using direct register method (#9284)
efb3e5d9a Implement variadic rich diagnostics (#9663)
487627001 Make UOI-NCSA license REUSE compatible (#9642)
47e743d9b Re-enabled tests disabled due to the bug in SPIRV-Tools (#9711)
dee968db7 Rerun slangpy test sequentially (#9706)
e7fbdd423 Clone all submodules for repro-remix.sh (#9712)
d4539882b Update Slack webhook for RTX remix (#9701)
c8ddf20bb Update spirv-tools and spirv-headers to v2026.1.rc1 (#9697)
3ad9f69f0 add __floatAsInt expression to support compile time bitcast operation (#9687)
222bbdf3a Update SPIRV-Tools and SPIRV-Headers to latest versions (#9617)
0bc91e371 Add comprehensive version logging to GPU test jobs (#9689)
849a5d12f Misc CoopMat/lambda expr fixes. (#9685)
144ff56cb Enable SPIRV validation for slangpy CI tests (#9645)
bca742677 Enable sizeof/alignof for DescriptorHandle<T> with target-aware resol… (#9671)
261162776 Fix coopvec test failures via glsl on Linux (#9681)
7f02114b3 Update CI container to Vulkan SDK 1.4.321.1 to fix validation layer bug (#9640)
[BREAKING] d4803234f Enable back PR #9230 for SER enabling which were reverted in #9375 (#9504)
689b5fb24 Fix missing Aligned operand for PhysicalStorageBuffer stores (#9644)
57640d501 Fix debug source file name emitting (#9653)
84fee0b02 Enhance diagnostic description format to allow more terse descriptions (#9662)
749a076a5 Fix crash in getSpecializedLinkageName due to implicit String construction (#9633)
6534d832f Remove temporary cmake tar-ball during Copilot setup (#9638)
9bfcb6a8b [LLM] Add LLM instruction for debugging slang issues with slangpy repro steps (#9627)
569db87e1 Skip the URL document checking test of slangpy (#9639)
5894ce5fe Fix incorrect use of reinterpret_cast (#9484)
bc9e59fd3 Fix u64 constant propagation (#9441)
60518d624 Make min/max conform to IComparable interface (#9593)
44c91c532 Fix SPIR-V emit crash for tess factors (#9538)
7d1556c25 Fix issue with existentials in the presence of overloaded expressions. (#9602)
[BREAKING] d310530c7 Retain switch/case fall-through structure (#9411)
d80e15ab5 Improve language reference manual for types (#9560)
bb40ae1c9 Implement different debug levels for spirv (#9457)
eff0c0e42 Fix crashes during parameter binding when entrypoint returns optional (#9525)
4bf4c7911 Fix preprocessor AtStartOfLine flag regression in macro (#9573)
d3938d2b8 Expose float default values in reflection (#9582)
a9d71b648 Fixed scoping for if-let variables (#9561)
b78854158 Add script to reproduce RTX Remix shader compilation issues (#9572)
55e7ed9d9 Fix lowering of nested optional types (#9499)
380dfc545 Fix sizeof(DescriptorHandle<T>) returning 0 (#9571)
8cac39f17 ci: Enable slangpy tests on Linux debug (#9598)
cc399abd2 Add MaterialX integration test workflow (#9490)
cfaccc644 Package static libraries for C++ WASM development (#9556)
70db5bb93 Fix `ReadNone` func property propagation not checking all inst operands (#9527)
b000fc968 Don't emit OpCapability StorageImageMultisample for read-only multisampled textures (#9587)
061b616e0 Add newline character after version output (#9568)
16cf11fc2 Fix corner case in `legalizeStructBlocks()` (#9588)
32c05a731 Added reflection API support for stream output types (#9579)
1b96be36f Add diagnostic for static function accessing non-static member via this (#9586)
f17cb477e Fix depth output mode being dropped when referencing shader parameters (#9577)
26a818f66 Fix typo in BRDFParams variable declaration (#9570)
b1fc2d5b0 Fix crash when calling getEntrypointHash on a specialized entrypoint. (#9566)
7be0f2401 Fix SPIR-V invalid default init interface values (#9522)
65afd68e6 Fix GLSL to HLSL/DXIL compilation by adding semantic decorations (#6678) (#9519)
0b7e9344f Fix SPIR-V debug info source file references for #include and import (#9520)
2685c7f5a Fix ambiguous overload resolution for CoopVec max() with integer argu… (#9532)
539603597 remove temporary dev tests (#9590)
081ad1c48 Update Linux GPU CI container to CUDA 12.5.1 (#9524)
043899b06 Allow extern functions to not have a definition in Slang module (#9492)
2764aab62 Add matrix-matrix, vector-matrix compound multiply-asignment operator for GLSL (#9501)

v2026.1

13 Jan 00:17
e4215bc

Choose a tag to compare

Slang v2026.1

=== Breaking changes ===
0528cdf05 Refactor how pointer sizes work & make 32-bit pointers work (#9493)

=== All changes for this release ===
e4215bc19 Allow passing LLVM downstream args to LLVMBuilder (#9491)
[BREAKING] 0528cdf05 Refactor how pointer sizes work & make 32-bit pointers work (#9493)
186351f07 nix: dev-shell fixes (#9437)
118a65690 Work around hardcoded slangc path in slangpy tests (#9563)
b1da8b2c0 Remove CUDA installer when setting up Copilot (#9557)
69795e376 Add X11 and Vulkan development libraries for Copilot (#9554)
3766cb8c3 Fix CUDA permissions after installation for Copilot (#9552)
d7f9eb408 Add CUDA installation verification to Copilot setup (#9550)
6774547cd Export CUDA paths in each step for nvcc availability (#9548)
1cb2ad742 Install CUDA 12.4.1 for Copilot (#9546)
83b395979 Add CMake and build tools installation for larger runner (#9544)
c6dee4075 Remove container from Copilot workflow (#9542)
e2d30702b Use GitHub larger runner for Copilot to avoid path issues (#9540)
c9c8cf610 Fix incorrect spelling for spirv target and profiles (#9521)
18650ce10 Allow `findFieldIndexByName` to recognize fully qualified names. (#9483)
f45046710 Fix potential null pointer dereference in enum type lowering (#9518)
735059252 Improved diagnostics prototype (#9503)

v2025.24.3

05 Jan 18:26
97c5d06

Choose a tag to compare

=== Breaking changes ===
No breaking changes

=== All changes for this release ===
97c5d06 Fix platform macros.. (#9502)
09fe4ff Preprocessor bug (#9495)
528ddf7 add matrix tranpose support on metal (#9488)
671b391 Use the system-installed slangc compiler when building without dependencies (#9480)
992ec72 Avoid infinite cycle when mangling struct defined inline at a parameter type location (#9482)
7abf3a9 Activtely synthesize AttributeDecl for user defined attribute structs. (#9481)
21296af Add -report-dynamic-dispatch-sites flag (#9273)
fe8bd58 move tests from bug directory to bugs (#9463)
55d680e Preserve emtpy tuple elements in createGLSLGlobalVaryings. (#9479)
794052b Fix mishandling of induction values in loop unrolling. (#9476)
1027aa5 Reduce copying inside SourceFile::setContents; fix non-BOM UTF-16 offset and skip UTF-16 checks if file size is odd (#9407)
2e66e60 Don't generate IR in ComponentType::specialize if spec arg is invalid. (#9453)
f1165f5 Fix Copilot path mapping - mount _work to work not _work (#9473)
23424c8 Add /runner to /home/runner bind mount for Copilot compatibility (#9470)
7ea1506 Emit a warning for a default-constructed interface variable and make it safer (#9421)
c969c4b Remove container specification from copilot-setup-steps (#9468)
3fe13e7 Remove container specification from copilot-setup-steps (#9466)
70df5d2 Fix scope of local variables from inlined functions (#9418)
8312133 Fix incorrect use of reinterpret_cast and union (#9458)
71a5fc1 Fix Git safe.directory configuration for container workflows (#9461)
8968b4a Add packages:read permission for container image authentication (#9464)
2db7bd6 Use Custom Linux CI container image (#9460)
25c1c6e emit-spirv: handle IRVoidType in emitDebugTypeImpl (#9414)
d26153e Install curl before Copilot preparation step (#9432)
a9d10b8 Revert "Add workspace mounts to container options for Copilot compati… (#9426)
262c3a6 Add workspace mounts to container options for Copilot compatibility (#9424)
dd4ba6e Skip slangpy-samples tests on macOS debug builds (#9408)
db9dd16 Configure Copilot Coding Agent for ARC self-hosted GPU runner (#9415)

v2025.24.2

19 Dec 12:43
ca70f00

Choose a tag to compare

Slang v2025.24.2

=== Breaking changes ===

No breaking changes

=== All changes for this release ===

ca70f0012 Enable slangpy tests for Linux (#9378)
d116d484d LLVM IR target (#8960)
5d775e282 Support for CUDA 13.0 paths (#9239)
40ae503b6 Add missing DebugLines in two cases (#9371)
d00f869e1 Fix remaining UBSan errors reported during CPU-only Linux testing (#9394)
a19633e54 Enable slangpy and slang-rhi tests on macOS debug builds (#9387)
078241317 Fix the usage of the SLANG_APPLE_FAMILY macro (#9376)
6ca87a470 Fix UBSan errors: unaligned loads/stores in bytecode VM (#9289)
b6a575f56 Fix tests using `SLANG_CHECK` instead of `SLANG_CHECK_ABORT` (#9358)
4a7e78f12 Fix negations of `INT64_MIN` when handling integer literals (#9330)
8edde00e3 Add "release-asserts-only" option to SLANG_ASSERT environment variable (#9363)
1150d2bbd Fix UBSan errors: RIFF unalignment (#9254)
9122a7c5e Fix UBSan errors in `slang-memory-arena.h` (#9286)
d54ea11e5 ci: Use tags for slangpy-samples (#9329)
f8b0b93ae Fix OptiX include path search on Linux (#9391)
1d0111f06 Don't create a dependency on `slangc` when `SLANG_ENABLE_SLANGC` is disabled (#9366)
e1763e9ff Add more Slang support for Shader subgroups (#9319)
53eb8580b Generate diagnostic structs from lua definitions for diagnostic prototype (#9380)
706bc9da8 Fix coverage nightly workflow: Add retention policy integration (#9392)
9ab771820 Enable Slack notifications for RTX Remix nightly CI (#9377)
a2ba47af0 Fix UBSan errors: member calls on null pointers (#9355)
695561600 Emit SPIR-V OpTypeMatrix for uniform and storage buffers (#9341)
0ea091454 Get target-specific layout for DescriptorHandle<T>, refactor Type-kind mapping in layout creation (#8383)
6514add2d Fix various issues in `slang-glslang` (#9305)
984e27efc Remove unused byte encoding functions (#9332)
c28150ecc Fix incorrect use of `UIntSet::clear()` and rename it to `UIntSet::unsetAll()` (#9292)
95f38acdc Remove unused MD5 implementation (#9333)
1717891a1 Fix Clang warning introduced by PR #7968 (#9311)
e9e9817a3 Fix UBSan errors: invalid value for type `SlangLanguageVersion` (#9288)
dbfbe1a0e Remove OpenGL from targets in README (#9337)
fa75c8487 Introduce lua description file for new diagnostics format (#9379)

v2025.24.1

16 Dec 15:04
5c5fe4d

Choose a tag to compare

=== Breaking changes ===
12b9782 Revert pr 9230, 9287 and 9321 (#9375)
3fd9f50 CI test-slangpy: use a dedicated slangpy-samples branch (#9312)
18d0a3a Add SER support for DXR 1.3 and VK EXT extensions (#7292, #9023) (#9230)

=== All changes for this release ===
5c5fe4d Fix fd leak (#9362)
[BREAKING] 12b9782 Revert pr 9230, 9287 and 9321 (#9375)
5e8c5ae Document generic parameters in attributes (#9298)
17818f2 Fix bindless resource heap placed in wrong descriptor set (#9281)
da483a3 Update to latest external/slang-rhi (#9357)
d040c9b Move existential specialization diagnostic to the specialization pass (#9359)
5b8d641 Fix UBSan errors: memcpy() and memcmp() called with null pointers (#9361)
e500170 Fix UBSan error: load of invalid SpvOp value (#9349)
379113b slangd: Canonicalize all paths found from search paths into URIs (#9279)
eaad58a Fix OpCapability Int64ImageEXT detection (#9308)
2b8534c Enable Linux GPU CI with containerized builds and tests (#9173)
19c632c Use label vulkancts for VK-GL-CTS nightly (#9353)
4fd8f91 Use curl instead of gh CLI for fork PR detection (#9118) (#9351)
9f2c6d5 Install gh CLI and jq on Windows self-hosted runners (#9118) (#9347)
d67d381 Fix #9018 - HitObject.GetCurrentTime had incorrect availability (#9321)
3e017fc Add CUDA support for HitObject.GetWorldToObject/GetObjectToWorld (#9287)
0aae485 Add SLANG_ASSERT environment variable support (#9313)
9228bba Fix pragma warning rejection when using import statements (#9296)
cfdbbba Add tool to split IR dumps into separate section files (#9247)
5921ee6 Fix CI workflow branch fetch for fork PRs (#9327)
fe7c6f3 Fix jq single-quote argument handling on Windows (#9320)
[BREAKING] 3fd9f50 CI test-slangpy: use a dedicated slangpy-samples branch (#9312)
d66c2c6 fix typo: unamed -> unnamed (#9299)
dea92ad Fix the missing newline characters for the breaking changes (#9293)
c3542ad Handle uninitialized resources in structs (#9151)
d5eaf82 Add name hint to DispatchMesh payload global variable for debuginfo (#9161)
025c394 Fix internal error when accessing ConstantBuffer elements (#9280)
[BREAKING] 18d0a3a Add SER support for DXR 1.3 and VK EXT extensions (#7292, #9023) (#9230)