| Age | Commit message (Collapse) | Author |
|
* Squash redundant move warnings
* Move C interface from slang.h to slang-deprecated.h
spGetBuildTagString remains, because it's useful to have before the
global session exists.
This C API is used quite pervasively in the C++ helpers (for example
slang::UserAttribute. It's not trivial to move these to
slang-deprecated.h as they're entangled with some enums which are
themselves used elsewhere in the compiler.
The fact that these helpers use the C API can be viewed as an
implementation detail for now, and this usage moved to slang-deprecated
in due course.
Closes https://github.com/shader-slang/slang/issues/4758
* Squash warnings for our usage of our deprecated API
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
* Don't use __assume for SLANG_ASSERT + build fixes.
* Fix.
* build slang-wasm conditionally
* Fix.
* revert retry open file
* revert include.
* another attempt of silencing compiler warnings.
* revert assume change.
|
|
* Fix race condition for building stdlib headers
Fixes https://github.com/shader-slang/slang/issues/5270
* Generalize slangtarget install options
* Install slang-without-embedded-stdlib with generators
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
* Fix assert when compiling an entrypoint that calls another entrypoint.
* Fix test.
|
|
|
|
* Restrict stdlib embed macros to single source file
* Build slang-without-embedded-stdlib with the same target type as libslang
To avoid building everything twice
|
|
|
|
|
|
* Support constant folding for static array access.
* Fix test.
|
|
|
|
When precompiling modules defined
with glsl, it's necessary to link in the
glsl definition module.
Reuse the public fillRequirements declaration
|
|
|
|
* Fix spirv lowering logic around pointer to unsized array.
* Fix.
---------
Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
|
|
|
|
* 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.
|
|
initialization (#5023)
* Look through attributes and rates when determining by reference initialization
Closes #5022
* Make type of unwrapAttributedType more specific
* loosen type of unwrapAttributedType
* Discard changes to source/slang/slang-emit-spirv.cpp
* Discard changes to source/slang/slang-ir-check-differentiability.cpp
* Discard changes to source/slang/slang-ir.cpp
* Discard changes to source/slang/slang-ir.h
* Update slang-ir-use-uninitialized-values.cpp
* Remove redundant cast
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
declarations (#5236)
Closes issue #5229.
|
|
* Use the assembly description as target when disassembling
I believe this is a bugfix.
It seems to have worked before because up until the WGSL case, the disassembler has been
the same executable as the one producing the binary to be disassembled.
* Add Tint as a downstream compiler
This closes issue #5104.
* Add downstream compiler for Tint.
* Tint is wrapped in a shared library, 'slang-tint' available from [1].
* The header file for slang-tint.dll is added in external/slang-tint-headers.
* Add some boilerplate for WGSL targets.
* Add an entry point test for WGSL.
[1] https://github.com/shader-slang/dawn/releases/tag/slang-tint-0
* Add WGSL_SPIRV as supported target for Glslang
* Add WebGPU support to slang-test
This helps to address issue #5051.
* Disable lots of crashing compute tests for 'wgpu'
This closes issue #5051.
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
|
|
* 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.
|
|
* 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>
|
|
* 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
|
|
The type of `sizeof` has to be int not uint.
|
|
(#5200)
* Fix crash when compiling associatedtypes with generic interface constraints.
* delete hlsl.meta.slang.temp.h.
* Fix.
|
|
* Correct typo in parser
* SizeOfLineExprs have type int
Fixes https://github.com/shader-slang/slang/issues/5191
|
|
* 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
|
|
* Add COM API for querying metadata.
* Fix tests.
* fix test.
|
|
|
|
|
|
|
|
|
|
* 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.
|
|
|
|
|
|
* 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
|
|
|
|
* 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.
|
|
`$p` was incorrectly removed on the previous commit.
This commit brings it back and fixes the problem.
|
|
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.
|
|
* 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>
|
|
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.
|
|
|
|
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.
|
|
* 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>
|
|
* Add diagnostic to verify the left hand side of a generic constraint.
* Fix comment.
|
|
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.
|
|
* Synthesize conformance for generic requirements.
* Fix.
* Fix build error.
* address code review.
|
|
* Allow lookups of overloaded methods.
* Update slang-reflection-api.cpp
* Update slang.cpp
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
This closes issue #5085.
|