Releases: shader-slang/slang
v2025.24
=== Breaking changes ===
72761cc Add error diagnostic for integer literals that don't fit into uint64_t (#9208)
cc73e8d Remove the deprecated hlsl_coopvec_poc capability that was for POC CoopVec (#9213)
4280f24 Add type-flow analysis pass for specialized dynamic dispatch (#7968)
=== All changes for this release ===
65749cf Diagnose if extension declares new interface requirements (#9276)
[BREAKING] 72761cc Add error diagnostic for integer literals that don't fit into uint64_t (#9208)
2db82e1 Fix CMake CMP0135 deprecation warning (#9243)
cc532e4 Fix a bug in const-fold for array size (#9259)
dcb2b8e Fix default implement method in generic interface (#9248)
3f968f0 Enable passing tests with via-glsl option (#9264)
[BREAKING] cc73e8d Remove the deprecated hlsl_coopvec_poc capability that was for POC CoopVec (#9213)
0786817 Allow generic workgroup size. (#9245)
26d2bf8 Handle a file open attempt on a directory (#9217)
89a1f99 Save the base expression of ParenExpr in serialized AST (#9255)
b77ace7 Fix the issue that produce long mangled name (#9218)
bd436a3 Revert "Add diagnostic logging for slang-test debugging (#9066)" (#9246)
0358e80 Fix a bug in PolynomialIntVal's substitution logic. (#9244)
9536d2f Fix rewriteValueUsesToAddrUses and add regression test (#9113)
[BREAKING] 4280f24 Add type-flow analysis pass for specialized dynamic dispatch (#7968)
e694c6c Enable Claude Code workflow on Windows self-hosted runners with GPU (#9204)
d8c5a81 Add VS2026 Toolchain Support for CMake 4.2 (#9181)
a96f01a Fix subtle bug when looking up symbols during pre-linking step (#9214)
ea460c8 Emit header files for cpp and cuda targets (#3938)
25b48c0 Fix the bug when checking cuda version (#9207)
412d347 Fix nested switch with continue incorrectly collecting parent loop blocks (#9166)
e3e2262 Handle nullptr in RenderTest (#9194)
2e692ba Add workflow_dispatch trigger to Claude workflow (#9196)
82f7892 Add diagnostic logging for slang-test debugging (#9066)
24c18cd Fix mojibake in error messages when .slang-module can't find source file (#9147)
ddd642c Add error handling in createCompositeComponentType() for nullptr entries in componentTypes[] (#8844)
f7c497a Correct HitTriangleVertexPosition documentation (#9193)
abd333a Fix lowering bug for generic static variables. (#9185)
e61dcc8 Preliminary support for spirv workgroup pointers. (#9186)
2d65cc7 Issue a warning if requested bindless space index is not available (#9190)
8251062 Silence unused variable warnings in CUDA prelude (#9144)
52305ee Allow override keyword inside extension (#9156)
3f1798a IR validating pass wrapper (#9159)
6515cd9 Check compiler version for the _float16 support (#9135)
v2025.23.2
Slang v2025.23.2 === Breaking changes === No breaking changes === All changes for this release === 8916cc6fb Update SPIRV for VulkanSDK Release Dec/2025 (#9180) 0c7c9592d Filter out unused vertex attributes to fix WARNING-Shader-OutputNotConsumed (#9138) 3ba260b81 Fix derivative implementations for `log2`, `exp2` and `log10` (#9175) b001e6782 ci: fix RTX Remix workflow by skipping CPack packaging (#9172) a86e7844b Fix Linux CUDA detection in render-test (#9171) 3ee5766d1 add config file to gitignore (#9158) 073c50abe Add nightly RTX Remix shader compilation test (#9015) 94e40ef8d Tweak logic for SPIRV max ID bounds (#9103) cc6b475cb Fix Enum Constructor Specialization in Generic Types (#8996) f487b9b5c fix bug in shared memory pointer (#9105) 307eff671 Implement GetElementCount for TypeCastIntVal (#8950) 98be4beca reserve space upfront for UIntSet unionWith (#8933) 3b21af7e7 Docs: added showcase of how properties can be used (#9082) dc6f50d64 cmake: Fix for race when release in progress (#9136) 0721a5a9a Legalize matrix operations where only operand needs lowering (#9134) 702c1e7e5 Avoid building Slang with slang-rhi for Falcor test (#9139) b77f79a0e Add diagnostic guidelines (#9130)
v2025.23.1
v2025.23
*PS: Please use v2025.23.1 if you need to use aarch64/windows build.
Note that there are two breaking changes in this release.
- with #9020, Slang will requires git-tag to present when building Slang from source
- with #9005, Slang will return SLANG_UNKNOWN_SIZE as a special return value for reflection api functions when the array size is unknown.
=== Breaking changes ===
ef56879 Add SLANG_VERSION for source archives (#9020)
b5543cf Introduce SLANG_UNKNOWN_SIZE as a special return value for reflection api functions (#9005)
=== All changes for this release ===
[BREAKING] ef56879 Add SLANG_VERSION for source archives (#9020)
db30f83 Update claude-code-action to v1 with breaking parameter changes (#9119)
970f046 Fix intermittent build failure on examples (#9101)
[BREAKING] b5543cf Introduce SLANG_UNKNOWN_SIZE as a special return value for reflection api functions (#9005)
a6667bc Disable imgui and stb dependencies in builds that disable test and gfx targets (#9049)
fc6e76d Correct inheritence documentation and add reminder to update docs (#9117)
5c8f5b4 Add layout rule for ending CUDA entry point parameter structs without padding (#9090)
464c036 Mark HLSL only RWStructuredBuffer::IncrementCounter and DecrementCounter (#9091)
c25ca8e Fix generated SPIR-V for GetClusterID() (#9107)
6316dad Disable Clang optimizations for Session::get*LibraryCode() functions (#9069)
cc00aea build: Inform user when downloading (#9094)
7cf2a23 Fix/change string template meta keyword (#9076)
74b3937 Soften the deprecation notice tone for slang-torch documentation (#9075)
33bc5ee Revert "Fix intermittent build failure on examples (#9059)" (#9095)
9674aee UserGuide: Add missing ref to GLSL Target (#9083)
064ca3d Declare OpCapability ClipDistance when needed (#9089)
e6bdd92 GLSL shadow cube array fixes (#9084)
a82e1ca Improved half/float16 support for C++ & CUDA targets (#8986)
23d7b4c Use posix_spawn in slang-unix-process.cpp (#9081)
6f446e4 Fix #9051: Add atomicAdd wrapper for signed int64_t on CUDA (#9064)
b3758d8 Fix int64 typedef cuda by making it (#9065)
6a64352 Support ByteAddressBuffer legalization with dynamic branching (#8815)
938e51e Fix documentation of __targetHasImplicitDerivatives() (#9014)
3383481 Update SPIRV module (#9063)
768ae51 Fix intermittent build failure on examples (#9059)
d90d869 Fix generic function overloads in reflection API (#9052)
1152af7 Fix Sample() with depth texture + sampler comparison state; add minimal repro (#9043)
7d05189 Add HitObject Optix implementation for HitObject.GetObjectRayOrigin and GetHitKind (#8990)
ec34d69 Add type unification logic to handle LambdaDecl/Functor's with FuncType (#9010)
1184252 Update slang-rhi and mlp-training-coopvec example (#9036)
ce376e1 Add placeholder workflow for RTX Remix shader compilation testing (#9042)
5ec7267 Add CI testing for slangpy-samples (#8938)
fd3b729 Implement SampleCmpBias and SampleCmpGrad (#8931)
e631252 Fix missing debug line numbers for repacked struct members in SPIR-V (#9028)
75aefce Improve typename deduction in slang-emit-spirv (#9026)
d9b92cc Validate -render-features in render-test (#8940)
0f4d0f6 Add OptiX multi-level traversal intrinsics (#8660)
1c4a26b Fix FileStream EOF detection (#9017)
a025170 Implement emitOpDebugTypeFunction for SPIR-V (#8993)
d1fbce3 Fix null pointer dereference in emitCalleeDebugInlinedAt (#8978)
3ecc3b6 Fix slang's slangpy CI testing across versions (#8969)
v2025.22.1
=== Breaking changes === No breaking changes === All changes for this release === 01fdbb8a1 Fix incorrect debug function type (#9012) a3afdc6be Fix parseCommandLineArguments not populating TargetDesc format and profile fields (#8967) f8e97d9bd Preserve aliasedType during module serialization for default export types (#8997) 020552abd Add minimal repro for issue 8920 and update SPIRV tools and headers (#8981) b14d2d446 ci: Add automated check for SPIRV-Tools generated files (#8906) a89e9ec20 Remove unnecessary cmake warning (#8998) 251f1ff16 Incrementally update candidate extension cache (#8966) e7cce27ab Fix ComPtr asssignment of raw pointer in the doc (#8994) 664fecd55 Cleanups around around parameter-passing modes (#8754)
v2025.22
=== Breaking changes === cd966ad22 Update #include <> search path (#8976) === All changes for this release === 3838b3953 [Documentation] [minor] Clarify how compile slang to a static lib (#8817) 09073ba7d set uniformAlignment field for the parameter group type layout (#8974) ef580c14e Fix Clang and ld warnings (#8634) [BREAKING] cd966ad22 Update #include <> search path (#8976) 77dfdcf24 Add name hint decoration in handleSingleParam (#8936) 8c0c48a66 Fix ignored test count when retried (#8775) 27461218d Fix compilation when building Slang as part of another project (#8932) 26d5aca8d Add _t suffix to integral typename hints (#8935) c84bf11b1 Fix segfault when emitting reflection JSON without compilation targets (#8910) df7edca74 add "slang.workspaceFlavor" to language server config, allowing selecting standard/vfx (#8915) dc8e18f2d Implement CoopMat intrinsic for CUDA target (#8868) 18e32d34d Fix handling of include lines with spaces by slang-embed (#8909) 59e1805bc Fix crash when emitting DebugInlinedAt (#8881) 4a06725d3 Link time constant robustness, separate invalid indices from sizes (#8924) c94ce7239 Tell LLMs about FIDDLE statements (#8942) c3ebff58f Add LayoutOffset type (#8947)
v2025.21.2
=== Breaking changes ===
286bd05 Fix macOS code signing for versioned libraries (#8926)
7ec3eeb GLSL: Implement implicit/explicit LOD handling in texture() and variants (#8859)
=== All changes for this release ===
6bf2009 Prevent copy-elision pass for CudaDeviceExport (#8941)
[BREAKING] 286bd05 Fix macOS code signing for versioned libraries (#8926)
486a168 Treat IR_RayQueryType alike opaque types (#8922)
3ae032f Add nightly builds to glibc-2.27 release workflow (#8898)
35368fc Skip lowering SPIRV bitcasts that can use OpBitcast (#8361)
8b2faea Remove unnecessary intermediate uses of CapabilitySet (#8835)
[BREAKING] 7ec3eeb GLSL: Implement implicit/explicit LOD handling in texture() and variants (#8859)
8bdd1af fix capability set equality operator (#8925)
9da177d Pre-create test-servers sequentially before threading (#8923)
v2025.21.1
=== Breaking changes ===
2292e52 Remove pending layout functionality (#8762)
=== All changes for this release ===
72eb449 Add specific labels for the benchmark to pick right runners (#8918)
74fc5b1 Fix testing multiple OptiX versions (#8905)
c25878d Correct output buffer size in nested parameter block test, add CPU target test (#8897)
55f3131 Add multi-platform coverage reporting with historical tracking (#8888)
a148f56 Fix CTS workflow after slang lib renaming (#8903)
[BREAKING] 2292e52 Remove pending layout functionality (#8762)
329f40d Deduplicate Capability Sets (#8829)
4755029 Fix example app triangle on macOS (#8889)
95db022 Make precompiled module deserialization more robust. (#8884)
1b18ac5 Update slang-rhi (#8890)