Releases: shader-slang/slang
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)
v2024.14.5
Slang v2024.14.5 === Breaking changes === f4d5aa73 Revert uint<->int implicit cast cost to prefer promotion to unsigned. (#5480) === All changes for this release === 462584dc Mark -embed-downstream-ir as experimental (#5517) (#5434:forward looking) 9ff6dd4e Correct category label positioning in hlsl.meta.slang (#5515) 64c6cb19 Fix user-attribute-lookup wgpu crash (#5510) 43df1da0 Enable a bunch of WGPU tests (#5513) (#5505:forward looking) d53a3ab9 Fix the logic bug in spirv-emit compile option (#5512) 7c195d3b Fix CUDA prelude for makeMatrix (#5509) 65de5452 Fix the WGSL error about semantic when a nested struct is inlined (#5506) 989847f6 Fix IntVal unification logic to insert type casts + buffer element lowering regression. (#5508) (#5262:forward looking) d9cb281f Document raytracing functions (#5494) 2533125c Fix WGSL parameter block binding. (#5500) (#5222:forward looking) b8670343 [WGSL] Enable arbitrary arrays in uniform buffers. (#5497) (#4985:forward looking) f8294202 Make various parameters and return types require specialization when targeting WGSL (#5483) (#5228:forward looking) 79056cd7 Legalize the Entry-point for WGSL (#5498) (#5486:client exploration) 4fa76f37 Catch all exceptions in render-test (#5495) e22c0b72 Fix system semantics of SV_GroupIndex (#5496) (#4940:forward looking) 0336a3a8 Fix issue of infinity float literal (#5489) (#5280:forward looking) fc7de920 Update slang-rhi and fix error handling (#5485) b118451e Move switch statement bodies to their own lines (#5493) 53dd5928 Fixing the wrong implementation of some math intrinsic (#5491) (#5282:forward looking) 7c2ff547 Various WGSL fixes. (#5490) (#5289:forward looking) 2c8dacfa Update user-guide top bar nav links. (#5488) de561959 Add codeowners file (#5482) 5f4980a1 Allow enum cases to be used in attribute arguments. (#5478) (#5477:client support) [BREAKING] f4d5aa73 Revert uint<->int implicit cast cost to prefer promotion to unsigned. (#5480) 61cddbee Improve on spirv generation compile option (#5479) b8d50b58 Enable a few more WGPU tests (#5476) e1c3c4ae Update Slang-RHI again to get more WGPU fixes (#5475) (#5222:forward looking) c044ec22 Update Slang-RHI to get recent WGPU fixes (#5467) 07e45add Add `lerp` for wgsl. (#5472) 582d10d5 Add function of getting hash string to wasm binding (#5468) 0f68de95 fix javascript error on doc layout. (#5464) 1487a1f9 Constant-fold for the type-casting in switch-case labels (#5436) a98fb6cb Enhancements to diff script (#5460) 90bde476 Find slangc in more places in doc generation script (#5461) 28f20f45 Write only texture types. (#5454) (#5333:forward looking) feec3cf4 Add design doc for write-only textures. (#5455) 368c2d6e Add google analytics. (#5438) 521df4f0 Fix vs build (#5452) 302e6042 Correct formatting (#5457) 10549e6b fix release script (#5459) 22d1e345 format yaml and json (#5428) 44dc5ea2 Put debug symbols in releases (#5370) 613a29af Precompiled SPIR-V import support (#5048) (#4992:forward looking) 99c728f8 fix formatting issue (#5432)
v2024.14.4
What's Changed
- Use DebugDeclare instead of DebugValue. by @csyonghe in #5404
- Describe experimental COM interfaces by @cheneym2 in #5397
- Fix incorrect debug assert in
getLanguagePrelude
. by @csyonghe in #5402 - Switch back to fetching upstream llvm project by @expipiplus1 in #5408
- Replace stdlib on Slang API with CoreModule by @jkwak-work in #5405
- Replace stdlib with core-module on files and projects by @jkwak-work in #5411
- Actions workflow to format code on command by @expipiplus1 in #5400
- Use github token for formatting command dispatch by @expipiplus1 in #5418
- Swap the term StdLib with Core-Module or Standard-Module in documents by @jkwak-work in #5414
- Add
InterlockedAddF64
intrinsic. by @csyonghe in #5412 - Add implicit cast for generic vector types. by @csyonghe in #5413
- Export language server to wasm. by @csyonghe in #5419
- More wasm binding for playground. by @csyonghe in #5420
- Add documentation for buffer types by @kaizhangNV in #5410
- Assorted auto-diff enhancements for increased performance & more streamlined auto-diff results by @saipraveenb25 in #5394
- Rename a directory
source/slang-stdlib
to slang-core-module by @jkwak-work in #5417 - Replace the word stdlib or standard-library with core-module for source code by @jkwak-work in #5415
- Improvements to formatting bot by @expipiplus1 in #5421
- Correct URL in auto-format PR body by @expipiplus1 in #5427
- format cmake files by @expipiplus1 in #5406
- Check formatting in CI by @expipiplus1 in #5409
- preparation for clang format by @expipiplus1 in #5422
- format by @expipiplus1 in #5392
- Use Offset instead of ConstOffset for GLSL function textureGatherOffset by @jkwak-work in #5426
- [wasm]: fix the build error by @kaizhangNV in #5430
- Increase slangc option visibility in docs by @cheneym2 in #5425
Full Changelog: v2024.14.3...v2024.14.4
v2024.14.3
Slang v2024.14.3 Changes: 46b8ab835 wasm: Add compile target option when creating slang session (#5403) ee709cffe Fix language server crash. (#5395) 61aa67023 declutter top level CMakeLists.txt (#5391) fb50c0329 Fix a few documentation typos (#5396) a0bea0750 Fix several bugs with `specializeWithArgTypes()` (#5365) 5a161dd79 Document the interfaces in the core module (#5374) 855833e72 Document bit operations (#5373) fb16467a9 Document derivative core module functions (#5369) 7ede8a40b Update update_spirv.md 7a22eac84 Update the document, `update_spirv.md` (#5368) ba775784b Recognize a new spirv header json grammar keyword "aliases" (#5367) 3e84726f4 Fix spirv codegen for pointer to empty structs. (#5355) 20fa42e82 Stdlib documentation for Atomic, Optional, Tuple (#5358) 0e8e8cb97 Add more doc for builtin interfaces. (#5357) 563258c28 Fix UAV access for 3d texture mips (#5363) 3b8efefb1 Fix incorrect setting of array information for 1d texture arrays in D3D12 (#5361) 6f9c6087e Mark SPIRV artifact as non-executable. (#5356) 307315a73 Properly check switch case. (#5341) 9936178dd Remove use of Variable Pointer capability. (#5352) b2386f36e Make slang-llvm fetching and failure more robust (#5346)
v2024.14.2
Slang v2024.14.2 Changes: f2b2db57c Update slang-rhi (#5345) 2bcb87d93 Use `VariablePointersStorageBuffer` instead of `VariablePointer` spv … (#5340) c7584b29f Remove sccache (#5206)
v2024.14.1
Slang v2024.14.1 Changes: 12e891ed9 Cleanup definition of `printf`. (#5330) a618b8c5e Cleanup atomic intrinsics. (#5324) 11e1ecafa Add 'findAndCheckEntryPoint' to wasm binding (#5337) fa3287fb6 update slang-rhi (#5258) ee11a45ab Fix D3D12Core.dll loading problem (#5315) 2f7f48a00 Fix entrypoint naming in glsl backend. (#5320) 2ee898109 Fix spirv debug info for pointer types. (#5319) 9e32b0063 Add docgen documentation. (#5318) c97166aed Fix type checking on generic extensions. (#5316) 99a242eca Squash redundant move warnings (#5300) ba26c2d70 Add stdlib documentation for attributes and interfaces. (#5297)
v2024.14
Slang v2024.14 Changes: 3e170c732 review and revise building instructions (#5302) 66b103180 Move C interface from slang.h to slang-deprecated.h (#5301) 9e3b0367c Enable WebGPU tests in CI (#5239) be42eeed7 Lower minimum CMake version to 3.22 (#5295) 456df23cf Fix unexported spReflectionEntryPoint_GetFunction (#5260) f857815a8 Misc build fixes. (#5271) 5126d58ab Fix release build failure (#5285) 2e08f3338 Fix assert when compiling an entrypoint that calls another entrypoint. (#5268) e57736bde Write out summary of documentation in docgen tool. (#5266) 3b12b66a4 Fix race condition for building stdlib headers (#5272) bba14dc4b beautify the readme support table (#5265) e91e1d4d5 Restrict stdlib embed macros to single source file (#5251) dfab34e4b Add slang-wasm target (#5237) 5fa35fcce WGSL: Enable load & store from byte-addressible buffers (#5252) 0ff779bae README: mention VulkanSDK in getting started. (#5256) 466fb5bd7 slang-test: retry failed test at the end. (#5255) 80c18515d Fix links in stdlib reference category landing page. (#5250) a7c5df671 Update README.md 611fa55fc reword documentation around precompiled modules. (#5249) 75481ea3b Support constant folding for static array access. (#5248) b8aab84e2 Use user defined type name in glsl buffer declarations. (#5242) 1bbc421a6 Fix precompiled glsl modules (#5230) 8b2bd3c8a Metal: Texture write fix (#4952) ac6f04c15 Fix spirv lowering logic around pointer to unsized array. (#5243) bea1394ad Fix bug related to findAndCheckEntrypoint. (#5241) 132111ab0 Fix build for clang-14 (#5235) c42a9faad Overhaul docgen tool and setup CI to generate stdlib reference. (#5232) 50f44c178 Look through attributes and rates when determining by reference initialization (#5023) 842dee3b6 WGSL emitter: Specify private address space for global non-handle variable declarations (#5236) 3de8afe16 update slang-rhi (#5234) 509409ef1 Add WGSL support for slang-test (#5174) ff51c21ba Refactor the code for synthesizing the body of constructor (#5231) 82c05f485 update slang-rhi (#5208) f521c2002 Add interfaces for retrieving separate linkable downstream binaries (#5128) 25c17b9fc Allow building using external dependencies (#5076) 9f246a436 Support custom derivatives of member functions of differentiable types (#5124) aa64c8531 Checkout LLVM as a workflow action rather than git-clone command (#5202) 74bdd0395 Add path to bash to GITHUB_PATH (#5217) a11a77664 Fix the broken CI (#5216) 7ce7bb336 Fix crash when compiling associatedtypes with generic interface constraints. (#5200) c6427e36b SizeOfLikeExpr has type int (#5205) e2e624b9a Enable debug log for VK CTS workflow (#5197) 81c015e02 Fix diagnostics for [PreferRecompute] (#5159) a5d67ad99 Disable the building of slang-llvm when targeting wasm platform (#5196) 15d1c6c51 Add COM API for querying metadata. (#5168) bc11579dd Update slang-rhi (#5187) 59168f41f Switch sccache action to Mozilla-Actions version (#5189) ebee7863c Add compile_commands.json to .gitignore (#5169)
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