Releases: shader-slang/slang
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
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)