summaryrefslogtreecommitdiff
path: root/docs
AgeCommit message (Collapse)Author
2024-10-09reword documentation around precompiled modules. (#5249)Yong He
2024-10-08Overhaul docgen tool and setup CI to generate stdlib reference. (#5232)Yong He
* Overhaul docgen tool and setup CI to generate stdlib reference. * Fix build error. * Write parsed doc for all decls. * fix. * fix callout. * Fix. * Fix comment. * Fix. * Delete obsolete doc tests. * Fix. * Categorize functions and types. * Fix CI. * Update comments.
2024-09-27Add CI step to build WebAssembly version of Slang (#5164)Jay Kwak
Closes #5117 This adds a build step of WebAssembly version of Slang. Currently it is enabled only for Linux/Release to reduce the time cost of CI, but the builds were all successful on all platforms and configurations when tested.
2024-09-27Design proposal for initialization. (#5142)Yong He
* Design proposal for initialization. * extension * QA * wording * Update design. * more revisions. * revise text. * rewording to be more accurate. * Fix wording and add explanation to examples. * clarify on zero initialization. * refine the rules and examples. * update status.
2024-09-25Remove text on inheritance support in user-guide. (#5154)Yong He
2024-09-25Make release note generation script shebang portable (#5145)Ellie Hermaszewska
Co-authored-by: Jay Kwak <82421531+jkwak-work@users.noreply.github.com>
2024-09-25Enable emscripten builds to compile slang.dll to WebAssembly. (#5131)Anders Leino
* Compile fixes for Wasm The issues are all are due to 'long' types being 32 bits on WASM. - class members redeclared errors - << with StringBuilder and unsigned long is ambiguous This helps to address issue #5115. * Use the host executable suffix for generators Since the generators are run at build-time, we should not use CMAKE_EXECUTABLE_SUFFIX, which is the suffix for the target platform. Instead, define CMAKE_HOST_EXECUTABLE_SUFFIX as appropriate, and use that suffix instead. This helps to address issue #5115. * Add support for Wasm as a platform This helps to address issue #5115. * Add emscripten build This closes #5115.
2024-09-20Update 003-atomic-t.mdYong He
2024-09-20Initial `Atomic<T>` type implementation. (#5125)Yong He
* Initial Atomic<T> type implementation. * Update design doc. * Fix. * Add test. * Fixes and add tests. * Fix WGSL. * Fix glsl. * Fix metal. * experiemnt with github metal. * experiment github metal 2 * github metal experiment 3 * experiment with github metal 4. * experiment with metal 5. * experiment 7. * metal experiment 8. * Fix metal tests. --------- Co-authored-by: Yong He <yhe@nvidia.com>
2024-09-19Add design doc for atomic<T> type. (#5101)Yong He
* Add design doc for atomic<T> type. * Update design doc. * Fix. * More comment on parameters.
2024-09-18Update auto-diff user guide (#5071)Sai Praveen Bangaru
- Remove `dmul` entirely (will be deprecated soon) - Add text about `IDifferentiablePtrType` Co-authored-by: Yong He <yonghe@outlook.com>
2024-09-18Add `IRWArray` interface, and make StructuredBuffer conform to them. (#5097)Yong He
* Add `IRWArray` interface, and make StructuredBuffer conform to them. * Update user guide. * Fix. * Fixes.
2024-09-16release-note.sh fixes (#5068)cheneym2
Add a gh.exe search path that works with cygwin installations. Do not bail out from the breaking changes loop when a change is found without PR#. Instead, continue to the next one. This fixes an issue where [BREAKING] changes appear in the detailed change list by not in the summary of breaking changes.
2024-09-09Add proposal for equality constraints (#5043)Theresa Foley
This proposal builds on the other proposal for `where` clauses. Co-authored-by: Yong He <yonghe@outlook.com>
2024-09-05Update 000-template.mdYong He
2024-09-05Update 010-new-diff-type-system.mdYong He
2024-09-05Update 007-variadic-generics.mdYong He
2024-09-05Update 001-where-clauses.mdYong He
2024-09-05Update proposal templateYong He
2024-09-05Fix doc build errors. (#5018)Yong He
2024-09-05Various documentation improvements. (#5017)Yong He
2024-09-05Add language proposal for where clauses (#5015)Theresa Foley
This is meant to be a starting point, such that we can refine the proposal and the implementation in tandem until we are happy with both. Co-authored-by: Yong He <yonghe@outlook.com>
2024-09-05Support `where` clause and type equality constraint. (#4986)Yong He
* Support `where` clause. * Fix. * Fix parser. * Enhance test to cover traditional __generic syntax. * Update user-guide. * Support `where` clause on associatedtype. * Fix. * Put in more comments.
2024-09-05Document All Capability Atoms and Profiles (#5008)ArielG-NV
* Document All Capability Atoms and Profiles Fixes: #4125 Unimplemented Considerations: 1. This PR does not add support to query all capability-atom's from a command-line option. It is understood that this might be desired, due to this, the logic to generate `docs\user-guide\a3-02-reference-capability-atoms.md` was made to be "command-line friendly" so minimal changes are needed to pipe our documentation into a command-line option if this change is to be added. Changes: 1. Added a way to document atoms inside `.capdef`. Method to document is described under `source\slang\slang-capabilities.capdef`. The goal is to error if a public atom does not have any form of documentation to ensure we always have up-to-date documentation to guide user on what an atom is/does. * The following `.capdef` file syntax was added * /// [HEADER_GROUP] * /// regular comment 2. When capability generator runs it auto-generates `docs\user-guide\a3-02-reference-capability-atoms.md` 3. Added to the user-guide 3 sections: `Reference`, `Reference -> Capability Profiles`, `Reference -> Capability atoms` section
2024-09-04Add Documentation For Auto-Generated Constructors & Initializer Lists (#4988)ArielG-NV
* Add documentation for auto-generated constructors & Initializer Lists fixes: #4903 Add documentation for auto-generated constructors & Initializer Lists, the logic behind this PR is on #4854 * clean up documentation as per review comments --------- Co-authored-by: Yong He <yonghe@outlook.com>
2024-09-04Fix extension override behavior, and disallow extension on interface types. ↵Yong He
(#4977) * Add a test to ensure extension does not override existing conformance. * Fix doc. * Update documentation. * Fix doc. * Add diagnostic test.
2024-08-30User guide page for SPIR-V target specific information (#4815)Jay Kwak
Adding a user guide page for SPIR-V specific features.
2024-08-28Add structured binding propsoal. (#4953)Yong He
2024-08-28Update `IFunc` proposal to reflect its implementation. (#4950)Yong He
2024-08-28Allow capabilities to be used with `[shader("...")]` (#4928)ArielG-NV
* Allow capabilities to be used with `[shader("...")]` Fixes: #4917 Changes: 1. Allow using capabilities instead of `Stage`s with `EntryPointAttribute`. 2. When resolving capabilities for an entrypoint+profile (per entrypoint) in `resolveStageOfProfileWithEntryPoint` add our `EntryPointAttribute` and resolved capability 3. Added tests and some capabilities related clean-up * fix a warning made by a mistake in syntax * change fineStageByName to assume it is passed a stage without a '_' * test with and without prefix '_' * cleanup some profiles and reprisentation to work better with 'Stage' and 'Profile' This use case is why we need to clean all profile-usage into `CapabilityName`s directly. * change how we compare * only change profiles * let all capabilities be resolved by 'shader' profile for now * fix warning checks I accidently broke * meshshading_internal to _meshshading --------- Co-authored-by: Yong He <yonghe@outlook.com>
2024-08-27Add functor syntax support. (#4926)Yong He
2024-08-27Document notable `__ref` uss in stdlib. Remove user docs use of '__ref'. (#4799)ArielG-NV
1. Document `__ref` in stdlib. 2. Remove `__ref` example in `docs\user-guide\a1-04-interop.md` 3. New example in `docs\user-guide\a1-04-interop.md` to compensate for no longer providing an example that uses `&` and `OpCapability`/`OpExtension`. Co-authored-by: Yong He <yonghe@outlook.com>
2024-08-27Adding a document of how to update external/spirv-* (#4902)Jay Kwak
Co-authored-by: Yong He <yonghe@outlook.com>
2024-08-27Script for generating a release note (#4776)Jay Kwak
* Script for generating a release note Related to #4718 * Adding a comment about how to run --------- Co-authored-by: Yong He <yonghe@outlook.com>
2024-08-26Implement `-fvk-use-dx-layout` (#4912)ArielG-NV
* Implement `-fvk-use-dx-layout` Fixes: #4126 Changes: * Added fvk-use-dx-layout * Modified `HLSLConstantBufferLayoutRulesImpl` for correctness (ex: Array is always 16 byte aligned) * Added kFXCShaderResourceLayoutRulesFamilyImpl and kFXCConstantBufferLayoutRulesFamilyImpl to handle fvk-use-dx-layout * Added `ConstantBufferLayoutRules` to manage constant buffer rules * Added `alignCompositeElementOfNonAggregate`/`alignCompositeElementOfAggregate` to handle forced alignment of composites for ConstantBuffers * `StructuredBuffer` rules are mostly equal to `scalar` layout, not much was needed to be changed to support this behavior. * seperate legacy constant buffer and how Slang does constant-buffer normally * undo an addition * remove accidental test * Address review and fix Address review and remove GLSL support since GLSL requires a seperate legalization (need to linearlize structs like with `legalizeMetalIR` to assign explicit offsets) * comments * remove aggregate and non-aggregate logic We don't need this distinction for the logic --------- Co-authored-by: Yong He <yonghe@outlook.com>
2024-08-22Add skeleton of a language reference. (#4808)Theresa Foley
The files being checked in here were initially written 2-3 years ago. They are very clearly incomplete, outdated and, quite often, inaccurate. The intention of this change is to get an initial skeleton in place for the large-scale structure of a language reference (for now avoiding the term "specification" and all the weight it carries). Future commits should be able to add to flesh out this skeleton and start to make the document more complete and more accurate.
2024-08-21Dont require llvm for building generators (#4895)Ellie Hermaszewska
* Dont require llvm for building generators * Fetch slang-llvm.so from correct release (#4847) * Fetch slang-llvm.so from correct release Closes https://github.com/shader-slang/slang/issues/4648 Should close https://github.com/shader-slang/slang/issues/4812 * Update docs * Correct documentation on cmake option * Neaten cmake script * Fix fetching on windows --------- Co-authored-by: Yong He <yonghe@outlook.com> * Be a bit more careful dealing with release list fetching failure * clarify error messages --------- Co-authored-by: Yong He <yonghe@outlook.com>
2024-08-20Revert "Fetch slang-llvm.so from correct release (#4847)" (#4893)Yong He
This reverts commit 579d59c761cb0460701e0e820eb066275fe357b3.
2024-08-20Proposal: A simpler and more flexible `IDifferentiable` system (#4865)Sai Praveen Bangaru
Designed to work for both value types as well as ref/ptr/buffer types Co-authored-by: Yong He <yonghe@outlook.com>
2024-08-20Fetch slang-llvm.so from correct release (#4847)Ellie Hermaszewska
* Fetch slang-llvm.so from correct release Closes https://github.com/shader-slang/slang/issues/4648 Should close https://github.com/shader-slang/slang/issues/4812 * Update docs * Correct documentation on cmake option * Neaten cmake script * Fix fetching on windows --------- Co-authored-by: Yong He <yonghe@outlook.com>
2024-08-19Tuple swizzling, concat, comparison and `countof`. (#4856)Yong He
* Tuple swizzling and element access. * Update proposal status. * Cleanup. * Fix merrge error. * Address review.
2024-08-18Variadic Generics Part 2: IR lowering and specialization. (#4849)Yong He
* Variadic Generics Part 2: IR lowering and specialization. * Update design doc status. * Update design doc. * Resolve review comments.
2024-08-16Design proposal: IFunc interface. (#4851)Yong He
* Design proposal: IFunc interface. * fix code error.
2024-08-16Update documentation for #include to indicate it is for legacy code and new ↵Ellie Hermaszewska
code should use modules (#4862) Closes https://github.com/shader-slang/slang/issues/4281
2024-08-14Design proposal for Tuple types. (#4848)Yong He
* Design proposal for Tuple types. * formatting.
2024-08-14Variadic Generics Part 1: parsing and type checking. (#4833)Yong He
2024-08-14Design proposal for variadic generics (#4821)Yong He
* Design proposal for variadic generics * Update IR lowering section. * fix typo. * Fix error. * Fix typos. * fix typos. * typo fix. * update reviewers. * update implementation info. * update implementation info. * update pr link. * rewording. * more rewording. * grammar fix.
2024-07-26Allow passing sized array to unsized array parameter. (#4744)Yong He
2024-07-25Add a proposal for new AST/IR serialization (#4684)Theresa Foley
This is intended to be a starting-point proposal/RFC document that will be discussed and iterated on to arrive at a POR that we can then use to create multiple bite-sized issues from. Co-authored-by: Yong He <yonghe@outlook.com>
2024-07-23Add Metal to user-guide/09-targets.md (#4703)Jay Kwak
* Add Metal to user-guide/09-targets.md Partially resolves #4262 The description of "Parameter passing" part for Metal is related to PR #4022