Releases: shader-slang/slang
v2024.13
Key Changes:
- Added WebAssembly build support
- Expanded WGSL support: texture intrinsics, synchronization, math, pack/unpack, constructors, derivatives
- Implemented initial Atomic type
This release focuses on WGSL improvements, WebAssembly support, along with various bug fixes
=== Breaking changes ===
dd3d80e Allow lookups of overloaded methods. (#5110)
=== All changes for this release ===
ebee786 Add compile_commands.json to .gitignore (#5169)
6724651 Disable wgpu on linux (#5186) (#5183:quality & productivity)
24f56d0 Fix target switch lowering bug. (#5182)
c55805e Fix bug in translateGlslGlobalVar()
. (#5181) (#5027:client support)
5a84e52 Fix hull shader spirv legalization bug. (#5180) (#4914:client support)
afb1405 Fix l-value computation for subscript call. (#5177) (#4971:quality & productivity)
f667593 Add CI step to build WebAssembly version of Slang (#5164) (#5117:forward looking)
2321638 Design proposal for initialization. (#5142) (#5149:client support)
09cbd42 Update slang-rhi (#5176)
68c2834 Add fallback flag for sccache (#5170)
70925fe export CMAKE_SYSTEM_PROCESSOR for cross compilation builds (#5171)
4730d54 Implement texture_storage_Xd in WGSL (#5158) (#5082:client exploration)
958dacf Update slang-rhi (#5160)
5a0224a Move texture format inference to frontend and add reflection api for it. (#5155) (#5148:client support)
7398e1e Always run AD cleanup pass. (#5157)
d752482 Update README.md for platform support
a1f6a0a update slang-rhi (wgpu graphics support) (#5151)
eab9ac8 Remove text on inheritance support in user-guide. (#5154)
03765a6 WGSL texture support for depth and multisampled (#5152)
88623ed Make release note generation script shebang portable (#5145)
84fef05 Fixing bug when writing primitives in metal mesh shaders (#5069)
f5bf5ba Enable emscripten builds to compile slang.dll to WebAssembly. (#5131)
cb1fc34 Fix the incorrect use of GLSL textureGather (#5150)
ef3552d Feature/wgsl intrinsic texture gather (#5141)
3e950e1 Implemented Combined-texture for WGSL (#5130)
14b1098 update slang-rhi with initial wgpu support (#5137)
6912c58 Fix incorrect use of pointer in WGSL (#5144)
53684ed Fix handling of pointer logic in wgsl backend. (#5129)
c42b5e2 WGSL implement texture intrinsics except gather and sampler-less (#5123)
a7fc5b4 Update 003-atomic-t.md
4908349 Initial Atomic<T>
type implementation. (#5125) (#5084:client exploration)
b4c851f Add diagnostic to verify the left hand side of a generic constraint. (#5112) (#5113:quality & productivity)
0677956 Re-enable slang-test for WGSL (#5120)
26ca9c5 Synthesize conformance for generic requirements. (#5111) (#5035:client support)
[BREAKING] dd3d80e Allow lookups of overloaded methods. (#5110) (#5090:client support)
9d40ce4 Update spirv-tools version (#5089)
1560326 Add design doc for atomic type. (#5101) (#5100:forward looking)
3861be7 refactor render test to use latest slang-rhi (#5119)
fe71eaf Add WGSL intrinsics for synchronization (#5114) (#5085:client exploration)
c6b702c Use GITHUB_TOKEN if set (#5070)
b7617d2 Fix dx on vk with rhi (#5086)
ccc310f Support IDifferentiablePtrType
(#5031) (#4998:client exploration)
1781c29 Update auto-diff user guide (#5071)
b808aa4 Report AD checkpoint contexts (#5058) (#4997:forward looking)
3240799 Lower the priority of looking up the rank of scope (#5065)
2d83875 Add IRWArray
interface, and make StructuredBuffer conform to them. (#5097) (#5099:forward looking)
85b996a Add WGSL pack/unpack, constructor, derivatives & misc intrinsics (#5102) (#5080:forward looking)
2f455d3 Fix WGSL frexp and modf that returns a struct (#5096)
0716646 Implement math intrinsics for WGSL (#5078)
25d1559 release-note.sh fixes (#5068)
d866c0b Add API method to specialize function reference with argument types (#4966)
c46ca4c Remove includes of glslang private headers (#5059)
003df7e Fix the issue in resolving the overload functions (#5060) (#4476:client support)
v2024.11.1
This release adds initial support for WGSL.
Breaking changes
No breaking changes.
All changes for this release
c46ca4c Remove includes of glslang private headers (#5059)
003df7e Fix the issue in resolving the overload functions (#5060) (#4476:client support)
9fd5381 remove 'test-record-replay.sh' (#5057)
d33fad8 Git-ignore VIM temporary files (#5047)
1c6e241 Disambiguate subscript decls by preferring the one with more accessors. (#5046) (#5034:client support)
936c22a Specialize existential return types when possible. (#5044) (#5035:client support)
f51b74d Fix inccorect dropping of declref during Unification of DeclaredSubtypeWitness. (#5041) (#5033:client support)
e896827 Add proposal for equality constraints (#5043)
d9fc7bc Add load paths to return value check (#5042) (#5005:client support)
170558c Initial WGSL support (#5006)
110d82f Fix generic IInteger mod
implementation. (#5037) (#5026:quality & productivity)
69ee8f6 Correct control flow in getParentBreakBlockSet (#5024)
dcd6c24 Remove incorrect UTF decode assert (#5028)
8662375 Update 000-template.md
db764a0 Update 010-new-diff-type-system.md
e63ac64 Update 007-variadic-generics.md
b4ae24d Update 001-where-clauses.md
20f9086 Update proposal template
v2024.11.1-draft
What's Changed
- Remove incorrect UTF decode assert by @cheneym2 in #5028
- Correct control flow in getParentBreakBlockSet by @expipiplus1 in #5024
- Fix generic IInteger
mod
implementation. by @csyonghe in #5037 - Initial WGSL support by @aleino-nv in #5006
- Fix compilation warning with uninitialized struct use in constructors by @venkataram-nv in #5042
- Add proposal for equality constraints by @tangent-vector in #5043
- Fix inccorect dropping of declref during Unification of DeclaredSubtypeWitness. by @csyonghe in #5041
- Specialize existential return types when possible. by @csyonghe in #5044
- Disambiguate subscript decls by preferring the one with more accessors. by @csyonghe in #5046
- Git-ignore for VIM temporary files by @jkwak-work in #5047
Full Changelog: v2024.11...v2024.11.1-draft
v2024.11
This release brings SPIRV specialization constants, where
clause, type equality constraints,
and tightened up Slang's language support for interface extensions, along with serveral
SPIRV and language server fixes.
The compilation API and slangc now supports identifying entrypoints defined in namespaces or structs.
Breaking Changes
Extensions on interface types are no longer allowed:
interface IFoo { ... }
extension IFoo
{}
The original extension IFoo
syntax is replaced by more proper generic syntax:
extension<T:IFoo> T
{}
All Changes
f929b42 Fix doc build errors. (#5018)
5f1ba7b Various documentation improvements. (#5017)
3136771 Initial -embed-spirv support (#4974)
33e8bfd Fix SPIRV SV_TessFactor type adaptation logic. (#5010)
879ee3d Support entrypoints defined in a namespace. (#5011)
a3b25ce Add language proposal for where clauses (#5015)
e5ead40 Fix invalid documentsymbol error in langauge server. (#5012)
77ecad2 Fix spirv emit for global pointer variable. (#5009)
d655302 Support where
clause and type equality constraint. (#4986)
a88055c Respect matrix layout in uniform and in/out parameters for HLSL target. (#5013)
959f55d Remove unused package in primary benchmark script (#5014)
d4aeb18 Document All Capability Atoms and Profiles (#5008)
65dd3b7 Add Documentation For Auto-Generated Constructors & Initializer Lists (#4988)
a7e9119 Preserve name in DeclRefExpr for correct highlighitng of This
. (#4980)
dc3f2d6 Fix resource specialization with -embed-dxil
(#4990)
599dae5 Open existential on arguments after overload resolution. (#4982)
ddd2905 Fix extension override behavior, and disallow extension on interface types. (#4977)
56a3c02 Push benchmark results to a viewable page (#4996)
1673cf9 Add Path::removeNonEmpty() to remove non-empty dir (#4984)
v2024.10.2
What's Changed
- Allow creating draft releases from tags containing "draft" by @expipiplus1 in #4896
- Dont require llvm for building generators by @expipiplus1 in #4895
- Fix a false failure when using the latest SPIR-V by @jkwak-work in #4904
- Feature/capture unit test by @kaizhangNV in #4898
- Add skeleton of a language reference. by @tangent-vector in #4808
- Make variadic generics work with interfaces and forward autodiff. by @csyonghe in #4905
- Feature/record unit test by @kaizhangNV in #4910
- Implement
-fvk-use-dx-layout
by @ArielG-NV in #4912 - Correct the
generic-jvp.slang
test by @ArielG-NV in #4900 - Fix Varying Variable Location Assignments With Hull Shaders by @ArielG-NV in #4915
- Migrate examples by @kaizhangNV in #4920
- Explicitly detach derivative when forming a non-differentiable struct out of differentiable args by @saipraveenb25 in #4901
- Add ability to specialize generic references to functions, types and more by @saipraveenb25 in #4909
- Avoid inlining functions with inline ASM blocks. by @saipraveenb25 in #4925
- Adds a warning for using
[PreferRecompute]
on methods that may contain side effects by @saipraveenb25 in #4707 - Script for generating a release note by @jkwak-work in #4776
- Adding a document of how to update external/spirv-* by @jkwak-work in #4902
- Document notable
__ref
uses in stdlib. Remove user docs use of '__ref'. by @ArielG-NV in #4799 - Add functor syntax support. by @csyonghe in #4926
- Auto-cancel obsolete MDL benchmark jobs. by @csyonghe in #4929
- Make tuple types work in autodiff. by @csyonghe in #4923
- Allow capabilities to be used with
[shader("...")]
by @ArielG-NV in #4928 - Metal: Mesh Shaders by @Dynamitos in #4280
- Metal: Fix metal primitive_id semantic by @Dynamitos in #4951
- Ignoring construct field warnings on delegatory methods by @venkataram-nv in #4911
- Migrate examples by @kaizhangNV in #4927
- Update
IFunc
proposal to reflect its implementation. by @csyonghe in #4950 - Add
ReportIntersectionOptix
for optix. by @csyonghe in #4949 - Structured binding proposal by @csyonghe in #4953
- Fix partial inference of variadic generic functions. by @csyonghe in #4956
- Fix typo SV_DispatchThreadIndex by @jkwak-work in #4962
- Make sure
NullDifferential
and its witness are removed after autodiff. by @csyonghe in #4958 - Fix typo SV_DomainLsocation by @jkwak-work in #4960
- Support mixture of precompiled and non-precompiled modules by @cheneym2 in #4860
- Fix redundant decorations in IRParam by @jkwak-work in #4964
- Integrate slang-rhi by @skallweitNV in #4970
- Support specialization constants. by @csyonghe in #4963
- capture component type by @kaizhangNV in #4967
- Updated MDL shader sources for benchmarks by @venkataram-nv in #4965
- Support extension on generic type. by @csyonghe in #4968
- Fix prelude generation by using relative paths for including
slang.h
by @saipraveenb25 in #4973 - User guide page for SPIR-V target specific information by @jkwak-work in #4815
- fix slang-rhi compile error by @skallweitNV in #4979
Full Changelog: v2024.10...v2024.10.2
v2024.10.1
fix slang-rhi compile error (#4979)
v2024.10.1-draft
Full Changelog: v2024.10...v2024.10.1-draft
v2024.10
Slang v2024.10 This release brings support for tuple types, variadic generics and depedent generic constraints. No breaking changes. Changes: e97e7e51 Revert "Fetch slang-llvm.so from correct release (#4847)" (#4893) 359e96c6 Proposal: A simpler and more flexible `IDifferentiable` system (#4865) f9f6a28d Support dependent generic constraints. (#4870) 03e1e177 Fix `tests\autodiff\reverse-while-loop-3.slang` test (#4886) bcb53910 Exclude synthesized code from code auto documentation system (#4889) 6b1b2432 Track uninitialized values of `Ptr<Specialize<T>>` inside type `T` without hang (#4885) 77e6c647 Fixes #4879 (#4881) 579d59c7 Fetch slang-llvm.so from correct release (#4847) d286ff53 Implement Path::createDirectoryRecursive (#4871) f77a5ac9 Remove using SpvStorageClass values casted into AddressSpace values (#4861) 453683bf Tuple swizzling, concat, comparison and `countof`. (#4856) ecf85df6 Variadic Generics Part 2: IR lowering and specialization. (#4849) ca5d3037 Make sure to resolve overloaded expr for call args. (#4864) 25bc5a3a Avoiding the use of the global AST builder in DeclRefType::create (#4866) b411c05b Include inout cast operation as an aliasing instruction (#4859) 9bf5dc93 Design proposal: IFunc interface. (#4851) f447b749 Update documentation for #include to indicate it is for legacy code and new code should use modules (#4862)
v2024.9.2
Slang v2024.9.2 This release contains no breaking changes. All changes: 0c468a3e Variadic Generics Part 3: language server (#4850) 2db09d58 Refactoring benchmark CI pipeline (#4855) 27b2229b Make precompileForTargets work with Slang API (#4845) 99673d78 fix getVKAdapters on MoltenVK (#4852) 706650f6 Design proposal for Tuple types. (#4848) 071f1b60 Variadic Generics Part 1: parsing and type checking. (#4833) 35a3d32c Design proposal for variadic generics (#4821) 45b76418 Do not zero-initialize groupshared and rayquery variables (#4838) d8f63e70 Issue/legalize resource (#4769) f4ff4236 GitHub action benchmark (#4804) ee052a9e FIx issue with specializing witness tables (#4839) 1124407b Do not add carrage return to shell scripts (#4811) bbef25cb Update build steps for MacOS (#4813) 127f0c58 Emit memory qualifier once for GLSL targets (#4819) b390566b Support unicode identifier names. (#4772) 20bd4865 Warn when inout parameter is never written (#4777)
v2024.9.1
What's Changed
- Remove dxc disassemble debug code by @cheneym2 in #4779
- Fix auto-diff synthesized method naming conventions by @saipraveenb25 in #4714
- More reflection API features. by @saipraveenb25 in #4740
- Reduce dependency on std library by @skallweitNV in #4785
Full Changelog: v2024.9...v2024.9.1