From 509409ef11e3b1abd1d7e1bfb540bc172aa1a817 Mon Sep 17 00:00:00 2001 From: Anders Leino Date: Mon, 7 Oct 2024 20:16:19 +0300 Subject: 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 --- tools/render-test/options.cpp | 1 + tools/render-test/render-test-main.cpp | 6 ++++++ 2 files changed, 7 insertions(+) (limited to 'tools/render-test') diff --git a/tools/render-test/options.cpp b/tools/render-test/options.cpp index dc1850d37..07e8b0e2a 100644 --- a/tools/render-test/options.cpp +++ b/tools/render-test/options.cpp @@ -33,6 +33,7 @@ static rhi::DeviceType _toRenderType(Slang::RenderApiType apiType) case RenderApiType::Metal: return rhi::DeviceType::Metal; case RenderApiType::CPU: return rhi::DeviceType::CPU; case RenderApiType::CUDA: return rhi::DeviceType::CUDA; + case RenderApiType::WebGPU: return rhi::DeviceType::WGPU; default: return rhi::DeviceType::Default; } diff --git a/tools/render-test/render-test-main.cpp b/tools/render-test/render-test-main.cpp index 9e1d60155..31c24b028 100644 --- a/tools/render-test/render-test-main.cpp +++ b/tools/render-test/render-test-main.cpp @@ -1191,6 +1191,12 @@ static SlangResult _innerMain(Slang::StdWriters* stdWriters, SlangSession* sessi input.profile = ""; nativeLanguage = SLANG_SOURCE_LANGUAGE_CUDA; slangPassThrough = SLANG_PASS_THROUGH_NVRTC; + break; + case DeviceType::WGPU: + input.target = SLANG_WGSL; + input.profile = ""; + nativeLanguage = SLANG_SOURCE_LANGUAGE_WGSL; + slangPassThrough = SLANG_PASS_THROUGH_NONE; break; default: -- cgit v1.2.3