|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: "Slang Development Update - January 2025" |
| 4 | +date: 2025-01-10 19:00:00 +0000 |
| 5 | +categories: [ "blog" ] |
| 6 | +tags: [slang] |
| 7 | +author: "Yong He, NVIDIA, and Shannon Woods, NVIDIA, Slang Working Group Chair" |
| 8 | +image: /images/posts/2025-01-10-dev-updates.webp |
| 9 | +human_date: "January 10, 2025" |
| 10 | +--- |
| 11 | + |
| 12 | +Happy new year, Slang enthusiasts! As we beckon in 2025, we wanted to take a moment to highlight the many improvements we’ve been able to land in response to the incredible and enthusiastic engagement and feedback from the Slang community! Take a look at what’s new: |
| 13 | + |
| 14 | +**Improvement on specialization constants and push constants** |
| 15 | +- Specialization constants are now supported for WGSL and Metal targets. |
| 16 | +- Fixed reflection API issues around specialization constants and push constants. |
| 17 | +- Added more validation checks on invalid use of specialization/push constant attributes. |
| 18 | + |
| 19 | +**Improvement on SPIRV pointer support** |
| 20 | +- Added loadAligned and storeAligned intrinsics for aligned load/stores. |
| 21 | +- Now supports pointers to a struct with trailing unsized arrays. |
| 22 | +- Dynamic dispatch via interface-typed pointers are now supported. |
| 23 | +- Reflection on pointer element type now correctly reports the scalar layout. |
| 24 | + |
| 25 | +**SPIRV/GLSL improvements** |
| 26 | +- Added SV_DrawIndex semantic that maps to the DrawIndex builtin |
| 27 | +- Added Sampler2DShadow and friends to combined texture comparison-sampler types. |
| 28 | +- Explicit GLSL binding locations (as in [vk::binding()] and in layout(binding=...) qualifiers) can now use compile time expressions. (contribution from community) |
| 29 | +- -fvk-invert-y option now works for mesh shader position outputs. |
| 30 | +- Added nonuniformEXT intrinsics when consuming GLSL code. |
| 31 | + |
| 32 | +**Reflection API and binding improvement** |
| 33 | +- Explicit [vk::location(N)] binding is now supported for WGSL and Metal targets. |
| 34 | +- IMetadata::isParameterLocationUsed now supports reporting usage info on stage varying inputs/outputs. |
| 35 | +- Now support querying both user defined and system builtin attributes on types and functions with the new findAttributeByName API. |
| 36 | +- Attribute::getArgumentValueByFloat now correctly returns the value even if the argument in the source code is in the form of a integer literal. |
| 37 | +- WGSL backend now respects explicit binding qualifiers. |
| 38 | + |
| 39 | +These improvements are available in Slang v2025.2. |
| 40 | + |
| 41 | +Thank you to everyone in the Slang community for your feedback and your contributions! We’d also like to recognize GitHub users [@juliusikkala](https://github.com/juliusikkala) and [@fairywreath](https://github.com/fairywreath) for landing a number of fixes and improvements. |
| 42 | + |
| 43 | +We’re also happy to share that the video and slides from last month’s Slang Birds of a Feather session are now available! This was a great session, with a full room of developers who brought insightful questions – give it a watch! |
0 commit comments