summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt103
-rw-r--r--cmake/FetchedSharedLibrary.cmake83
-rw-r--r--source/core/slang-render-api-util.cpp8
-rw-r--r--tests/autodiff-dstdlib/dstdlib-abs.slang1
-rw-r--r--tests/autodiff/bug-1.slang1
-rw-r--r--tests/autodiff/custom-intrinsic.slang1
-rw-r--r--tests/autodiff/diff-ptr-type-call.slang1
-rw-r--r--tests/autodiff/diff-ptr-type-loop.slang1
-rw-r--r--tests/autodiff/diff-ptr-type-smoke.slang1
-rw-r--r--tests/autodiff/existential-1.slang1
-rw-r--r--tests/autodiff/existential-2.slang1
-rw-r--r--tests/autodiff/global-param-hoisting.slang1
-rw-r--r--tests/autodiff/material/diff-bwd-falcor-material-system.slang1
-rw-r--r--tests/autodiff/material2/diff-bwd-falcor-material-system.slang1
-rw-r--r--tests/autodiff/matrix-arithmetic-fwd.slang1
-rw-r--r--tests/autodiff/reverse-loop-checkpoint-test.slang1
-rw-r--r--tests/bindings/nested-parameter-block-2.slang1
-rw-r--r--tests/bindings/nested-parameter-block-3.slang1
-rw-r--r--tests/bugs/atomic-coerce.slang1
-rw-r--r--tests/bugs/buffer-swizzle-store.slang1
-rw-r--r--tests/bugs/dxbc-double-problem.slang1
-rw-r--r--tests/bugs/frexp-double.slang1
-rw-r--r--tests/bugs/frexp.slang1
-rw-r--r--tests/bugs/generic-type-duplication.slang1
-rw-r--r--tests/bugs/gh-2959.slang1
-rw-r--r--tests/bugs/gh-3980.slang1
-rw-r--r--tests/bugs/gh-471.slang1
-rw-r--r--tests/bugs/gh-518.slang1
-rw-r--r--tests/bugs/gh-566.slang1
-rw-r--r--tests/bugs/inf-float-literal.slang1
-rw-r--r--tests/bugs/mutating/resource-specialization-inout.slang1
-rw-r--r--tests/bugs/nested-switch.slang1
-rw-r--r--tests/bugs/obfuscate-specialization-naming.slang1
-rw-r--r--tests/bugs/op-assignment-unify-mat.slang1
-rw-r--r--tests/bugs/shadowed-lookup.slang1
-rw-r--r--tests/bugs/specialize-function-array-args.slang1
-rw-r--r--tests/bugs/static-var.slang1
-rw-r--r--tests/bugs/user-attribute-lookup.slang1
-rw-r--r--tests/compute/cbuffer-legalize.slang1
-rw-r--r--tests/compute/compile-time-loop.slang1
-rw-r--r--tests/compute/constexpr.slang1
-rw-r--r--tests/compute/discard-stmt.slang1
-rw-r--r--tests/compute/func-param-legalize.slang1
-rw-r--r--tests/compute/func-resource-param.slang1
-rw-r--r--tests/compute/interface-shader-param-in-struct.slang1
-rw-r--r--tests/compute/interface-shader-param.slang1
-rw-r--r--tests/compute/kernel-context-threading.slang1
-rw-r--r--tests/compute/loop-unroll.slang1
-rw-r--r--tests/compute/matrix-layout.hlsl1
-rw-r--r--tests/compute/non-square-column-major.slang1
-rw-r--r--tests/compute/non-square-row-major.slang1
-rw-r--r--tests/compute/parameter-block.slang1
-rw-r--r--tests/compute/row-major.slang1
-rw-r--r--tests/expected-failure-github.txt75
-rw-r--r--tests/hlsl-intrinsic/byte-address-buffer/byte-address-struct.slang1
-rw-r--r--tests/hlsl-intrinsic/classify-double.slang1
-rw-r--r--tests/hlsl-intrinsic/classify-float.slang1
-rw-r--r--tests/hlsl-intrinsic/matrix-float.slang1
-rw-r--r--tests/hlsl-intrinsic/matrix-int.slang1
-rw-r--r--tests/hlsl-intrinsic/sampler-feedback/compute-sampler-feedback.slang1
-rw-r--r--tests/hlsl-intrinsic/scalar-double-simple.slang1
-rw-r--r--tests/hlsl-intrinsic/scalar-float.slang1
-rw-r--r--tests/hlsl-intrinsic/vector-float.slang1
-rw-r--r--tests/hlsl/packoffset.slang1
-rw-r--r--tests/ir/string-literal-hash.slang1
-rw-r--r--tests/language-feature/anonymous-struct.slang1
-rw-r--r--tests/language-feature/constants/constexpr-loop.slang1
-rw-r--r--tests/language-feature/constants/static-const-in-generic-interface.slang1
-rw-r--r--tests/language-feature/enums/nested-enum.slang1
-rw-r--r--tests/language-feature/enums/strongly-typed-id.slang1
-rw-r--r--tests/language-feature/generics/irwarray.slang1
-rw-r--r--tests/language-feature/generics/parameter-block-unify.slang1
-rw-r--r--tests/language-feature/generics/tuple.slang1
-rw-r--r--tests/language-feature/generics/variadic-0.slang1
-rw-r--r--tests/language-feature/generics/variadic-void.slang1
-rw-r--r--tests/language-feature/higher-order-functions/simple.slang1
-rw-r--r--tests/language-feature/inheritance/struct-inheritance.slang1
-rw-r--r--tests/language-feature/shader-params/entry-point-uniform-params-implicit.slang1
-rw-r--r--tests/language-feature/shader-params/entry-point-uniform-params.slang1
-rw-r--r--tests/language-feature/shader-params/interface-shader-param-ordinary.slang1
-rw-r--r--tests/language-feature/swizzles/matrix-swizzle-write-array.slang1
-rw-r--r--tests/language-feature/swizzles/matrix-swizzle-write-single.slang1
-rw-r--r--tests/language-feature/swizzles/matrix-swizzle-write-swizzle.slang1
-rw-r--r--tests/language-feature/swizzles/matrix-swizzle-write.slang1
-rw-r--r--tests/language-feature/tuple/tuple-parameter.slang1
-rw-r--r--tests/language-feature/types/opaque/inout-param-opaque-type-in-struct.slang1
-rw-r--r--tests/language-feature/types/opaque/inout-param-opaque-type.slang1
-rw-r--r--tests/language-feature/types/opaque/out-param-opaque-type-in-struct.slang1
-rw-r--r--tests/language-feature/types/opaque/out-param-opaque-type.slang1
-rw-r--r--tests/language-feature/types/opaque/return-opaque-type-in-struct.slang1
-rw-r--r--tests/language-feature/types/opaque/return-opaque-type.slang1
-rw-r--r--tests/metal/groupshared-threadlocal-same-parameter.slang1
-rw-r--r--tests/optimization/func-resource-result/func-resource-result-complex.slang1
-rw-r--r--tests/optimization/func-resource-result/func-resource-result-simple.slang1
-rw-r--r--tests/pipeline/compute/compute-system-values.slang1
-rw-r--r--tests/serialization/obfuscated-serialized-module-test.slang.3.expected.txt4
96 files changed, 295 insertions, 69 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6a87a61ab..cc73d653b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -49,6 +49,7 @@ include(LLVM)
include(SlangTarget)
include(AutoOption)
include(GitHubRelease)
+include(FetchedSharedLibrary)
#
# Options
@@ -173,6 +174,24 @@ if(SLANG_SLANG_LLVM_FLAVOR MATCHES FETCH_BINARY)
)
endif()
+set(webgpu_dawn_release_tag "webgpu_dawn-0")
+if(CMAKE_SYSTEM_NAME MATCHES "Windows" AND
+ CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64")
+ set(
+ SLANG_WEBGPU_DAWN_BINARY_URL
+ "https://github.com/shader-slang/dawn/releases/download/${webgpu_dawn_release_tag}/webgpu_dawn-windows-x64.zip"
+ )
+endif()
+
+set(slang_tint_release_tag "slang-tint-0")
+if(CMAKE_SYSTEM_NAME MATCHES "Windows" AND
+ CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64")
+ set(
+ SLANG_SLANG_TINT_BINARY_URL
+ "https://github.com/shader-slang/dawn/releases/download/${slang_tint_release_tag}/slang-tint-windows-x64.zip"
+ )
+endif()
+
#
# Option validation
#
@@ -413,77 +432,21 @@ if(SLANG_ENABLE_SLANG_GLSLANG)
add_supported_cxx_linker_flags(slang-glslang PRIVATE "-Wl,--exclude-libs,ALL")
endif()
+# webgpu_dawn is only available as a fetched shared library, since Dawn's nested source
+# trees are too large and onerous for us to depend on.
+if(SLANG_WEBGPU_DAWN_BINARY_URL)
+ copy_fetched_shared_library("webgpu_dawn" "${SLANG_WEBGPU_DAWN_BINARY_URL}")
+endif()
-if(SLANG_SLANG_LLVM_FLAVOR STREQUAL "FETCH_BINARY")
- #
- # Do some stupid little dance to put everything in the right shape with
- # correct dependencies
- #
-
- set(slang_llvm_filename
- "${CMAKE_SHARED_LIBRARY_PREFIX}slang-llvm${CMAKE_SHARED_LIBRARY_SUFFIX}"
- )
- macro(from_glob dir)
- # A little helper function
- file(
- GLOB_RECURSE slang_llvm_source_object
- "${dir}/${slang_llvm_filename}"
- )
- list(LENGTH slang_llvm_source_object nmatches)
- if(nmatches EQUAL 0)
- message(
- SEND_ERROR
- "Unable to find ${slang_llvm_filename} in ${SLANG_SLANG_LLVM_BINARY_URL}"
- )
- elseif(nmatches GREATER 1)
- message(
- SEND_ERROR
- "Found multiple files named ${slang_llvm_filename} in ${SLANG_SLANG_LLVM_BINARY_URL}"
- )
- endif()
- endmacro()
-
- if(IS_DIRECTORY "${SLANG_SLANG_LLVM_BINARY_URL}")
- # Just glob directly from a local directory
- from_glob("${SLANG_SLANG_LLVM_BINARY_URL}")
- elseif(
- SLANG_SLANG_LLVM_BINARY_URL
- MATCHES
- "${CMAKE_SHARED_LIBRARY_PREFIX}.+${CMAKE_SHARED_LIBRARY_SUFFIX}$"
- AND EXISTS "${SLANG_SLANG_LLVM_BINARY_URL}"
- )
- # Otherwise, if it's a direct path to a shared object, use that
- set(slang_llvm_source_object "${SLANG_SLANG_LLVM_BINARY_URL}")
- else()
- # Otherwise, download and extract from whatever URL we have
- fetchcontent_declare(slang-llvm URL "${SLANG_SLANG_LLVM_BINARY_URL}")
- fetchcontent_populate(slang-llvm)
- from_glob("${slang-llvm_SOURCE_DIR}")
- endif()
-
- set(slang_llvm_dest_object
- ${CMAKE_BINARY_DIR}/$<CONFIG>/${module_subdir}/${slang_llvm_filename}
- )
- add_custom_command(
- OUTPUT ${slang_llvm_dest_object}
- COMMAND
- ${CMAKE_COMMAND} -E copy_if_different ${slang_llvm_source_object}
- ${slang_llvm_dest_object}
- DEPENDS ${slang_llvm_source_object}
- VERBATIM
- )
- # Give this copying action a name
- add_custom_target(copy-slang-llvm DEPENDS ${slang_llvm_dest_object})
- set_target_properties(copy-slang-llvm PROPERTIES FOLDER generated)
+# slang-tint is only available as a fetched shared library, since it's hosted in the Dawn
+# repository, and Dawn's nested source trees are too large and onerous for us to depend
+# on.
+if(SLANG_SLANG_TINT_BINARY_URL)
+ copy_fetched_shared_library("slang-tint" "${SLANG_SLANG_TINT_BINARY_URL}")
+endif()
- # Put this into a library target
- add_library(slang-llvm MODULE IMPORTED GLOBAL)
- add_dependencies(slang-llvm copy-slang-llvm)
- set_property(
- TARGET slang-llvm
- PROPERTY IMPORTED_LOCATION ${slang_llvm_dest_object}
- )
- install(PROGRAMS ${slang_llvm_dest_object} DESTINATION ${module_subdir})
+if(SLANG_SLANG_LLVM_FLAVOR STREQUAL "FETCH_BINARY")
+ install_fetched_shared_library("slang-llvm" "${SLANG_SLANG_LLVM_BINARY_URL}")
elseif(SLANG_SLANG_LLVM_FLAVOR STREQUAL "USE_SYSTEM_LLVM")
llvm_target_from_components(llvm-dep filecheck native orcjit)
clang_target_from_libs(
@@ -665,6 +628,8 @@ if(SLANG_ENABLE_TESTS)
slang-rt
slang-glslang
slang-llvm
+ copy-webgpu_dawn
+ copy-slang-tint
FOLDER test
DEBUG_DIR ${slang_SOURCE_DIR}
)
diff --git a/cmake/FetchedSharedLibrary.cmake b/cmake/FetchedSharedLibrary.cmake
new file mode 100644
index 000000000..d63f03d29
--- /dev/null
+++ b/cmake/FetchedSharedLibrary.cmake
@@ -0,0 +1,83 @@
+# Add rules to copy & install shared library of name 'library_name' in the 'module_subdir' directory.
+# If 'url' is a directory, the shared library (with platform-specific shared library prefixes and suffixes) will be
+# taken from the directory, and whatever is found there will be used to produce the install rule.
+# If the 'url' is a path to a file with the platform-specific shared library prefix and suffix, then that file
+# will be used to produce the install rule.
+# Otherwise, the 'url' is interpreted as an URL, and the content of the URL will be fetched, extracted and searched
+# for the shared library to produce the install rule.
+function(copy_fetched_shared_library library_name url)
+ set(shared_library_filename
+ "${CMAKE_SHARED_LIBRARY_PREFIX}${library_name}${CMAKE_SHARED_LIBRARY_SUFFIX}"
+ )
+ macro(from_glob dir)
+ # A little helper function
+ file(
+ GLOB_RECURSE source_object
+ "${dir}/${shared_library_filename}"
+ )
+ list(LENGTH source_object nmatches)
+ if(nmatches EQUAL 0)
+ message(
+ SEND_ERROR
+ "Unable to find ${shared_library_filename} in ${url}"
+ )
+ elseif(nmatches GREATER 1)
+ message(
+ SEND_ERROR
+ "Found multiple files named ${shared_library_filename} in ${url}"
+ )
+ endif()
+ endmacro()
+
+ if(IS_DIRECTORY "${url}")
+ # Just glob directly from a local directory
+ from_glob("${url}")
+ elseif(
+ url
+ MATCHES
+ "${CMAKE_SHARED_LIBRARY_PREFIX}.+${CMAKE_SHARED_LIBRARY_SUFFIX}$"
+ AND EXISTS "${url}"
+ )
+ # Otherwise, if it's a direct path to a shared object, use that
+ set(source_object "${url}")
+ else()
+ # Otherwise, download and extract from whatever URL we have
+ fetchcontent_declare(${library_name} URL "${url}")
+ fetchcontent_populate(${library_name})
+ from_glob(${${library_name}_SOURCE_DIR})
+ endif()
+
+ set(dest_object
+ ${CMAKE_BINARY_DIR}/$<CONFIG>/${module_subdir}/${shared_library_filename}
+ )
+ add_custom_command(
+ OUTPUT ${dest_object}
+ COMMAND
+ ${CMAKE_COMMAND} -E copy_if_different ${source_object}
+ ${dest_object}
+ DEPENDS ${source_object}
+ VERBATIM
+ )
+ # Give this copying action a name
+ add_custom_target(copy-${library_name} DEPENDS ${dest_object})
+ set_target_properties(copy-${library_name} PROPERTIES FOLDER generated)
+
+ # Put this into a library target
+ add_library(${library_name} MODULE IMPORTED GLOBAL)
+ add_dependencies(${library_name} copy-${library_name})
+ set_property(
+ TARGET ${library_name}
+ PROPERTY IMPORTED_LOCATION ${dest_object}
+ )
+endfunction()
+
+function(install_fetched_shared_library library_name url)
+ copy_fetched_shared_library(${library_name} ${url})
+ set(shared_library_filename
+ "${CMAKE_SHARED_LIBRARY_PREFIX}${library_name}${CMAKE_SHARED_LIBRARY_SUFFIX}"
+ )
+ set(dest_object
+ ${CMAKE_BINARY_DIR}/$<CONFIG>/${module_subdir}/${shared_library_filename}
+ )
+ install(PROGRAMS ${dest_object} DESTINATION ${module_subdir})
+endfunction()
diff --git a/source/core/slang-render-api-util.cpp b/source/core/slang-render-api-util.cpp
index 797d82cd7..9dff5e90c 100644
--- a/source/core/slang-render-api-util.cpp
+++ b/source/core/slang-render-api-util.cpp
@@ -267,9 +267,17 @@ static bool _canLoadSharedLibrary(const char* libName)
#if SLANG_WINDOWS_FAMILY
case RenderApiType::Vulkan: return _canLoadSharedLibrary("vulkan-1") || _canLoadSharedLibrary("vk_swiftshader");
case RenderApiType::WebGPU:
+#if _DEBUG
+ // At the moment, some CI issue is preventing tests to run in Debug builds.
+ // As a work-around in order to allow us to enable tests in Release builds ASSP,
+ // we skip WebGPU tests in by returning false here.
+ // https://github.com/shader-slang/slang/issues/5233#issuecomment-2411380030
+ return false;
+#else
return _canLoadSharedLibrary("webgpu_dawn") &&
_canLoadSharedLibrary("dxcompiler") &&
_canLoadSharedLibrary("dxil");
+#endif // if SLANG_DEBUG
#elif SLANG_APPLE_FAMILY
case RenderApiType::Vulkan: return true;
case RenderApiType::Metal: return true;
diff --git a/tests/autodiff-dstdlib/dstdlib-abs.slang b/tests/autodiff-dstdlib/dstdlib-abs.slang
index b7988f573..c0878bfb4 100644
--- a/tests/autodiff-dstdlib/dstdlib-abs.slang
+++ b/tests/autodiff-dstdlib/dstdlib-abs.slang
@@ -1,5 +1,6 @@
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/autodiff/bug-1.slang b/tests/autodiff/bug-1.slang
index deb7e8461..b92c84098 100644
--- a/tests/autodiff/bug-1.slang
+++ b/tests/autodiff/bug-1.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_COMPUTE_EX(filecheck-buffer=CHECK): -slang -compute -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
#define DO_FLOOR
#define MANUAL_DERIVATIVE
diff --git a/tests/autodiff/custom-intrinsic.slang b/tests/autodiff/custom-intrinsic.slang
index 2ebd01099..7d625e4b4 100644
--- a/tests/autodiff/custom-intrinsic.slang
+++ b/tests/autodiff/custom-intrinsic.slang
@@ -1,5 +1,6 @@
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/autodiff/diff-ptr-type-call.slang b/tests/autodiff/diff-ptr-type-call.slang
index 258a4477b..de7595ef7 100644
--- a/tests/autodiff/diff-ptr-type-call.slang
+++ b/tests/autodiff/diff-ptr-type-call.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -vk -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/autodiff/diff-ptr-type-loop.slang b/tests/autodiff/diff-ptr-type-loop.slang
index a57c69b76..a0ec27128 100644
--- a/tests/autodiff/diff-ptr-type-loop.slang
+++ b/tests/autodiff/diff-ptr-type-loop.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj -output-using-type
//TEST(compute, vulkan):COMPARE_COMPUTE(filecheck-buffer=CHECK): -vk -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/autodiff/diff-ptr-type-smoke.slang b/tests/autodiff/diff-ptr-type-smoke.slang
index e7e03c5e3..4bc62f5dd 100644
--- a/tests/autodiff/diff-ptr-type-smoke.slang
+++ b/tests/autodiff/diff-ptr-type-smoke.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -vk -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/autodiff/existential-1.slang b/tests/autodiff/existential-1.slang
index 4f93dd04d..f60eb50e6 100644
--- a/tests/autodiff/existential-1.slang
+++ b/tests/autodiff/existential-1.slang
@@ -2,6 +2,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj -output-using-type
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/autodiff/existential-2.slang b/tests/autodiff/existential-2.slang
index dd68c2972..3bf988d75 100644
--- a/tests/autodiff/existential-2.slang
+++ b/tests/autodiff/existential-2.slang
@@ -2,6 +2,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj -output-using-type
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/autodiff/global-param-hoisting.slang b/tests/autodiff/global-param-hoisting.slang
index 54d275974..48f5d44b0 100644
--- a/tests/autodiff/global-param-hoisting.slang
+++ b/tests/autodiff/global-param-hoisting.slang
@@ -8,6 +8,7 @@
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -output-using-type -shaderobj
//TEST(compute):COMPARE_COMPUTE:-slang -compute -mtl -output-using-type -render-features argument-buffer-tier-2
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/autodiff/material/diff-bwd-falcor-material-system.slang b/tests/autodiff/material/diff-bwd-falcor-material-system.slang
index 6d4101d12..df63b317a 100644
--- a/tests/autodiff/material/diff-bwd-falcor-material-system.slang
+++ b/tests/autodiff/material/diff-bwd-falcor-material-system.slang
@@ -1,5 +1,6 @@
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// outputBuffer is defined in IBSDF.slang
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0], stride=4):out,name=outputBuffer
diff --git a/tests/autodiff/material2/diff-bwd-falcor-material-system.slang b/tests/autodiff/material2/diff-bwd-falcor-material-system.slang
index bf57b8238..45387315e 100644
--- a/tests/autodiff/material2/diff-bwd-falcor-material-system.slang
+++ b/tests/autodiff/material2/diff-bwd-falcor-material-system.slang
@@ -1,5 +1,6 @@
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// outputBuffer is defined in IBSDF.slang
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0], stride=4):out,name=outputBuffer
diff --git a/tests/autodiff/matrix-arithmetic-fwd.slang b/tests/autodiff/matrix-arithmetic-fwd.slang
index ee909551a..0dd1936af 100644
--- a/tests/autodiff/matrix-arithmetic-fwd.slang
+++ b/tests/autodiff/matrix-arithmetic-fwd.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj -output-using-type
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/autodiff/reverse-loop-checkpoint-test.slang b/tests/autodiff/reverse-loop-checkpoint-test.slang
index 68ad823ac..53a089b21 100644
--- a/tests/autodiff/reverse-loop-checkpoint-test.slang
+++ b/tests/autodiff/reverse-loop-checkpoint-test.slang
@@ -1,6 +1,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj -output-using-type
//TEST:SIMPLE(filecheck=CHECK): -target hlsl -profile cs_5_0 -entry computeMain -line-directive-mode none
//TEST:SIMPLE(filecheck=CHK):-target glsl -stage compute -entry computeMain -report-checkpoint-intermediates
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/bindings/nested-parameter-block-2.slang b/tests/bindings/nested-parameter-block-2.slang
index 790e3d060..6f783d883 100644
--- a/tests/bindings/nested-parameter-block-2.slang
+++ b/tests/bindings/nested-parameter-block-2.slang
@@ -2,6 +2,7 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -d3d12 -use-dxil -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -vk -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -metal -shaderobj -output-using-type -render-features argument-buffer-tier-2
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// nested-parameter-block-2.slang
struct CB
diff --git a/tests/bindings/nested-parameter-block-3.slang b/tests/bindings/nested-parameter-block-3.slang
index a9cfcfdaa..5e7150921 100644
--- a/tests/bindings/nested-parameter-block-3.slang
+++ b/tests/bindings/nested-parameter-block-3.slang
@@ -7,6 +7,7 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -d3d12 -use-dxil -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -vk -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -metal -shaderobj -output-using-type -render-features argument-buffer-tier-2
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
struct CB
diff --git a/tests/bugs/atomic-coerce.slang b/tests/bugs/atomic-coerce.slang
index bfb0eeb63..eeb6a79a5 100644
--- a/tests/bugs/atomic-coerce.slang
+++ b/tests/bugs/atomic-coerce.slang
@@ -1,6 +1,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
//TEST(compute,vulkan):COMPARE_COMPUTE_EX:-vk -slang -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0 ], stride=4):out,name outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/bugs/buffer-swizzle-store.slang b/tests/bugs/buffer-swizzle-store.slang
index 3cfcf6e59..b9951dc3b 100644
--- a/tests/bugs/buffer-swizzle-store.slang
+++ b/tests/bugs/buffer-swizzle-store.slang
@@ -1,6 +1,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj -output-using-type
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT: RWTexture2D(format=R16G16_FLOAT, size=4, content = one, mipMaps = 1):name g_test
[format("rg16f")]
diff --git a/tests/bugs/dxbc-double-problem.slang b/tests/bugs/dxbc-double-problem.slang
index 9daa28a9f..502164f25 100644
--- a/tests/bugs/dxbc-double-problem.slang
+++ b/tests/bugs/dxbc-double-problem.slang
@@ -4,6 +4,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-dx12 -compute -use-dxil -output-using-type -shaderobj
//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-dx12 -compute -output-using-type -shaderobj
//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// The problem this test shows is around handling of double with dxbc on D3D12. In that combination
// this code does not write the correct value into the first element - it appears as 0, where
diff --git a/tests/bugs/frexp-double.slang b/tests/bugs/frexp-double.slang
index c2b4f21c7..4af50bee6 100644
--- a/tests/bugs/frexp-double.slang
+++ b/tests/bugs/frexp-double.slang
@@ -6,6 +6,7 @@
//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-cuda -output-using-type
//metal currently does not support `double`
//DISABLE_TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-slang -shaderobj -mtl -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// BUF: type: int32_t
// BUF-NEXT: 1
diff --git a/tests/bugs/frexp.slang b/tests/bugs/frexp.slang
index 60912297c..38b4b3933 100644
--- a/tests/bugs/frexp.slang
+++ b/tests/bugs/frexp.slang
@@ -5,6 +5,7 @@
//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-vk -emit-spirv-directly -output-using-type
//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-cuda -output-using-type
//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-slang -shaderobj -mtl -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// BUF: type: int32_t
// BUF-NEXT: 1
diff --git a/tests/bugs/generic-type-duplication.slang b/tests/bugs/generic-type-duplication.slang
index 4117a7f81..9c5a0ae67 100644
--- a/tests/bugs/generic-type-duplication.slang
+++ b/tests/bugs/generic-type-duplication.slang
@@ -2,6 +2,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
//TEST(compute,vulkan):COMPARE_COMPUTE_EX:-vk -slang -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
struct MyGeneric<let addOne: bool>
{
diff --git a/tests/bugs/gh-2959.slang b/tests/bugs/gh-2959.slang
index 056900b95..3d2e24bc6 100644
--- a/tests/bugs/gh-2959.slang
+++ b/tests/bugs/gh-2959.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=BUF): -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-slang -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<uint> outputBuffer;
diff --git a/tests/bugs/gh-3980.slang b/tests/bugs/gh-3980.slang
index 57cd28dbe..4ea99c66d 100644
--- a/tests/bugs/gh-3980.slang
+++ b/tests/bugs/gh-3980.slang
@@ -5,6 +5,7 @@
//TEST(compute):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-cpu -compute -output-using-type
//TEST(compute):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-cuda -compute -output-using-type
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-slang -shaderobj -mtl -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// Slang removes parentheses characters for the bitwise operators when they are not needed.
// DXC prints warning messages even when the expression is correct.
diff --git a/tests/bugs/gh-471.slang b/tests/bugs/gh-471.slang
index e7b09760b..3d70a38c5 100644
--- a/tests/bugs/gh-471.slang
+++ b/tests/bugs/gh-471.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE: -shaderobj
//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):out,name outputBuffer
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// Test that "operator comma" works as expected
diff --git a/tests/bugs/gh-518.slang b/tests/bugs/gh-518.slang
index 16189ca9b..b6cf90405 100644
--- a/tests/bugs/gh-518.slang
+++ b/tests/bugs/gh-518.slang
@@ -1,6 +1,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
//TEST_DISABLED(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// Note: can't actually test this on Vulkan right now because
// the support in render-test isn't good enough.
diff --git a/tests/bugs/gh-566.slang b/tests/bugs/gh-566.slang
index f1e53ba9a..e7db85ee0 100644
--- a/tests/bugs/gh-566.slang
+++ b/tests/bugs/gh-566.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE: -shaderobj
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
//TEST_INPUT:ubuffer(data=[4 3 2 1], stride=4):name inputBuffer
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
RWStructuredBuffer<uint> outputBuffer;
diff --git a/tests/bugs/inf-float-literal.slang b/tests/bugs/inf-float-literal.slang
index f40a4e8d4..b523329df 100644
--- a/tests/bugs/inf-float-literal.slang
+++ b/tests/bugs/inf-float-literal.slang
@@ -1,6 +1,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
//TEST(compute,vulkan):COMPARE_COMPUTE_EX:-vk -slang -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-cpu -slang -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
diff --git a/tests/bugs/mutating/resource-specialization-inout.slang b/tests/bugs/mutating/resource-specialization-inout.slang
index d2f9a3b9e..78e8f44fc 100644
--- a/tests/bugs/mutating/resource-specialization-inout.slang
+++ b/tests/bugs/mutating/resource-specialization-inout.slang
@@ -1,6 +1,7 @@
// Bug related to resource specialization on unused resource typed fields.
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT: Texture2D(size=4, content = one):name t2D
Texture2D t2D;
diff --git a/tests/bugs/nested-switch.slang b/tests/bugs/nested-switch.slang
index 3cfc0758b..485a83e1f 100644
--- a/tests/bugs/nested-switch.slang
+++ b/tests/bugs/nested-switch.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE: -shaderobj
//TEST(compute):COMPARE_COMPUTE:-vk -shaderobj
//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
int test(int t, int r)
{
diff --git a/tests/bugs/obfuscate-specialization-naming.slang b/tests/bugs/obfuscate-specialization-naming.slang
index 2511adbea..28dc91eb6 100644
--- a/tests/bugs/obfuscate-specialization-naming.slang
+++ b/tests/bugs/obfuscate-specialization-naming.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -compile-arg -obfuscate -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -compile-arg -obfuscate -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):name a
RWStructuredBuffer<int> a;
diff --git a/tests/bugs/op-assignment-unify-mat.slang b/tests/bugs/op-assignment-unify-mat.slang
index 5ee3897c3..6c1697ee3 100644
--- a/tests/bugs/op-assignment-unify-mat.slang
+++ b/tests/bugs/op-assignment-unify-mat.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj -cpu
//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<uint> outputBuffer;
diff --git a/tests/bugs/shadowed-lookup.slang b/tests/bugs/shadowed-lookup.slang
index ed4ab7893..7a4b2eb70 100644
--- a/tests/bugs/shadowed-lookup.slang
+++ b/tests/bugs/shadowed-lookup.slang
@@ -1,4 +1,5 @@
//TEST:COMPARE_COMPUTE_EX: -slang -compute
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/bugs/specialize-function-array-args.slang b/tests/bugs/specialize-function-array-args.slang
index 8a572eda4..83dd20863 100644
--- a/tests/bugs/specialize-function-array-args.slang
+++ b/tests/bugs/specialize-function-array-args.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
//TEST(compute,vulkan):COMPARE_COMPUTE_EX:-vk -slang -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// When a function is passed a parameter that contains an array, it specialized it as a performance
// improvement for VK. If the struct contained a structured buffer, though it meant that the
diff --git a/tests/bugs/static-var.slang b/tests/bugs/static-var.slang
index 004567466..7960774e0 100644
--- a/tests/bugs/static-var.slang
+++ b/tests/bugs/static-var.slang
@@ -1,5 +1,6 @@
// gh-775-ext.slang
//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
int test(int inVal)
{
diff --git a/tests/bugs/user-attribute-lookup.slang b/tests/bugs/user-attribute-lookup.slang
index 96cd3ad19..6fabe585d 100644
--- a/tests/bugs/user-attribute-lookup.slang
+++ b/tests/bugs/user-attribute-lookup.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
//TEST(compute,vulkan):COMPARE_COMPUTE_EX:-vk -slang -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/compute/cbuffer-legalize.slang b/tests/compute/cbuffer-legalize.slang
index d0c0a8777..b77d9fdbf 100644
--- a/tests/compute/cbuffer-legalize.slang
+++ b/tests/compute/cbuffer-legalize.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
//TEST(compute):COMPARE_COMPUTE:-shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-wgpu
//TEST_INPUT: uniform(data=[1 2 3 4]):name=C.p.c
//TEST_INPUT: Texture2D(size=4, content = one):name=C.p.t
diff --git a/tests/compute/compile-time-loop.slang b/tests/compute/compile-time-loop.slang
index 9035bde2a..840ffd145 100644
--- a/tests/compute/compile-time-loop.slang
+++ b/tests/compute/compile-time-loop.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_RENDER_COMPUTE: -shaderobj
//TEST(compute):COMPARE_RENDER_COMPUTE: -mtl -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-wgpu
//TEST_INPUT: Texture2D(size=4, content = one):name t
//TEST_INPUT: Sampler:name s
diff --git a/tests/compute/constexpr.slang b/tests/compute/constexpr.slang
index 9c7c9d131..84adc48dd 100644
--- a/tests/compute/constexpr.slang
+++ b/tests/compute/constexpr.slang
@@ -2,6 +2,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -gcompute -shaderobj
//DISABLED://TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -gcompute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-mtl -gcompute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-wgpu
//TEST_INPUT: Texture2D(size=4, content = one):name tex
//TEST_INPUT: Sampler:name samp
diff --git a/tests/compute/discard-stmt.slang b/tests/compute/discard-stmt.slang
index fa00c9ec3..b665a56a8 100644
--- a/tests/compute/discard-stmt.slang
+++ b/tests/compute/discard-stmt.slang
@@ -3,6 +3,7 @@
//TEST_INPUT: Texture2D(size=4, content = one):name tex
//TEST_INPUT: Sampler:name samp
//TEST_INPUT: ubuffer(data=[0 0], stride=4):out,name outputBuffer
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-wgpu
Texture2D tex;
diff --git a/tests/compute/func-param-legalize.slang b/tests/compute/func-param-legalize.slang
index 2d7c57e9f..51c00254b 100644
--- a/tests/compute/func-param-legalize.slang
+++ b/tests/compute/func-param-legalize.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-wgpu
struct Param
{
diff --git a/tests/compute/func-resource-param.slang b/tests/compute/func-resource-param.slang
index 4b67c909e..3689417e0 100644
--- a/tests/compute/func-resource-param.slang
+++ b/tests/compute/func-resource-param.slang
@@ -8,6 +8,7 @@
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-dx12 -compute -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-cpu -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-wgpu
//NO_TEST:SIMPLE:-target glsl -entry computeMain -stage compute -validate-ir -dump-ir
diff --git a/tests/compute/interface-shader-param-in-struct.slang b/tests/compute/interface-shader-param-in-struct.slang
index 3cdbac8cf..08b8d4550 100644
--- a/tests/compute/interface-shader-param-in-struct.slang
+++ b/tests/compute/interface-shader-param-in-struct.slang
@@ -7,6 +7,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -profile sm_6_0 -use-dxil
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-wgpu
// A lot of the setup is the same as for `interface-shader-param`,
// so look there if you want the comments.
diff --git a/tests/compute/interface-shader-param.slang b/tests/compute/interface-shader-param.slang
index 8111ccba8..ec7bbffb8 100644
--- a/tests/compute/interface-shader-param.slang
+++ b/tests/compute/interface-shader-param.slang
@@ -9,6 +9,7 @@
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute
//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-wgpu
// First we will define some fake interfaces for testing.
// Let's pretend we are doing some kind of random number
diff --git a/tests/compute/kernel-context-threading.slang b/tests/compute/kernel-context-threading.slang
index 5cfb171a3..8951d38be 100644
--- a/tests/compute/kernel-context-threading.slang
+++ b/tests/compute/kernel-context-threading.slang
@@ -10,6 +10,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -output-using-type -xslang -matrix-layout-row-major -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -output-using-type -dx12 -xslang -matrix-layout-row-major -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -output-using-type -xslang -matrix-layout-row-major -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-wgpu
//TEST_INPUT:cbuffer(data=[1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 0.0 10.0 20.0 30.0 1.0]):name matrixBuffer
ConstantBuffer<float4x4> matrixBuffer;
diff --git a/tests/compute/loop-unroll.slang b/tests/compute/loop-unroll.slang
index f0d97dd59..9eacb2868 100644
--- a/tests/compute/loop-unroll.slang
+++ b/tests/compute/loop-unroll.slang
@@ -6,6 +6,7 @@
// Note VK output is not loop unrolled
//TEST(compute):COMPARE_COMPUTE:-vk -shaderobj
//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out, name buffers[0]
//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):name buffers[1]
diff --git a/tests/compute/matrix-layout.hlsl b/tests/compute/matrix-layout.hlsl
index 4a2d3f014..2e9b4389f 100644
--- a/tests/compute/matrix-layout.hlsl
+++ b/tests/compute/matrix-layout.hlsl
@@ -10,6 +10,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -xslang -matrix-layout-row-major -shaderobj
//TEST(compute,compatibility-issue):COMPARE_COMPUTE_EX:-slang -compute -dx12 -use-dxil -xslang -matrix-layout-row-major -shaderobj
//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-wgpu
// Not testing on Vulkan because of lack of support
// for integer matrices in GLSL. Slang needs to
diff --git a/tests/compute/non-square-column-major.slang b/tests/compute/non-square-column-major.slang
index fd3ce6406..c5688da2e 100644
--- a/tests/compute/non-square-column-major.slang
+++ b/tests/compute/non-square-column-major.slang
@@ -9,6 +9,7 @@
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -output-using-type -xslang -matrix-layout-column-major -shaderobj
//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -output-using-type -xslang -matrix-layout-column-major -shaderobj
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=METAL):-slang -output-using-type -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-wgpu
// matrix<R, C>
//TEST_INPUT:cbuffer(data=[1.0 0.0 10.0 0.0 0.0 1.0 20.0 0.0]):name matrixBuffer
diff --git a/tests/compute/non-square-row-major.slang b/tests/compute/non-square-row-major.slang
index 867231cd3..20f6ec139 100644
--- a/tests/compute/non-square-row-major.slang
+++ b/tests/compute/non-square-row-major.slang
@@ -9,6 +9,7 @@
//TEST(compute, vulkan):COMPARE_COMPUTE_EX(filecheck-buffer=ALIGNED):-vk -compute -output-using-type -xslang -matrix-layout-row-major -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX(filecheck-buffer=PACKED):-cuda -compute -output-using-type -xslang -matrix-layout-row-major -shaderobj
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=PACKED): -slang -output-using-type -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-wgpu
// matrix<R, C>
diff --git a/tests/compute/parameter-block.slang b/tests/compute/parameter-block.slang
index 2922f0813..7a67868ef 100644
--- a/tests/compute/parameter-block.slang
+++ b/tests/compute/parameter-block.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE:-vk -shaderobj
//TEST(compute):COMPARE_COMPUTE:-shaderobj
//TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl -render-features argument-buffer-tier-2
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-wgpu
// Ensure that Slang `ParameterBlock` type is lowered
// to HLSL in the fashion that we expect.
diff --git a/tests/compute/row-major.slang b/tests/compute/row-major.slang
index d0e76475b..6114e6dab 100644
--- a/tests/compute/row-major.slang
+++ b/tests/compute/row-major.slang
@@ -4,6 +4,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -output-using-type -xslang -matrix-layout-row-major -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -output-using-type -xslang -matrix-layout-row-major -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -output-using-type -xslang -matrix-layout-row-major -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-wgpu
//TEST_INPUT:cbuffer(data=[1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 0.0 10.0 20.0 30.0 1.0]):name matrixBuffer
ConstantBuffer<float4x4> matrixBuffer;
diff --git a/tests/expected-failure-github.txt b/tests/expected-failure-github.txt
index 4551a4c69..d54d7d8d4 100644
--- a/tests/expected-failure-github.txt
+++ b/tests/expected-failure-github.txt
@@ -5,6 +5,41 @@ tests/language-feature/saturated-cooperation/fuse-product.slang (vk)
tests/language-feature/saturated-cooperation/fuse.slang (vk)
tests/bugs/byte-address-buffer-interlocked-add-f32.slang (vk)
tests/serialization/obfuscated-serialized-module-test.slang.2 syn (mtl)
+tests/autodiff-dstdlib/dstdlib-abs.slang.2 syn (wgpu)
+tests/autodiff/bug-1.slang.1 syn (wgpu)
+tests/autodiff/custom-intrinsic.slang.2 syn (wgpu)
+tests/autodiff/diff-ptr-type-call.slang.2 syn (wgpu)
+tests/autodiff/diff-ptr-type-loop.slang.2 syn (wgpu)
+tests/autodiff/diff-ptr-type-smoke.slang.2 syn (wgpu)
+tests/autodiff/existential-1.slang.2 syn (wgpu)
+tests/autodiff/existential-2.slang.2 syn (wgpu)
+tests/autodiff/global-param-hoisting.slang.4 syn (wgpu)
+tests/autodiff/material/diff-bwd-falcor-material-system.slang.2 syn (wgpu)
+tests/autodiff/material2/diff-bwd-falcor-material-system.slang.2 syn (wgpu)
+tests/autodiff/matrix-arithmetic-fwd.slang.2 syn (wgpu)
+tests/autodiff/reverse-loop-checkpoint-test.slang.3 syn (wgpu)
+tests/bindings/nested-parameter-block-2.slang.4 syn (wgpu)
+tests/bindings/nested-parameter-block-3.slang.4 syn (wgpu)
+tests/bugs/atomic-coerce.slang.3 syn (wgpu)
+tests/bugs/buffer-swizzle-store.slang.3 syn (wgpu)
+tests/bugs/dxbc-double-problem.slang.6 syn (wgpu)
+tests/bugs/frexp-double.slang.7 syn (wgpu)
+tests/bugs/frexp.slang.7 syn (wgpu)
+tests/bugs/generic-type-duplication.slang.2 syn (wgpu)
+tests/bugs/gh-2959.slang.2 syn (wgpu)
+tests/bugs/gh-3980.slang.7 syn (wgpu)
+tests/bugs/gh-471.slang.1 syn (wgpu)
+tests/bugs/gh-518.slang.2 syn (wgpu)
+tests/bugs/gh-566.slang.1 syn (wgpu)
+tests/bugs/inf-float-literal.slang.3 syn (wgpu)
+tests/bugs/mutating/resource-specialization-inout.slang.1 syn (wgpu)
+tests/bugs/nested-switch.slang.3 syn (wgpu)
+tests/bugs/obfuscate-specialization-naming.slang.2 syn (wgpu)
+tests/bugs/op-assignment-unify-mat.slang.4 syn (wgpu)
+tests/bugs/shadowed-lookup.slang.1 syn (wgpu)
+tests/bugs/specialize-function-array-args.slang.2 syn (wgpu)
+tests/bugs/static-var.slang.1 syn (wgpu)
+tests/bugs/user-attribute-lookup.slang.2 syn (wgpu)
tests/compute/atomics (wgpu)
tests/compute/atomics-buffer (wgpu)
tests/compute/atomics-groupshared (wgpu)
@@ -34,3 +69,43 @@ tests/compute/texture-sampling (wgpu)
tests/compute/texture-simple (wgpu)
tests/compute/texture-simpler (wgpu)
tests/compute/transcendental-double (wgpu)
+tests/hlsl-intrinsic/byte-address-buffer/byte-address-struct.slang.5 syn (wgpu)
+tests/hlsl-intrinsic/classify-double.slang.6 syn (wgpu)
+tests/hlsl-intrinsic/classify-float.slang.5 syn (wgpu)
+tests/hlsl-intrinsic/matrix-float.slang.6 syn (wgpu)
+tests/hlsl-intrinsic/matrix-int.slang.6 syn (wgpu)
+tests/hlsl-intrinsic/scalar-double-simple.slang.7 syn (wgpu)
+tests/hlsl-intrinsic/scalar-float.slang.5 syn (wgpu)
+tests/hlsl-intrinsic/vector-float.slang.5 syn (wgpu)
+tests/hlsl/packoffset.slang.5 syn (wgpu)
+tests/ir/string-literal-hash.slang.2 syn (wgpu)
+tests/language-feature/anonymous-struct.slang.1 syn (wgpu)
+tests/language-feature/constants/constexpr-loop.slang.2 syn (wgpu)
+tests/language-feature/constants/static-const-in-generic-interface.slang.1 syn (wgpu)
+tests/language-feature/enums/nested-enum.slang.1 syn (wgpu)
+tests/language-feature/enums/strongly-typed-id.slang.1 syn (wgpu)
+tests/language-feature/generics/irwarray.slang.2 syn (wgpu)
+tests/language-feature/generics/parameter-block-unify.slang.3 syn (wgpu)
+tests/language-feature/generics/tuple.slang.1 syn (wgpu)
+tests/language-feature/generics/variadic-0.slang.4 syn (wgpu)
+tests/language-feature/generics/variadic-void.slang.3 syn (wgpu)
+tests/language-feature/higher-order-functions/simple.slang.4 syn (wgpu)
+tests/language-feature/inheritance/struct-inheritance.slang.1 syn (wgpu)
+tests/language-feature/shader-params/entry-point-uniform-params-implicit.slang.3 syn (wgpu)
+tests/language-feature/shader-params/entry-point-uniform-params.slang.4 syn (wgpu)
+tests/language-feature/shader-params/interface-shader-param-ordinary.slang.4 syn (wgpu)
+tests/language-feature/swizzles/matrix-swizzle-write-array.slang.3 syn (wgpu)
+tests/language-feature/swizzles/matrix-swizzle-write-single.slang.3 syn (wgpu)
+tests/language-feature/swizzles/matrix-swizzle-write-swizzle.slang.3 syn (wgpu)
+tests/language-feature/swizzles/matrix-swizzle-write.slang.3 syn (wgpu)
+tests/language-feature/tuple/tuple-parameter.slang.3 syn (wgpu)
+tests/language-feature/types/opaque/inout-param-opaque-type-in-struct.slang.2 syn (wgpu)
+tests/language-feature/types/opaque/inout-param-opaque-type.slang.2 syn (wgpu)
+tests/language-feature/types/opaque/out-param-opaque-type-in-struct.slang.2 syn (wgpu)
+tests/language-feature/types/opaque/out-param-opaque-type.slang.2 syn (wgpu)
+tests/language-feature/types/opaque/return-opaque-type-in-struct.slang.2 syn (wgpu)
+tests/language-feature/types/opaque/return-opaque-type.slang.1 syn (wgpu)
+tests/metal/groupshared-threadlocal-same-parameter.slang.4 syn (wgpu)
+tests/optimization/func-resource-result/func-resource-result-complex.slang.2 syn (wgpu)
+tests/optimization/func-resource-result/func-resource-result-simple.slang.4 syn (wgpu)
+tests/pipeline/compute/compute-system-values.slang.3 syn (wgpu)
diff --git a/tests/hlsl-intrinsic/byte-address-buffer/byte-address-struct.slang b/tests/hlsl-intrinsic/byte-address-buffer/byte-address-struct.slang
index 7564a8a0c..8220798ac 100644
--- a/tests/hlsl-intrinsic/byte-address-buffer/byte-address-struct.slang
+++ b/tests/hlsl-intrinsic/byte-address-buffer/byte-address-struct.slang
@@ -9,6 +9,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -use-dxil -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-slang -vk -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-slang -cuda -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// Note: This input should really be just a `ByteAddressBuffer`,
// so that we can confirm that the functionality works in the
diff --git a/tests/hlsl-intrinsic/classify-double.slang b/tests/hlsl-intrinsic/classify-double.slang
index 2fbb1412b..3fb5a8431 100644
--- a/tests/hlsl-intrinsic/classify-double.slang
+++ b/tests/hlsl-intrinsic/classify-double.slang
@@ -4,6 +4,7 @@
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj -render-feature double
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj
//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// inf, -inf, nan, finite
//TEST_INPUT:ubuffer(data=[ 0 0x7ff00000 0 0xfff00000 0xffffffff 0x7fffffff 1 0], stride=4):name inputBuffer
diff --git a/tests/hlsl-intrinsic/classify-float.slang b/tests/hlsl-intrinsic/classify-float.slang
index ca7c5a8c7..0ca5918cd 100644
--- a/tests/hlsl-intrinsic/classify-float.slang
+++ b/tests/hlsl-intrinsic/classify-float.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// inf, -inf, nan, finite
//TEST_INPUT:ubuffer(data=[ 0x7f800000 0xff800000 0x7fffffff 1 ], stride=4):name inputBuffer
diff --git a/tests/hlsl-intrinsic/matrix-float.slang b/tests/hlsl-intrinsic/matrix-float.slang
index 740e712ba..f61097a0c 100644
--- a/tests/hlsl-intrinsic/matrix-float.slang
+++ b/tests/hlsl-intrinsic/matrix-float.slang
@@ -7,6 +7,7 @@
//DISABLE_TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -output-using-type -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-cuda -compute -output-using-type -shaderobj
//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/hlsl-intrinsic/matrix-int.slang b/tests/hlsl-intrinsic/matrix-int.slang
index e671c0b1b..170bea968 100644
--- a/tests/hlsl-intrinsic/matrix-int.slang
+++ b/tests/hlsl-intrinsic/matrix-int.slang
@@ -6,6 +6,7 @@
//DISABLE_TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj
//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/hlsl-intrinsic/sampler-feedback/compute-sampler-feedback.slang b/tests/hlsl-intrinsic/sampler-feedback/compute-sampler-feedback.slang
index 77e7c2050..a7fc8731c 100644
--- a/tests/hlsl-intrinsic/sampler-feedback/compute-sampler-feedback.slang
+++ b/tests/hlsl-intrinsic/sampler-feedback/compute-sampler-feedback.slang
@@ -1,4 +1,5 @@
//TEST:COMPILE: -entry computeMain -stage compute -target callable tests/hlsl-intrinsic/sampler-feedback/compute-sampler-feedback.slang
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// Not available on non PS shader
// dx.op.writeSamplerFeedback WriteSamplerFeedback
diff --git a/tests/hlsl-intrinsic/scalar-double-simple.slang b/tests/hlsl-intrinsic/scalar-double-simple.slang
index 611e75539..b9318369c 100644
--- a/tests/hlsl-intrinsic/scalar-double-simple.slang
+++ b/tests/hlsl-intrinsic/scalar-double-simple.slang
@@ -8,6 +8,7 @@
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj -render-feature double
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj
//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<uint> outputBuffer;
diff --git a/tests/hlsl-intrinsic/scalar-float.slang b/tests/hlsl-intrinsic/scalar-float.slang
index 4623d4835..148e1b696 100644
--- a/tests/hlsl-intrinsic/scalar-float.slang
+++ b/tests/hlsl-intrinsic/scalar-float.slang
@@ -4,6 +4,7 @@
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//DISABLED_TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/hlsl-intrinsic/vector-float.slang b/tests/hlsl-intrinsic/vector-float.slang
index fcf9649c2..de5decfec 100644
--- a/tests/hlsl-intrinsic/vector-float.slang
+++ b/tests/hlsl-intrinsic/vector-float.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -use-dxil -output-using-type -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -output-using-type -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-cuda -compute -output-using-type -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<float4> outputBuffer;
diff --git a/tests/hlsl/packoffset.slang b/tests/hlsl/packoffset.slang
index 2acbb5ff8..5ca8d497e 100644
--- a/tests/hlsl/packoffset.slang
+++ b/tests/hlsl/packoffset.slang
@@ -2,6 +2,7 @@
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj -output-using-type
//TEST:SIMPLE(filecheck=HLSL): -target hlsl -profile cs_5_0 -entry computeMain -line-directive-mode none
//TEST:SIMPLE(filecheck=GLSL): -target glsl -profile glsl_450 -stage compute -entry computeMain -line-directive-mode none
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// Metal does not support custom data layout.
//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
diff --git a/tests/ir/string-literal-hash.slang b/tests/ir/string-literal-hash.slang
index 5aa354d85..678a8d9c7 100644
--- a/tests/ir/string-literal-hash.slang
+++ b/tests/ir/string-literal-hash.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE: -shaderobj
//TEST(compute):COMPARE_COMPUTE: -vk -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// Note: disabled on CPU target until we can fill
// in a more correct/complete `String` and `getStringHash`
diff --git a/tests/language-feature/anonymous-struct.slang b/tests/language-feature/anonymous-struct.slang
index 35b002b5b..3413a75af 100644
--- a/tests/language-feature/anonymous-struct.slang
+++ b/tests/language-feature/anonymous-struct.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=BUF): -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/language-feature/constants/constexpr-loop.slang b/tests/language-feature/constants/constexpr-loop.slang
index 31b4294a5..81b0a5c17 100644
--- a/tests/language-feature/constants/constexpr-loop.slang
+++ b/tests/language-feature/constants/constexpr-loop.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj -output-using-type
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT: set g_texture = Texture2D(size=8, content = one)
//TEST_INPUT: set g_sampler = Sampler
diff --git a/tests/language-feature/constants/static-const-in-generic-interface.slang b/tests/language-feature/constants/static-const-in-generic-interface.slang
index 87d8e3be8..730c4c2dc 100644
--- a/tests/language-feature/constants/static-const-in-generic-interface.slang
+++ b/tests/language-feature/constants/static-const-in-generic-interface.slang
@@ -1,6 +1,7 @@
// static-const-in-generic-interface.slang
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// Test that `static const` variable declarations inside of
// a generic `interface` type correctly translate to interface requirements.
diff --git a/tests/language-feature/enums/nested-enum.slang b/tests/language-feature/enums/nested-enum.slang
index 5b45abae7..e96f3a7a6 100644
--- a/tests/language-feature/enums/nested-enum.slang
+++ b/tests/language-feature/enums/nested-enum.slang
@@ -3,6 +3,7 @@
// Test enums defined nested in a struct work as expected.
//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
struct Outer
{
diff --git a/tests/language-feature/enums/strongly-typed-id.slang b/tests/language-feature/enums/strongly-typed-id.slang
index 70f655538..25e144618 100644
--- a/tests/language-feature/enums/strongly-typed-id.slang
+++ b/tests/language-feature/enums/strongly-typed-id.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
enum MyId : uint {}
extension MyId { uint get() { return (uint)this; } }
diff --git a/tests/language-feature/generics/irwarray.slang b/tests/language-feature/generics/irwarray.slang
index 47109f7b0..423b503ea 100644
--- a/tests/language-feature/generics/irwarray.slang
+++ b/tests/language-feature/generics/irwarray.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -vk -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
void writeToArray<U, T : IRWArray<U>>(inout T array, int index, U value) { array[index] = value; }
void writeToBuffer<U, T : IRWArray<U>>(T array, int index, U value) { array[index] = value; }
diff --git a/tests/language-feature/generics/parameter-block-unify.slang b/tests/language-feature/generics/parameter-block-unify.slang
index b549f555b..abe2c2030 100644
--- a/tests/language-feature/generics/parameter-block-unify.slang
+++ b/tests/language-feature/generics/parameter-block-unify.slang
@@ -1,6 +1,7 @@
//TEST(compute):COMPARE_COMPUTE_EX(filecheck-buffer=CHECK):-slang -compute -shaderobj -output-using-type
//TEST(compute, vulkan):COMPARE_COMPUTE_EX(filecheck-buffer=CHECK):-vk -compute -shaderobj -output-using-type
//TEST(compute, vulkan):COMPARE_COMPUTE_EX(filecheck-buffer=CHECK):-mtl -compute -shaderobj -output-using-type -render-features argument-buffer-tier-2
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
struct TestStruct<Format:__BuiltinIntegerType, let count : int>
{
diff --git a/tests/language-feature/generics/tuple.slang b/tests/language-feature/generics/tuple.slang
index b8c70f872..5399836b8 100644
--- a/tests/language-feature/generics/tuple.slang
+++ b/tests/language-feature/generics/tuple.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/language-feature/generics/variadic-0.slang b/tests/language-feature/generics/variadic-0.slang
index 27ca0ef65..c28cd5d6c 100644
--- a/tests/language-feature/generics/variadic-0.slang
+++ b/tests/language-feature/generics/variadic-0.slang
@@ -1,6 +1,7 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -cpu -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -vk -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST:SIMPLE(filecheck=CHECK): -target glsl
// CHECK-NOT: NullDifferential
diff --git a/tests/language-feature/generics/variadic-void.slang b/tests/language-feature/generics/variadic-void.slang
index 976c104f8..213a65fb5 100644
--- a/tests/language-feature/generics/variadic-void.slang
+++ b/tests/language-feature/generics/variadic-void.slang
@@ -1,6 +1,7 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -vk -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -cpu -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/language-feature/higher-order-functions/simple.slang b/tests/language-feature/higher-order-functions/simple.slang
index 13fc16aa5..161a12c3c 100644
--- a/tests/language-feature/higher-order-functions/simple.slang
+++ b/tests/language-feature/higher-order-functions/simple.slang
@@ -2,6 +2,7 @@
//TEST(compute):COMPARE_COMPUTE_EX():-slang -compute -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<uint> outputBuffer;
diff --git a/tests/language-feature/inheritance/struct-inheritance.slang b/tests/language-feature/inheritance/struct-inheritance.slang
index e50b1268b..cc427eea9 100644
--- a/tests/language-feature/inheritance/struct-inheritance.slang
+++ b/tests/language-feature/inheritance/struct-inheritance.slang
@@ -1,6 +1,7 @@
// struct-inheritance.slang
//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// Test that we can define a `struct` type
// that inherits from another `struct`.
diff --git a/tests/language-feature/shader-params/entry-point-uniform-params-implicit.slang b/tests/language-feature/shader-params/entry-point-uniform-params-implicit.slang
index 5f8ac7edd..b5983b5f7 100644
--- a/tests/language-feature/shader-params/entry-point-uniform-params-implicit.slang
+++ b/tests/language-feature/shader-params/entry-point-uniform-params-implicit.slang
@@ -5,6 +5,7 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj -xslang -Wno-38040
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -vk -shaderobj -xslang -Wno-38040
//TEST:SIMPLE(filecheck=WARNING): -target spirv
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
struct Data
{
diff --git a/tests/language-feature/shader-params/entry-point-uniform-params.slang b/tests/language-feature/shader-params/entry-point-uniform-params.slang
index 4b0b0e6a4..bcad13e66 100644
--- a/tests/language-feature/shader-params/entry-point-uniform-params.slang
+++ b/tests/language-feature/shader-params/entry-point-uniform-params.slang
@@ -4,6 +4,7 @@
//TEST(compute):COMPARE_COMPUTE:-cuda -shaderobj
//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
//TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// Test that a shader can be written that
// only uses entry point `uniform` parameters,
diff --git a/tests/language-feature/shader-params/interface-shader-param-ordinary.slang b/tests/language-feature/shader-params/interface-shader-param-ordinary.slang
index 7260b27f4..0203634d7 100644
--- a/tests/language-feature/shader-params/interface-shader-param-ordinary.slang
+++ b/tests/language-feature/shader-params/interface-shader-param-ordinary.slang
@@ -9,6 +9,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -profile sm_6_0 -use-dxil
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
interface IModifier
{
diff --git a/tests/language-feature/swizzles/matrix-swizzle-write-array.slang b/tests/language-feature/swizzles/matrix-swizzle-write-array.slang
index 616a19b19..7324d6357 100644
--- a/tests/language-feature/swizzles/matrix-swizzle-write-array.slang
+++ b/tests/language-feature/swizzles/matrix-swizzle-write-array.slang
@@ -1,6 +1,7 @@
//TEST(compute):COMPARE_COMPUTE: -compute -shaderobj -output-using-type
//TEST(compute, vulkan):COMPARE_COMPUTE: -vk -compute -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// Test that matrix swizzle writes work correctly
// Matrix swizzles can either be one or zero indexed
diff --git a/tests/language-feature/swizzles/matrix-swizzle-write-single.slang b/tests/language-feature/swizzles/matrix-swizzle-write-single.slang
index 34d54ac55..bd34928c3 100644
--- a/tests/language-feature/swizzles/matrix-swizzle-write-single.slang
+++ b/tests/language-feature/swizzles/matrix-swizzle-write-single.slang
@@ -1,6 +1,7 @@
//TEST(compute):COMPARE_COMPUTE: -compute -shaderobj -output-using-type
//TEST(compute, vulkan):COMPARE_COMPUTE: -vk -compute -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// Test that writes to single matrix elements with swizzles work
diff --git a/tests/language-feature/swizzles/matrix-swizzle-write-swizzle.slang b/tests/language-feature/swizzles/matrix-swizzle-write-swizzle.slang
index f1ad7bc6a..ed5f0ca97 100644
--- a/tests/language-feature/swizzles/matrix-swizzle-write-swizzle.slang
+++ b/tests/language-feature/swizzles/matrix-swizzle-write-swizzle.slang
@@ -1,6 +1,7 @@
//TEST(compute):COMPARE_COMPUTE: -compute -shaderobj -output-using-type
//TEST(compute, vulkan):COMPARE_COMPUTE: -vk -compute -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// Test that writing to swizzles of matrix swizzles works correctly
diff --git a/tests/language-feature/swizzles/matrix-swizzle-write.slang b/tests/language-feature/swizzles/matrix-swizzle-write.slang
index 6ccb4c29c..a31fdb14d 100644
--- a/tests/language-feature/swizzles/matrix-swizzle-write.slang
+++ b/tests/language-feature/swizzles/matrix-swizzle-write.slang
@@ -1,6 +1,7 @@
//TEST(compute):COMPARE_COMPUTE: -compute -shaderobj -output-using-type
//TEST(compute, vulkan):COMPARE_COMPUTE: -vk -compute -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// Test that matrix swizzle writes work correctly
// Matrix swizzles can either be one or zero indexed
diff --git a/tests/language-feature/tuple/tuple-parameter.slang b/tests/language-feature/tuple/tuple-parameter.slang
index 788b2cc31..7c3556142 100644
--- a/tests/language-feature/tuple/tuple-parameter.slang
+++ b/tests/language-feature/tuple/tuple-parameter.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-shaderobj
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-dx12 -use-dxil -shaderobj
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-vk -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[1 2 3 4], stride=4):out,name=outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/language-feature/types/opaque/inout-param-opaque-type-in-struct.slang b/tests/language-feature/types/opaque/inout-param-opaque-type-in-struct.slang
index 37e2585cd..aa3433440 100644
--- a/tests/language-feature/types/opaque/inout-param-opaque-type-in-struct.slang
+++ b/tests/language-feature/types/opaque/inout-param-opaque-type-in-struct.slang
@@ -5,6 +5,7 @@
//TEST(compute):COMPARE_COMPUTE:
//TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
struct Things
{
diff --git a/tests/language-feature/types/opaque/inout-param-opaque-type.slang b/tests/language-feature/types/opaque/inout-param-opaque-type.slang
index 5da1e57e8..e296177c0 100644
--- a/tests/language-feature/types/opaque/inout-param-opaque-type.slang
+++ b/tests/language-feature/types/opaque/inout-param-opaque-type.slang
@@ -4,6 +4,7 @@
//TEST(compute):COMPARE_COMPUTE:
//TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:set gX = ubuffer(data=[16 17 18 19], stride=4)
RWStructuredBuffer<int> gX;
diff --git a/tests/language-feature/types/opaque/out-param-opaque-type-in-struct.slang b/tests/language-feature/types/opaque/out-param-opaque-type-in-struct.slang
index 846dfb76f..20890f463 100644
--- a/tests/language-feature/types/opaque/out-param-opaque-type-in-struct.slang
+++ b/tests/language-feature/types/opaque/out-param-opaque-type-in-struct.slang
@@ -5,6 +5,7 @@
//TEST(compute):COMPARE_COMPUTE:
//TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
struct Things
{
diff --git a/tests/language-feature/types/opaque/out-param-opaque-type.slang b/tests/language-feature/types/opaque/out-param-opaque-type.slang
index 572481eb2..770a052dc 100644
--- a/tests/language-feature/types/opaque/out-param-opaque-type.slang
+++ b/tests/language-feature/types/opaque/out-param-opaque-type.slang
@@ -4,6 +4,7 @@
//TEST(compute):COMPARE_COMPUTE:
//TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:set gThings = ubuffer(data=[16 17 18 19], stride=4)
RWStructuredBuffer<int> gThings;
diff --git a/tests/language-feature/types/opaque/return-opaque-type-in-struct.slang b/tests/language-feature/types/opaque/return-opaque-type-in-struct.slang
index 3af17a0b4..cabecabd4 100644
--- a/tests/language-feature/types/opaque/return-opaque-type-in-struct.slang
+++ b/tests/language-feature/types/opaque/return-opaque-type-in-struct.slang
@@ -5,6 +5,7 @@
//TEST(compute):COMPARE_COMPUTE:
//TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
struct Things
{
diff --git a/tests/language-feature/types/opaque/return-opaque-type.slang b/tests/language-feature/types/opaque/return-opaque-type.slang
index e14ff8616..ba0f27d63 100644
--- a/tests/language-feature/types/opaque/return-opaque-type.slang
+++ b/tests/language-feature/types/opaque/return-opaque-type.slang
@@ -3,6 +3,7 @@
// Test that a function/method can return a value of an opaque type.
//TEST(compute):COMPARE_COMPUTE:
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
struct Stuff
{
diff --git a/tests/metal/groupshared-threadlocal-same-parameter.slang b/tests/metal/groupshared-threadlocal-same-parameter.slang
index 1249d4703..57db42edc 100644
--- a/tests/metal/groupshared-threadlocal-same-parameter.slang
+++ b/tests/metal/groupshared-threadlocal-same-parameter.slang
@@ -2,6 +2,7 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=BUF): -vk -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=BUF): -vk -emit-spirv-directly -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-slang -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<uint> outputBuffer;
diff --git a/tests/optimization/func-resource-result/func-resource-result-complex.slang b/tests/optimization/func-resource-result/func-resource-result-complex.slang
index a08874142..b0ebcf337 100644
--- a/tests/optimization/func-resource-result/func-resource-result-complex.slang
+++ b/tests/optimization/func-resource-result/func-resource-result-complex.slang
@@ -2,6 +2,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// Test that a function that returns a resource type can be
// compiled for targets that don't natively support resource
diff --git a/tests/optimization/func-resource-result/func-resource-result-simple.slang b/tests/optimization/func-resource-result/func-resource-result-simple.slang
index 80342e569..7366bc179 100644
--- a/tests/optimization/func-resource-result/func-resource-result-simple.slang
+++ b/tests/optimization/func-resource-result/func-resource-result-simple.slang
@@ -4,6 +4,7 @@
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// Test that a function that returns a resource type can be
// compiled for targets that don't natively support resource
diff --git a/tests/pipeline/compute/compute-system-values.slang b/tests/pipeline/compute/compute-system-values.slang
index 912827557..e95b547cb 100644
--- a/tests/pipeline/compute/compute-system-values.slang
+++ b/tests/pipeline/compute/compute-system-values.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE: -shaderobj
//TEST(compute):COMPARE_COMPUTE: -cpu -shaderobj
//TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/serialization/obfuscated-serialized-module-test.slang.3.expected.txt b/tests/serialization/obfuscated-serialized-module-test.slang.3.expected.txt
new file mode 100644
index 000000000..bc856dafa
--- /dev/null
+++ b/tests/serialization/obfuscated-serialized-module-test.slang.3.expected.txt
@@ -0,0 +1,4 @@
+0
+1
+2
+3