| Age | Commit message (Collapse) | Author |
|
Pick up fix to https://github.com/shader-slang/slang/issues/5859
|
|
This closes #5950.
|
|
* Fix bug: IgnoreInheritance in lookup
When specifying IgnoreInheritance in lookup, it will ignore
all members in the self extension for generic, the reason is
that it doesn't specialize the target type of the extension
decl when comparing with self type, so it will result that every
type is unequal to the target type.
|
|
OptimizationLevel::Maximal (#6137)
|
|
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(#6121)
* Fix circularity issue with checking multiple generic interface constraints
* Create multi-generic-interface-constraint.slang
* Update multi-generic-interface-constraint.slang
* Update slang-check-inheritance.cpp
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
|
|
* Add groupshared atomic array test.
* Fix test.
|
|
* Allow __subscript<T> syntax.
* Fix.
|
|
* Refactor _Texture to constrain on texel types.
* Fix tests.
* Fix.
* Disable glsl texture test because rhi can't run it correctly.
|
|
|
|
* Avoid using the backend validation when using test server
Currently with a debug build, the backend validation such
as Vulkan-Validation-Layer or DXC validation is enabled all the time.
It means there is a higher chance that we see warning messages while
running slang-test with a debug build.
However, those warning messages incorrectly treated as the testing
result when using test-server. This is mainly because of the fact that
the Slang implemention for the RPC commucation expects only one time
output result. As soon as any warning is printed, the testing process is
incorrectly considered as completed even though it might be still in the
middle of initializing the device.
This commit disables the backend validation when using the test-server.
* format code (#31)
Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
---------
Co-authored-by: slangbot <ellieh+slangbot@nvidia.com>
Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
* Fix nullptr in generic specialization
* Fix formatting
* Revert "Fix nullptr in generic specialization" and add emitPtrLit instead
* Add type parameter to getPtrValue()
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
|
|
* Fix prebound parameter pack - argument list matching logic.
* Move tests.
* Fix.
|
|
* Add test that reproduces the issue in #5986
* Call moveGlobalVarInitializationToEntryPoints for WGSL as well
This closes #5986.
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
not considered properly. (#6099)
* Fix resource specialization issue where stores from inlined calls are not considered.
* Format
|
|
* Fix cyclic lookups with UnscopedEnums
* Add test with multiple unscoped enums with explicit types
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
* C-like emitter: Add redundant parentheses in several cases
This is required since the Dawn WGSL compiler requires parentheses even though precedence
rules could resolve order of operations.
This closes #6005.
* Fix tests/metal/byte-address-buffer
The output now includes parentheses around shift expressions appearing as operands in
bitwise expressions, so update the test accordingly.
* format code
---------
Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
* implement dot acc intrinsics
* fix sm version
* fix test
* improve comment
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
|
|
* Inline global constants that contains opaque handles for legalization.
* Add diagnostics on opaque type global variables.
* Fix.
* Fix test.
|
|
Such matrices aren't well supported except by D3D targets.
Therefore, generate an error rather than outputting invalid code for non-D3D targets.
This closes #5987.
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
* Implement anyvalue marshalling for 8-bit integers
* Fix missing offset from int8/uint8 case
* Disable anyvalue 8-bit test for DXIL
Because it doesn't support 8-bit values anyway.
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
* Refactor to reuse common for metal and wgsl entry point legalization
* refactor system val work item
* refactor simplify user names
* clean up fix semantic field of struct
* improve code layout
* split wgsl/metal to seperate classes and cleanup
* remove extra includes
* remove dead code comments
* minor cleanup
* squash merge from master and resolve conflict
* apply metal spec const thread count changes
* Revert "apply metal spec const thread count changes"
This reverts commit c42d707fd25ee0328598650d3235cd2322810ccc.
* Revert "squash merge from master and resolve conflict"
This reverts commit 06db88ef7001bdfe93fb23af35af0d026b255dee.
* Merge remote-tracking branch 'origin/master'
* apply metal spec const thread count changes
* Revert "apply metal spec const thread count changes"
This reverts commit 3b9e6f53cee2e6076ac2b7a0d015a1ed2cbbd627.
* Revert "Merge remote-tracking branch 'origin/master'"
This reverts commit 99869d573a46dadeb24445405f5a1e37a8e03d0d.
* apply metal spec const thread count changes
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
* Fix optix varying legalization.
* Add test.
|
|
|
|
* Fix documentation on DescriptorHandle.
* Fix.
* format code
---------
Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
|
|
* Allow using specialization constants in numthreads attribute
* Add support for GLSL local_size_x_id syntax
* Fix overeager specialization constant parsing
* Add diagnostics for specialization constant numthreads
* Remove unused variable
* Fix local_size_x_id not finding existing specialization constant
* Allow materializeGetWorkGroupSize to reference specialization constants
* Use SpvOpExecutionModeId for modes that require it
* Cleanup specialization constant numthreads code
* Add tests for specialization constant work group sizes
* Fix implicit Slang::Int -> int32_t cast
* Fix querying thread group size in reflection API
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
test (#6067)
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
* update slang-rhi
* pass --dopt=on to nvrtc when enabling debug information
* fix leaks in slang-rhi
* update slang-rhi
* only use --dopt when available
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
* Fix inaccurate documentation in member function mutability.
* Change throw to result in for specificity.
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
* Fix simplify if-else
The if-else optimization observes that at if at least one
true/false block is merely an unconditional jump to the
after block, that the whole if-else can be replaced with
a jump to the after block. But it's important to copy
the phi arguments from the aforementioned unconditional
jump, rather than what is present in the 'true' block,
since the 'true' block might actually just be the after
block itself.
Below, the ifElse() would be replaced with an unconditional
jump to block %39, but with the `phi` arguments copied from
the branch to %29, which is an unrelated block.
ifElse(%38, %39, %40, %39)
block %40:
unconditionalBranch(%39)
block %39:
unconditionalBranch(%29, 0 : Float)
block %29(
[nameHint("ret")]
param %ret : Float):
Fixes issue #5972
* format code
---------
Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
|
|
* add support for finding OptiX headers
* add documentation
* fix linux path
|
|
|
|
|
|
Fixes #6020
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
* WGSL: Fixes for signed shift amounts
- Handle the case of vector shift amounts
- Closes #5985
- Move handling of scalar case from emit to legalization
- Add tests for bitshifts.
* Move the binary operator legalization function to a common place
* Metal: Legalize binary operations
Closes #6029.
* Fix Metal filecheck test
The int shift amounts are now converted to unsigned.
* format code
---------
Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
There are a few tests that are currently passing but could fail when
conditions change little bit.
When slang-test runs with `test-server`, the spirv validation fails and
the test gets reported as failed even though they are actually passing.
To avoid the potential problem, this commit adds an empty entry point.
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
|