Skip to content

Releases: shader-slang/slang

v2025.16

04 Sep 18:16
20373ad
Compare
Choose a tag to compare
Slang v2025.16

=== Breaking changes ===
7758625d3 [CBP] Pointer frontend changes + groupshared pointer support (#7848)

=== All changes for this release ===
20373ad01 Fix#8128 LSS and sphere hit object intrinsics fail to compile (#8339)
5ec41675d Enable CUDA support for additional HLSL intrinsic tests (#8293)
b45706b3f Handle slang-test command comments better (#8363)
a766d2744 Diagnose on structured buffers containing resources (#8222)
bf607e2f3 Fix#8085: Batch-9: Enable cuda tests (#8269)
f5fae0108 Add Optix Intrinsics Coverage (#8159) (#8310)
639978008 Fix#8086: Batch-10: Enable cuda tests (#8270)
4886bf95f manually config ccache locally (#8351)
7d15d388d Enable ccache for self-hosted runner (#8345)
f02b08490 render-test: Change D3D12 default to sm_6_5 (#8320)
21693abbd Emit DebugInfo for the legalized entry point parameters (#7703)
b46f46c5e Remove ForceUnroll attribute from link-time specialization documentation (#8225)
288a63dea Remove unused variable in slangc::main (#8325)
[BREAKING] 7758625d3 [CBP] Pointer frontend changes + groupshared pointer support (#7848)
450ef7934 Enable slangpy and slang-rhi tests for Mac (#8297)

v2025.15.1

28 Aug 22:58
74c39ea
Compare
Choose a tag to compare
74c39eaa3 Revert "Reduce the dependency to thread library (#8216)" (#…

v2025.15

27 Aug 02:31
1681bc6
Compare
Choose a tag to compare
1681bc67f Fail slang-test when VVL printed errors (#8280)

4e9ee1dc8 Fix Metal 8-bit vector type names: emit char/uchar instead of int8_t/uint8_t (#8223)
0b87355f9 Update slang-rhi deps for gfx-unit-test (#8237)
b36659eca Fix `shouldEmitSPIRVDirectly` (#8019)
70d70c1d3 Fix warnings from CMake version 3.31 (#8227)
5060042bb fix a autodiff crash (#8259)
7b30ad489 Add WASM platform support to release workflow (#8264)
404a8635f (origin/master, origin/HEAD, master) Print GPU driver version in CI.yml (#8275)
1562f98c0 Fix#8084: Batch-8: Enable cuda tests (#8268)
7b4d02803 Fix#8083: Batch-7: Enable cuda tests (#8267)
53fa12e1b Fix#8082: Batch-6: Enable cuda tests (#8266)
67cf14034 Fix#8081: Batch-5: Enable cuda tests (#8263)
7ae655c2a Fix#8080: Batch-4: Enable cuda tests (#8261)
cd9e1f671 Fix mesh shader OutputIndices subscript error by adding missing ref accessor (#7929)
3ca2e4751 Fix readlink missing include (#8260)
a5e6ddd00 (arial/master) Add record and replay support for IComponentType2 (#8215)
44815ba48 Fix SLANGC_EXECUTABLE search path in slangConfig.cmake (#8200)
c45f02579 Fix reflection JSON writing userAttribs section twice for some cases. (#8210)
35f8e092f Introduce CDataLayout & -fvk-use-c-layout (#8136)
05f0f5603 Implement SV_VulkanSamplePosition (#8236)
cbd73dde3 Fix nextafter() (#8195)
619de903b Add more system dependency options to CMake (#7987)
82e3fc9c1 Add Metal support for WaveGetActiveMask and WaveActiveCountBits (#8218)
a26a11ff5 Enabling via-glsl test for "merge" event (#8133)
113327194 Reduce the dependency to thread library (#8216)
e0c20a076 Updated support to enable batch3  (#8219)
e4a7129b8 Fix#8076 - Re-enable slangpy test (#8087)
785548a49 Add multiple slang installations note to doc (#8231)
6321bf07f CMake: Guard inclusion of VULKAN_HEADERS and SPIRV-Headers (#8124)
ae1a93b57 Emit descriptor handle correctly for ParameterBlock<DescriptorHandle> (#8206)
e9a309678 Fix error in IR stable names Git diff CI script (#7954)
d9851d4e4 Make LLDB IR data formatters more robust (#7927)
09054bff3 Don't let clang-format reorder Fiddle `#include`s (#7887)
2f68f98a3 Fix issue of double lowering issue a differentiable function (#8182)
cc93e2c35 Fix constructor overload ambiguity with scalar and vector parameters (#8109)
1a4ccba64 Show usage of `FIDDLE END` in Fiddle doc example (#7888)
c3df36043 Enable CUDA Test Enablement - Batch 1: Autodiff Tests (1-16)  (#8139)
8ba38bcd6 Update capability atoms reference page (#8138)
3639e71df Update cuda context creation to support cuda 13 (#8181)
af27de015 Add static functions to create blobs from data (#8179)
dcda42e7d Use 64bit int instead of emulation on metal (#8180)
f75bf474e [CUDA] Fix incorrect `kIROp_RaytracingAccelerationStructureType` emitting logic (#8168)
feb1569d9 Prohibit use of buffer.GetDimensions on metal (#8156)
cfd08da10 Clean up `natvis` and use fiddle to generate info needed for `.natvis` debugging (#8192)
dd06524f5 [Capability System] Fix bug where capabilities do not correctly propegate if AST-parent has target+set the AST-child does not (#8175)
ceb2e8d04 Fix typo in "compilation ceased" error identifier (#8189)
90a9515fc Handle SV_Barycentrics on metal (#8163)
80b46bd21 Fix error for not defining `Val::_toTextOverride` (#8177)
d7e2bac2d Remove the semantic decoration from the original entry struct (#8146)
047b8af48 Make the issue headings bigger (#8143)
3618f7a4c Enable CUDA testing for batch 2 (#8147)
719ecf3bf Allow `flake.nix` users to run Vulkan tests (#8152)
5b64150cd Do case-sensitive search for category first in slangc -h (#8142)
dcdebc1a7 Allow specializing entrypoints with generic value args or variadic types from API (#8119)
fc6aea374 [SPIR-V] Emit control flags for `branch/flatten` decorations (#8134)
6d54b66ca Be conservative for checking if PR is doc changes only (#8130)

v2025.14.3

09 Aug 09:46
b7df3c7
Compare
Choose a tag to compare

=== Breaking changes ===
No breaking changes

=== All changes for this release ===
b7df3c7 Fix atomics error diagnostics (#8117)
06b8e69 Disable "Copilot Setup Steps" on "push". (#8129)
30646d4 Fix tests\bugs\op-select-return-composite.slang Test Failing (#8132)

v2025.14.2

08 Aug 21:43
07f21ee
Compare
Choose a tag to compare

=== Breaking changes ===
No breaking changes

=== All changes for this release ===
07f21ee Error if super-type capabilities are a super-set of sub-type (#7452)
719772c Initial copy elision pass regression fix (#8126)
5d1ba37 Diagnose on array of parameterblock instead of asserting (#8123)
c7c4816 Fix FunctionReflection getName() returning null for overloaded functions (#8113)
e595743 Fix intrinsic LoadLocalRootTableConstant for optix (#7949)
4721b6e Update LLVM from 13.0.1 to 14.0.6 (#8031)

v2025.14.1

07 Aug 16:54
7cd8130
Compare
Choose a tag to compare

=== Regression ===
We found that the following commit causes a regression and it is fixed on the release v2025.14.2.
063cbea Initial copy elision pass (#8042)

=== Breaking changes ===
No breaking changes

=== All changes for this release ===
7cd8130 Support expand on concrete tuple values. (#8106)
67a9692 Add new _getName to get extension decl names for core module docs (#7985)
9ed7b52 Add warning for comma operators used outside for-loops and expand expressions in legacy mode (#7984)
063cbea Initial copy elision pass (#8042)
9e26858 export fewer things from module targets (#8089)
d0848ab Run extras/verify-documented-compiler-version.sh only when built (#8097)
1088e57 Add a new option to use hash for release-note script (#8096)
f241b14 Fix atomic fp16 vector SPIRV emit (#8104)
631a4c3 Improve performance of AST deserialization (#7935)
b9aad66 Add Discord server link to Slang internal error messages (#8026)
de7ccaf Fix unused space discovery for bindless heap. (#8075)
b9f999b Enable on-demand deserialization of AST decls (#8095)
b7039f0 Add lock file to .gitignore (#8029)
b152f1b Add back GFX smoke test (#8030)
ea600fa Document how to ignore tests (#8049)
e0b9125 Fix GetDimensions to use mipLevel for SPIRV (#8065)

v2025.14

06 Aug 21:00
3525765
Compare
Choose a tag to compare

=== Breaking changes ===
No breaking changes

=== All changes for this release ===
3525765 A new approach to AST node deduplication (#8072)
5074c49 Fix noperspective modifier for SV_Barycentrics in SPIRV and GLSL (#8067)
d107327 Fix 7723 - Add autodiff tests (#7919)
68b0125 Add reflection api for overload candidate filtering. (#8066)
8367510 Implement SPV_EXT_fragment_invocation_density (SPV_NV_shading_rate) (#8037)
2d775b5 Bring back hooks for auto formatting and ensure build works (#7811)
9a16700 Enable compute/ dir which passes (#7991)
de6a87a Add missing ASTBuilder methods for int types (#8056)
ce53e9c Clarify downstream and direct compilation paths in design overview doc (#8021)
301ffb1 Fix #pragma warning not working with multifile modules (#7942)
4131474 Omit "Repro" category from default help text output (#8032)
3f12964 Add support for pointer literals in metal (#8040)
34840bb fix overload in extension issue (#7999)
8a15efb Drain sink when single-argument constructor call fail (#7883)
6239a67 Reenable debug-layers on CI (#8017)
ef743e7 Enable debug-layers for examples when not using test-mode (#8024)
a660640 Restrict the release tag name to a pattern the build script expects (#8027)
374026d disable ray-tracing-pipeline test (#8023)
bdda8a9 Fix 7441: CUDA boolean vector layout to use 1-byte elements (#7862)
7a13344 Omit "Invalid" capability from slangc -h output (#8020)
5e24630 Omit listing values in slangc -h cmdline output, show how to list them seperately (#8012)
96346cd Omit "Internal" category from default help text output (#8013)
e313300 Fix segmentation fault in ray tracing parameter consolidation. (#7997)
30fd3c6 Add matrix select intrinsic (#7566)
aefd1e3 Handle debug-layer messages in a separate channel (#7988)
4a255d2 Fix bug in ci test (#8005)
8e1a6a1 Update to latest slang-rhi (#8006)
29f5d1f Exclude a list of expensive slang-rhi tests to speed up CI (#8004)
66301ab msvc style bitfield packing (#7963)
db59c22 Reduce merge_group CI workload. (#7996)
c4dd2eb disallow static const variables without default-value (#7993)
5f9547b [Language Server]: Don't eagerly check file upon open doc. (#7995)
92ee292 Lowering unsupported matrix types for GLSL/WGSL/Metal targets (#7936)
42dc521 Disable more CI workflows on master push. (#7983)
4fdc967 Disable debug-layers temporarlily on CI (#7972)

v2025.13.2

30 Jul 03:00
b8663a5
Compare
Choose a tag to compare
Slang v2025.13.2

=== Breaking changes ===
No breaking changes

=== All changes for this release ===
b8663a5d9 Fix ICE when immutable value is passed to a bwd_diff function. (#7973)
48efc6038 Fix Metal invalid as_type cast for 64-bit RWByteAddressBuffer.Store values (#7843)
2db6ac97a Fix slang-no-embedded-core-module-source embedding core module (#7885)
ff96d5935 Invoke `clang++` on C++ code instead of `clang` (#7958)
855b1a262 [Language Server]: Show signature help on generic parameters. (#7913)
ea6f8551a Detect uses of uninitialized resource fields (#7962)
1da9019e9 Improve diagnostics over ambiguous references. (#7930)
e8797496b Fix CUDA backend missing U32_firstbitlow implementation (#7921)
a2d93ae01 Disable automatic `#include` insertion for clangd (#7951)
5f8475bee Fix issue in multi-level break elimination by handling multi-level continue statements (#7953)
4ca545ed9 Update slang-rhi to fix CI error on debug. (#7946)
6d399804a Fix broken links in User Guide (#7938)
d311efd9d Fix failing CoopVec tests (#7937)
c068bdea4 Fix mesh shader reflection JSON output (#7868)
6f60f16e0 Fix nv_viewport_mask semantic to emit SpvBuiltInViewportMaskNV (#7904)

v2025.13.1

25 Jul 21:27
9cfdf5d
Compare
Choose a tag to compare

=== Breaking changes ===
ed8add1 fix #7869 (#7871)

=== All changes for this release ===
9cfdf5d Fix SLANG_USE_SYSTEM_SPIRV_HEADERS=TRUE (#7916)
c0726e1 Fix for Generic Function Redefinition Error (#7891)
c5091f0 Add combined texture-sampler flag to reflection API to differentiate Texture2D from Sampler2D (#7901)
528ca0d Fix compiler crash when enum is used as vertex output data (#7915)
fa946c6 Fix SPIRV OpMemberName member indices (#7912)
1a88488 Fix metallib-asm target parsing by adding missing comma (#7902)
138efb9 Avoid early specialization for witness tables in SimplifyIR (#7636)
a9d1cc5 Add test for Metal pointer uniform parameter (#7850)
8ccd495 Organize code better by splitting some big files (#7890)
2d23a96 Fix confusing error messages for interface return type mismatches (#7854)
f78d752 Include Inst UID in some assert failure messages. (#7882)
26b9a17 Skip creating transitive witnesses for interface conformances that are inherited through structs (#7597)
9666fbc Document how to use LLDB in the Slang codebase (#7809)
559c830 Remove unnecessary processing in the release note script (#7884)
c48e355 Add slang-ast files to gitignore (#6901)
f9f23cb Update document to include lua build step (#7886)
7b4c723 Fix MSVC compiler complains about different calling convention between interface and impl when building Win32 binaries (#7845) (#7872)
876b21f Add LLDB data formatters for Slang IR (#7828)
[BREAKING] ed8add1 fix #7869 (#7871)
387ba5b Added small section about default values of struct members (#7844)
165a95e Fix visibility of synthesized Differential typedefs. (#7865)
8a36695 Fix public unscoped enum constants not visible across module boundaries (#7864)
b16d4e9 Fix scalar to array conversion for tessellation factors (#7837)

v2025.13

22 Jul 23:49
6e0c63b
Compare
Choose a tag to compare

=== Breaking changes ===
No breaking changes

=== All changes for this release ===
6e0c63b Fix segfault when using -separate-debug-info with unsupported targets (#7777)
52a4589 Fix crash when private ctor is used for coercion. (#7858)
0d26dba Fix findFunctionByNameInType to preserve functions with different signatures (#7827)
f25e5a8 Add CI to check ir module versioning (#7821)
e6906d6 Add Python type stubs for LLDB (#7826)
9d47a35 Fix Conditioanl<T, false> fields with a semantic. (#7855)
9adac40 Fix capability generator to sort capabilities alphabetically within header groups (#7851)
13dd014 Add command-line arguments to examples (#7835)
a77d22b Fix C-style casts in GLSL pointer cast operations (#7841)
368ddbb Add utility to trace creation of problematic IRInsts to assist LLM in debugging (#7820)
7343c71 Fix D3D12 test failure without Windows Developer mode (#7831)
4d514f7 Fix enum array indexing by adding implicit conversion support (#7815)
3df9fe8 Add comment support to expected-failure files in slang-test (#7817)
7027359 Fix debug info generation for let variables in SPIR-V output (#7743)
c901338 Claude: increase tool timeout setting. (#7818)
48b6e24 Lower int/uint/bool matrices to arrays for SPIRV (#7687)
85edfb1 Add bounds checking for out-of-bounds array access with constant indices (#7814)
447d73f Fix GLSL global const diagnostic regression (#7808)
094d1ba Prelink ForceInlined functions during lowering. (#7812)
ed1a0b8 slang: Update ir-instruction-definition.md to reflect changes to operand specification (#7804)
150ec59 slang: Add support for generating getters for IR struct defs. (#7725)
ab5a815 fix typo (#7794)
c9ece34 mention adding new stable names manually (#7802)
4dccdff fix const qualifier for specialization constants (#7640)
b138e3f Fix BitCast emitting bit shifts with too small integer types (#7792)
3485710 Merge NamePool and RootNamePool into a single type (#7797)
28758e0 Perf improvements to IR serialization (#7751)
020a160 Improve lookup performance. (#7798)
5937e1e Fix duplicate mangled names for interface requirements (#7764)
cff6eab Further increase claude action limits. (#7803)
041e05f Increase timeout of claude workflow to 6 hours. (#7801)
f081b86 Document IR changes (#7781)
3e42d1b bump and pin cmake formatter version (#7800)
1f3d537 Fix formatting (#7799)
73f9aeb Fix duplicate DiffPair struct generation for row_major matrices in autodiff (#7728)
80f43f4 Strip debug info only for the SpvOpExtInst of debug import type (#7779)
0bc89f2 Fix CUDA issues with texture reads and surface writes (#7780)
56e91e9 Diagnose on initExpr of a global const decl (#7711)
bcd5332 Note that Slang::String is owned/null-terminated (#7648)
b282d0d Correct help text for -dump-intermediate-prefix (#7768)
439e025 Document why failing VVL coop-vec tests cannot be enabled & minor cleanup/bug-fix (#7754)
223ccd4 Fix Metal pointer type emission in entry point parameters (#7759)
299eb0c Fix GLSL memory layout qualifiers not applied to uniform buffers or cbuffers (#7740)
a8519e6 Fix WGSL sign function to return correct int type instead of float (#7739)
652a8ee Add clear diagnostic for unsupported float types in generic value parameters (#7737)
21a6626 Emit additional diagnostic for invalid pointer taking operations (#7663)
f48fc78 Debugging code improvement for IR tracking (#7770)
12759c4 Add Claude local setting files to .gitignore (#7771)
73e9987 Fix slang-generate segfault when parsing $(()...) (#7683)
d964555 Replace [KnownBuiltin] string-based comparisons with enum-based system (#7714)
66d915a Update issue templates
50ba69b Update issue templates
4af65f3 Update issue templates
3714380 Fix language server crash. (#7756)
db06fbb Let flake.nix users run extras/formatting.sh (#7682)
d395902 Add WorkgroupCount function (#7734)
e16b5ca Update claude instructions to help with debugging. (#7732)
1e1a49c Fixup address spaces after inlining. (#7731)
d8d0b89 Enable (at least a sub-set of) CoopVec tests that are disabled (#7706)
704d0c7 Fix unnecessary Int64 SPIRV capability usage in pointer marshalling (#7717)
243f522 Fix segfault with Ptr extension using 'This' type reference (#7719)
39f3c6c Use stdout for --help text instead of stderr (#7730)
1dc32b8 Add DebugGlobalVariable instructions to SPIR-V output (#7686)
e3afef1 Fix metal segfault by check vectorValue before accessing (#7688)
eaaf019 Use claude action v0.0.31 to avoid premature termination.
5756777 Fix IEEE 754 NaN comparisons in constant folding (#7721)
b20b929 Modify CLAUDE.md for slang project better (#7720)
90c34e3 Ensure generic constraints are checked before inner extension. (#7685)
7764b83 Fix issue in match parameter type that depend on an associatedtype. (#7707)
0ddb2fc Add slang-gfx build target back for Falcor (#7700)
1eb6280 Configure the surface with right format (#7710)
d0f342c Fix int16_t/uint16_t support for WGSL target (#7692)
6f11c50 Only append slangc --help value categories if explicitly specified (#7712)
850df79 Fix CommittedRayInstanceCustomIndex generating wrong SPIR-V opcode (#7659)
df398fa Fix#7676 - Add Claude Code Assistant for using LLMs (#7673)
aa3cc1e Fix SV_VertexID and SV_InstanceID crash with -preserve-params in SPIR-V emitter (#7691)
c1d07df copilot instruction prompt: emphasize to format changes.
2d82d63 Fix slangc --help text for -reflection-json (#7653)
e40ddc6 Fix internal error when a generic in an extension is unused (#7665)
a670baf no_diff diagnostics improvement (#7655)
a7cb369 Avoid adding underscore to _snorm format if it has one (#7664)
43d0c21 Convert gfx unit tests and examples to use slang-rhi (#7577)
00746bf Stable names and backwards compat for serialized IR modules (#7644)
4f54ccc Generate OpExecutionMode PointMode for tessellation shaders (#7662)
a64a0ac Fix typo in image format table (#7661)
e036c7f Fix extension incorrectly interacting with equality and type-coercion constraints (#7578)
2c4bfce Add error for forward references in generic constraints (#7615)
0ab5151 Add list and hint on usage in slangc -h (#7638)
e528853 Fix a bug in examples/reflection-api (#7652)
a68e263 Improve slang-test output verbosity control (#7625)