Releases: shader-slang/slang
v2025.2.2
What's Changed
- Fix optix varying legalization. by @csyonghe in #6089
- Reuse code for Metal and WGSL entry point legalization by @fairywreath in #6063
- Implement AnyValue marshalling for 8-bit integers by @juliusikkala in #6059
- Emit errors when seeing a matrix with row/col count of 1 by @aleino-nv in #6044
- Inline global constants that contains opaque handles for legalization. by @csyonghe in #6098
- Fix argument buffer tier2 layout computation. by @csyonghe in #6101
- support SV_ViewIndex for Metal by @fairywreath in #6103
- Implement Packed Dot Product intrinsics by @fairywreath in #6068
- C-like emitter: Add parenthesis when combining relational and bitwise… by @aleino-nv in #6070
- Fix cyclic lookups with UnscopedEnums by @juliusikkala in #6110
- Fix resource specialization issue where store insts from inlined calls are not considered properly. by @saipraveenb25 in #6099
Full Changelog: v2025.2.1...v2025.2.2
v2025.2.1
What's Changed
- Find OptiX headers by @skallweitNV in #6071
- Don't initialize temp var for out parameters when generating the backward diff function by @saipraveenb25 in #6076
- Fix simplify if-else by @cheneym2 in #6077
- Fix inaccurate documentation in member function mutability. by @entropylost in #6065
- update slang-rhi + fix nvrtc options by @skallweitNV in #6080
- Fix #5354, change diagnostic definition error message and expect output in test by @wijiler in #6067
- Implement specialization constant support in numthreads / local_size by @juliusikkala in #5963
- Fix formatting and documentation on DescriptorHandle. by @csyonghe in #6062
- Fix issue with specialization using arithmetic expressions by @saipraveenb25 in #6084
New Contributors
- @entropylost made their first contribution in #6065
- @wijiler made their first contribution in #6067
Full Changelog: v2025.2...v2025.2.1
v2025.2
Slang v2025.2 Changes: a985e240a Fix CUDA reflection for acceleration structure handle size. (#6055) 4104aa7f9 Fix `markNonContextParamsAsSideEffectFree`. (#6054) f199640bb Add overload for select to handle Optional<T> (#6022) 803e0c9f9 WGSL: Convert signed vector shift amounts to unsigned (#6023) 6437f2d37 Fix potential test failures due to SPIRV validation failure (#6047) 548453338 Fix Metal type layout reflection for nested parameter blocks. (#6042) 5290c5806 Initial implementation of SP#015 `DescriptorHandle<T>`. (#6028) 4cfae806a Add exhaustive associativity test for WGSL (#6056) 2b76466c4 Add CalculateLevelOfDetail* overloads for comparison samplers (#6018) 55ff4686e Support a storage class, NodePayloadAMDX, for SPIRV work-graphs (#6052) fce63c2c5 `[[shader_record]] / [[push_constant]]` Param Annotations Proposal (#6053) e8217c700 Fix implicit string conversion breaking NativeStrings (#6035) b72e62f5c Upgrade actions/upload-artifact from v3 to v4 (#6051) 87f00a36a [Auto-diff] Overhaul auto-diff type tracking + Overhaul dynamic dispatch for differentiable functions (#5866) 6706c1a77 update slang-rhi (#6045) 46149eeb2 Pass compiler specific args to GCC and Visual Studio too (#6019) dab6cec1e Add parentheses to make precedence explicit (#6030) 2249d6ffb Add SampleCmpLevel intrinsics (#6004) 63b8d9e1d slang-test: Ensure runtime is consistent (#6021)
v2025.1
=== Breaking changes ===
No breaking changes
=== All changes for this release ===
5b99314 Add backtraces to examples (#5973) (#5520:quality & productivity)
c43f6fa Lower varying parameters as pointers instead of SSA values. (#5919)
1a56f58 Check whether array element is fully specialized (#6000) (#5776:client support)
7e278c3 Add example showing how to use Slang/WASM (#5996)
7d4142e Fix some robustness issues in the examples (#5984) (#5520:quality & productivity)
5621ace Use disassemble API from SPIRV-Tools (#6001)
a448b7e Properly set D3D12SDKPath (#5993)
7190c28 Add Bindless<T>
proposal. (#6002)
bc76c6e Add support for textureLod with sampler2DArrayShadow (#6009)
22dab44 Fix GLSL mix(T,T,bool) SPIR-V output (#6006)
f0431b8 CI: Build the full slang-wasm.[js|wasm] targets instead of just the slang library. (#5998) (#5959:forward looking)
00e7542 Make 'shared' keyword map to 'groupshared' in GLSL mode (#6003) (#5989:quality & productivity)
114c976 Create DirectDeclRef when creating Decl to prevent invalid dedup. (#5945) (#5941:quality & productivity)
5df3a74 Fix parameter location reflection for pure data paramblocks. (#5956) (#5940:quality & productivity)
d48cd13 Correct IR generation for no-diff pointer type (#5976) (#5805:client support)
e3b71cf Allow explicit test root (#5980)
a13ef05 Fixed incorrect condition in Session::queryInterface. (#5978)
f3b916e add missing IR_LEAF_ISA for MetalMeshType (#5975)
075e6c2 Fix reflection for metal vector [[id]] location. (#5943)
823b6a8 Add terminateRayEXT & ignoreIntersectionEXT (#5974)
a8471a1 Fix getInheritanceInfo
for ExtractExistentialType
. (#5971) (#5900:client support)
b7eb585 Check for undefined %id in spirv_asm block. (#5966) (#5753:client support)
1f98bd6 LanguageServer: fix highlighting of wrapper type. (#5968)
3f43d6c Add RaytracingAccelerationStructure::__init(uint64_t)
. (#5967) (#5801:client support)
cc1b96d Check mismatching method parameter direction against interface declaration. (#5964) (#5962:quality & productivity)
88e221b Fix requirement candidate lookup to prefer decls in the same paraent as the inheritance decl. (#5965) (#5954:quality & productivity)
89dd2b1 Add a basic WebGPU example (#5923)
b2d51ad Skip uninitialized-use warning on hitAttributeEXT-decorated globals (#5952)
71cd967 Prevent constant folding for specialization constants (#5953)
7a6de4a Implement HLSL pack/unpack math intrinsics (#5934)
c4429bc Fix tiny typos (#5944)
478be54 Fix parsing GLSL SSBO arrays / bindless descriptors (#5932)
7cecc51 Add packed 8bit builtin types (#5939)
2ad1f81 Support dispatchComputeIndirect and draw(Indexed)Indirect with count buffer for Vulkan (#5929)
1b5679f Reflection API Wasm Bindings Part1 (#5936)
e15c280 update CTS package (#5935)
76fdeaa Fixed stage and result field names in json reflection (#5927)
8e55b49 Fix WASM build (#5925)
e93cb8a Check subscript/property accessor for differentiability. (#5922) (#5921:client support)
5c9f011 Fix crash during loop unrolling. (#5920) (#5917:quality & productivity)
a00db74 Add base vertex and base instance system values (#5918)
2e9605e Enable more examples in CI (#5915)
237af82 Add HLSL texture sample with status intrinsics (#5901) (#4495:forward looking)
c6662b6 Readme corrections (#5874)
16f617f Report error when generated spirv is empty. (#5899) (#5893:quality & productivity)
a427c58 Fix issues reported by 'shellcheck' (#5913) (#5520:quality & productivity)
58654d0 Refresh list of failing examples (#5904) (#5520:quality & productivity)
f675c39 Fix the parser issue for not recognize Generic[N] (#5912)
a805756 Check decl nesting for namespaces. (#5910) (#5897:quality & productivity)
abeb375 Support explicit [vk::location(n)]
binding on metal/wgsl. (#5907) (#5883:client support)
0f5a2ce Fix metadata of register space and varying params. (#5906) (#5905:quality & productivity)
ae04e60 Allow Optional
, Tuple
and bool
to be used in varying input/output. (#5889) (#5881:quality & productivity)
41c627f Add slang example tests to CI (#5879)
45af246 Add verification logic on push and specialization constants. (#5887) (#5865:quality & productivity)
6e24244 Support specializing generic entrypoints in findAndCheckEntryPoint
. (#5890) (#5898:forward looking)
6f57e47 Implement bitcast for 64-bit date type (#5895) (#5470:quality & productivity)
49e912a Fix entrypoint auto discovery logic. (#5885)
7ffc69d Update 09-reflection.md (#5886)
d61bba8 Fix getArgumentValueFloat
when arg is int. (#5888) (#5860:quality & productivity)
9c9e1f7 Support matrix negation in metal backend. (#5891) (#5882:client support)
0a6ffee install mono for toc generation (#5877)
83f4bd5 Enable exprs for all supported GLSL layout qualifiers (#5857) (#3873:quality & productivity)
9d608b9 Update reflection API chapter in User Guide (#5868)
9d89a25 Make slang-rhi's NVAPI support conditional on SLANG_ENABLE_NVAPI (#5855)
78c9bd1 Bit extract (#5847)
b4e63d7 use Release over RelWithDebInfo for ci (#5846)
1fb79ac Add an example for using the reflection API (#5839)
9c82ed3 WGSL: Fix issue where global calls are generated (#5768)
79dc7ef Add SLANG_ENABLE_DXIL (#5853)
48ac6f2 Correctly distinguish between windows and MSVC (#5851)
7279c04 Set default hidden visibility for all source on gcc (#5850)
96a8781 Add missing header for _getpid() (#5852)
df06e79 Bump imgui for include fix (#5854)
50fa543 Correct casing of windows includes (#5849)
160be8e Fix prebuilt dependencies filenames on non-windows platforms (#5848)
v2024.17
Slang v2024.17 Changes: 772c48af9 Fix language server check skipping when explicit module decl exists. (#5845) 626e81478 Bump spirv-header/tools/glslang (#5834)
v2024.16
Slang v2024.16 Changes: 2999cb72a LSP: fix "documentSymbol failed" error. (#5842) 1f3be303e Use perfect forwardnig to preserve the parameters for log (#5841) c17369a50 Fix the logic to determine whether lower generic pass should run. (#5837) 0af589bf2 Fix loop hoisting logic in redundancy pass. (#5836) 941f07040 Fix attribute reflection. (#5823) e50aac13e Update SPIRV submodules (#5815) f573c1586 Fix anyvalue marshalling for matrix and 64 bit types. (#5827) f68768887 Fix wgsl float texture format inference silent failure (#5831) 3f818cba2 A small mistake. (#5819) f0b991415 Enable WGSL tests that works for Metal related to Semantics (#5816) 4a63e33d6 Correct proposal number (#5809) 523e9f012 Enable exprs for GLSL binding layout qualifiers (#5807) 34497ae6d Add more details on PR process to CONTRIBUTING.md (#5812) 8bf4743f5 Create scope for synthesized property decl. (#5817) 89bf795f1 Fix a crash when search for files. (#5818) b0dfb1aef Don't emit a warning when implicit casting from known in-range int lit to half. (#5814) 945d8dd3c Fix parsing logic of for loops' initial statement. (#5813)
v2024.15.2
Add SV_DrawIndex. (#5787) Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
v2024.15.1
Emit debug info for Release builds (#5783) * Remove unnecessary warnings on windows * Correctly set debug flags on gcc * Emit debug info for Release builds * Perform LTO for relwithdebinfo builds * Release from release builds not relwithdebinfo
v2024.15
Slang v2024.15 Changes: 4003d337a Add WebGPU target doc (#5708) 0d92d7298 [Docs] Minor fixes to auto-diff documentation (#5621) 136c2e22b fetch and extract prebuilt deps lazily (#5707) c005fe997 Emit OpExecutionMode SpacingEqual for Domain stage (#5696) 0b92e1de8 Explain why tests/autodiff/diff-ptr-type-array.slang is disabled for WGPU (#5702) e53ca9872 Support nonuniformEXT for GLSL (#5695) 55bea7d72 Fix markdown mistakes on user guide (#5672) c3557978c docs: Reduce typo count (#5671) 71f972687 Add missing WGSL intrinsics to test (#5663) 7a5981eb5 Make ToC regeneration script path handling more robust (#5700) 6bc63681e Update Slang-RHI/slang (#5701) 6e52cc811 wgsl: signedness mismatch fixes (#5692) 947b99e8e Add Table of Contents check to CI, and bot script to regenerate (#5618) 2c82b14c4 Sort filenames when generating table of contents (#5659) 0f3ff5f38 wgsl: Conditionally enable some tests based on 'half' support (#5694) 410ad9c18 Update workflow YML files for renamed files (#5688) 36ac8ff4e Document the restrictions for vector size (#5673) 915e05dcc WGSL: Fix issue where swizzle L-values are generated (#5682) 9e21cd4a7 wgpu: Enable Metal-like legalization for byte addressible buffers (#5681) cf0e3a636 Enable Link-Time-Code-Generation for Release builds (#5678)
v2024.14.6
=== Breaking changes ===
7b570fe Correct include dir for libslang (#5539)
=== All changes for this release ===
e6cf93e Fix issue with slang-embed & include ordering (#5680)
d282701 Support interpolation modifiers for WGSL (#5641)
044b52c Fix issue where inter-stage parameters without semantics don't get location attributes (#5670)
aaca2d2 wgsl: Fix field semantics even if input struct doesn't need flattening (#5642)
e30f053 Fix broken link in 09-reflection.md (#5655)
dacfa15 [Docs] Re-run build_toc and fix dead links (#5647)
65a761a Fix unused struct in sample shader (#5650)
9913cfb [AD] Add support for resolving custom derivatives where generic parameters can't be automatically inferred (#5630)
95125f2 ci: Use v1.11 of the release-downloader action (#5643)
43728fb Don't treat StrcturedBuffer as a specializable param. (#5645) (#5629:quality & productivity)
756cb32 Fixed type (#5639)
a2626ea [Docs] fix spirv dead links on toc.html (#5638)
8e28e51 Enable core module embedding by default in CMake. (#5644)
d7c735f [Docs] Optional - fix small typo on example (#5637)
e256836 Add explanation for disabled WGPU tests (#5628)
13f42e0 [Docs] Extensions - better wording for c# equivalent (#5636)
e0033b3 ci: Update actions/checkout
to always use v4 (#5634)
fdf061e Add datalayout for constant buffers. (#5608) (#5595:quality & productivity)
dcc7c6f Enable some rendering tests (#5623)
dbc28b4 Add reuse and related files (#5622)
93f5d13 Refresh of disabled WGPU tests (#5614) (#5519:quality & productivity)
e9caf5d Change how DeclRef::toText works (#5592)
3d36e0c Add description on write-only textures in wgsl doc.
b0818ac Small docs corrections (#5615)
b530506 Clarify stdlib-docgen example (#5619)
4f6b928 Add Matrix overload for exp10() core lib function (#5620)
54ec755 Add link to metal docs and regen TOC (#5616)
eb4ee72 Enable WGPU texture sampling test (#5617)
00765c3 Minor core lib doc fixes (#5599)
a43b3c4 Fix WGPU test by provding TEST_INPUT for outputBuffer (#5611) (#5277:forward looking)
ed123a9 WGSL: Support isnan, isinf, etc.. (#5609)
1e7f541 Fix wgsl legalization around __ref parameter. (#5597) (#5596:quality & productivity)
a63f065 Document math core lib functions (#5594) (#5446:meta-task)
f9c5fa7 LanuageServer: fix signature help param range. (#5593)
6e4473d Metal documentation (#5549)
0bf6a66 Markdown emphasis corrections (#5588)
a50de6b Implement semantics for WGSL (#5589) (#4943:forward looking)
f98579d Document WGSL-specific features (#5571) (#5567:quality & productivity)
fa917fe Fix specialization constant miscompile in glsl mode. (#5568) (#5463:client support)
75d65d3 Remove "GL_EXT_samplerless_texture_functions" from combined sampler functions. (#5585) (#5578:client support)
ec5e019 Add IDifferentiablePtrType
support for arrays (#5576)
05903f7 Embed core module in wasm build. (#5569)
f0bc464 Insert some casts for WGSL texture attribute queries (#5560) (#4943:forward looking)
147ceb1 Fix issue with raw default constructors in SPIRV emit (#5556)
e58ba6b [slang-rhi] pass encoders (#5559)
afa29d4 Proposal for a language version directive. (#5555)
fdf106b Make getDependencyFilePath
return most unique identity. (#5553) (#5332:client support)
e0d03da Fix regression caused by defer buffer load. (#5552)
5948326 Copy headers into build dir at build time (#5547)
5cb960a Fix WGSL emit for '&' and add bindings for thread group size (#5557)
f7149b9 WASM-binding: default to sm_6_6 when targeting hlsl. (#5554)
91f19be Various fixes to enable some WGSL graphics tests (#5548) (#4943:forward looking)
2be4fa4 Update CONTRIBUTION.md to clarify merge strategy. (#5546)
0754abe Push buffer load to end of access chain. (#5544) (#5538:client support)
567c7e0 Fix two specialization bugs (#5540) (#5516:quality & productivity)
ea04ad1 Add wasm binding to get reflection json. (#5536)
3b7d0e0 Use correct slang source dir for slang-rhi (#5534)
7e51180 Reflection compiler option (#5507) (#5492:client support)
98dab05 mention code formatting in contribution guidelines (#5514)
13709e5 Refine codeowners for proposals (#5533)
9aa7adb Transfer offset decorations when legalizing laid-out structs (#5525) (#5264:forward looking)
c0d0611 [slang-rhi] refactor command encoding (#5487)
5ca37c3 Use automatic coarse grained memory management in wasm binding. (#5528)
7c41446 Require GL_EXT_samplerless_texture_functions only if needed (#5527) (#5518:client support)
f66b046 [WGSL] [WASM] Add reflection endpoints + Fix bit manipulation operations (#5499)
0f46ce8 Fix EHa flag compiler filtering (#5524)