summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorskallweitNV <64953474+skallweitNV@users.noreply.github.com>2024-06-07 09:28:16 +0200
committerGitHub <noreply@github.com>2024-06-07 00:28:16 -0700
commit004fe27a52b7952111ad7e749397aeff499de7ed (patch)
tree6c7fccc6b2542079d911d903bb5e976d79efde2a
parent72f10a8cc21280c6a84b8f5917dabdb3da2f482e (diff)
Metal compute tests (#4292)
-rw-r--r--source/core/slang-render-api-util.cpp4
-rw-r--r--source/core/slang-render-api-util.h2
-rw-r--r--tests/autodiff-dstdlib/determinant.slang1
-rw-r--r--tests/autodiff-dstdlib/dstdlib-mul-mat-mat.slang1
-rw-r--r--tests/autodiff-dstdlib/dstdlib-mul-mat-vec.slang1
-rw-r--r--tests/autodiff-dstdlib/dstdlib-mul-vec-mat.slang1
-rw-r--r--tests/autodiff-dstdlib/dstdlib-sqrt.slang1
-rw-r--r--tests/autodiff/custom-intrinsic.slang3
-rw-r--r--tests/autodiff/global-param-hoisting.slang1
-rw-r--r--tests/autodiff/reverse-matrix-ops.slang1
-rw-r--r--tests/bindings/nested-parameter-block-2.slang1
-rw-r--r--tests/bugs/atomic-coerce.slang1
-rw-r--r--tests/bugs/buffer-swizzle-store.slang3
-rw-r--r--tests/bugs/dxbc-double-problem.slang3
-rw-r--r--tests/bugs/frexp-double.slang1
-rw-r--r--tests/bugs/frexp.slang1
-rw-r--r--tests/bugs/generic-default-matrix.slang1
-rw-r--r--tests/bugs/generic-groupshared.slang3
-rw-r--r--tests/bugs/generic-member-method.slang3
-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/interface-type-self-ref.slang1
-rw-r--r--tests/bugs/mutating/buffer-write-dce.slang3
-rw-r--r--tests/bugs/mutating/mutating-call-in-loop-dce.slang3
-rw-r--r--tests/bugs/mutating/mutating-generic-method.slang3
-rw-r--r--tests/bugs/mutating/resource-specialization-inout.slang3
-rw-r--r--tests/bugs/negative-literal.slang1
-rw-r--r--tests/bugs/nested-existential-dyndispatch.slang1
-rw-r--r--tests/bugs/nested-switch.slang1
-rw-r--r--tests/bugs/op-assignment-unify-mat.slang1
-rw-r--r--tests/bugs/operator-overload.slang3
-rw-r--r--tests/bugs/specialize-existential-in-generic.slang3
-rw-r--r--tests/bugs/ssa-loop.slang3
-rw-r--r--tests/bugs/static-method.slang1
-rw-r--r--tests/bugs/texture2d-gather.hlsl1
-rw-r--r--tests/bugs/type-legalize-bug-1.slang3
-rw-r--r--tests/bugs/vec-compare.slang3
-rw-r--r--tests/compute/array-param.slang3
-rw-r--r--tests/compute/assoctype-nested.slang3
-rw-r--r--tests/compute/atomics-buffer.slang3
-rw-r--r--tests/compute/atomics-groupshared.slang3
-rw-r--r--tests/compute/atomics.slang3
-rw-r--r--tests/compute/buffer-layout.slang5
-rw-r--r--tests/compute/buffer-type-splitting.slang3
-rw-r--r--tests/compute/byte-address-buffer.slang3
-rw-r--r--tests/compute/cast-zero-to-struct.slang1
-rw-r--r--tests/compute/cbuffer-legalize.slang3
-rw-r--r--tests/compute/compile-time-loop.slang1
-rw-r--r--tests/compute/constexpr.slang3
-rw-r--r--tests/compute/discard-stmt.slang3
-rw-r--r--tests/compute/entry-point-uniform-params.slang3
-rw-r--r--tests/compute/enum.slang3
-rw-r--r--tests/compute/frem.slang1
-rw-r--r--tests/compute/interface-param.slang3
-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/interface-static-method.slang3
-rw-r--r--tests/compute/logic-short-circuit-evaluation.slang1
-rw-r--r--tests/compute/loop-unroll.slang3
-rw-r--r--tests/compute/matrix-layout-structured-buffer.slang6
-rw-r--r--tests/compute/matrix-layout.hlsl1
-rw-r--r--tests/compute/modern-syntax.slang3
-rw-r--r--tests/compute/mutating-and-inout.slang1
-rw-r--r--tests/compute/mutating-methods.slang1
-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.slang3
-rw-r--r--tests/compute/semantic.slang3
-rw-r--r--tests/compute/simple.slang3
-rw-r--r--tests/compute/static-const-array.slang3
-rw-r--r--tests/compute/static-const-matrix-array.slang3
-rw-r--r--tests/compute/static-const-vector-array.slang3
-rw-r--r--tests/compute/struct-make.slang3
-rw-r--r--tests/compute/structured-buffer-of-matrices.slang3
-rw-r--r--tests/compute/texture-get-dimensions.slang1
-rw-r--r--tests/compute/texture-sampling.slang1
-rw-r--r--tests/compute/texture-simple.slang1
-rw-r--r--tests/compute/texture-simpler.slang1
-rw-r--r--tests/compute/transcendental-double.slang1
-rw-r--r--tests/hlsl-intrinsic/bit-cast-double.slang3
-rw-r--r--tests/hlsl-intrinsic/bit-cast.slang3
-rw-r--r--tests/hlsl-intrinsic/byte-address-buffer/byte-address-struct.slang3
-rw-r--r--tests/hlsl-intrinsic/classify-double.slang3
-rw-r--r--tests/hlsl-intrinsic/f16tof32.slang3
-rw-r--r--tests/hlsl-intrinsic/f32tof16.slang3
-rw-r--r--tests/hlsl-intrinsic/matrix-float.slang3
-rw-r--r--tests/hlsl-intrinsic/matrix-int.slang3
-rw-r--r--tests/hlsl-intrinsic/scalar-double-simple.slang3
-rw-r--r--tests/hlsl-intrinsic/scalar-float.slang1
-rw-r--r--tests/hlsl-intrinsic/size-of/align-of-2.slang3
-rw-r--r--tests/hlsl-intrinsic/size-of/align-of-3.slang3
-rw-r--r--tests/hlsl-intrinsic/size-of/align-of-generic.slang3
-rw-r--r--tests/hlsl-intrinsic/size-of/align-of.slang3
-rw-r--r--tests/hlsl-intrinsic/size-of/size-of-2.slang3
-rw-r--r--tests/hlsl-intrinsic/size-of/size-of-3.slang3
-rw-r--r--tests/hlsl-intrinsic/size-of/size-of-generic.slang3
-rw-r--r--tests/hlsl-intrinsic/size-of/size-of.slang3
-rw-r--r--tests/hlsl-intrinsic/vector-float.slang3
-rw-r--r--tests/hlsl/packoffset.slang1
-rw-r--r--tests/ir/scalar-truncate.slang1
-rw-r--r--tests/language-feature/bit-cast/struct-bit-cast.slang1
-rw-r--r--tests/language-feature/bitfield/sizeof.slang1
-rw-r--r--tests/language-feature/constants/constexpr-loop.slang1
-rw-r--r--tests/language-feature/constants/static-const-in-interface.slang1
-rw-r--r--tests/language-feature/constants/static-const-in-struct.slang1
-rw-r--r--tests/language-feature/constants/type-cast-const.slang1
-rw-r--r--tests/language-feature/constants/type-cast-truncate.slang1
-rw-r--r--tests/language-feature/enums/enum-bit-ops.slang1
-rw-r--r--tests/language-feature/enums/enum-equality.slang1
-rw-r--r--tests/language-feature/enums/enum-generic-arg.slang1
-rw-r--r--tests/language-feature/enums/nested-enum.slang1
-rw-r--r--tests/language-feature/extensions/extension-method-simple.slang1
-rw-r--r--tests/language-feature/extensions/interface-extension.slang1
-rw-r--r--tests/language-feature/generics/arithmetic-ops.slang1
-rw-r--r--tests/language-feature/generics/generic-interface-1.slang1
-rw-r--r--tests/language-feature/generics/generic-interface-2.slang1
-rw-r--r--tests/language-feature/generics/generic-value-constant-folding.slang1
-rw-r--r--tests/language-feature/generics/iarray.slang1
-rw-r--r--tests/language-feature/generics/partial-generic-argument-inference.slang1
-rw-r--r--tests/language-feature/generics/struct-generic-value-param.slang1
-rw-r--r--tests/language-feature/generics/typealias.slang1
-rw-r--r--tests/language-feature/higher-order-functions/simple.slang1
-rw-r--r--tests/language-feature/inheritance/derived-struct-init-list.slang1
-rw-r--r--tests/language-feature/inheritance/struct-inherit-interface-requirement.slang1
-rw-r--r--tests/language-feature/inheritance/struct-inheritance.slang1
-rw-r--r--tests/language-feature/interfaces/interface-conjunction.slang1
-rw-r--r--tests/language-feature/modules/include/main.slang1
-rw-r--r--tests/language-feature/multi-level-break-switch.slang1
-rw-r--r--tests/language-feature/namespaces/multiple-namespace.slang1
-rw-r--r--tests/language-feature/namespaces/namespace-import/test.slang1
-rw-r--r--tests/language-feature/namespaces/namespace-include/a.slang1
-rw-r--r--tests/language-feature/namespaces/namespace-using/b.slang1
-rw-r--r--tests/language-feature/namespaces/simple-namespace.slang1
-rw-r--r--tests/language-feature/namespaces/using-namespace.slang1
-rw-r--r--tests/language-feature/non-copyable-return.slang1
-rw-r--r--tests/language-feature/operators/subscript-multi-dimension.slang1
-rw-r--r--tests/language-feature/parameters/generic-func-param-default-arg.slang1
-rw-r--r--tests/language-feature/pointer/const-ref.slang1
-rw-r--r--tests/language-feature/properties/property-decl.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/simple-inline.slang1
-rw-r--r--tests/language-feature/struct-in-func.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/swizzles/matrix-swizzles.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/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.slang3
-rw-r--r--tools/render-test/options.cpp1
-rw-r--r--tools/render-test/render-test-main.cpp6
-rw-r--r--tools/slang-test/slang-test-main.cpp5
161 files changed, 236 insertions, 61 deletions
diff --git a/source/core/slang-render-api-util.cpp b/source/core/slang-render-api-util.cpp
index 334e9a9d1..fce66be90 100644
--- a/source/core/slang-render-api-util.cpp
+++ b/source/core/slang-render-api-util.cpp
@@ -17,6 +17,7 @@ namespace Slang {
{ RenderApiType::Vulkan, "vk,vulkan", ""},
{ RenderApiType::D3D12, "dx12,d3d12", ""},
{ RenderApiType::D3D11, "dx11,d3d11", "hlsl,hlsl-rewrite,slang"},
+ { RenderApiType::Metal, "mtl,metal", ""},
{ RenderApiType::CPU, "cpu", ""},
{ RenderApiType::CUDA, "cuda", "cuda,ptx"},
};
@@ -266,6 +267,9 @@ static bool _canLoadSharedLibrary(const char* libName)
#if SLANG_WINDOWS_FAMILY
case RenderApiType::OpenGl: return _canLoadSharedLibrary("opengl32");
case RenderApiType::Vulkan: return _canLoadSharedLibrary("vulkan-1") || _canLoadSharedLibrary("vk_swiftshader");
+#elif SLANG_APPLE_FAMILY
+ case RenderApiType::Vulkan: return true;
+ case RenderApiType::Metal: return true;
#elif SLANG_UNIX_FAMILY
case RenderApiType::OpenGl: return true;
case RenderApiType::Vulkan: return true;
diff --git a/source/core/slang-render-api-util.h b/source/core/slang-render-api-util.h
index b028d3996..7a2848038 100644
--- a/source/core/slang-render-api-util.h
+++ b/source/core/slang-render-api-util.h
@@ -15,6 +15,7 @@ enum class RenderApiType
Vulkan,
D3D12,
D3D11,
+ Metal,
CPU,
CUDA,
CountOf,
@@ -29,6 +30,7 @@ struct RenderApiFlag
Vulkan = 1 << int(RenderApiType::Vulkan),
D3D12 = 1 << int(RenderApiType::D3D12),
D3D11 = 1 << int(RenderApiType::D3D11),
+ Metal = 1 << int(RenderApiType::Metal),
CPU = 1 << int(RenderApiType::CPU),
CUDA = 1 << int(RenderApiType::CUDA),
AllOf = (1 << int(RenderApiType::CountOf)) - 1 ///< All bits set
diff --git a/tests/autodiff-dstdlib/determinant.slang b/tests/autodiff-dstdlib/determinant.slang
index d2e699551..86c7e4de7 100644
--- a/tests/autodiff-dstdlib/determinant.slang
+++ b/tests/autodiff-dstdlib/determinant.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:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/autodiff-dstdlib/dstdlib-mul-mat-mat.slang b/tests/autodiff-dstdlib/dstdlib-mul-mat-mat.slang
index 6419e92aa..266e0e633 100644
--- a/tests/autodiff-dstdlib/dstdlib-mul-mat-mat.slang
+++ b/tests/autodiff-dstdlib/dstdlib-mul-mat-mat.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:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/autodiff-dstdlib/dstdlib-mul-mat-vec.slang b/tests/autodiff-dstdlib/dstdlib-mul-mat-vec.slang
index 23ec9cabb..23313b99c 100644
--- a/tests/autodiff-dstdlib/dstdlib-mul-mat-vec.slang
+++ b/tests/autodiff-dstdlib/dstdlib-mul-mat-vec.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:-slang -shaderobj -mtl
//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-dstdlib/dstdlib-mul-vec-mat.slang b/tests/autodiff-dstdlib/dstdlib-mul-vec-mat.slang
index a4e86091a..21313b5ba 100644
--- a/tests/autodiff-dstdlib/dstdlib-mul-vec-mat.slang
+++ b/tests/autodiff-dstdlib/dstdlib-mul-vec-mat.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:-slang -shaderobj -mtl
//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-dstdlib/dstdlib-sqrt.slang b/tests/autodiff-dstdlib/dstdlib-sqrt.slang
index ee3fb94b7..894c83e23 100644
--- a/tests/autodiff-dstdlib/dstdlib-sqrt.slang
+++ b/tests/autodiff-dstdlib/dstdlib-sqrt.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:-slang -shaderobj -mtl
//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/custom-intrinsic.slang b/tests/autodiff/custom-intrinsic.slang
index 1954c6f8d..7d82887e2 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:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
@@ -118,4 +119,4 @@ void computeMain(uint3 dispatchThreadID: SV_DispatchThreadID)
//outputBuffer[2] = g(dpa.p); // Expect: 1.381773
//outputBuffer[3] = __fwd_diff(g)(dpa).d; // Expect: -0.301168
}
-} \ No newline at end of file
+}
diff --git a/tests/autodiff/global-param-hoisting.slang b/tests/autodiff/global-param-hoisting.slang
index 72a9494fe..7e9c9e971 100644
--- a/tests/autodiff/global-param-hoisting.slang
+++ b/tests/autodiff/global-param-hoisting.slang
@@ -7,6 +7,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_EX:-cpu -compute -output-using-type -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/autodiff/reverse-matrix-ops.slang b/tests/autodiff/reverse-matrix-ops.slang
index e7be41811..4f4a6f675 100644
--- a/tests/autodiff/reverse-matrix-ops.slang
+++ b/tests/autodiff/reverse-matrix-ops.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:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 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 38ce9232e..0ef42bcd1 100644
--- a/tests/bindings/nested-parameter-block-2.slang
+++ b/tests/bindings/nested-parameter-block-2.slang
@@ -1,6 +1,7 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj -output-using-type
//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
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// nested-parameter-block-2.slang
struct CB
diff --git a/tests/bugs/atomic-coerce.slang b/tests/bugs/atomic-coerce.slang
index 1e56a8d25..2fe927355 100644
--- a/tests/bugs/atomic-coerce.slang
+++ b/tests/bugs/atomic-coerce.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:-slang -shaderobj -mtl
//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 ca09cded9..5850cd3c0 100644
--- a/tests/bugs/buffer-swizzle-store.slang
+++ b/tests/bugs/buffer-swizzle-store.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:-slang -shaderobj -mtl
//TEST_INPUT: RWTexture2D(format=R16G16_FLOAT, size=4, content = one, mipMaps = 1):name g_test
[format("rg16f")]
@@ -13,4 +14,4 @@ void computeMain( uint2 dispatchThreadID : SV_DispatchThreadID )
{
g_test[dispatchThreadID].xy = float2(0.0, 1.0);
outputBuffer[dispatchThreadID.x] = g_test[dispatchThreadID].y;
-} \ No newline at end of file
+}
diff --git a/tests/bugs/dxbc-double-problem.slang b/tests/bugs/dxbc-double-problem.slang
index 441000f63..9daa28a9f 100644
--- a/tests/bugs/dxbc-double-problem.slang
+++ b/tests/bugs/dxbc-double-problem.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -output-using-type -shaderobj
//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
// 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
@@ -27,4 +28,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
outputBuffer[1] = pi;
outputBuffer[2] = pi_180;
outputBuffer[3] = w;
-} \ No newline at end of file
+}
diff --git a/tests/bugs/frexp-double.slang b/tests/bugs/frexp-double.slang
index 1a262c8af..40623a17b 100644
--- a/tests/bugs/frexp-double.slang
+++ b/tests/bugs/frexp-double.slang
@@ -4,6 +4,7 @@
//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-vk -output-using-type -render-feature double
//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-vk -emit-spirv-directly -output-using-type -render-feature double
//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-cuda -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// BUF: type: int32_t
// BUF-NEXT: 1
diff --git a/tests/bugs/frexp.slang b/tests/bugs/frexp.slang
index ea8f17411..01c345d1e 100644
--- a/tests/bugs/frexp.slang
+++ b/tests/bugs/frexp.slang
@@ -4,6 +4,7 @@
//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-vk -output-using-type
//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
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// BUF: type: int32_t
// BUF-NEXT: 1
diff --git a/tests/bugs/generic-default-matrix.slang b/tests/bugs/generic-default-matrix.slang
index a559f59b1..d6de373ad 100644
--- a/tests/bugs/generic-default-matrix.slang
+++ b/tests/bugs/generic-default-matrix.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/bugs/generic-groupshared.slang b/tests/bugs/generic-groupshared.slang
index b352e7382..e6550d025 100644
--- a/tests/bugs/generic-groupshared.slang
+++ b/tests/bugs/generic-groupshared.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:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<int> outputBuffer;
@@ -26,4 +27,4 @@ void computeMain(int3 dispatchThreadID: SV_DispatchThreadID)
{
S<2> s;
outputBuffer[0] = s.doSomething();
-} \ No newline at end of file
+}
diff --git a/tests/bugs/generic-member-method.slang b/tests/bugs/generic-member-method.slang
index 06e80cd0c..4878ae406 100644
--- a/tests/bugs/generic-member-method.slang
+++ b/tests/bugs/generic-member-method.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:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<int> outputBuffer;
@@ -49,4 +50,4 @@ void computeMain(int3 dispatchThreadID: SV_DispatchThreadID)
Impl impl;
Nothing nothing;
outputBuffer[0] = impl.doThing(2);
-} \ No newline at end of file
+}
diff --git a/tests/bugs/generic-type-duplication.slang b/tests/bugs/generic-type-duplication.slang
index 4117a7f81..7498543ab 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:-slang -shaderobj -mtl
struct MyGeneric<let addOne: bool>
{
diff --git a/tests/bugs/gh-2959.slang b/tests/bugs/gh-2959.slang
index b478fa938..f6c58d1ee 100644
--- a/tests/bugs/gh-2959.slang
+++ b/tests/bugs/gh-2959.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=BUF): -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//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 5e5e55d31..509212ea9 100644
--- a/tests/bugs/gh-3980.slang
+++ b/tests/bugs/gh-3980.slang
@@ -4,6 +4,7 @@
//TEST(compute):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-vk -compute -shaderobj -output-using-type -emit-spirv-directly
//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
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// 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/interface-type-self-ref.slang b/tests/bugs/interface-type-self-ref.slang
index e3b1fe7cc..9c823ffa5 100644
--- a/tests/bugs/interface-type-self-ref.slang
+++ b/tests/bugs/interface-type-self-ref.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/bugs/mutating/buffer-write-dce.slang b/tests/bugs/mutating/buffer-write-dce.slang
index c784531d3..a2c44b291 100644
--- a/tests/bugs/mutating/buffer-write-dce.slang
+++ b/tests/bugs/mutating/buffer-write-dce.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Confirm that calling a mutating method to write to a buffer location doesn't
// get DCE'd.
@@ -25,4 +26,4 @@ void computeMain(int3 dispatchThreadID : SV_DispatchThreadID)
{
int tid = dispatchThreadID.x;
writeOutput(tid);
-} \ No newline at end of file
+}
diff --git a/tests/bugs/mutating/mutating-call-in-loop-dce.slang b/tests/bugs/mutating/mutating-call-in-loop-dce.slang
index 15e5db304..002dd9ca7 100644
--- a/tests/bugs/mutating/mutating-call-in-loop-dce.slang
+++ b/tests/bugs/mutating/mutating-call-in-loop-dce.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Confirm that a SideEffectFree mutable method does not get DCE'd when
// it is called from within a loop.
@@ -37,4 +38,4 @@ void computeMain(int3 dispatchThreadID : SV_DispatchThreadID)
C c;
c.init();
outputBuffer[tid] = doSomething(c);
-} \ No newline at end of file
+}
diff --git a/tests/bugs/mutating/mutating-generic-method.slang b/tests/bugs/mutating/mutating-generic-method.slang
index 58fe6f344..dceafc4b0 100644
--- a/tests/bugs/mutating/mutating-generic-method.slang
+++ b/tests/bugs/mutating/mutating-generic-method.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:-slang -shaderobj -mtl
// Confirm that a generic method marked `[mutating]`
// produces an `inout` parameter for `this`.
@@ -47,4 +48,4 @@ void computeMain(int3 dispatchThreadID : SV_DispatchThreadID)
int tid = dispatchThreadID.x;
int val = test(tid);
outputBuffer[tid] = val;
-} \ No newline at end of file
+}
diff --git a/tests/bugs/mutating/resource-specialization-inout.slang b/tests/bugs/mutating/resource-specialization-inout.slang
index 541ecd8ac..a6b531730 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:-slang -shaderobj -mtl
//TEST_INPUT: Texture2D(size=4, content = one):name t2D
Texture2D t2D;
@@ -33,4 +34,4 @@ void computeMain(int3 dispatchThreadID : SV_DispatchThreadID)
int inputVal = tid;
int outputVal = test(inputVal);
gOutputBuffer[tid] = outputVal;
-} \ No newline at end of file
+}
diff --git a/tests/bugs/negative-literal.slang b/tests/bugs/negative-literal.slang
index 66fc90edf..afb7d604a 100644
--- a/tests/bugs/negative-literal.slang
+++ b/tests/bugs/negative-literal.slang
@@ -2,6 +2,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/bugs/nested-existential-dyndispatch.slang b/tests/bugs/nested-existential-dyndispatch.slang
index ed4f5722d..8c7395760 100644
--- a/tests/bugs/nested-existential-dyndispatch.slang
+++ b/tests/bugs/nested-existential-dyndispatch.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/bugs/nested-switch.slang b/tests/bugs/nested-switch.slang
index 3cfc0758b..73ec3ad95 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:-slang -shaderobj -mtl
int test(int t, int r)
{
diff --git a/tests/bugs/op-assignment-unify-mat.slang b/tests/bugs/op-assignment-unify-mat.slang
index 13b6ecf48..317170687 100644
--- a/tests/bugs/op-assignment-unify-mat.slang
+++ b/tests/bugs/op-assignment-unify-mat.slang
@@ -2,6 +2,7 @@
//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj -vk
//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
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<uint> outputBuffer;
diff --git a/tests/bugs/operator-overload.slang b/tests/bugs/operator-overload.slang
index cc0306dd3..264f12ac2 100644
--- a/tests/bugs/operator-overload.slang
+++ b/tests/bugs/operator-overload.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Tests operator overloading works in user space.
@@ -28,4 +29,4 @@ void computeMain(int3 dispatchThreadID : SV_DispatchThreadID)
int r = int(c.x + c.y);
outputBuffer[dispatchThreadID.x] = int(r);
-} \ No newline at end of file
+}
diff --git a/tests/bugs/specialize-existential-in-generic.slang b/tests/bugs/specialize-existential-in-generic.slang
index 31ef75512..4d51bf12a 100644
--- a/tests/bugs/specialize-existential-in-generic.slang
+++ b/tests/bugs/specialize-existential-in-generic.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
[Specialize]
interface IAssoc
@@ -39,4 +40,4 @@ void computeMain(int3 dispatchThreadID: SV_DispatchThreadID)
int tid = dispatchThreadID.x;
GenType<Impl> val;
gOutputBuffer[tid] = val.doThing();
-} \ No newline at end of file
+}
diff --git a/tests/bugs/ssa-loop.slang b/tests/bugs/ssa-loop.slang
index 21cf6e7f5..c44290930 100644
--- a/tests/bugs/ssa-loop.slang
+++ b/tests/bugs/ssa-loop.slang
@@ -3,6 +3,7 @@
// Bug related to SSA form for loops
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
int test(int val)
{
@@ -28,4 +29,4 @@ void computeMain(int3 dispatchThreadID : SV_DispatchThreadID)
int inputVal = tid;
int outputVal = test(inputVal);
gOutputBuffer[tid] = outputVal;
-} \ No newline at end of file
+}
diff --git a/tests/bugs/static-method.slang b/tests/bugs/static-method.slang
index 98e4a3273..9716641b1 100644
--- a/tests/bugs/static-method.slang
+++ b/tests/bugs/static-method.slang
@@ -1,6 +1,7 @@
// static-method.slang
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
struct S
{
diff --git a/tests/bugs/texture2d-gather.hlsl b/tests/bugs/texture2d-gather.hlsl
index d84c122b5..9b0607eae 100644
--- a/tests/bugs/texture2d-gather.hlsl
+++ b/tests/bugs/texture2d-gather.hlsl
@@ -1,4 +1,5 @@
//TEST(smoke):COMPARE_HLSL_RENDER:
+//DISABLE_TEST(smoke):COMPARE_HLSL_RENDER:-mtl
//TEST_INPUT: Texture2D(size=16, content=chessboard, format=R32_FLOAT):name g_texture
//TEST_INPUT: Sampler :name g_sampler
diff --git a/tests/bugs/type-legalize-bug-1.slang b/tests/bugs/type-legalize-bug-1.slang
index 83e28a509..7f1e99d37 100644
--- a/tests/bugs/type-legalize-bug-1.slang
+++ b/tests/bugs/type-legalize-bug-1.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[9 9 9 9], stride=4):out,name outputBuffer
//TEST_INPUT:type_conformance A:IFoo=0
@@ -53,4 +54,4 @@ struct A : IFoo
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
{
user();
-} \ No newline at end of file
+}
diff --git a/tests/bugs/vec-compare.slang b/tests/bugs/vec-compare.slang
index 59ef06d02..996def7d6 100644
--- a/tests/bugs/vec-compare.slang
+++ b/tests/bugs/vec-compare.slang
@@ -1,6 +1,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//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<int> outputBuffer;
@@ -76,4 +77,4 @@ void computeMain(int2 pixelIndex : SV_DispatchThreadID)
}
outputBuffer[pixelIndex.x + pixelIndex.y * 4] = (coerceBits << 24) | (floatBits << 16) | (intBits << 8) | (uintBits);
-} \ No newline at end of file
+}
diff --git a/tests/compute/array-param.slang b/tests/compute/array-param.slang
index 1ef913a8f..920a18977 100644
--- a/tests/compute/array-param.slang
+++ b/tests/compute/array-param.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
@@ -22,4 +23,4 @@ void computeMain(int3 dispatchThreadID : SV_DispatchThreadID)
float3 b[4];
writeArray(b);
outputBuffer[dispatchThreadID.x] = int(b[0].x);
-} \ No newline at end of file
+}
diff --git a/tests/compute/assoctype-nested.slang b/tests/compute/assoctype-nested.slang
index a4a994e10..2325e4398 100644
--- a/tests/compute/assoctype-nested.slang
+++ b/tests/compute/assoctype-nested.slang
@@ -6,6 +6,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
interface IRandomGenerator
{
@@ -59,4 +60,4 @@ void computeMain(int3 dispatchThreadID : SV_DispatchThreadID)
int inputVal = tid;
int outputVal = test(inputVal);
gOutputBuffer[tid] = outputVal;
-} \ No newline at end of file
+}
diff --git a/tests/compute/atomics-buffer.slang b/tests/compute/atomics-buffer.slang
index e511ece04..72b86368d 100644
--- a/tests/compute/atomics-buffer.slang
+++ b/tests/compute/atomics-buffer.slang
@@ -9,6 +9,7 @@
//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cuda -shaderobj
// Atomics not available on CPU currently
//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cpu -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(format=R_UInt32, data=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]):out,name outputBuffer
@@ -28,4 +29,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
{
uint tid = dispatchThreadID.x;
test(tid);
-} \ No newline at end of file
+}
diff --git a/tests/compute/atomics-groupshared.slang b/tests/compute/atomics-groupshared.slang
index 5bb757082..fcfc9c8d7 100644
--- a/tests/compute/atomics-groupshared.slang
+++ b/tests/compute/atomics-groupshared.slang
@@ -4,6 +4,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -vk -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cuda -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
@@ -41,4 +42,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
uint tid = dispatchThreadID.x;
uint val = test(tid);
outputBuffer[tid] = val;
-} \ No newline at end of file
+}
diff --git a/tests/compute/atomics.slang b/tests/compute/atomics.slang
index ca467c1fb..b00f437f5 100644
--- a/tests/compute/atomics.slang
+++ b/tests/compute/atomics.slang
@@ -4,6 +4,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -vk -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cuda -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out, name outputBuffer
@@ -23,4 +24,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
{
uint tid = dispatchThreadID.x;
test(tid);
-} \ No newline at end of file
+}
diff --git a/tests/compute/buffer-layout.slang b/tests/compute/buffer-layout.slang
index 8c71904c6..a456fa142 100644
--- a/tests/compute/buffer-layout.slang
+++ b/tests/compute/buffer-layout.slang
@@ -3,10 +3,11 @@
// The goal of this test is to make sure that constant and structured
// buffers obey the rules we expect of the each target API.
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx11 -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cpu -shaderobj
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cuda -shaderobj
//TEST_INPUT: ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<int> outputBuffer;
@@ -128,4 +129,4 @@ void computeMain(
int inVal = tid;
int outVal = test(inVal);
outputBuffer[tid] = outVal;
-} \ No newline at end of file
+}
diff --git a/tests/compute/buffer-type-splitting.slang b/tests/compute/buffer-type-splitting.slang
index 0ccad15de..ea9af3146 100644
--- a/tests/compute/buffer-type-splitting.slang
+++ b/tests/compute/buffer-type-splitting.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE:-cpu
//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
//TEST_INPUT:ubuffer(data=[0 2 3 3]):name=s[0].a
@@ -28,4 +29,4 @@ void computeMain(int3 dispatchThreadID : SV_DispatchThreadID)
+ s[1].b.Load(i * 4)*4096);
outputBuffer[i] = val;
-} \ No newline at end of file
+}
diff --git a/tests/compute/byte-address-buffer.slang b/tests/compute/byte-address-buffer.slang
index 715be850d..80a1e8e16 100644
--- a/tests/compute/byte-address-buffer.slang
+++ b/tests/compute/byte-address-buffer.slang
@@ -4,6 +4,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-d3d12 -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Confirm cross-compilation of `(RW)ByteAddressBuffer`
//
@@ -38,4 +39,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
int val = int(tid);
test(val);
-} \ No newline at end of file
+}
diff --git a/tests/compute/cast-zero-to-struct.slang b/tests/compute/cast-zero-to-struct.slang
index 13bd4bf68..148ea8f07 100644
--- a/tests/compute/cast-zero-to-struct.slang
+++ b/tests/compute/cast-zero-to-struct.slang
@@ -5,6 +5,7 @@
//TEST(compute):COMPARE_COMPUTE: -shaderobj
//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
struct S
{
diff --git a/tests/compute/cbuffer-legalize.slang b/tests/compute/cbuffer-legalize.slang
index 7233f71d6..5da305eab 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:-slang -shaderobj -mtl
//TEST_INPUT: uniform(data=[1 2 3 4]):name=C.p.c
//TEST_INPUT: Texture2D(size=4, content = one):name=C.p.t
@@ -34,4 +35,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
outputBuffer[1] = outVal.y;
outputBuffer[2] = outVal.z;
outputBuffer[3] = outVal.w;
-} \ No newline at end of file
+}
diff --git a/tests/compute/compile-time-loop.slang b/tests/compute/compile-time-loop.slang
index 5b9dd010b..f69708e0c 100644
--- a/tests/compute/compile-time-loop.slang
+++ b/tests/compute/compile-time-loop.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_RENDER_COMPUTE: -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//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 cf308e7d5..9aa5c1d56 100644
--- a/tests/compute/constexpr.slang
+++ b/tests/compute/constexpr.slang
@@ -1,6 +1,7 @@
// constexpr.slang
//TEST(compute):COMPARE_COMPUTE_EX:-slang -gcompute -shaderobj
//DISABLED://TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -gcompute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT: Texture2D(size=4, content = one):name tex
//TEST_INPUT: Sampler:name samp
@@ -109,4 +110,4 @@ FragmentStageOutput fragmentMain(FragmentStageInput input)
outputBuffer[1] = 1;
return output;
-} \ No newline at end of file
+}
diff --git a/tests/compute/discard-stmt.slang b/tests/compute/discard-stmt.slang
index d6c902ec9..90a81c0ff 100644
--- a/tests/compute/discard-stmt.slang
+++ b/tests/compute/discard-stmt.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_RENDER_COMPUTE: -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//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
@@ -88,4 +89,4 @@ FragmentStageOutput fragmentMain(FragmentStageInput input)
outputBuffer[1] = 1;
return output;
-} \ No newline at end of file
+}
diff --git a/tests/compute/entry-point-uniform-params.slang b/tests/compute/entry-point-uniform-params.slang
index d150c4241..2a5422f3e 100644
--- a/tests/compute/entry-point-uniform-params.slang
+++ b/tests/compute/entry-point-uniform-params.slang
@@ -9,6 +9,7 @@
//TEST(compute):COMPARE_COMPUTE: -dx11 -shaderobj
//TEST(compute):COMPARE_COMPUTE: -cuda -shaderobj
//TEST(compute):COMPARE_COMPUTE: -cpu -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
@@ -54,4 +55,4 @@ void computeMain(
val = val*16 + tid;
outputBuffer[tid] = val;
-} \ No newline at end of file
+}
diff --git a/tests/compute/enum.slang b/tests/compute/enum.slang
index fe35f438c..42dfad3a8 100644
--- a/tests/compute/enum.slang
+++ b/tests/compute/enum.slang
@@ -2,6 +2,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Confirm that basic `enum` declarations are supported.
@@ -64,4 +65,4 @@ void computeMain(int3 dispatchThreadID : SV_DispatchThreadID)
val = test(val);
outputBuffer[tid] = val;
-} \ No newline at end of file
+}
diff --git a/tests/compute/frem.slang b/tests/compute/frem.slang
index 893f29794..8d6551e79 100644
--- a/tests/compute/frem.slang
+++ b/tests/compute/frem.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE: -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE:-vk -shaderobj -emit-spirv-directly -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Test uses of floating-point `%` operator.
diff --git a/tests/compute/interface-param.slang b/tests/compute/interface-param.slang
index 7d9307522..1aa684b41 100644
--- a/tests/compute/interface-param.slang
+++ b/tests/compute/interface-param.slang
@@ -8,6 +8,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
interface IHelper
{
@@ -42,4 +43,4 @@ void computeMain(int3 dispatchThreadID : SV_DispatchThreadID)
int inputVal = tid;
int outputVal = test(inputVal);
gOutputBuffer[tid] = outputVal;
-} \ No newline at end of file
+}
diff --git a/tests/compute/interface-shader-param-in-struct.slang b/tests/compute/interface-shader-param-in-struct.slang
index 1a4b12280..3cdbac8cf 100644
--- a/tests/compute/interface-shader-param-in-struct.slang
+++ b/tests/compute/interface-shader-param-in-struct.slang
@@ -6,6 +6,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
//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
// 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 a43b6f695..8111ccba8 100644
--- a/tests/compute/interface-shader-param.slang
+++ b/tests/compute/interface-shader-param.slang
@@ -8,6 +8,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -profile sm_6_0 -use-dxil
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// 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/interface-static-method.slang b/tests/compute/interface-static-method.slang
index 05224bdea..78168de1b 100644
--- a/tests/compute/interface-static-method.slang
+++ b/tests/compute/interface-static-method.slang
@@ -4,6 +4,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
interface IHideout
{
@@ -54,4 +55,4 @@ void computeMain(int3 dispatchThreadID : SV_DispatchThreadID)
{
int tid = dispatchThreadID.x;
outputBuffer[tid] = test(tid);
-} \ No newline at end of file
+}
diff --git a/tests/compute/logic-short-circuit-evaluation.slang b/tests/compute/logic-short-circuit-evaluation.slang
index 585a04770..c308e7bf5 100644
--- a/tests/compute/logic-short-circuit-evaluation.slang
+++ b/tests/compute/logic-short-circuit-evaluation.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -compile-arg -O3 -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Test doing vector comparisons
diff --git a/tests/compute/loop-unroll.slang b/tests/compute/loop-unroll.slang
index c0ea7686c..f0d97dd59 100644
--- a/tests/compute/loop-unroll.slang
+++ b/tests/compute/loop-unroll.slang
@@ -5,6 +5,7 @@
//TEST(compute):COMPARE_COMPUTE:-cuda -shaderobj
// Note VK output is not loop unrolled
//TEST(compute):COMPARE_COMPUTE:-vk -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//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]
@@ -36,4 +37,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
}
buffers[0][tid] = unroll;
-} \ No newline at end of file
+}
diff --git a/tests/compute/matrix-layout-structured-buffer.slang b/tests/compute/matrix-layout-structured-buffer.slang
index 6893a5df9..588c93685 100644
--- a/tests/compute/matrix-layout-structured-buffer.slang
+++ b/tests/compute/matrix-layout-structured-buffer.slang
@@ -5,8 +5,10 @@
// buffers of matrices, where fxc/dxc do *not* respect
// the matrix layout mode by default.
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -xslang -matrix-layout-row-major -shaderobj
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -xslang -matrix-layout-column-major -shaderobj
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -xslang -matrix-layout-row-major -shaderobj -dx11
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -xslang -matrix-layout-column-major -shaderobj -dx11
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -xslang -matrix-layout-row-major -shaderobj -dx12
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -xslang -matrix-layout-column-major -shaderobj -dx12
//TEST_INPUT:ubuffer(data=[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23], stride=48):name=gMatrices
RWStructuredBuffer<int3x4> gMatrices;
diff --git a/tests/compute/matrix-layout.hlsl b/tests/compute/matrix-layout.hlsl
index 571003a10..4a2d3f014 100644
--- a/tests/compute/matrix-layout.hlsl
+++ b/tests/compute/matrix-layout.hlsl
@@ -9,6 +9,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
// Not testing on Vulkan because of lack of support
// for integer matrices in GLSL. Slang needs to
diff --git a/tests/compute/modern-syntax.slang b/tests/compute/modern-syntax.slang
index d6bdcd3bd..fbadfea7f 100644
--- a/tests/compute/modern-syntax.slang
+++ b/tests/compute/modern-syntax.slang
@@ -1,6 +1,7 @@
// modern-syntax.slang
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-cpu -slang -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// This file exists to confirm that declarations using "modern"
// syntax are handled correctly by the compiler front-end.
@@ -24,4 +25,4 @@ void computeMain(int3 dispatchThreadID : SV_DispatchThreadID)
int tid = dispatchThreadID.x;
int val = test(tid);
outputBuffer[tid] = val;
-} \ No newline at end of file
+}
diff --git a/tests/compute/mutating-and-inout.slang b/tests/compute/mutating-and-inout.slang
index 37cc30870..7ddc592eb 100644
--- a/tests/compute/mutating-and-inout.slang
+++ b/tests/compute/mutating-and-inout.slang
@@ -3,6 +3,7 @@
// Test that calling a `[mutating]` method on an `inout` function parameter works.
//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/compute/mutating-methods.slang b/tests/compute/mutating-methods.slang
index 6f561e9a6..56bf16f0b 100644
--- a/tests/compute/mutating-methods.slang
+++ b/tests/compute/mutating-methods.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -xslang -serial-ir -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -xslang -serial-ir -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -xslang -serial-ir -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
interface IAccumulator
{
diff --git a/tests/compute/non-square-column-major.slang b/tests/compute/non-square-column-major.slang
index ae82d4818..09ed8e1c2 100644
--- a/tests/compute/non-square-column-major.slang
+++ b/tests/compute/non-square-column-major.slang
@@ -8,6 +8,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -output-using-type -xslang -matrix-layout-column-major -shaderobj
//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
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// 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 9562e37ea..b9a9c2fbb 100644
--- a/tests/compute/non-square-row-major.slang
+++ b/tests/compute/non-square-row-major.slang
@@ -8,6 +8,7 @@
//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_EX:-cuda -compute -output-using-type -xslang -matrix-layout-row-major -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// matrix<R, C>
diff --git a/tests/compute/parameter-block.slang b/tests/compute/parameter-block.slang
index f7fa718de..27cfed716 100644
--- a/tests/compute/parameter-block.slang
+++ b/tests/compute/parameter-block.slang
@@ -2,6 +2,7 @@
//TEST(compute):COMPARE_COMPUTE:-cuda -shaderobj
//TEST(compute):COMPARE_COMPUTE:-vk -shaderobj
//TEST(compute):COMPARE_COMPUTE:-shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Ensure that Slang `ParameterBlock` type is lowered
// to HLSL in the fashion that we expect.
@@ -27,4 +28,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
int outVal = inVal;
block0.buffer[tid] = outVal;
-} \ No newline at end of file
+}
diff --git a/tests/compute/semantic.slang b/tests/compute/semantic.slang
index c0411f572..4946b928d 100644
--- a/tests/compute/semantic.slang
+++ b/tests/compute/semantic.slang
@@ -2,6 +2,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -compute-dispatch 3,1,1 -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -compute-dispatch 3,1,1 -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -compute-dispatch 3,1,1 -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<int> outputBuffer;
@@ -10,4 +11,4 @@ RWStructuredBuffer<int> outputBuffer;
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID, uint3 groupID : SV_GroupID, uint3 groupThreadID : SV_GroupThreadId)
{
outputBuffer[dispatchThreadID.x] = int((dispatchThreadID.x << 8) | (groupID.x << 4) | (groupThreadID.x));
-} \ No newline at end of file
+}
diff --git a/tests/compute/simple.slang b/tests/compute/simple.slang
index 49628c47f..d9e642dd5 100644
--- a/tests/compute/simple.slang
+++ b/tests/compute/simple.slang
@@ -2,6 +2,7 @@
//TEST(smoke,compute):COMPARE_COMPUTE:-dx12 -use-dxil -shaderobj
//TEST(smoke,compute):COMPARE_COMPUTE:-cpu -shaderobj
//TEST(smoke,compute):COMPARE_COMPUTE:-vk -shaderobj
+//TEST(smoke,compute):COMPARE_COMPUTE:-mtl -shaderobj
//TEST(smoke,compute):COMPARE_COMPUTE:-cuda -shaderobj
//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cpu -shaderobj
@@ -19,4 +20,4 @@ RWStructuredBuffer<float> outputBuffer;
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
{
outputBuffer[dispatchThreadID.x] = float(dispatchThreadID.x);
-} \ No newline at end of file
+}
diff --git a/tests/compute/static-const-array.slang b/tests/compute/static-const-array.slang
index f18f7cb15..48c47bea1 100644
--- a/tests/compute/static-const-array.slang
+++ b/tests/compute/static-const-array.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-cpu -slang -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out, name outputBuffer
RWStructuredBuffer<int> outputBuffer;
@@ -20,4 +21,4 @@ void computeMain(int3 tid : SV_DispatchThreadID)
int inVal = tid.x;
int outVal = test(inVal);
outputBuffer[inVal] = outVal;
-} \ No newline at end of file
+}
diff --git a/tests/compute/static-const-matrix-array.slang b/tests/compute/static-const-matrix-array.slang
index afe2468f2..b2c5f80a0 100644
--- a/tests/compute/static-const-matrix-array.slang
+++ b/tests/compute/static-const-matrix-array.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -output-using-type -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -output-using-type -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-cpu -slang -compute -output-using-type -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0], stride=4):out, name outputBuffer
RWStructuredBuffer<float> outputBuffer;
@@ -33,4 +34,4 @@ void computeMain(int3 tid : SV_DispatchThreadID)
int inVal = tid.x;
float outVal = test(inVal, inVal & 1);
outputBuffer[inVal] = outVal;
-} \ No newline at end of file
+}
diff --git a/tests/compute/static-const-vector-array.slang b/tests/compute/static-const-vector-array.slang
index e3611bcde..35ad8283c 100644
--- a/tests/compute/static-const-vector-array.slang
+++ b/tests/compute/static-const-vector-array.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -output-using-type -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -output-using-type -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-cpu -slang -compute -output-using-type -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0], stride=4):out, name outputBuffer
RWStructuredBuffer<float> outputBuffer;
@@ -30,4 +31,4 @@ void computeMain(int3 tid : SV_DispatchThreadID)
int inVal = tid.x;
float outVal = test(inVal);
outputBuffer[inVal] = outVal;
-} \ No newline at end of file
+}
diff --git a/tests/compute/struct-make.slang b/tests/compute/struct-make.slang
index 6cc3c48e5..29aeaf487 100644
--- a/tests/compute/struct-make.slang
+++ b/tests/compute/struct-make.slang
@@ -2,6 +2,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Confirm that scoping on enums and types works
@@ -27,4 +28,4 @@ void computeMain(int3 dispatchThreadID : SV_DispatchThreadID)
Thing thing = Thing::make(tid);
outputBuffer[tid] = thing.a;
-} \ No newline at end of file
+}
diff --git a/tests/compute/structured-buffer-of-matrices.slang b/tests/compute/structured-buffer-of-matrices.slang
index faa312fc2..507611d5a 100644
--- a/tests/compute/structured-buffer-of-matrices.slang
+++ b/tests/compute/structured-buffer-of-matrices.slang
@@ -15,6 +15,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -xslang -matrix-layout-row-major -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -xslang -matrix-layout-row-major -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -xslang -matrix-layout-row-major -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Note: we are using a buffer of floating-point matrices, but fill it with integer
// data, to allow this test to work on the Vulkan targets, which do not currently
@@ -38,4 +39,4 @@ void computeMain(int3 tid : SV_DispatchThreadID)
int value = tid.x;
value = test(value);
gOutput[tid.x] = value;
-} \ No newline at end of file
+}
diff --git a/tests/compute/texture-get-dimensions.slang b/tests/compute/texture-get-dimensions.slang
index 526e9feb1..9fb1eb828 100644
--- a/tests/compute/texture-get-dimensions.slang
+++ b/tests/compute/texture-get-dimensions.slang
@@ -6,6 +6,7 @@
//DISABLE_TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
// TODO(JS): Doesn't work on CUDA as there aren't any CUDA functions to get dimensions.
//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT: Texture1D(size=4, content = one):name t1D
Texture1D<float> t1D;
diff --git a/tests/compute/texture-sampling.slang b/tests/compute/texture-sampling.slang
index 9ef0075bb..89041dafb 100644
--- a/tests/compute/texture-sampling.slang
+++ b/tests/compute/texture-sampling.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_RENDER_COMPUTE: -shaderobj -output-using-type
//TEST(compute):COMPARE_RENDER_COMPUTE: -shaderobj -output-using-type -vk
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT: Texture1D(size=4, content = one):name=t1D
diff --git a/tests/compute/texture-simple.slang b/tests/compute/texture-simple.slang
index efa83edfb..b06be9a49 100644
--- a/tests/compute/texture-simple.slang
+++ b/tests/compute/texture-simple.slang
@@ -4,6 +4,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -profile cs_6_0 -use-dxil -shaderobj -output-using-type
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj -output-using-type -render-feature hardware-device
//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Doesn't work on CUDA, not clear why yet
//DISABLE_TEST_INPUT: Texture1D(format=R_Float32, size=4, content = one, mipMaps=1):name tLoad1D
diff --git a/tests/compute/texture-simpler.slang b/tests/compute/texture-simpler.slang
index 18af1cd62..196e8e96c 100644
--- a/tests/compute/texture-simpler.slang
+++ b/tests/compute/texture-simpler.slang
@@ -4,6 +4,7 @@
//TEST(smoke,compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -profile cs_6_0 -use-dxil -shaderobj -output-using-type
//TEST(smoke,compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj -output-using-type -render-feature hardware-device
//TEST(smoke,compute):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT: Texture2D(size=4, content = one):name t2D
Texture2D<float> t2D;
diff --git a/tests/compute/transcendental-double.slang b/tests/compute/transcendental-double.slang
index 4e84ea4ef..886bdfd4c 100644
--- a/tests/compute/transcendental-double.slang
+++ b/tests/compute/transcendental-double.slang
@@ -6,6 +6,7 @@
//DISABLE_TEST(compute):COMPARE_COMPUTE: -dx12 -output-using-type -shaderobj
// When using double on vulkan the values are incorrect(!)
//DISABLE_TEST(compute,vulkan):COMPARE_COMPUTE:-vk -output-using-type -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/hlsl-intrinsic/bit-cast-double.slang b/tests/hlsl-intrinsic/bit-cast-double.slang
index 292f56d8e..ecc70b1da 100644
--- a/tests/hlsl-intrinsic/bit-cast-double.slang
+++ b/tests/hlsl-intrinsic/bit-cast-double.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-slang -vk -compute -shaderobj -render-feature double
//TEST(compute):COMPARE_COMPUTE_EX:-slang -cuda -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<int> outputBuffer;
@@ -19,4 +20,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
double r = asdouble(low, hi);
outputBuffer[dispatchThreadID.x] = int(r);
-} \ No newline at end of file
+}
diff --git a/tests/hlsl-intrinsic/bit-cast.slang b/tests/hlsl-intrinsic/bit-cast.slang
index b808dd276..7d78c7f5a 100644
--- a/tests/hlsl-intrinsic/bit-cast.slang
+++ b/tests/hlsl-intrinsic/bit-cast.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):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0 0 0], stride=4):out,name outputBuffer
@@ -69,4 +70,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
outputBuffer[id + 8] = (int)asfloat(i1_);
}
-} \ No newline at end of file
+}
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 6db93b5a3..17781e2ff 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:-slang -shaderobj -mtl
// Note: This input should really be just a `ByteAddressBuffer`,
// so that we can confirm that the functionality works in the
@@ -48,4 +49,4 @@ void computeMain(int3 dispatchThreadID : SV_DispatchThreadID)
{
int tid = dispatchThreadID.x;
outputBuffer[tid] = test(tid);
-} \ No newline at end of file
+}
diff --git a/tests/hlsl-intrinsic/classify-double.slang b/tests/hlsl-intrinsic/classify-double.slang
index 7108ce449..2fbb1412b 100644
--- a/tests/hlsl-intrinsic/classify-double.slang
+++ b/tests/hlsl-intrinsic/classify-double.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
//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
// inf, -inf, nan, finite
//TEST_INPUT:ubuffer(data=[ 0 0x7ff00000 0 0xfff00000 0xffffffff 0x7fffffff 1 0], stride=4):name inputBuffer
@@ -28,4 +29,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
flags |= isinf(v) ? 4 : 0;
outputBuffer[idx] = flags;
-} \ No newline at end of file
+}
diff --git a/tests/hlsl-intrinsic/f16tof32.slang b/tests/hlsl-intrinsic/f16tof32.slang
index d45eab00b..c98db9b61 100644
--- a/tests/hlsl-intrinsic/f16tof32.slang
+++ b/tests/hlsl-intrinsic/f16tof32.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -render-features half
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<float> outputBuffer;
@@ -15,4 +16,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
uint values[] = { 0, 0xC600, 0x4A00, 0xCE00, 0x2555, 0xA155, 0x1D55, 0x9955 };
outputBuffer[idx] = f16tof32(values[idx]);
-} \ No newline at end of file
+}
diff --git a/tests/hlsl-intrinsic/f32tof16.slang b/tests/hlsl-intrinsic/f32tof16.slang
index ad8e8e5df..244d82837 100644
--- a/tests/hlsl-intrinsic/f32tof16.slang
+++ b/tests/hlsl-intrinsic/f32tof16.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -render-features half
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<uint> outputBuffer;
@@ -34,4 +35,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
uint r = f32tof16(value);
outputBuffer[idx] = r;
-} \ No newline at end of file
+}
diff --git a/tests/hlsl-intrinsic/matrix-float.slang b/tests/hlsl-intrinsic/matrix-float.slang
index 09848d5a6..740e712ba 100644
--- a/tests/hlsl-intrinsic/matrix-float.slang
+++ b/tests/hlsl-intrinsic/matrix-float.slang
@@ -6,6 +6,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -use-dxil -output-using-type -shaderobj -render-feature hardware-device
//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
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<float> outputBuffer;
@@ -130,4 +131,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
ft += asfloat(vu);
outputBuffer[idx] = calcResult(ft);
-} \ No newline at end of file
+}
diff --git a/tests/hlsl-intrinsic/matrix-int.slang b/tests/hlsl-intrinsic/matrix-int.slang
index f9f0cd02e..e671c0b1b 100644
--- a/tests/hlsl-intrinsic/matrix-int.slang
+++ b/tests/hlsl-intrinsic/matrix-int.slang
@@ -5,6 +5,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -use-dxil -shaderobj
//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
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<int> outputBuffer;
@@ -43,4 +44,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
t += a;
outputBuffer[idx] = horizontalAdd(t[0]) + horizontalAdd(t[1]) + horizontalAdd(t[2]);
-} \ No newline at end of file
+}
diff --git a/tests/hlsl-intrinsic/scalar-double-simple.slang b/tests/hlsl-intrinsic/scalar-double-simple.slang
index 11370dd4d..611e75539 100644
--- a/tests/hlsl-intrinsic/scalar-double-simple.slang
+++ b/tests/hlsl-intrinsic/scalar-double-simple.slang
@@ -7,6 +7,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -profile sm_6_0 -use-dxil -shaderobj
//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
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<uint> outputBuffer;
@@ -26,4 +27,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
outputBuffer[idx * 2 + 0] = low;
outputBuffer[idx * 2 + 1] = high;
}
-} \ No newline at end of file
+}
diff --git a/tests/hlsl-intrinsic/scalar-float.slang b/tests/hlsl-intrinsic/scalar-float.slang
index 4623d4835..2b143dcd0 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:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/hlsl-intrinsic/size-of/align-of-2.slang b/tests/hlsl-intrinsic/size-of/align-of-2.slang
index 93040722c..cc56bd782 100644
--- a/tests/hlsl-intrinsic/size-of/align-of-2.slang
+++ b/tests/hlsl-intrinsic/size-of/align-of-2.slang
@@ -4,6 +4,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
@@ -44,4 +45,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
}
outputBuffer[idx] = size;
-} \ No newline at end of file
+}
diff --git a/tests/hlsl-intrinsic/size-of/align-of-3.slang b/tests/hlsl-intrinsic/size-of/align-of-3.slang
index 4a2eea3e2..f053224b9 100644
--- a/tests/hlsl-intrinsic/size-of/align-of-3.slang
+++ b/tests/hlsl-intrinsic/size-of/align-of-3.slang
@@ -4,6 +4,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0], stride=4):out,name outputBuffer
@@ -69,4 +70,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
}
outputBuffer[idx] = size;
-} \ No newline at end of file
+}
diff --git a/tests/hlsl-intrinsic/size-of/align-of-generic.slang b/tests/hlsl-intrinsic/size-of/align-of-generic.slang
index c10c6c8ce..0fbeacbad 100644
--- a/tests/hlsl-intrinsic/size-of/align-of-generic.slang
+++ b/tests/hlsl-intrinsic/size-of/align-of-generic.slang
@@ -4,6 +4,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
@@ -33,4 +34,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
}
outputBuffer[idx] = size;
-} \ No newline at end of file
+}
diff --git a/tests/hlsl-intrinsic/size-of/align-of.slang b/tests/hlsl-intrinsic/size-of/align-of.slang
index b9e18f17d..76b433d15 100644
--- a/tests/hlsl-intrinsic/size-of/align-of.slang
+++ b/tests/hlsl-intrinsic/size-of/align-of.slang
@@ -4,6 +4,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
@@ -51,4 +52,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
}
outputBuffer[idx] = size + a + b + c + d + alignof(f);
-} \ No newline at end of file
+}
diff --git a/tests/hlsl-intrinsic/size-of/size-of-2.slang b/tests/hlsl-intrinsic/size-of/size-of-2.slang
index c2bad0526..b82c04cb1 100644
--- a/tests/hlsl-intrinsic/size-of/size-of-2.slang
+++ b/tests/hlsl-intrinsic/size-of/size-of-2.slang
@@ -4,6 +4,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0], stride=4):out,name outputBuffer
@@ -48,4 +49,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
}
outputBuffer[idx] = size;
-} \ No newline at end of file
+}
diff --git a/tests/hlsl-intrinsic/size-of/size-of-3.slang b/tests/hlsl-intrinsic/size-of/size-of-3.slang
index f632c6d83..7b6640ebc 100644
--- a/tests/hlsl-intrinsic/size-of/size-of-3.slang
+++ b/tests/hlsl-intrinsic/size-of/size-of-3.slang
@@ -4,6 +4,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0], stride=4):out,name outputBuffer
@@ -69,4 +70,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
}
outputBuffer[idx] = size;
-} \ No newline at end of file
+}
diff --git a/tests/hlsl-intrinsic/size-of/size-of-generic.slang b/tests/hlsl-intrinsic/size-of/size-of-generic.slang
index ffdc0e210..c98f5f371 100644
--- a/tests/hlsl-intrinsic/size-of/size-of-generic.slang
+++ b/tests/hlsl-intrinsic/size-of/size-of-generic.slang
@@ -4,6 +4,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
@@ -32,4 +33,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
}
outputBuffer[idx] = size;
-} \ No newline at end of file
+}
diff --git a/tests/hlsl-intrinsic/size-of/size-of.slang b/tests/hlsl-intrinsic/size-of/size-of.slang
index 7e27bab0c..205a6e360 100644
--- a/tests/hlsl-intrinsic/size-of/size-of.slang
+++ b/tests/hlsl-intrinsic/size-of/size-of.slang
@@ -4,6 +4,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
@@ -51,4 +52,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
}
outputBuffer[idx] = size + a + b + c + d + sizeof(f);
-} \ No newline at end of file
+}
diff --git a/tests/hlsl-intrinsic/vector-float.slang b/tests/hlsl-intrinsic/vector-float.slang
index de49bae73..357ad5a84 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:-slang -shaderobj -mtl
//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;
@@ -119,4 +120,4 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
}
outputBuffer[idx] = vector<Float, 4>(ft, 0);
-} \ No newline at end of file
+}
diff --git a/tests/hlsl/packoffset.slang b/tests/hlsl/packoffset.slang
index 94273d8d7..0097604a1 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:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/ir/scalar-truncate.slang b/tests/ir/scalar-truncate.slang
index ca1c5243c..ebe8c15f4 100644
--- a/tests/ir/scalar-truncate.slang
+++ b/tests/ir/scalar-truncate.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<uint> outputBuffer;
diff --git a/tests/language-feature/bit-cast/struct-bit-cast.slang b/tests/language-feature/bit-cast/struct-bit-cast.slang
index 630efb1e0..de92ac8b0 100644
--- a/tests/language-feature/bit-cast/struct-bit-cast.slang
+++ b/tests/language-feature/bit-cast/struct-bit-cast.slang
@@ -1,6 +1,7 @@
// struct-bit-cast.slang
//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Test that bit_cast works for bit-reinterpreting one struct type as another.
diff --git a/tests/language-feature/bitfield/sizeof.slang b/tests/language-feature/bitfield/sizeof.slang
index 57056d1b2..e3ada9566 100644
--- a/tests/language-feature/bitfield/sizeof.slang
+++ b/tests/language-feature/bitfield/sizeof.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cpu -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// CHECK: 1
// CHECK-NEXT: 1
diff --git a/tests/language-feature/constants/constexpr-loop.slang b/tests/language-feature/constants/constexpr-loop.slang
index 31b4294a5..94c71d219 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:-slang -shaderobj -mtl
//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-interface.slang b/tests/language-feature/constants/static-const-in-interface.slang
index 48737564f..e45803b59 100644
--- a/tests/language-feature/constants/static-const-in-interface.slang
+++ b/tests/language-feature/constants/static-const-in-interface.slang
@@ -1,6 +1,7 @@
// static-const-in-interface.slang
//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Test that `static const` variable declarations inside of
// a `interface` type correctly translate to interface requirements.
diff --git a/tests/language-feature/constants/static-const-in-struct.slang b/tests/language-feature/constants/static-const-in-struct.slang
index 5d4ce6802..d87ed7903 100644
--- a/tests/language-feature/constants/static-const-in-struct.slang
+++ b/tests/language-feature/constants/static-const-in-struct.slang
@@ -1,6 +1,7 @@
// static-const-in-struct.slang
//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Test that `static const` variable declarations inside of
// a `struct` type correctly translate to constants in
diff --git a/tests/language-feature/constants/type-cast-const.slang b/tests/language-feature/constants/type-cast-const.slang
index d0291aa7d..60661db50 100644
--- a/tests/language-feature/constants/type-cast-const.slang
+++ b/tests/language-feature/constants/type-cast-const.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE:
//TEST:SIMPLE(filecheck=CHECK): -target hlsl -entry computeMain -profile cs_5_0
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
int check<let b : bool>(int x)
{
diff --git a/tests/language-feature/constants/type-cast-truncate.slang b/tests/language-feature/constants/type-cast-truncate.slang
index 451d982f2..ca73307e0 100644
--- a/tests/language-feature/constants/type-cast-truncate.slang
+++ b/tests/language-feature/constants/type-cast-truncate.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_COMPUTE: -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0], stride=4):out,name=outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/language-feature/enums/enum-bit-ops.slang b/tests/language-feature/enums/enum-bit-ops.slang
index abffe8dee..a3808ff89 100644
--- a/tests/language-feature/enums/enum-bit-ops.slang
+++ b/tests/language-feature/enums/enum-bit-ops.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
[Flags]
enum MyFlags
diff --git a/tests/language-feature/enums/enum-equality.slang b/tests/language-feature/enums/enum-equality.slang
index 278b26a65..372772b15 100644
--- a/tests/language-feature/enums/enum-equality.slang
+++ b/tests/language-feature/enums/enum-equality.slang
@@ -4,6 +4,7 @@
// types works as expected.
//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
enum Channel
{
diff --git a/tests/language-feature/enums/enum-generic-arg.slang b/tests/language-feature/enums/enum-generic-arg.slang
index e851727e1..4ea048d67 100644
--- a/tests/language-feature/enums/enum-generic-arg.slang
+++ b/tests/language-feature/enums/enum-generic-arg.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Test that enum values can be used as compile time constants
// to specialize generics.
diff --git a/tests/language-feature/enums/nested-enum.slang b/tests/language-feature/enums/nested-enum.slang
index 5b45abae7..518bfd202 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:-slang -shaderobj -mtl
struct Outer
{
diff --git a/tests/language-feature/extensions/extension-method-simple.slang b/tests/language-feature/extensions/extension-method-simple.slang
index d3162c053..8d763b833 100644
--- a/tests/language-feature/extensions/extension-method-simple.slang
+++ b/tests/language-feature/extensions/extension-method-simple.slang
@@ -3,6 +3,7 @@
// Test that an `extension` applied to an interface type works as users expect
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
struct MyType
{
diff --git a/tests/language-feature/extensions/interface-extension.slang b/tests/language-feature/extensions/interface-extension.slang
index 1d84ba844..770004265 100644
--- a/tests/language-feature/extensions/interface-extension.slang
+++ b/tests/language-feature/extensions/interface-extension.slang
@@ -3,6 +3,7 @@
// Test that an `extension` applied to an interface type works as users expect
//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
interface ICounter
{
diff --git a/tests/language-feature/generics/arithmetic-ops.slang b/tests/language-feature/generics/arithmetic-ops.slang
index d2f1af47f..2a0ddcbb8 100644
--- a/tests/language-feature/generics/arithmetic-ops.slang
+++ b/tests/language-feature/generics/arithmetic-ops.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE: -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE: -vk -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
T simpleTest<T : IArithmetic>(T v0, T v1)
{
if (v0 > T(0))
diff --git a/tests/language-feature/generics/generic-interface-1.slang b/tests/language-feature/generics/generic-interface-1.slang
index 217e7f06f..bd551cee4 100644
--- a/tests/language-feature/generics/generic-interface-1.slang
+++ b/tests/language-feature/generics/generic-interface-1.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:-slang -shaderobj -mtl
interface IEqlTestable<T>
{
diff --git a/tests/language-feature/generics/generic-interface-2.slang b/tests/language-feature/generics/generic-interface-2.slang
index 9a44f679c..febc2e584 100644
--- a/tests/language-feature/generics/generic-interface-2.slang
+++ b/tests/language-feature/generics/generic-interface-2.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:-slang -shaderobj -mtl
interface IFoo<let n: uint>
{
diff --git a/tests/language-feature/generics/generic-value-constant-folding.slang b/tests/language-feature/generics/generic-value-constant-folding.slang
index f7525e6fd..112d3f503 100644
--- a/tests/language-feature/generics/generic-value-constant-folding.slang
+++ b/tests/language-feature/generics/generic-value-constant-folding.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_COMPUTE: -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
struct PlusOne<let v : int>
{
diff --git a/tests/language-feature/generics/iarray.slang b/tests/language-feature/generics/iarray.slang
index b66c3ab27..d25140670 100644
--- a/tests/language-feature/generics/iarray.slang
+++ b/tests/language-feature/generics/iarray.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:-slang -shaderobj -mtl
T sum<T:IFloat>(IArray<T> array)
{
diff --git a/tests/language-feature/generics/partial-generic-argument-inference.slang b/tests/language-feature/generics/partial-generic-argument-inference.slang
index 4ee50b88d..9ce6220f9 100644
--- a/tests/language-feature/generics/partial-generic-argument-inference.slang
+++ b/tests/language-feature/generics/partial-generic-argument-inference.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE: -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE: -vk -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// This test confirms that we can provide a subset of the required generic
// arguments to a generic function, and have the rest be inferred from the
diff --git a/tests/language-feature/generics/struct-generic-value-param.slang b/tests/language-feature/generics/struct-generic-value-param.slang
index 7b3b847d5..b3358d829 100644
--- a/tests/language-feature/generics/struct-generic-value-param.slang
+++ b/tests/language-feature/generics/struct-generic-value-param.slang
@@ -17,6 +17,7 @@
// when trying out the feature.
//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
import struct_generic_value_param_import;
diff --git a/tests/language-feature/generics/typealias.slang b/tests/language-feature/generics/typealias.slang
index 3895c984a..90a048603 100644
--- a/tests/language-feature/generics/typealias.slang
+++ b/tests/language-feature/generics/typealias.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE: -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE: -vk -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
struct MyGenType<T : IArithmetic, let n : int>
{
T value;
diff --git a/tests/language-feature/higher-order-functions/simple.slang b/tests/language-feature/higher-order-functions/simple.slang
index 1443bd60d..8a3544b91 100644
--- a/tests/language-feature/higher-order-functions/simple.slang
+++ b/tests/language-feature/higher-order-functions/simple.slang
@@ -1,6 +1,7 @@
//TEST(compute, vulkan):COMPARE_COMPUTE_EX():-vk -compute -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE_EX():-slang -compute -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<uint> outputBuffer;
diff --git a/tests/language-feature/inheritance/derived-struct-init-list.slang b/tests/language-feature/inheritance/derived-struct-init-list.slang
index 978fea904..97ae5799b 100644
--- a/tests/language-feature/inheritance/derived-struct-init-list.slang
+++ b/tests/language-feature/inheritance/derived-struct-init-list.slang
@@ -1,6 +1,7 @@
// derived-struct-init-list.slang
//TEST(compute):COMPARE_COMPUTE:
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Test that use of an initializer list (especially
// an empty initializer list) is still possible
diff --git a/tests/language-feature/inheritance/struct-inherit-interface-requirement.slang b/tests/language-feature/inheritance/struct-inherit-interface-requirement.slang
index fbf3405ff..2b3378622 100644
--- a/tests/language-feature/inheritance/struct-inherit-interface-requirement.slang
+++ b/tests/language-feature/inheritance/struct-inherit-interface-requirement.slang
@@ -1,6 +1,7 @@
// struct-inherit-interface-requirement.slang
//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Test that a `struct` type can use an inherited
// member to satisfy an interface requirement.
diff --git a/tests/language-feature/inheritance/struct-inheritance.slang b/tests/language-feature/inheritance/struct-inheritance.slang
index e50b1268b..7ac680577 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:-slang -shaderobj -mtl
// Test that we can define a `struct` type
// that inherits from another `struct`.
diff --git a/tests/language-feature/interfaces/interface-conjunction.slang b/tests/language-feature/interfaces/interface-conjunction.slang
index dbb573431..5610d79f3 100644
--- a/tests/language-feature/interfaces/interface-conjunction.slang
+++ b/tests/language-feature/interfaces/interface-conjunction.slang
@@ -3,6 +3,7 @@
// Test that we can compose interfaces with `&`
//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
interface IFirst
{
diff --git a/tests/language-feature/modules/include/main.slang b/tests/language-feature/modules/include/main.slang
index e036adc3c..1327fae14 100644
--- a/tests/language-feature/modules/include/main.slang
+++ b/tests/language-feature/modules/include/main.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:-slang -shaderobj -mtl
module main;
diff --git a/tests/language-feature/multi-level-break-switch.slang b/tests/language-feature/multi-level-break-switch.slang
index 54c47278a..799493cd4 100644
--- a/tests/language-feature/multi-level-break-switch.slang
+++ b/tests/language-feature/multi-level-break-switch.slang
@@ -2,6 +2,7 @@
//TEST(compute):COMPARE_COMPUTE: -shaderobj
//DISABLE_TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
int test(int t, int r)
{
diff --git a/tests/language-feature/namespaces/multiple-namespace.slang b/tests/language-feature/namespaces/multiple-namespace.slang
index f8ad2eda0..0eadcd3ca 100644
--- a/tests/language-feature/namespaces/multiple-namespace.slang
+++ b/tests/language-feature/namespaces/multiple-namespace.slang
@@ -1,6 +1,7 @@
// multiple-namespace.slang
//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Multiple namespace open/closing
diff --git a/tests/language-feature/namespaces/namespace-import/test.slang b/tests/language-feature/namespaces/namespace-import/test.slang
index 285883c69..7175db4e1 100644
--- a/tests/language-feature/namespaces/namespace-import/test.slang
+++ b/tests/language-feature/namespaces/namespace-import/test.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
module test;
diff --git a/tests/language-feature/namespaces/namespace-include/a.slang b/tests/language-feature/namespaces/namespace-include/a.slang
index 6660f590d..02404c744 100644
--- a/tests/language-feature/namespaces/namespace-include/a.slang
+++ b/tests/language-feature/namespaces/namespace-include/a.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
module a;
diff --git a/tests/language-feature/namespaces/namespace-using/b.slang b/tests/language-feature/namespaces/namespace-using/b.slang
index 3e5816662..0835584a7 100644
--- a/tests/language-feature/namespaces/namespace-using/b.slang
+++ b/tests/language-feature/namespaces/namespace-using/b.slang
@@ -1,4 +1,5 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
module b;
diff --git a/tests/language-feature/namespaces/simple-namespace.slang b/tests/language-feature/namespaces/simple-namespace.slang
index 2066d2b7c..86223a145 100644
--- a/tests/language-feature/namespaces/simple-namespace.slang
+++ b/tests/language-feature/namespaces/simple-namespace.slang
@@ -1,6 +1,7 @@
// simple-namespace.slang
//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Test that simple `namespace` declarations work as expected
diff --git a/tests/language-feature/namespaces/using-namespace.slang b/tests/language-feature/namespaces/using-namespace.slang
index d55816570..aac983807 100644
--- a/tests/language-feature/namespaces/using-namespace.slang
+++ b/tests/language-feature/namespaces/using-namespace.slang
@@ -3,6 +3,7 @@
// Test that `using` can bring declarations from a namespace into scope
//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
namespace X
{
diff --git a/tests/language-feature/non-copyable-return.slang b/tests/language-feature/non-copyable-return.slang
index 9b280b982..123bceac0 100644
--- a/tests/language-feature/non-copyable-return.slang
+++ b/tests/language-feature/non-copyable-return.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj -output-using-type
//TEST(compute):SIMPLE(filecheck=GLSL): -stage compute -entry computeMain -target glsl
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Note: spirv_by_reference is only supported for passing opaque types, so this test won't produce
// expected result on vulkan.
diff --git a/tests/language-feature/operators/subscript-multi-dimension.slang b/tests/language-feature/operators/subscript-multi-dimension.slang
index c15e390dc..fef8199fb 100644
--- a/tests/language-feature/operators/subscript-multi-dimension.slang
+++ b/tests/language-feature/operators/subscript-multi-dimension.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE: -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE: -vk -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
struct S
{
diff --git a/tests/language-feature/parameters/generic-func-param-default-arg.slang b/tests/language-feature/parameters/generic-func-param-default-arg.slang
index b7e8d6fa2..91169c767 100644
--- a/tests/language-feature/parameters/generic-func-param-default-arg.slang
+++ b/tests/language-feature/parameters/generic-func-param-default-arg.slang
@@ -4,6 +4,7 @@
//TEST(compute):COMPARE_COMPUTE: -shaderobj
//TEST_DISABLED:SIMPLE:-target hlsl -entry computeMain -dump-ir
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
interface IValue
diff --git a/tests/language-feature/pointer/const-ref.slang b/tests/language-feature/pointer/const-ref.slang
index f62fda697..d00746940 100644
--- a/tests/language-feature/pointer/const-ref.slang
+++ b/tests/language-feature/pointer/const-ref.slang
@@ -3,6 +3,7 @@
//TEST:SIMPLE(filecheck=CHECK): -target cuda -entry computeMain -stage compute
//TEST(compute):COMPARE_COMPUTE_EX(filecheck-buffer=BUFFER): -slang -compute -output-using-type -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX(filecheck-buffer=BUFFER): -vk -compute -output-using-type -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
diff --git a/tests/language-feature/properties/property-decl.slang b/tests/language-feature/properties/property-decl.slang
index ac0cee666..3b4b6d4fa 100644
--- a/tests/language-feature/properties/property-decl.slang
+++ b/tests/language-feature/properties/property-decl.slang
@@ -1,6 +1,7 @@
// property-decl.slang
//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Test that users can declare properties and access them
// with ordinary dot syntax.
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 7053dd316..e150d3982 100644
--- a/tests/language-feature/shader-params/entry-point-uniform-params.slang
+++ b/tests/language-feature/shader-params/entry-point-uniform-params.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE: -shaderobj
//TEST(compute):COMPARE_COMPUTE:-cuda -shaderobj
//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// 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 5ce346956..7260b27f4 100644
--- a/tests/language-feature/shader-params/interface-shader-param-ordinary.slang
+++ b/tests/language-feature/shader-params/interface-shader-param-ordinary.slang
@@ -8,6 +8,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
//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
interface IModifier
{
diff --git a/tests/language-feature/simple-inline.slang b/tests/language-feature/simple-inline.slang
index 8203f489b..f03f4fcab 100644
--- a/tests/language-feature/simple-inline.slang
+++ b/tests/language-feature/simple-inline.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE: -shaderobj
//TEST(compute):COMPARE_COMPUTE: -vk -shaderobj
//DISABLE_TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
[ForceInline]
int test(int r)
diff --git a/tests/language-feature/struct-in-func.slang b/tests/language-feature/struct-in-func.slang
index d3bd046f0..bcba028e0 100644
--- a/tests/language-feature/struct-in-func.slang
+++ b/tests/language-feature/struct-in-func.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE: -shaderobj
//TEST(compute):COMPARE_COMPUTE: -vk -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
int test(int r)
{
diff --git a/tests/language-feature/swizzles/matrix-swizzle-write-array.slang b/tests/language-feature/swizzles/matrix-swizzle-write-array.slang
index 7d266b8cd..e9510de06 100644
--- a/tests/language-feature/swizzles/matrix-swizzle-write-array.slang
+++ b/tests/language-feature/swizzles/matrix-swizzle-write-array.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE: -compute -shaderobj -output-using-type
//TEST(compute, vulkan):COMPARE_COMPUTE: -vk -compute -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// 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 e622d216c..d8bb11ea5 100644
--- a/tests/language-feature/swizzles/matrix-swizzle-write-single.slang
+++ b/tests/language-feature/swizzles/matrix-swizzle-write-single.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE: -compute -shaderobj -output-using-type
//TEST(compute, vulkan):COMPARE_COMPUTE: -vk -compute -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// 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 a0d267c7a..b73b14249 100644
--- a/tests/language-feature/swizzles/matrix-swizzle-write-swizzle.slang
+++ b/tests/language-feature/swizzles/matrix-swizzle-write-swizzle.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE: -compute -shaderobj -output-using-type
//TEST(compute, vulkan):COMPARE_COMPUTE: -vk -compute -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// 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 5baa4407c..d467d33db 100644
--- a/tests/language-feature/swizzles/matrix-swizzle-write.slang
+++ b/tests/language-feature/swizzles/matrix-swizzle-write.slang
@@ -1,5 +1,6 @@
//TEST(compute):COMPARE_COMPUTE: -compute -shaderobj -output-using-type
//TEST(compute, vulkan):COMPARE_COMPUTE: -vk -compute -shaderobj -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Test that matrix swizzle writes work correctly
// Matrix swizzles can either be one or zero indexed
diff --git a/tests/language-feature/swizzles/matrix-swizzles.slang b/tests/language-feature/swizzles/matrix-swizzles.slang
index fb9f9238f..ad56c8b06 100644
--- a/tests/language-feature/swizzles/matrix-swizzles.slang
+++ b/tests/language-feature/swizzles/matrix-swizzles.slang
@@ -1,6 +1,7 @@
// matrix-swizzle.slang
//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// Test that matrix swizzle works correctly
// Matrix swizzles can either be one or zero indexed
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 c328d4c44..64e4d968a 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
@@ -4,6 +4,7 @@
// aggregate type that includes an opaque type
//TEST(compute):COMPARE_COMPUTE:
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
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 83c20d040..eed42ca69 100644
--- a/tests/language-feature/types/opaque/inout-param-opaque-type.slang
+++ b/tests/language-feature/types/opaque/inout-param-opaque-type.slang
@@ -3,6 +3,7 @@
// Test that a function/method can have an `out` parameter of opaque type
//TEST(compute):COMPARE_COMPUTE:
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//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 60f9a95f5..a7c10c626 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
@@ -4,6 +4,7 @@
// aggregate type that includes an opaque type
//TEST(compute):COMPARE_COMPUTE:
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
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 03f105da2..c986400bb 100644
--- a/tests/language-feature/types/opaque/out-param-opaque-type.slang
+++ b/tests/language-feature/types/opaque/out-param-opaque-type.slang
@@ -3,6 +3,7 @@
// Test that a function/method can have an `out` parameter of opaque type
//TEST(compute):COMPARE_COMPUTE:
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//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 4da6b3b30..a1a715009 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
@@ -4,6 +4,7 @@
// aggregate type that includes an opaque type
//TEST(compute):COMPARE_COMPUTE:
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
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..0910d2e00 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:-slang -shaderobj -mtl
struct Stuff
{
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..5a9a201a8 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:-slang -shaderobj -mtl
// 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 7d82a2c68..3ca345816 100644
--- a/tests/optimization/func-resource-result/func-resource-result-simple.slang
+++ b/tests/optimization/func-resource-result/func-resource-result-simple.slang
@@ -3,6 +3,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
// 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 a71bc0651..f7aef06ff 100644
--- a/tests/pipeline/compute/compute-system-values.slang
+++ b/tests/pipeline/compute/compute-system-values.slang
@@ -2,6 +2,7 @@
//TEST(compute):COMPARE_COMPUTE: -shaderobj
//TEST(compute):COMPARE_COMPUTE: -cpu -shaderobj
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<int> outputBuffer;
@@ -25,4 +26,4 @@ void computeMain(
value = value*16 + int(dispatchThreadID.y);
outputBuffer[tid] = value;
-} \ No newline at end of file
+}
diff --git a/tools/render-test/options.cpp b/tools/render-test/options.cpp
index 57d4a2641..aca42a25c 100644
--- a/tools/render-test/options.cpp
+++ b/tools/render-test/options.cpp
@@ -31,6 +31,7 @@ static gfx::DeviceType _toRenderType(Slang::RenderApiType apiType)
case RenderApiType::D3D12: return gfx::DeviceType::DirectX12;
case RenderApiType::OpenGl: return gfx::DeviceType::OpenGl;
case RenderApiType::Vulkan: return gfx::DeviceType::Vulkan;
+ case RenderApiType::Metal: return gfx::DeviceType::Metal;
case RenderApiType::CPU: return gfx::DeviceType::CPU;
case RenderApiType::CUDA: return gfx::DeviceType::CUDA;
default:
diff --git a/tools/render-test/render-test-main.cpp b/tools/render-test/render-test-main.cpp
index a16ebc2b8..f66ca19d8 100644
--- a/tools/render-test/render-test-main.cpp
+++ b/tools/render-test/render-test-main.cpp
@@ -1298,6 +1298,12 @@ static SlangResult _innerMain(Slang::StdWriters* stdWriters, SlangSession* sessi
nativeLanguage = SLANG_SOURCE_LANGUAGE_GLSL;
slangPassThrough = SLANG_PASS_THROUGH_GLSLANG;
break;
+ case DeviceType::Metal:
+ input.target = SLANG_METAL_LIB;
+ input.profile = "";
+ nativeLanguage = SLANG_SOURCE_LANGUAGE_METAL;
+ slangPassThrough = SLANG_PASS_THROUGH_METAL;
+ break;
case DeviceType::CPU:
input.target = SLANG_SHADER_HOST_CALLABLE;
input.profile = "";
diff --git a/tools/slang-test/slang-test-main.cpp b/tools/slang-test/slang-test-main.cpp
index ec306e849..9463cbc23 100644
--- a/tools/slang-test/slang-test-main.cpp
+++ b/tools/slang-test/slang-test-main.cpp
@@ -1107,6 +1107,11 @@ static SlangResult _extractRenderTestRequirements(const CommandLine& cmdLine, Te
nativeLanguage = SLANG_SOURCE_LANGUAGE_GLSL;
passThru = SLANG_PASS_THROUGH_GLSLANG;
break;
+ case RenderApiType::Metal:
+ target = SLANG_METAL_LIB;
+ nativeLanguage = SLANG_SOURCE_LANGUAGE_METAL;
+ passThru = SLANG_PASS_THROUGH_METAL;
+ break;
case RenderApiType::CPU:
target = SLANG_SHADER_HOST_CALLABLE;
nativeLanguage = SLANG_SOURCE_LANGUAGE_CPP;