summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-10-06Refactor the code for synthesizing the body of constructor (#5231)kaizhangNV
2024-10-04update slang-rhi (#5208)Simon Kallweit
2024-10-04Add interfaces for retrieving separate linkable downstream binaries (#5128)cheneym2
* Implement separate downstream library interface Create a new com interface to house the methods for precompiling slang modules to target code. Add methods to count dependent modules and scrape them for downstream target binaries such that the downstream target binaries are linkabe outside of slang, e.g. via spirv-link or dxc. Fixes #5147 * Rename to _Experimental Clearly identify this as an interface subject to change.
2024-10-04Allow building using external dependencies (#5076)Tobias Frisch
* Add options to prevent usage of own submodules Signed-off-by: Jacki <jacki@thejackimonster.de> * Allow using external unordered dense headers Signed-off-by: Jacki <jacki@thejackimonster.de> * Link system wide installed unordered dense Signed-off-by: Jacki <jacki@thejackimonster.de> * Allow external header usage for lz4 and spirv Signed-off-by: Jacki <jacki@thejackimonster.de> * Add more options to disable targets Signed-off-by: Jacki <jacki@thejackimonster.de> * Add option to provide explizit path for spirv headers and remove earlier options that break the build process Signed-off-by: Jacki <jacki@thejackimonster.de> * Rename options to use common prefix Signed-off-by: Jacki <jacki@thejackimonster.de> * Fix indentation for the cmake changes Signed-off-by: Jacki <jacki@thejackimonster.de> * Add advanced_option function for cmake * Normalize includes between system and submodule dependencies Fix any before-accidentally-working problems * Add option for enabling/disabling slang-rhi Signed-off-by: Jacki <jacki@thejackimonster.de> * Pass correct include path for cpu tests * Correct include path --------- Signed-off-by: Jacki <jacki@thejackimonster.de> Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
2024-10-03Support custom derivatives of member functions of differentiable types (#5124)Sai Praveen Bangaru
* Initial work to support custom derivatives for member methods of differentiable types * Support custom derivatives of member functions of differentiable types - Also adds support for declaring custom derivatives via extensions. * Fix * move defs * Update slang-check-decl.cpp * Create diff-member-func-custom-derivative.slang.expected.txt * Update slang-check-decl.cpp * Fix for static custom derivatives * Fix diagnostics for [PreferRecompute] * Add backward custom derivative tests
2024-10-03Checkout LLVM as a workflow action rather than git-clone command (#5202)Jay Kwak
Closes #5201 Currently ci.yml builds slang-llvm all the time for all platforms. Because it takes too long, we store the output files in the cache. If the cache server is too busy, slang-llvm will be rebuilt, which will take awhile, but it will eventually work out. The problem is that git-clone was failing for cloning the LLMV repo. This is a less expected result, because cloning a git repository normally don't fail. We think that when the git-clone command is manually executed, there might be limit on the network connection based on IP or some sort. We expect that this problem will be resolved if we use actions/checkout in the workflow. Also this commit uses a forked repo of llvm under shader-slang organization to avoid network traffic on the original llvm repo.
2024-10-03Add path to bash to GITHUB_PATH (#5217)Jay Kwak
* Add path to bash to GITHUB_PATH This is a workaround for a problem that keeps reoccurring on one of our self-hosted machines. Ideally, we should assume that bash shell is available on the runner system, and we should rely on the system-wise setting of PATH to find bash. This commit is a workaround for a case where bash cannot be found from the runner machine, which shouldn't be a case in a normal situation. It is also not safe to assume that the location of where bash is at a fixed location, because it can vary by how the system is setup. Once we root cause the issue on the SlangWin4-2, we may remove this workaround later.
2024-10-02Fix the broken CI (#5216)Jay Kwak
The type of `sizeof` has to be int not uint.
2024-10-01Fix crash when compiling associatedtypes with generic interface constraints. ↵Yong He
(#5200) * Fix crash when compiling associatedtypes with generic interface constraints. * delete hlsl.meta.slang.temp.h. * Fix.
2024-10-01SizeOfLikeExpr has type int (#5205)Ellie Hermaszewska
* Correct typo in parser * SizeOfLineExprs have type int Fixes https://github.com/shader-slang/slang/issues/5191
2024-09-30Enable debug log for VK CTS workflow (#5197)Jay Kwak
This commit enables the workflow debug message for running VK CTS workflow. Currently three CTS tests are causing a crash of deqp with an exit code 1. And when the debug message printing is enabled, this crash is no longer happening, which is unexpected. It seems like the issue is on the CI runner process rather than Slang, driver nor deqp. We will keep the log message enabled not only to avoid the crash but also to see more information when things went wrong. This commit also prints the last 1,000 lines of TestResults.qpa when deqp had a failing test or deqp was exited unexpectedly. This will help us to debug the problem faster.
2024-09-30Fix diagnostics for [PreferRecompute] (#5159)Sai Praveen Bangaru
* Fix diagnostics for [PreferRecompute] * Update dont-warn-on-simple-prefer-recompute.slang * Update slang-ir-autodiff.cpp * Update dont-warn-on-simple-prefer-recompute.slang * Update warn-on-prefer-recompute-side-effects.slang
2024-09-30Disable the building of slang-llvm when targeting wasm platform (#5196)Jay Kwak
Co-authored-by: Yong He <yonghe@outlook.com>
2024-09-30Add COM API for querying metadata. (#5168)Yong He
* Add COM API for querying metadata. * Fix tests. * fix test.
2024-09-30Update slang-rhi (#5187)Simon Kallweit
* update slang-rhi * fix render-test * update slang-rhi --------- Co-authored-by: Yong He <yonghe@outlook.com>
2024-09-30Switch sccache action to Mozilla-Actions version (#5189)Ellie Hermaszewska
2024-09-30Add compile_commands.json to .gitignore (#5169)Ellie Hermaszewska
2024-09-30Disable wgpu on linux (#5186)Simon Kallweit
* remove setting CMAKE_SYSTEM_PROCESSOR we will need a proper toolchain file to setup cross-compilation * disable slang-rhi webgpu backend on linux this is a temporary fix for allowing the release workflow to run
2024-09-27Fix target switch lowering bug. (#5182)Yong He
2024-09-27Fix bug in `translateGlslGlobalVar()`. (#5181)Yong He
2024-09-27Fix hull shader spirv legalization bug. (#5180)Yong He
2024-09-27Fix l-value computation for subscript call. (#5177)Yong He
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-27Update slang-rhi (#5176)Yong He
2024-09-27Add fallback flag for sccache (#5170)Ellie Hermaszewska
SCCACHE_IGNORE_SERVER_IO_ERROR=1 Closes https://github.com/shader-slang/slang/issues/5163 Co-authored-by: Yong He <yonghe@outlook.com>
2024-09-27export CMAKE_SYSTEM_PROCESSOR for cross compilation builds (#5171)Simon Kallweit
2024-09-26Implement texture_storage_Xd in WGSL (#5158)Jay Kwak
* Implement texture_storage_Xd in WGSL This commit implements `texture_storage_Xd` in WGSL, which is similar to RWTextureXD in HLSL. It is intresting that `texture_storage_Xd` doesn't take the shader type as its input argument at all. Instead, it takes "texel format" enum value as its first template parameter, which can be found here: https://www.w3.org/TR/WGSL/#storage-texel-formats As an example, `texture_storage_2d<rg32uint, read_write>` expects vec4<u32> as a value type for `Load` and `Store`, where Z-component will be ignored and treated as zero and W-component will be treated always as 1. The type `u32` is inferred from the enum value `rg32uint`. Note that the number of component is always fixed to 4 regardless how many components are actually stored.
2024-09-26Update slang-rhi (#5160)Simon Kallweit
2024-09-26Move texture format inference to frontend and add reflection api for it. (#5155)Yong He
2024-09-26Always run AD cleanup pass. (#5157)Sai Praveen Bangaru
2024-09-25Update README.md for platform supportYong He
2024-09-25update slang-rhi (wgpu graphics support) (#5151)Simon Kallweit
Co-authored-by: Yong He <yonghe@outlook.com>
2024-09-25Remove text on inheritance support in user-guide. (#5154)Yong He
2024-09-25WGSL texture support for depth and multisampled (#5152)Jay Kwak
* WGSL texture support for depth and multisampled This commit fixes a few issues with WGSL texture intrinsics. - static_assert-s are corrected. - Gather functions work properly with depth textures - Load functions work properly with depth textures and multisampled textures
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-25Fixing bug when writing primitives in metal mesh shaders (#5069)Dynamitos
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-24Fix the incorrect use of GLSL textureGather (#5150)Jay Kwak
`$p` was incorrectly removed on the previous commit. This commit brings it back and fixes the problem.
2024-09-23Feature/wgsl intrinsic texture gather (#5141)Jay Kwak
This PR implements the texture gather functions for WGSL. The pattern was very similar to how Metal was implemented. Before copy and paste from the Metal implementation, I had to clean up the Metal implementation to make it more readable and maintainable. Gather functions are available only for 2D and 3D textures. Their `array` and `depth` variants may or may not be supported depending on the target. `static_assert` ensures that Gather functions are available only for 2D and 3D textures. Removed incorrect use of "$p" argument for targeting GLSL.
2024-09-23Implemented Combined-texture for WGSL (#5130)Jay Kwak
* Implemented Combined-texture for WGSL * Remove unnecessary comment * Limit to std430 layout * Fix compiler warning for unused variable --------- Co-authored-by: Yong He <yonghe@outlook.com>
2024-09-23update slang-rhi with initial wgpu support (#5137)Simon Kallweit
* update slang-rhi with initial wgpu support * update slang-rhi --------- Co-authored-by: Yong He <yonghe@outlook.com>
2024-09-23Fix incorrect use of pointer in WGSL (#5144)Jay Kwak
Closes #5143 Recently there was a commit that changed the behavior of the memory pointer for WGSL. This commit fixes some issues came up after the change.
2024-09-20Fix handling of pointer logic in wgsl backend. (#5129)Yong He
2024-09-20WGSL implement texture intrinsics except gather and sampler-less (#5123)Jay Kwak
This commit implements all of the texture intrinsics for WGSL except "Gather" and sampler-less. They will be implemented in a separate PR. A few things to note: - texture sampling functions are available only for the fragment shader stage; not for compute - WGSL doesn't have any functions similar to CalculateLevelOfDetail or CalculateLevelOfDetailUnclamped. - WGSL doesn't have a function overlaoding for textureSample with "clamp" or "status" arguments. - WGSL doesn't support Load operation with offset for texture_multisampled_XX and texture_storage_XX. - WGSL supports only four types of depth textures: 2D, 2D_array, cube and cube_array. - WGSL doesn't support "offset" variants for cube and cube_array.
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 diagnostic to verify the left hand side of a generic constraint. (#5112)Yong He
* Add diagnostic to verify the left hand side of a generic constraint. * Fix comment.
2024-09-19Re-enable slang-test for WGSL (#5120)Jay Kwak
My previous commit disabled the WGSL test by a mistake. This commit fixes the mistake and run the slang-test for WGSL tests. frexp and modf were still not working for the vector types.
2024-09-19Synthesize conformance for generic requirements. (#5111)Yong He
* Synthesize conformance for generic requirements. * Fix. * Fix build error. * address code review.