Releases: shader-slang/slang
v2025.6.3
What's Changed
- Fix MSVC warning D9025 when building external dependencies. by @csyonghe in #6630
- Implement floating-point pack/unpack intrinsics for all targets by @fairywreath in #6503
- Fix reinterpret and bitcast and generic arg parsing. by @csyonghe in #6627
- Add SPIRV atomic debug type by @fairywreath in #6616
- Output SPV_KHR_compute_shader_derivatives extension string instead of the NV extension by @fairywreath in #6641
- Make image format reflection easier by @Devon7925 in #6550
- Delete unused Dockerfile by @samestep in #6629
- Add -dump-module command to slangc by @cheneym2 in #6638
- Add Nix flake for direnv by @samestep in #6635
- Correct modifier isConst initialization by @gtong-nv in #6645
- Add MinSizeRel to CMake preset by @jkwak-work in #6644
- Apply pixel interlock execution mode to entry-point functions only by @fairywreath in #6661
- Emit errors for missing returns on unsupported targets by @fairywreath in #6633
- Support spirv ops added by multiple extensions by @ramenguy99 in #6615
- Add GLSL array length syntax support by @DarrelFW321 in #6665
- Add GLSL debugPrintfEXT syntax support by @fairywreath in #6659
- Don't load cached builtin module in slang-bootstrap. by @csyonghe in #6667
- Improve embed tool to search all include directories as determined by CMake by @saipraveenb25 in #6675
New Contributors
- @DarrelFW321 made their first contribution in #6665
Full Changelog: v2025.6.2...v2025.6.3
v2025.6.2
=== Breaking changes ===
No breaking changes
=== All changes for this release ===
24c9611 Fix IRVar
hoisting when its already in the right block. (#6626) (#6588:quality & productivity)
613cca5 Delete accidental lock
file (#6620)
0c7104e Add auto-diff support for GetOffsetPtr
(#6625)
714ee76 Fix crash when swizzling non-differentiable types (#6613)
98ff419 Add error diagnostic vectors and matrices with disallowed element types (#6596)
3357b55 Add help screen to slang-test (#6611) (#6560:quality & productivity)
18e6611 fix trimming of "v" from version string (#6605)
78517dc Fix lowering of associated types in generic interfaces (#6600) (#6566:quality & productivity)
c8c9e42 Implement GetDimensions for structured buffers on WGSL (#6609) (#6582:client support)
c2e8f9c Fix: Respect user-defined output directory settings for libraries (#6604) (#5896:quality & productivity)
3431640 Use an explicit dependency for generated headers instead of source file dependency (#6594)
1e20eed Correct buffer length calculation in dumpSourceBytes (#6593)
395302d Add mesh shader output topology checks (#6592)
ee1995b test for link type layout caching (#6567)
88ab45d test that link time extern struct layouts are visible for nested types (#6568)
fb48856 add SLANG_USER_CONFIG (#6584)
f4d5372 Migrate render-test away from deprecated compile request API (#6514) (#4760:quality & productivity)
7a942cf Add referenced modules as libraries when creating a session (#6569) (#4760:quality & productivity)
133d705 Set the HLSL supported compiler version to 2018 (#6502) (#6462:quality & productivity)
5d6578b Don't crash when precompiling twice (#6576) (#6516:forward looking)
f59e0ef IR: Add SPIR-V disassembly for embedded downstream IR dumps (#6529)
ff55a56 Add missing error check (#6570)
3058a58 UseHighestVersion when calling spirv-link (#6559)
5673edf Add module reference options to options list when parsing them (#6539) (#4760:quality & productivity)
b59d155 Sharpen condition on warning about used capabilities relative to selected profile (#6538) (#4760:quality & productivity)
a3a9ffe Fix SPIRV generator ID. (#6536)
5012c31 Add option to exclude webgpu-dawn and slang-tint (#6537)
e1952dc Fix a bug in default ctor synthesizing (#6527)
9d7d943 Update build to allow setting external paths (#6528)
2aaa910 Fix lowering of extern
types with defaults. (#6512) (#6504:quality & productivity)
0ca1d7a Show adapter info in slang-test CI runs (#6535)
4485cf3 Update SPIRV-Tools and fix new validation errors. (#6511) (#6508:quality & productivity)
55dd2de Get options also from the default target (#6530) (#4760:quality & productivity)
965f962 Add module organization suggestion doc (#6509) (#4841:quality & productivity)
0634684 Support SPIR-V deferred linking option (#6500) (#4994:forward looking)
5248a02 Fix codegen bug when targeting PTX with new API (#6506) (#6507:quality & productivity)
6f56b47 Fix option set serialization bug (#6515) (#4760:quality & productivity)
a99ee55 Document how unit tests are defined and run (#6448)
b86925c Consolidate multiple inouts/outs into struct (#6435) (#5121:quality & productivity)
dd9d24d Allow partial specialization of existential arguments. (#6487) (#6482:quality & productivity)
700c38a Implement sparse texture Sample* intrinsics for SPIRV (#6377) (#4495:forward looking)
bca772c Fix build error when SLANG_ENABLE_TESTS is set to OFF (#6420)
efbfa78 Add Slang-specific intrinsics for integer pack/unpack (#6459)
618b4c7 Resolve 'extern' types during type layout generation if possible (#6450)
66984eb Add WaveGetLane* support for Metal and WGSL (#6371)
e4b9600 Prepare for render test api migration (#6498) (#4760:quality & productivity)
ceb3af5 Fix member lookup in left hand side of where
clause. (#6490) (#6488:quality & productivity)
a09d554 Fix regression in float to bool conversion. (#6497)
4872eeb Don't add multiple matrix layout options when creating a session (#6476) (#4760:quality & productivity)
33706fd Fix template for deprecated docs. (#6496)
930b601 Fix doc. (#6495)
8a8ff3c Fix doc. (#6494)
5d0e3e9 Fix doc build. (#6493)
42a8c4b Fix release CI. (#6492)
9fd3e7c Fix CI settings. (#6491)
4d415f6 Fix a bug where Session::parseCommandLineArguments returns invalid data (#6461) (#4760:quality & productivity)
96f1962 Remove adapter option from slang-test (#6475) (#6390:quality & productivity)
38734ec update slang-rhi (shader object refactor) (#6251)
cd20e94 Add inner texture type to reflection json (#6416)
6f2ce72 Map SV_InstanceID
to gl_InstanceIndex-gl_BaseInstance
(#6468) (#6457:quality & productivity)
90b3817 Make capability diagnostic message more friendly. (#6474) (#6469:quality & productivity)
6cf15f4 Allow .member
syntax on vector and scalars. (#6424)
2ebf955 Document bug with global session teardown in user guide (#6479) (#6344:quality & productivity)
1fb3c15 Fix overload resolution for ModuleDeclarationDecl
(#6483)
3c096a7 bump glslang spirv-header spirv-tools (#6478)
af7c202 Bump glslang to vulkan-tmp-1.4.309 (#6477)
v2025.6.1
Slang v2025.6.1 Changes: a09d55472 Fix regression in float to bool conversion. (#6497) 4872eebaa Don't add multiple matrix layout options when creating a session (#6476) 33706fd77 Fix template for deprecated docs. (#6496)
v2025.6
Slang v2025.6 Changes: 42a8c4b1b Fix release CI. (#6492) 9fd3e7c15 Fix CI settings. (#6491) 4d415f6af Fix a bug where Session::parseCommandLineArguments returns invalid data (#6461) 96f19629d Remove adapter option from slang-test (#6475) 38734ec1f update slang-rhi (shader object refactor) (#6251) cd20e94af Add inner texture type to reflection json (#6416) 6f2ce72b0 Map `SV_InstanceID` to `gl_InstanceIndex-gl_BaseInstance` (#6468) 90b381749 Make capability diagnostic message more friendly. (#6474) 6cf15f4ea Allow `.member` syntax on vector and scalars. (#6424) 2ebf9555a Document bug with global session teardown in user guide (#6479) 1fb3c1536 Fix overload resolution for `ModuleDeclarationDecl` (#6483) 3c096a7d3 bump glslang spirv-header spirv-tools (#6478) af7c20297 Bump glslang to vulkan-tmp-1.4.309 (#6477) 525c2acfe Improve entry point lookup function documentation (#6451) 60c5db5ca Fix regression when using Atomic<T> in struct. (#6472) 02706dfc5 Fix precompiledTargetModule tests (#6455) 6e862bb37 [SPIRV]: Emit missing storage class in atomic insts. (#6456) 86669cbb7 expose value of constant integers in module reflection (#6367) 519e866ff Enable friendly-name option for SPIRV dump and validation (#6465) f7b9745e4 Fix a bug with hoisting 'IRVar' insts that are used outside the loop (#6446) a9f2f8a59 Fix `UseGraph::replace` (#6395) 190839256 Fix loading empty structs from structured buffers (#6439) f90a7631a Clone name hint decoration when emiting Undefined (#6415) 73a8d74bd Legalize array size of SV_TessFactor and SV_InsideTessFactor (#6409) 9e465c776 Fix TypeCheckingCache concurrency and candidate lifetime. (#6444)
vulkan-sdk-1.4.309.0
Fix regression in float to bool conversion. (#6497)
v2025.5.3
9e465c776 Fix TypeCheckingCache concurrency and candidate lifetime. (#6444) edcb2f0b8 Add implementation for 'uploadTextureData' in metal (#6443) 4e897189e (origin/master, origin/HEAD, master) Remove noise() from core library (#6421) 5bf0c9529 set depth 2 for CI submodules (#6436) 8d0244422 Do not perform deep checkout of submodules (#6410) 51ad07d1f Improve performance when compiling small shaders. (#6396) 0101e5ab5 Fix slang raytracing test (#6404) ca592d279 Fix gradient behavior for min() and max() functions at boundaries. When input values are equal, the gradient is split evenly between both inputs. (#6411)
v2025.5.2
4d286aab2 Metal fix (#6413) 19867ffca Simplify implicit cast ctors for vector & matrix. (#6408) 9580e311e HLSL: Add 'f' suffix to float literals in code generation (#6381) 187ec4444 Support for dynamic array of textures access for Texture footprint. (#6392) 0460eb6a0 Force inline functions that takes InputPatch and OutputPatch (#6407) a02379208 Fix issue with `clamp`'s derivatives at the boundary. (#6403) 0959d7ebe Show adapter info in slang-test (#6388) 12d09b5a6 Fix zero size array handling in slangc (#6399) 7315b33cf Add userAttribs to entryPoints in reflection JSON (#6366) e9a63b2b3 Cleanups for render-api (#6360) 5ceef13e2 Fix and document static build (#6374) ad69ebd87 Add two DXC implementation for CoopVec (#6393) 64dfdbda7 Add warning for ignored binding attributes on uniforms (#6373) 7f395a768 Add new zero size array test. (#6379) 7abc69e9d slang: Fix empty VARARGS issue(#6332) (#6372) e043428c5 Enable Hull shader test for SPIRV (#6348)
v2025.5.1
Changes:
a70113c Fix metal issue (#6361)
7435d5d Don't remove in-use globals (#6359)
944c19b (origin/master, origin/HEAD, master) Add support for GLSL interface blocks (#6351)
4c8edd7 Add CMake build target vs2019-dev that enables IR break (#6354)
adde262 Fix modifier parsing. (#6347)
1ea2ab1 Disallow only resources in constant buffers in parameterblocks on metal (#6342)
ccc75cd Reflection Fixes. (#6346)
8406b56 Migrate slang-test away from deprecated Slang API (#6343)
74852ce Allow LHS of where
to be any type. (#6333)
3f102af Fix crash when handling uninitialized resource type (#6338)
0fee8c1 build core and glsl modules in the same slang-bootstrap invocation (#6341)
ee99bec Correct dependencies on core module source (#6340)
6f42676 Correct location of copy-headers target (#6327)
96529df Update build-llvm.ps1 (#6336)
551bbb5 Add checking for differentiability of the primal substitute function. (#6277)
0b4e463 Add raypayload decoration to ray payload structs (#6164)
0bc18d2 Emit missing atomic64 capability, fix int-typed builtin used in both vs and fs. (#6314)
3c2d46a Remove the docs/proposals directory (#6313)
133bd25 Add support for Metal subgroup/simd operations (#6247)
f761ab0 Fix compilation on musl libc targets (#6334)
94c4582 Add WGSL to list of formats supporting multiple entry points (#6324)
67dfc9b Propagate the MemoryQualifierSetDecoration (#6315)
57b09a8 Use and() and or() functions for logical-AND and OR (#6310)
v2025.5
79aebc18d disable nanothread dependency (#6312) 8d47910e9 slang-rhi cmake integration (#6261) 654b96933 Add test for visibility in translation unit with multiple source files (#6306) 252e13cb3 Mark slangpy as deprecated and remove from user-guide. (#6300) f5551eb94 Uncomment a previously failing test case (#6303) d00fa5ced Update a3-reference.md (#6309) bae87afb2 Support stage_switch. (#6311) 075b10e69 Don't overwrite existing module decl scopes when parsing new source files (#6292) 6b63ff026 Allow tuples to work with initializer list. (#6301) 78f26f076 Add floating-point pack/unpack proposal (#6191) bbaaab48a Fix matrix comparison operators on CPU (#6296) f5700bd3e Fix inline markdown rendering (#6294) 3527f0975 Enable D3D12 experimental feature to use coopvec (#6290) d8a8559a5 maxtessfactor attribute should take a floating point value (#6289) f6cbb81e1 Fix DCE for calls to functions that have associations (#6272) 7911c9437 Use two-stage parsing to disambiguate generic app and comparison. (#6281) 613f43a08 Switch back to Falcor (#6295) 9ec6b9168 Feature/initialize list side branch (#6058) 4b3506450 Fix autodiff issue for vector<T, N> (#6275) d3e5f39ca Use 0.0.7 version of VK-GL-CTS-for-Slang on nightly CTS CI (#6278) fe77f076b Fix non-square matrix derivatives (#6282) 78a6389aa Fix warning about push constants, shaderRecordEXT (#6269) 77c59d4a1 Correct NVAPI include (#6263) b832338c1 Fix parsing of nested generic app. (#6259) bcf5302dd Auto enable `-fvk-use-entrypoint-name` when there is more than one entrypoint. (#6260) bc2f20aab Fix native Windows ARM64 build. (#6244) 0a6828572 Add support for WGSL subgroup operations (#6213) 2949b786a Update Slang-RHI and enable any debug layers up-front (#6226) 16b7be65d Fix build issue when SLANG_EMBED_CORE_MODULE is OFF. (#6243)
v2025.4
Slang v2025.4 Changes: 5173c8748 Include slang-glsl-module.dll in releases, for precompiled glsl module. (#6239) a026df756 Respect per-target debug options (#6193) eebe84907 Distribute slang-glsl-module.bin in release packages. (#6233) ae778e342 [Docs] Auto-diff documentation overhaul (#6202) 21893763c Declare `VariablePointers` capability when needed. (#6231)