summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-11-30fetch and extract prebuilt deps lazily (#5707)Ellie Hermaszewska
Closes https://github.com/shader-slang/slang/issues/5706 and https://github.com/shader-slang/slang/issues/5657
2024-11-29Emit OpExecutionMode SpacingEqual for Domain stage (#5696)Jay Kwak
Domain stage should emit one more `OpExecutionMode` with `SpacingEqual`, similary to how Hull stage does. Currently Hull stage emits four OpExecutionMode as following: OpExecutionMode %hullMain SpacingEqual OpExecutionMode %hullMain OutputVertices 4 OpExecutionMode %hullMain VertexOrderCw OpExecutionMode %hullMain Quads And Domain stage emits only one OpExecutionMode: OpExecutionMode %domainMain Quads This commit adds the following instruction for Domain stage: OpExecutionMode %domainMain SpacingEqual It is because the Vulkan Validation Layer prints error when the Domain shader didn't have `OpeExecutionMode SpacingEqual`. `SpacingEqual` corresponds to an attribute, `[partitioning("integer")]`, given to the Hull stage. Although Domain stage is not marked with same attribute, it is assumed to use the same value used for matching Hull Stage. The error message from VVL is following: ``` vkCreateShadersEXT(): pCreateInfos[2].stage is VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, but spacing is not specified. The Vulkan spec states: If codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, pCode must contain an OpExecutionMode instruction specifying the spacing of segments on the edges of tessellated primitives (https://vulkan.lunarg.com/doc/view/1.3.283.0/windows/1.3-extensions/vkspec.html#VUID-VkShaderCreateInfoEXT-codeType-08874) ``` Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
2024-11-29Explain why tests/autodiff/diff-ptr-type-array.slang is disabled for WGPU ↵Anders Leino
(#5702) This closes #5613. Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
2024-11-29Support nonuniformEXT for GLSL (#5695)Jay Kwak
Adding nonuniformEXT intrinsic for GLSL Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
2024-11-29Fix markdown mistakes on user guide (#5672)Jay Kwak
* Fix markdown typos * Fix indentation * Fix indentation 2 * Fix indentation 3 * Fix indentation more --------- Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
2024-11-29docs: Reduce typo count (#5671)Bruce Mitchener
Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
2024-11-29Add missing WGSL intrinsics to test (#5663)Ellie Hermaszewska
Closes https://github.com/shader-slang/slang/issues/5263
2024-11-29Make ToC regeneration script path handling more robust (#5700)Ellie Hermaszewska
Co-authored-by: Anders Leino <aleino@nvidia.com>
2024-11-28Update Slang-RHI/slang (#5701)Anders Leino
* Update Slang-RHI/slang This brings in new fixes for WebGPU. In particular, the "use_dxc" toggle is now used, which should enable these tests to run on WebGPU, if f16 is otherwise supported: - `tests/language-feature/generics/variadic-0.slang` - `tests/language-feature/generics/tuple.slang` This closes #5605. * Disable tests/autodiff/float-cast.slang for wgpu This test was previously not running for WebGPU because it required the 'half' render feature, and Slang-RHI was previously not reporting it. With the Slang-RHI update, the test now runs on WebGPU. It now fails because the test is using 'double' which is just not supported on WebGPU. Thus this commit disables the test.
2024-11-28wgsl: signedness mismatch fixes (#5692)Anders Leino
* Enable tests/language-feature/enums/strongly-typed-id.slang * Fix operator signedness mismatch issue This helps to address issue #5606. * wgsl: Insert casts for integer type return values This closes #5606. * format code --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
2024-11-28Add Table of Contents check to CI, and bot script to regenerate (#5618)Ellie Hermaszewska
* Sort filenames when generating table of contents The order of EnumerateFiles is unspecified * Add build table of contents bash script * Add toc checking to CI * Add --check-only option to toc checking * regenerate ToC
2024-11-28Sort filenames when generating table of contents (#5659)Ellie Hermaszewska
The order of EnumerateFiles is unspecified
2024-11-28wgsl: Conditionally enable some tests based on 'half' support (#5694)Anders Leino
Require the 'half' rendering feature for WebGPU, so that we can detect when the f16 feature is not available, for the following tests: - tests/language-feature/generics/tuple.slang - tests/language-feature/generics/variadic-0.slang This helps to address issue #5605.
2024-11-27Update workflow YML files for renamed files (#5688)Jay Kwak
Recently we renamed a few files and directories and they should be reflected on the workflow YAML files. - LICENCE is a typo of LICENSE. - We recently created a new "LICENSES/" - CONTRIBUTION.md was renamed to CONTRIBUTING.md Closes #5686
2024-11-26Document the restrictions for vector size (#5673)Jay Kwak
Added a note to clarify that vector types cannot have size bigger than 4.
2024-11-26WGSL: Fix issue where swizzle L-values are generated (#5682)Anders Leino
* wgsl: Do not generate L-value swizzle expressions * Enable tests/language-feature/swizzles/matrix-swizzle-write-*.slang The following tests are enabled - tests/language-feature/swizzles/matrix-swizzle-write-swizzle.slang - tests/language-feature/swizzles/matrix-swizzle-write-array.slang This closes #5603.
2024-11-26wgpu: Enable Metal-like legalization for byte addressible buffers (#5681)Anders Leino
* Enable hlsl-intrinsic/byte-address-buffer/byte-address-struct * Set byte address buffer legalization options for WGSL
2024-11-26Enable Link-Time-Code-Generation for Release builds (#5678)Jay Kwak
This commit enables Link Time Code Generation, or LTCG for short, for the release builds. Because "incremental" build is enabled, this ends up using "/LTCG:incremental" rather than the full "/LTCG". It is still expected to more performant than without any "/LTCG" at all. In order to use the full LTCG, we will need to give up the incremental build option for the Release build. We will need to decide if we wants to do it later.
2024-11-25Fix issue with slang-embed & include ordering (#5680)Sai Praveen Bangaru
* Fix issue with slang-embed & include ordering * Update CMakeLists.txt
2024-11-25Support interpolation modifiers for WGSL (#5641)Anders Leino
* wgsl: Support interpolation modifiers * Move struct key decorations to flattened structs. ** This includes interpolation mode decorations, which must be in the flattened struct. * Emit interpolation attribute. * Enable tests/render/nointerpolation.hlsl for WGSL, as a result. This closes #5625. * Add new expected output for 'nointerpolation' test
2024-11-25Fix issue where inter-stage parameters without semantics don't get location ↵Anders Leino
attributes (#5670) * wgsl: Make sure each shader input field has a semantic This closes #5633. * Add test for inter-stage variables without semantics This verifies the fix of the second issue identified in https://github.com/shader-slang/slang/issues/5633 * format code --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
2024-11-25wgsl: Fix field semantics even if input struct doesn't need flattening (#5642)Anders Leino
* wgsl: Fix field semantics even if input struct doesn't need flattening Helps to address issue #5633. * Add test for multiple stage IO locations This verifies part of issue #5633.
2024-11-25Fix broken link in 09-reflection.md (#5655)Elie Michel
* Fix broken link in 09-reflection.md * Fix another link on 08-compiling.md --------- Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
2024-11-25[Docs] Re-run build_toc and fix dead links (#5647)Ica
* re-run build_toc.ps1 * fix dead link of readme --------- Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
2024-11-23Fix unused struct in sample shader (#5650)Yuki Nishidate
2024-11-22[AD] Add support for resolving custom derivatives where generic parameters ↵Sai Praveen Bangaru
can't be automatically inferred (#5630) * [AD] Add support for resolving custom derivatives where generic parameters can't be automatically inferred * Fix failing tests * Update custom-derivative-generic.slang
2024-11-22ci: Use v1.11 of the release-downloader action (#5643)Bruce Mitchener
CI was previous using different versions in different jobs but all were old and using a version of Node that has been deprecated within the GitHub Actions infrastructure. Co-authored-by: Yong He <yonghe@outlook.com>
2024-11-22Don't treat StrcturedBuffer<IFoo> as a specializable param. (#5645)Yong He
* Don't treat StrcturedBuffer<IFoo> as a specializable param. * Fix RHI.
2024-11-22Fixed type (#5639)KoT
vec3x4 to mat3x4 Co-authored-by: Yong He <yonghe@outlook.com>
2024-11-22[Docs] fix spirv dead links on toc.html (#5638)Ica
I believe this will fix the dead links that occurred because of sub section renames. Co-authored-by: Yong He <yonghe@outlook.com>
2024-11-22Enable core module embedding by default in CMake. (#5644)Kanashimia
It seems that release workflows were unexpectedly broken when STDLIB was renamed to CORE_MODULE. Changed the option default because I think it just makes more sense. Removed explicit calls to enable it. Fixed docs.
2024-11-21[Docs] Optional<T> - fix small typo on example (#5637)Ica
Co-authored-by: Yong He <yonghe@outlook.com>
2024-11-22Add explanation for disabled WGPU tests (#5628)Anders Leino
2024-11-21[Docs] Extensions - better wording for c# equivalent (#5636)Ica
slang extensions look pretty same c# extension methods, not partial classes. Partial classes allow extending types to introduce more variables unlike slang extensions. Also c# users that use extension methods much more than partial types, probably. Co-authored-by: Yong He <yonghe@outlook.com>
2024-11-21ci: Update `actions/checkout` to always use v4 (#5634)Bruce Mitchener
CI was using a mix of version 3 and 4. Version 3 results in a warning within the GitHub Actions UI as it was using a version of NodeJS that is deprecated within the GitHub Actions infrastructure.
2024-11-21Add datalayout for constant buffers. (#5608)Yong He
* Add datalayout for constant buffers. * Fixes. * Fix test. * Fix glsl codegen. * Update spirv-specific doc. * Fix test. * Fix binding in the presense of specialization constants. * address comments. * Add a test for constant buffer layout.
2024-11-21Enable some rendering tests (#5623)Anders Leino
* render-test: Add copy-source usage for render targets I found that Slang-RHI/WGPU was not able to copy from render targets to staging buffers. This helps to address issue #4943. * Add entries to render API util infos Entries for glsl-cross and glsl-rewrite are added. Without glsl-cross, slang-test fails to select a back-end, and winds up crashing when tests/render/cross-compile-entry-point.slang is enabled tests/render/cross-compile0.hlsl fails similarly without glsl-rewrite. * Enable some rendering tests * Add expected test outputs
2024-11-21Add reuse and related files (#5622)Yong He
* Add reuse and related files * Fix dxcapi license. --------- Co-authored-by: James Riordon <jriordon@outofcontrol.ca>
2024-11-21Refresh of disabled WGPU tests (#5614)Anders Leino
Some tests are now passing and are enabled. Other tests are still failing, but are given comments categorizing the failures. Tests in the 'Not supported in WGSL' category are also removed from the expected failures list. (Though they are still kept disabled for WebGPU, of course.) This closes #5519.
2024-11-20Change how DeclRef::toText works (#5592)Sai Praveen Bangaru
* Change how DeclRef::toText works We now ignore the decl-ref heirarchy since that only includes nodes with specialization info & simply walk up the tree of decls, while emitting any specializations present in the decl-ref. * Update some tests. Add cases for direct refs to generic params & Lookup decl refs
2024-11-20Add description on write-only textures in wgsl doc.Yong He
2024-11-20Small docs corrections (#5615)Ellie Hermaszewska
* Small docs corrections * fix typo. --------- Co-authored-by: Yong He <yonghe@outlook.com>
2024-11-20Clarify stdlib-docgen example (#5619)cheneym2
Add a clarification on the example provided regarding documenting only the first overload. Though the example follows immediately after an existing explanation that only the first overload is present, and that _all_ parameters must be documented there, an extra sentence and the shell of a second overload help drive home the point. Co-authored-by: Yong He <yonghe@outlook.com>
2024-11-20Add Matrix overload for exp10() core lib function (#5620)bprb
Fixes #5579
2024-11-20Add link to metal docs and regen TOC (#5616)Ellie Hermaszewska
* Add link to metal docs * Regenerate TOC --------- Co-authored-by: Yong He <yonghe@outlook.com>
2024-11-20Enable WGPU texture sampling test (#5617)Anders Leino
* Limit number of MIP levels on 1d textures to be 1 This avoids running into a WebGPU limitation, and helps to address issue #4943. * Update Slang-RHI to get WGPU fixes * Enable WGPU texture sampling test This helps to address issue #4943. --------- Co-authored-by: Yong He <yonghe@outlook.com>
2024-11-20Minor core lib doc fixes (#5599)cheneym2
* Minor core lib doc fixes Fixing a couple functions that were missing their categorization. Also cleaned up some trailing spaces. * Update hlsl.meta.slang
2024-11-20Fix WGPU test by provding TEST_INPUT for outputBuffer (#5611)Anders Leino
This makes tests/bugs/shadowed-lookup.slang pass on WGPU. The underlying issue seems similar to #5277.
2024-11-20WGSL: Support isnan, isinf, etc.. (#5609)Anders Leino
2024-11-19Fix wgsl legalization around __ref parameter. (#5597)Yong He
* Fix wgsl legalization around __ref parameter. * Add intrinsic and test case.