summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-11-05Catch all exceptions in render-test (#5495)cheneym2
Catch all exceptions in render-test In MSVC, the /EHsc flag is used by default, it causes only C++ (synchronous) exceptions to be caught by try/catch blocks. The /EHa flag can instead be used to catch both synchronous C++ exceptions as well as structured asynchronous exceptions such as those seen in segfaults or other typical bugs. Using /EHa allows render-test to not crash completely if there is a buggy graphics driver in the system. Issue 5275
2024-11-05Fix system semantics of SV_GroupIndex (#5496)kaizhangNV
Close the issue #4940.
2024-11-05Fix issue of infinity float literal (#5489)kaizhangNV
* Fix issue of infinity float literal * add parameters for the test * Correct the way to construct inf and nan In WGSL, expression of "1.0/0.0" is not allowed, it will report compile error, so to construct infinity or nan, we have to assign the float literal to a variable and then use it to bypass the compile error. By doing so, we add getInfinity and getNan functions to the builtin prelude to wgsl. --------- Co-authored-by: Yong He <yonghe@outlook.com>
2024-11-05Update slang-rhi and fix error handling (#5485)cheneym2
Update slang-rhi to pick up a fix in webgpu compilation error handling. In doRenderComparisonTestRun(), only return TestResult::Pass if the shader is ran actually compiled. A similar check is in place elsewhere in slang-test-main, but was missed in doRenderComparisonTestRun(). Add two tests to the github CI skiplist, and use the skiplist in one additional CI config that was running without it. Closes 5291
2024-11-05Move switch statement bodies to their own lines (#5493)Ellie Hermaszewska
* Move switch statement bodies to their own lines * format --------- Co-authored-by: Yong He <yonghe@outlook.com>
2024-11-05Fixing the wrong implementation of some math intrinsic (#5491)kaizhangNV
* Fixing the wrong implementation of some math intrinsic Close the issue #5282 The root cause of the issue is that log10 is not supported in wgsl. So add the implementation. Also ldexp in wgsl doesn't support float type exponent, so fix the implementation of the intrinsic. * re-enable the tests
2024-11-04Various WGSL fixes. (#5490)Yong He
* [WGSL] make sure switch has a default label. * Various WGSL fixes. * Update rhi submodule commit * format code * Remove unnecessary DISABLE_TEST directive on not applicable test. * Matrix comp mul + `select`. * Legalize binary ops for wgsl. --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
2024-11-04Update user-guide top bar nav links. (#5488)Yong He
2024-11-04Add codeowners file (#5482)Ellie Hermaszewska
Closes https://github.com/shader-slang/slang/issues/5440
2024-11-02Allow enum cases to be used in attribute arguments. (#5478)Yong He
2024-11-02Revert uint<->int implicit cast cost to prefer promotion to unsigned. (#5480)Yong He
2024-11-01Improve on spirv generation compile option (#5479)kaizhangNV
CompilerOptionName::EmitSpirvViaGLSL and CompilerOptionName::EmitSpirvDirectly options are not mutually exclusive, but due to compatible reason, we cannot delete those options. Instead, this change makes the effort to create a new option name EmitSpirvMethod, and we will turn those two options into the new one internally. Also, we put a priority implicitly on those two options, where EmitSpirvDirectly always win if it's set. We have another location that can setup the same option, where is through SlangTargetFlags::SLANG_TARGET_FLAG_GENERATE_SPIRV_DIRECTLY. We should definitely deprecate this flag to avoid more confusing. But for the same compatible reason, we cannot do that in this PR. Again, we will encourage people to not use this flag, but using the CompilerOptionName instead. In this PR, we will also implicitly give CompilerOptionName higher priority, it means that as long as user setup the CompilerOptionName for emit spirv method, it always take higher priority for the final decision.
2024-11-01Enable a few more WGPU tests (#5476)Anders Leino
* Enable tests/compute/func-cbuffer-param * Enable tests/language-feature/tuple/tuple-parameter.slang
2024-11-01Update Slang-RHI again to get more WGPU fixes (#5475)Anders Leino
This fixes a teardown crash, and a buffer usage mismatch issue during bind group creation. These Slang-RHI fixes allow several WGPU tests to be enabled: - tests/compute/column-major.slang - tests/compute/constant-buffer-memory-packing.slang - tests/compute/matrix-layout.hlsl - tests/compute/non-square-column-major.slang - tests/compute/row-major.slang - tests/hlsl/packoffset.slang This helps to address issue #5222.
2024-11-01Update Slang-RHI to get recent WGPU fixes (#5467)Anders Leino
This helps to address issue #5222. Also disable Slang-RHI from fetching DXC and Agility SDK, since that seems to break our tests. (See issue #5474.)
2024-10-31Add `lerp` for wgsl. (#5472)Yong He
2024-10-31Add function of getting hash string to wasm binding (#5468)kaizhangNV
* [wasm]: Add function to get string from hash * Fix bug on the visibility issue * Formatting
2024-10-30fix javascript error on doc layout. (#5464)Yong He
2024-10-30Constant-fold for the type-casting in switch-case labels (#5436)Jay Kwak
2024-10-30Enhancements to diff script (#5460)Ellie Hermaszewska
* Output diff for prettier format * Allow selective formatting * report progress when formatting cpp files * document --------- Co-authored-by: Yong He <yonghe@outlook.com>
2024-10-30Find slangc in more places in doc generation script (#5461)Ellie Hermaszewska
Co-authored-by: Yong He <yonghe@outlook.com>
2024-10-30Write only texture types. (#5454)Yong He
* Add support for write-only textures. * Fix capabilities. * Fix implementation. * Fix. * format code --------- Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com> Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
2024-10-30Add design doc for write-only textures. (#5455)Yong He
* Add design doc for write-only textures. * Minor tweaks.
2024-10-30Add google analytics. (#5438)Yong He
2024-10-30Fix vs build (#5452)Ellie Hermaszewska
2024-10-30Correct formatting (#5457)Ellie Hermaszewska
2024-10-30fix release script (#5459)Ellie Hermaszewska
2024-10-30format yaml and json (#5428)Ellie Hermaszewska
* format yaml and json * format shell scripts
2024-10-29Put debug symbols in releases (#5370)Ellie Hermaszewska
2024-10-29Precompiled SPIR-V import support (#5048)cheneym2
* Precompiled SPIR-V import support Adds appropriate linkage and function declaration syntax for SPIR-V functions that are declared, to be imported from another SPIR-V module. Unlike DXIL, stripping the Slang IR for a function down to a declaration requires retaining a block of parameters, as the function declaration must be emitted to SPIR-V with the same parameters as a definition. Because that thwarts the logic in Slang to tell the difference between a declaration and definition, and explicit decoration is introduced to explicitly mark functions which need to be treated as declarations during emit phase. Fixes #4992 Co-authored-by: Yong He <yonghe@outlook.com>
2024-10-29fix formatting issue (#5432)kaizhangNV
Co-authored-by: Yong He <yonghe@outlook.com>
2024-10-29Increase slangc option visibility in docs (#5425)cheneym2
* Increase slangc option visibility in docs Link to slangc command-line reference from readme. readme. Boost the visiblity of the link in the user-guide. Consolidates command-line-slangc.md into the user-guide. Fixes #4124 * Update README.md * Update 08-compiling.md --------- Co-authored-by: Yong He <yonghe@outlook.com>
2024-10-29[wasm]: fix the build error (#5430)kaizhangNV
2024-10-29Use Offset instead of ConstOffset for GLSL function textureGatherOffset (#5426)Jay Kwak
* Use Offset instead of ConstOffset for GLSL function textureGatherOffset This commit changes to use `Offset` option on OpImageGather instruction when translating `textureGatherOffset` to SPIR-V code. Interestingly GLSL allows the offset value to be a variable not constant just for the function `textureGatherOffset` while all other offset variants of texture sampling functions require the offset to be a constant value. From a few experiments, I found that the spirv-optimizer changes `Offset` to `ConstOffset` if the offset is a compile-time value. I also found that when the offset value is zero, it changes to `None` with no offset value.
2024-10-29formatEllie Hermaszewska
* format * Minor test fixes * enable checking cpp format in ci
2024-10-29preparation for clang format (#5422)Ellie Hermaszewska
* Clang-format excludes * Add .clang-format * Don't clang-format in external * Missing includes and forward declarations * Replace wonky include-once macro name * neaten include naming * Add clang-format to formatting script * Add xargs and diff to required binaries * add clang-format to ci formatting check * Add max version check to formatting script * temporarily disable checking formatting for cpp files
2024-10-29Check formatting in CI (#5409)Ellie Hermaszewska
also add ci to check cmake formatting
2024-10-29format cmake files (#5406)Ellie Hermaszewska
* format cmake files * format code --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
2024-10-29Correct URL in auto-format PR body (#5427)Ellie Hermaszewska
2024-10-29Improvements to formatting bot (#5421)Ellie Hermaszewska
* Use github token for formatting command dispatch * Open PR instead of committing directly when formatting * Add --no-version-check option to formatting script * Colorful diff output for cmake formatting
2024-10-28Replace the word stdlib or standard-library with core-module for source code ↵Jay Kwak
(#5415) This commit changes the word "stdlib" or "standard library" to "core module" in the source code.
2024-10-28Rename a directory `source/slang-stdlib` to slang-core-module (#5417)Jay Kwak
The directory name of `source/slang-stdlib` is changed to `source/slang-core-module`. We will use the term "core module" instead of "standard library" from now on.
2024-10-28Assorted auto-diff enhancements for increased performance & more streamlined ↵Sai Praveen Bangaru
auto-diff results (#5394) * Various AD enhancements * Fix issue with pt-loop test * Update pt-loop.slang * More fixes for perf. Final minimal context test now passes. * Fix issue with loop-elimination pass not running after dce * Try fix wgpu test by removing select operator * Disable wgpu * Delete out.wgsl * Remove comments * Update slang-ir-util.cpp * Fix header relative paths for slang-embed * Disbale wgpu for a few other tests * Better way of determining which params to ignore for side-effects * Update slang-ir-dce.cpp * Fix issue with circular reference from previous AD pass being left behind for the next AD pass * Update slang-ir-dce.cpp
2024-10-28Add documentation for buffer types (#5410)kaizhangNV
* Add documentation for buffer types * address comments * Update doc for LoadxAligned functions Update the doc for all Load{2,3,4}Aligned and LoadxAligned<T> functions of buffer type. We assume that those aligned version of Load{2,3,4} and Load<T> will treat the whole buffer as type of unit{2,3,4} or T, so the address must be aligned to size of the loaded type. --------- Co-authored-by: Yong He <yonghe@outlook.com>
2024-10-28More wasm binding for playground. (#5420)Yong He
2024-10-27Update README.mdYong He
2024-10-27Update README.mdYong He
2024-10-27Export language server to wasm. (#5419)Yong He
2024-10-27Add implicit cast for generic vector types. (#5413)Yong He
2024-10-27Add `InterlockedAddF64` intrinsic. (#5412)Yong He