diff options
| author | Anders Leino <aleino@nvidia.com> | 2024-10-07 20:16:19 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-07 10:16:19 -0700 |
| commit | 509409ef11e3b1abd1d7e1bfb540bc172aa1a817 (patch) | |
| tree | a72725310c63b5224e76a79a4cb9b8ab9984cbc5 /source/slang/slang-compiler.cpp | |
| parent | ff51c21ba217fe18bf22fec7bf822cde779b265d (diff) | |
Add WGSL support for slang-test (#5174)
* 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>
Diffstat (limited to 'source/slang/slang-compiler.cpp')
| -rw-r--r-- | source/slang/slang-compiler.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/source/slang/slang-compiler.cpp b/source/slang/slang-compiler.cpp index 1f962d625..5bbc92e97 100644 --- a/source/slang/slang-compiler.cpp +++ b/source/slang/slang-compiler.cpp @@ -520,6 +520,10 @@ namespace Slang { return SourceLanguage::CUDA; } + case PassThroughMode::Tint: + { + return SourceLanguage::WGSL; + } case PassThroughMode::SpirvDis: { return SourceLanguage::SPIRV; @@ -555,6 +559,7 @@ namespace Slang { return PassThroughMode::None; } + case CodeGenTarget::WGSLSPIRVAssembly: case CodeGenTarget::SPIRVAssembly: case CodeGenTarget::SPIRV: { @@ -588,7 +593,10 @@ namespace Slang { return PassThroughMode::NVRTC; } - + case CodeGenTarget::WGSLSPIRV: + { + return PassThroughMode::Tint; + } default: break; } @@ -1010,6 +1018,7 @@ namespace Slang case CodeGenTarget::DXIL: return CodeGenTarget::HLSL; case CodeGenTarget::SPIRV: return CodeGenTarget::GLSL; case CodeGenTarget::MetalLib: return CodeGenTarget::Metal; + case CodeGenTarget::WGSLSPIRV: return CodeGenTarget::WGSL; default: break; } return CodeGenTarget::Unknown; @@ -1621,6 +1630,7 @@ namespace Slang case CodeGenTarget::DXBytecodeAssembly: return CodeGenTarget::DXBytecode; case CodeGenTarget::DXILAssembly: return CodeGenTarget::DXIL; case CodeGenTarget::SPIRVAssembly: return CodeGenTarget::SPIRV; + case CodeGenTarget::WGSLSPIRVAssembly: return CodeGenTarget::WGSLSPIRV; default: return CodeGenTarget::None; } } @@ -1635,6 +1645,7 @@ namespace Slang case CodeGenTarget::DXBytecodeAssembly: case CodeGenTarget::DXILAssembly: case CodeGenTarget::MetalLibAssembly: + case CodeGenTarget::WGSLSPIRVAssembly: { // First compile to an intermediate target for the corresponding binary format. const CodeGenTarget intermediateTarget = _getIntermediateTarget(target); @@ -1669,6 +1680,7 @@ namespace Slang case CodeGenTarget::HostExecutable: case CodeGenTarget::HostHostCallable: case CodeGenTarget::HostSharedLibrary: + case CodeGenTarget::WGSLSPIRV: SLANG_RETURN_ON_FAIL(emitWithDownstreamForEntryPoints(outArtifact)); return SLANG_OK; @@ -1701,6 +1713,7 @@ namespace Slang case CodeGenTarget::ShaderSharedLibrary: case CodeGenTarget::HostExecutable: case CodeGenTarget::HostSharedLibrary: + case CodeGenTarget::WGSLSPIRVAssembly: { SLANG_RETURN_ON_FAIL(_emitEntryPoints(outArtifact)); |
