summaryrefslogtreecommitdiffstats
path: root/tests/compute
diff options
context:
space:
mode:
authorTim Foley <tfoleyNV@users.noreply.github.com>2021-01-15 12:10:06 -0800
committerGitHub <noreply@github.com>2021-01-15 12:10:06 -0800
commit2a5d5b32348c33aac7ca62aa9a4c2bb7cff8e08a (patch)
tree01c394d8a3551d3e191e538d27b82472b721f749 /tests/compute
parentf834f25794cfb746079e92d58c7410b767c57208 (diff)
Convert more tests to use shader objects (#1659)
This change converts a large number of our existing tests to use the `ShaderObject` support that was added to the `gfx` layer. In many cases, tests were just updated to pass `-shaderobj` and the result Just Worked. In other cases, a `name` attribute had to be added to one or more `TEST_INPUT` lines. For tests that did not work with shader objects "out of the box," I spent a little bit of time trying to get them work, but fell back to letting those tests run in the older mode. Future changes to the infrastructure will be needed to get those additional tests working in the new path. Along with the changes to test files, the following implementation changes were made to get additional tests working: * Because the shader object mode uses explicit register bindings (from reflection), the hacky logic that was offseting `u` registers for D3D12 based on the number of render targets gets disabled (by another hack). * The "flat" reflection information coming from Slang was not correctly reporting "binding ranges" for things that consumed only uniform data (which would be everything on CUDA/CPU), so it was refactored to properly include binding ranges for anything where the type of the field/variable implied a binding range should be created (even if the `LayoutResourceKind` was `::Uniform`). * A few fixes were made to the CUDA implementation of `Renderer`, in order to get additional tests up and running. Most of these changes had to do with texture bindings, which hadn't really been tested previously. In addition, a few changes were made that were attempts at getting more tests working, but didn't actually help. These could be dropped if requested: * As a quality-of-life feature (not being used) the `object` style of `TEST_INPUT` line is upgraded to support inferring the type to use from the type of the input being set. * Any `object` shader input lines get ignored in non-shader-object mode.
Diffstat (limited to 'tests/compute')
-rw-r--r--tests/compute/array-param.slang6
-rw-r--r--tests/compute/assoctype-complex.slang4
-rw-r--r--tests/compute/assoctype-func-param.slang4
-rw-r--r--tests/compute/assoctype-generic-arg.slang4
-rw-r--r--tests/compute/assoctype-lookup.slang8
-rw-r--r--tests/compute/assoctype-nested.slang8
-rw-r--r--tests/compute/assoctype-simple.slang4
-rw-r--r--tests/compute/atomics-buffer.slang10
-rw-r--r--tests/compute/atomics-groupshared.slang8
-rw-r--r--tests/compute/atomics.slang8
-rw-r--r--tests/compute/break-stmt.slang4
-rw-r--r--tests/compute/buffer-layout.slang8
-rw-r--r--tests/compute/buffer-type-splitting.slang2
-rw-r--r--tests/compute/byte-address-buffer.slang8
-rw-r--r--tests/compute/cast-zero-to-struct.slang4
-rw-r--r--tests/compute/cbuffer-legalize.slang2
-rw-r--r--tests/compute/comma-operator.slang4
-rw-r--r--tests/compute/compile-time-loop.slang2
-rw-r--r--tests/compute/constexpr.slang4
-rw-r--r--tests/compute/continue-stmt.slang4
-rw-r--r--tests/compute/default-initializer.slang4
-rw-r--r--tests/compute/default-parameter.slang6
-rw-r--r--tests/compute/discard-stmt.slang2
-rw-r--r--tests/compute/dump-repro.slang4
-rw-r--r--tests/compute/dynamic-dispatch-1.slang8
-rw-r--r--tests/compute/dynamic-dispatch-10.slang8
-rw-r--r--tests/compute/dynamic-dispatch-11.slang8
-rw-r--r--tests/compute/dynamic-dispatch-12.slang8
-rw-r--r--tests/compute/dynamic-dispatch-13.slang4
-rw-r--r--tests/compute/dynamic-dispatch-14.slang4
-rw-r--r--tests/compute/dynamic-dispatch-2.slang8
-rw-r--r--tests/compute/dynamic-dispatch-3.slang8
-rw-r--r--tests/compute/dynamic-dispatch-4.slang8
-rw-r--r--tests/compute/dynamic-dispatch-5.slang8
-rw-r--r--tests/compute/dynamic-dispatch-6.slang8
-rw-r--r--tests/compute/dynamic-dispatch-7.slang8
-rw-r--r--tests/compute/dynamic-dispatch-8.slang8
-rw-r--r--tests/compute/dynamic-dispatch-9.slang8
-rw-r--r--tests/compute/empty-struct.slang4
-rw-r--r--tests/compute/empty-struct2.slang4
-rw-r--r--tests/compute/enum-conversion2.slang6
-rw-r--r--tests/compute/enum-tag-conversion.slang6
-rw-r--r--tests/compute/enum.slang6
-rw-r--r--tests/compute/explicit-this-expr.slang4
-rw-r--r--tests/compute/extension-multi-interface.slang4
-rw-r--r--tests/compute/frem.slang6
-rw-r--r--tests/compute/func-cbuffer-param.slang8
-rw-r--r--tests/compute/func-param-legalize.slang2
-rw-r--r--tests/compute/func-resource-param.slang8
-rw-r--r--tests/compute/generic-closer.slang8
-rw-r--r--tests/compute/generic-interface-method-simple.slang4
-rw-r--r--tests/compute/generic-interface-method.slang4
-rw-r--r--tests/compute/generic-list.slang4
-rw-r--r--tests/compute/generic-struct-with-constraint.slang4
-rw-r--r--tests/compute/generic-struct.slang4
-rw-r--r--tests/compute/generics-constrained.slang4
-rw-r--r--tests/compute/generics-constructor.slang4
-rw-r--r--tests/compute/generics-overload.slang4
-rw-r--r--tests/compute/generics-simple.slang4
-rw-r--r--tests/compute/generics-syntax-2.slang4
-rw-r--r--tests/compute/generics-syntax.slang4
-rw-r--r--tests/compute/global-generic-value-param.slang2
-rw-r--r--tests/compute/global-init.slang4
-rw-r--r--tests/compute/global-type-param-in-entrypoint.slang2
-rw-r--r--tests/compute/global-type-param.slang2
-rw-r--r--tests/compute/groupshared.slang8
-rw-r--r--tests/compute/half-calc.slang4
-rw-r--r--tests/compute/half-structured-buffer.slang4
-rw-r--r--tests/compute/half-texture.slang2
-rw-r--r--tests/compute/implicit-generic-app.slang4
-rw-r--r--tests/compute/implicit-this-expr.slang4
-rw-r--r--tests/compute/init-list-defaults.slang4
-rw-r--r--tests/compute/initializer-list.slang4
-rw-r--r--tests/compute/inout.slang4
-rw-r--r--tests/compute/int-generic.slang2
-rw-r--r--tests/compute/interface-assoc-type-param.slang4
-rw-r--r--tests/compute/interface-func-param-in-struct.slang4
-rw-r--r--tests/compute/interface-local.slang8
-rw-r--r--tests/compute/interface-param-partial-specialize.slang4
-rw-r--r--tests/compute/interface-param.slang8
-rw-r--r--tests/compute/interface-static-method.slang8
-rw-r--r--tests/compute/loop-unroll.slang12
-rw-r--r--tests/compute/matrix-layout-structured-buffer.slang4
-rw-r--r--tests/compute/matrix-layout.hlsl4
-rw-r--r--tests/compute/modern-syntax.slang4
-rw-r--r--tests/compute/multi-interface.slang4
-rw-r--r--tests/compute/multiple-continue-sites.slang4
-rw-r--r--tests/compute/mutating-and-inout.slang2
-rw-r--r--tests/compute/mutating-methods.slang8
-rw-r--r--tests/compute/nested-generics.slang4
-rw-r--r--tests/compute/nested-generics2.slang4
-rw-r--r--tests/compute/performance-profile.slang10
-rw-r--r--tests/compute/pointer-emit.slang2
-rw-r--r--tests/compute/rewriter-parameter-block-complex.hlsl20
-rw-r--r--tests/compute/rw-texture-simple.slang12
-rw-r--r--tests/compute/scope-operator.slang6
-rw-r--r--tests/compute/select-expr.slang4
-rw-r--r--tests/compute/semantic.slang8
-rw-r--r--tests/compute/simple.slang4
-rw-r--r--tests/compute/ssa-reduce-bug.slang4
-rw-r--r--tests/compute/static-const-array.slang6
-rw-r--r--tests/compute/static-const-matrix-array.slang6
-rw-r--r--tests/compute/static-const-vector-array.slang6
-rw-r--r--tests/compute/struct-default-init.slang4
-rw-r--r--tests/compute/struct-in-generic.slang4
-rw-r--r--tests/compute/struct-make.slang6
-rw-r--r--tests/compute/structured-buffer-of-matrices.slang8
-rw-r--r--tests/compute/switch-stmt.slang4
-rw-r--r--tests/compute/texture-get-dimensions.slang12
-rw-r--r--tests/compute/texture-sampling.slang22
-rw-r--r--tests/compute/texture-simple.slang12
-rw-r--r--tests/compute/this-type.slang4
-rw-r--r--tests/compute/transcendental.slang8
-rw-r--r--tests/compute/transitive-interface.slang4
-rw-r--r--tests/compute/type-legalize-global-with-init.slang6
-rw-r--r--tests/compute/typedef-member.slang4
-rw-r--r--tests/compute/unbounded-array-of-array-syntax.slang6
-rw-r--r--tests/compute/unbounded-array-of-array.slang2
-rw-r--r--tests/compute/user-defined-initializer.slang4
-rw-r--r--tests/compute/vector-scalar-compare.slang7
-rw-r--r--tests/compute/write-structured-buffer-field.slang4
121 files changed, 344 insertions, 337 deletions
diff --git a/tests/compute/array-param.slang b/tests/compute/array-param.slang
index 5f5528a10..3545dd75f 100644
--- a/tests/compute/array-param.slang
+++ b/tests/compute/array-param.slang
@@ -1,8 +1,8 @@
//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -compile-arg -O3
+//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -compile-arg -O3 -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
+//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
diff --git a/tests/compute/assoctype-complex.slang b/tests/compute/assoctype-complex.slang
index 57b3b1b7f..bd53be485 100644
--- a/tests/compute/assoctype-complex.slang
+++ b/tests/compute/assoctype-complex.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE: -cpu
-//TEST(compute):COMPARE_COMPUTE:
+//TEST(compute):COMPARE_COMPUTE: -cpu -shaderobj
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/compute/assoctype-func-param.slang b/tests/compute/assoctype-func-param.slang
index 850b1f8f8..830cc00cc 100644
--- a/tests/compute/assoctype-func-param.slang
+++ b/tests/compute/assoctype-func-param.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:-cpu
-//TEST(compute):COMPARE_COMPUTE:
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
// Test type checking of associatedtype and typedef
diff --git a/tests/compute/assoctype-generic-arg.slang b/tests/compute/assoctype-generic-arg.slang
index c46712336..1015ef775 100644
--- a/tests/compute/assoctype-generic-arg.slang
+++ b/tests/compute/assoctype-generic-arg.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:-cpu
-//TEST(compute):COMPARE_COMPUTE:
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
//TEST_INPUT:type AssocImpl
diff --git a/tests/compute/assoctype-lookup.slang b/tests/compute/assoctype-lookup.slang
index 1dccc8e12..e94c5471e 100644
--- a/tests/compute/assoctype-lookup.slang
+++ b/tests/compute/assoctype-lookup.slang
@@ -2,10 +2,10 @@
// Confirm that an associated type can be correctly looked up.
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cpu
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cpu -shaderobj
+//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
interface IBoneWeightSet
{
diff --git a/tests/compute/assoctype-nested.slang b/tests/compute/assoctype-nested.slang
index af35839eb..7bb251a26 100644
--- a/tests/compute/assoctype-nested.slang
+++ b/tests/compute/assoctype-nested.slang
@@ -2,10 +2,10 @@
// Confirm that an associated type can be declared nested in its parent.
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cpu
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cpu -shaderobj
+//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
interface IRandomGenerator
{
diff --git a/tests/compute/assoctype-simple.slang b/tests/compute/assoctype-simple.slang
index 4cdd148b7..be69a82cf 100644
--- a/tests/compute/assoctype-simple.slang
+++ b/tests/compute/assoctype-simple.slang
@@ -1,5 +1,5 @@
-//TEST(smoke,compute):COMPARE_COMPUTE:-cpu
-//TEST(smoke,compute):COMPARE_COMPUTE:
+//TEST(smoke,compute):COMPARE_COMPUTE:-cpu -shaderobj
+//TEST(smoke,compute):COMPARE_COMPUTE: -shaderobj
// Confirm that generics syntax can be used in user
// code and generates valid output.
diff --git a/tests/compute/atomics-buffer.slang b/tests/compute/atomics-buffer.slang
index cf92f1b21..e511ece04 100644
--- a/tests/compute/atomics-buffer.slang
+++ b/tests/compute/atomics-buffer.slang
@@ -1,14 +1,14 @@
// atomics-buffer.slang
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
// Doesn't work on VK - GLSL output doesn't replace InterlockedAdd.
-//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -vk
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -vk -shaderobj
// Cannot work on CUDA, as outputBuffer becomes a CUsurfObject - which do not appear to have atomics available.
// If the buffer was a StructuredBuffer this would work on CUDA.
-//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cuda
+//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
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cpu -shaderobj
//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
diff --git a/tests/compute/atomics-groupshared.slang b/tests/compute/atomics-groupshared.slang
index 9c3e1ab8d..5bb757082 100644
--- a/tests/compute/atomics-groupshared.slang
+++ b/tests/compute/atomics-groupshared.slang
@@ -1,9 +1,9 @@
// atomics-groupshared.slang
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -vk
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cuda
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
+//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
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
diff --git a/tests/compute/atomics.slang b/tests/compute/atomics.slang
index cbd35d1dc..ca467c1fb 100644
--- a/tests/compute/atomics.slang
+++ b/tests/compute/atomics.slang
@@ -1,9 +1,9 @@
// atomics.slang
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -vk
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cuda
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
+//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
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out, name outputBuffer
diff --git a/tests/compute/break-stmt.slang b/tests/compute/break-stmt.slang
index 57521f217..b0c8a666c 100644
--- a/tests/compute/break-stmt.slang
+++ b/tests/compute/break-stmt.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:-cpu
-//TEST(compute):COMPARE_COMPUTE:
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
// Test that `break` from a loop works.
diff --git a/tests/compute/buffer-layout.slang b/tests/compute/buffer-layout.slang
index a846ce366..5caacff31 100644
--- a/tests/compute/buffer-layout.slang
+++ b/tests/compute/buffer-layout.slang
@@ -3,10 +3,10 @@
// 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
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cpu
+//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
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cpu -shaderobj
//TEST_INPUT: ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/compute/buffer-type-splitting.slang b/tests/compute/buffer-type-splitting.slang
index f1b74f7ce..d9fee4254 100644
--- a/tests/compute/buffer-type-splitting.slang
+++ b/tests/compute/buffer-type-splitting.slang
@@ -1,5 +1,5 @@
//TEST(compute):COMPARE_COMPUTE:-cpu
-//TEST(compute):COMPARE_COMPUTE:
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
//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
diff --git a/tests/compute/byte-address-buffer.slang b/tests/compute/byte-address-buffer.slang
index 96e100ae8..462002edf 100644
--- a/tests/compute/byte-address-buffer.slang
+++ b/tests/compute/byte-address-buffer.slang
@@ -1,9 +1,9 @@
// byte-address-buffer.slang
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-d3d12 -compute
+//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -shaderobj
+//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
// Confirm cross-compilation of `(RW)ByteAddressBuffer`
//
diff --git a/tests/compute/cast-zero-to-struct.slang b/tests/compute/cast-zero-to-struct.slang
index ec3dd6472..383662420 100644
--- a/tests/compute/cast-zero-to-struct.slang
+++ b/tests/compute/cast-zero-to-struct.slang
@@ -3,8 +3,8 @@
// Test that HLSL legacy syntax for casting from literal zero
// to a `struct` type works.
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
struct S
{
diff --git a/tests/compute/cbuffer-legalize.slang b/tests/compute/cbuffer-legalize.slang
index 416eded1e..3941a8de3 100644
--- a/tests/compute/cbuffer-legalize.slang
+++ b/tests/compute/cbuffer-legalize.slang
@@ -1,4 +1,4 @@
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
//TEST(compute):COMPARE_COMPUTE:-shaderobj
//TEST_INPUT: Uniform(data=[1 2 3 4]):name=C.p.c
diff --git a/tests/compute/comma-operator.slang b/tests/compute/comma-operator.slang
index 1036482ef..c6cecf1c7 100644
--- a/tests/compute/comma-operator.slang
+++ b/tests/compute/comma-operator.slang
@@ -1,7 +1,7 @@
// comma-operator.slang
-//TEST(compute):COMPARE_COMPUTE:-cpu
-//TEST(compute):COMPARE_COMPUTE:
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
// Test that the "comma operator" behaves as expected
diff --git a/tests/compute/compile-time-loop.slang b/tests/compute/compile-time-loop.slang
index 128e72895..5b9dd010b 100644
--- a/tests/compute/compile-time-loop.slang
+++ b/tests/compute/compile-time-loop.slang
@@ -1,4 +1,4 @@
-//TEST(compute):COMPARE_RENDER_COMPUTE:
+//TEST(compute):COMPARE_RENDER_COMPUTE: -shaderobj
//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 cb14b1a9c..0d46d81a5 100644
--- a/tests/compute/constexpr.slang
+++ b/tests/compute/constexpr.slang
@@ -1,6 +1,6 @@
// constexpr.slang
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -gcompute
-//DISABLED://TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -gcompute
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -gcompute -shaderobj
+//DISABLED://TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -gcompute -shaderobj
//TEST_INPUT: Texture2D(size=4, content = one):name tex
//TEST_INPUT: Sampler:name samp
diff --git a/tests/compute/continue-stmt.slang b/tests/compute/continue-stmt.slang
index 1501173f6..50d8141bc 100644
--- a/tests/compute/continue-stmt.slang
+++ b/tests/compute/continue-stmt.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
// Test that `break` from a loop works.
diff --git a/tests/compute/default-initializer.slang b/tests/compute/default-initializer.slang
index 1cda60084..dab195d25 100644
--- a/tests/compute/default-initializer.slang
+++ b/tests/compute/default-initializer.slang
@@ -3,8 +3,8 @@
// Confirm that a type with a default initializer gets
// default-initialized where appropriate.
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
struct Stuff
{
diff --git a/tests/compute/default-parameter.slang b/tests/compute/default-parameter.slang
index 31cfa8f6a..1334aa6a3 100644
--- a/tests/compute/default-parameter.slang
+++ b/tests/compute/default-parameter.slang
@@ -1,6 +1,6 @@
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-cpu -compute
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
+//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
+//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-cpu -compute -shaderobj
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/compute/discard-stmt.slang b/tests/compute/discard-stmt.slang
index 1af42c6a0..d6c902ec9 100644
--- a/tests/compute/discard-stmt.slang
+++ b/tests/compute/discard-stmt.slang
@@ -1,4 +1,4 @@
-//TEST(compute):COMPARE_RENDER_COMPUTE:
+//TEST(compute):COMPARE_RENDER_COMPUTE: -shaderobj
//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
diff --git a/tests/compute/dump-repro.slang b/tests/compute/dump-repro.slang
index 90a9578fa..9065c29fc 100644
--- a/tests/compute/dump-repro.slang
+++ b/tests/compute/dump-repro.slang
@@ -1,8 +1,8 @@
//DISABLE_TEST(compute):SIMPLE:-profile cs_5_0 -entry computeMain -target dxbc -dump-repro repro.slang-repro
//TEST:COMPILE:tests/compute/dump-repro.slang -profile cs_5_0 -entry computeMain -target dxbc -dump-repro repro.slang-repro
-//TEST(compute):COMPARE_COMPUTE_EX:-dx11 -compute -no-default-entry-point -compile-arg -load-repro -compile-arg repro.slang-repro
+//TEST(compute):COMPARE_COMPUTE_EX:-dx11 -compute -no-default-entry-point -compile-arg -load-repro -compile-arg repro.slang-repro -shaderobj
// We only want to run on one API to test load worked
-//DISABLE_TEST(compute):COMPARE_COMPUTE:-dx12 -load-repro repro.slang-repro
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-dx12 -load-repro repro.slang-repro -shaderobj
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/compute/dynamic-dispatch-1.slang b/tests/compute/dynamic-dispatch-1.slang
index 554455fcf..10d3552ab 100644
--- a/tests/compute/dynamic-dispatch-1.slang
+++ b/tests/compute/dynamic-dispatch-1.slang
@@ -1,7 +1,7 @@
-//TEST(compute):COMPARE_COMPUTE:-dx11
-//TEST(compute):COMPARE_COMPUTE:-vk
-//TEST(compute):COMPARE_COMPUTE:-cpu -xslang -disable-specialization
-//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -xslang -disable-specialization
+//TEST(compute):COMPARE_COMPUTE:-dx11 -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-vk -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -xslang -disable-specialization -shaderobj
+//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -xslang -disable-specialization -shaderobj
// Test dynamic dispatch code gen for non-static member functions.
diff --git a/tests/compute/dynamic-dispatch-10.slang b/tests/compute/dynamic-dispatch-10.slang
index 4f5d368e8..ddd51c4b9 100644
--- a/tests/compute/dynamic-dispatch-10.slang
+++ b/tests/compute/dynamic-dispatch-10.slang
@@ -1,7 +1,7 @@
-//TEST(compute):COMPARE_COMPUTE:-dx11
-//TEST(compute):COMPARE_COMPUTE:-vk
-//TEST(compute):COMPARE_COMPUTE:-cpu -xslang -disable-specialization
-//TEST(compute):COMPARE_COMPUTE:-cuda -xslang -disable-specialization
+//TEST(compute):COMPARE_COMPUTE:-dx11 -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-vk -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -xslang -disable-specialization -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cuda -xslang -disable-specialization -shaderobj
// Test dynamic dispatch code gen for specializing a generic with
// an existential value.
diff --git a/tests/compute/dynamic-dispatch-11.slang b/tests/compute/dynamic-dispatch-11.slang
index 379cf62d8..daebff39a 100644
--- a/tests/compute/dynamic-dispatch-11.slang
+++ b/tests/compute/dynamic-dispatch-11.slang
@@ -1,9 +1,9 @@
// Test using interface typed shader parameters with dynamic dispatch.
-//TEST(compute):COMPARE_COMPUTE:-dx11
-//TEST(compute):COMPARE_COMPUTE:-vk
-//TEST(compute):COMPARE_COMPUTE:-cpu -xslang -disable-specialization
-//TEST(compute):COMPARE_COMPUTE:-cuda -xslang -disable-specialization
+//TEST(compute):COMPARE_COMPUTE:-dx11 -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-vk -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -xslang -disable-specialization -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cuda -xslang -disable-specialization -shaderobj
[anyValueSize(8)]
interface IInterface
diff --git a/tests/compute/dynamic-dispatch-12.slang b/tests/compute/dynamic-dispatch-12.slang
index 11bfcc1eb..e77b111fd 100644
--- a/tests/compute/dynamic-dispatch-12.slang
+++ b/tests/compute/dynamic-dispatch-12.slang
@@ -1,9 +1,9 @@
// Test using interface typed shader parameters with dynamic dispatch.
-//TEST(compute):COMPARE_COMPUTE:-dx11
-//TEST(compute):COMPARE_COMPUTE:-cpu
-//TEST(compute):COMPARE_COMPUTE:-vk
-//TEST(compute):COMPARE_COMPUTE:-cuda
+//TEST(compute):COMPARE_COMPUTE:-dx11 -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-vk -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cuda -shaderobj
[anyValueSize(8)]
interface IInterface
diff --git a/tests/compute/dynamic-dispatch-13.slang b/tests/compute/dynamic-dispatch-13.slang
index e80e5ce5f..b88ad2636 100644
--- a/tests/compute/dynamic-dispatch-13.slang
+++ b/tests/compute/dynamic-dispatch-13.slang
@@ -1,9 +1,9 @@
// Test using interface typed shader parameters wrapped inside a `StructuredBuffer`.
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
//TEST(compute):COMPARE_COMPUTE:-dx11
//TEST(compute):COMPARE_COMPUTE:-vk
-//TEST(compute):COMPARE_COMPUTE:-cuda
+//TEST(compute):COMPARE_COMPUTE:-cuda -shaderobj
[anyValueSize(8)]
interface IInterface
diff --git a/tests/compute/dynamic-dispatch-14.slang b/tests/compute/dynamic-dispatch-14.slang
index 35da4bd06..354006012 100644
--- a/tests/compute/dynamic-dispatch-14.slang
+++ b/tests/compute/dynamic-dispatch-14.slang
@@ -1,9 +1,9 @@
// Test using interface typed shader parameters with associated types.
//TEST(compute):COMPARE_COMPUTE:-dx11
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
//TEST(compute):COMPARE_COMPUTE:-vk
-//TEST(compute):COMPARE_COMPUTE:-cuda
+//TEST(compute):COMPARE_COMPUTE:-cuda -shaderobj
[anyValueSize(8)]
interface IAssoc
diff --git a/tests/compute/dynamic-dispatch-2.slang b/tests/compute/dynamic-dispatch-2.slang
index e71a17b5c..06aed6e71 100644
--- a/tests/compute/dynamic-dispatch-2.slang
+++ b/tests/compute/dynamic-dispatch-2.slang
@@ -1,7 +1,7 @@
-//TEST(compute):COMPARE_COMPUTE:-dx11
-//TEST(compute):COMPARE_COMPUTE:-vk
-//TEST(compute):COMPARE_COMPUTE:-cpu -xslang -disable-specialization
-//TEST(compute):COMPARE_COMPUTE:-cuda -xslang -disable-specialization
+//TEST(compute):COMPARE_COMPUTE:-dx11 -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-vk -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -xslang -disable-specialization -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cuda -xslang -disable-specialization -shaderobj
// Test dynamic dispatch code gen for static member functions
// of associated type.
diff --git a/tests/compute/dynamic-dispatch-3.slang b/tests/compute/dynamic-dispatch-3.slang
index 59b1beed9..94430e638 100644
--- a/tests/compute/dynamic-dispatch-3.slang
+++ b/tests/compute/dynamic-dispatch-3.slang
@@ -1,7 +1,7 @@
-//TEST(compute):COMPARE_COMPUTE:-dx11
-//TEST(compute):COMPARE_COMPUTE:-vk
-//TEST(compute):COMPARE_COMPUTE:-cpu -xslang -disable-specialization
-//TEST(compute):COMPARE_COMPUTE:-cuda -xslang -disable-specialization
+//TEST(compute):COMPARE_COMPUTE:-dx11 -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-vk -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -xslang -disable-specialization -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cuda -xslang -disable-specialization -shaderobj
// Test dynamic dispatch code gen for static member functions
// of associated type.
diff --git a/tests/compute/dynamic-dispatch-4.slang b/tests/compute/dynamic-dispatch-4.slang
index 8945578a4..996e70665 100644
--- a/tests/compute/dynamic-dispatch-4.slang
+++ b/tests/compute/dynamic-dispatch-4.slang
@@ -1,7 +1,7 @@
-//TEST(compute):COMPARE_COMPUTE:-dx11
-//TEST(compute):COMPARE_COMPUTE:-vk
-//TEST(compute):COMPARE_COMPUTE:-cpu -xslang -disable-specialization
-//TEST(compute):COMPARE_COMPUTE:-cuda -xslang -disable-specialization
+//TEST(compute):COMPARE_COMPUTE:-dx11 -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-vk -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -xslang -disable-specialization -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cuda -xslang -disable-specialization -shaderobj
// Test dynamic dispatch code gen for generic-typed local variables.
diff --git a/tests/compute/dynamic-dispatch-5.slang b/tests/compute/dynamic-dispatch-5.slang
index 385f3d4c8..61d4024af 100644
--- a/tests/compute/dynamic-dispatch-5.slang
+++ b/tests/compute/dynamic-dispatch-5.slang
@@ -1,7 +1,7 @@
-//TEST(compute):COMPARE_COMPUTE:-dx11
-//TEST(compute):COMPARE_COMPUTE:-vk
-//TEST(compute):COMPARE_COMPUTE:-cpu -xslang -disable-specialization
-//TEST(compute):COMPARE_COMPUTE:-cuda -xslang -disable-specialization
+//TEST(compute):COMPARE_COMPUTE:-dx11 -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-vk -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -xslang -disable-specialization -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cuda -xslang -disable-specialization -shaderobj
// Test dynamic dispatch code gen for general `This` type.
[anyValueSize(8)]
diff --git a/tests/compute/dynamic-dispatch-6.slang b/tests/compute/dynamic-dispatch-6.slang
index 536c960ee..69edb51bc 100644
--- a/tests/compute/dynamic-dispatch-6.slang
+++ b/tests/compute/dynamic-dispatch-6.slang
@@ -1,7 +1,7 @@
-//TEST(compute):COMPARE_COMPUTE:-dx11
-//TEST(compute):COMPARE_COMPUTE:-vk
-//TEST(compute):COMPARE_COMPUTE:-cpu -xslang -disable-specialization
-//TEST(compute):COMPARE_COMPUTE:-cuda -xslang -disable-specialization
+//TEST(compute):COMPARE_COMPUTE:-dx11 -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-vk -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -xslang -disable-specialization -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cuda -xslang -disable-specialization -shaderobj
// Test dynamic dispatch code gen for generic-typed return values.
[anyValueSize(8)]
diff --git a/tests/compute/dynamic-dispatch-7.slang b/tests/compute/dynamic-dispatch-7.slang
index 539a8719d..7f516b0d5 100644
--- a/tests/compute/dynamic-dispatch-7.slang
+++ b/tests/compute/dynamic-dispatch-7.slang
@@ -1,7 +1,7 @@
-//TEST(compute):COMPARE_COMPUTE:-dx11
-//TEST(compute):COMPARE_COMPUTE:-vk
-//TEST(compute):COMPARE_COMPUTE:-cpu -xslang -disable-specialization
-//TEST(compute):COMPARE_COMPUTE:-cuda -xslang -disable-specialization
+//TEST(compute):COMPARE_COMPUTE:-dx11 -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-vk -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -xslang -disable-specialization -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cuda -xslang -disable-specialization -shaderobj
// Test dynamic dispatch code gen for associated-typed return values
// and local variables.
diff --git a/tests/compute/dynamic-dispatch-8.slang b/tests/compute/dynamic-dispatch-8.slang
index 194093009..62d3f0a9d 100644
--- a/tests/compute/dynamic-dispatch-8.slang
+++ b/tests/compute/dynamic-dispatch-8.slang
@@ -1,7 +1,7 @@
-//TEST(compute):COMPARE_COMPUTE:-dx11
-//TEST(compute):COMPARE_COMPUTE:-vk
-//TEST(compute):COMPARE_COMPUTE:-cpu -xslang -disable-specialization
-//TEST(compute):COMPARE_COMPUTE:-cuda -xslang -disable-specialization
+//TEST(compute):COMPARE_COMPUTE:-dx11 -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-vk -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -xslang -disable-specialization -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cuda -xslang -disable-specialization -shaderobj
// Test dynamic dispatch code gen for extential type parameters.
diff --git a/tests/compute/dynamic-dispatch-9.slang b/tests/compute/dynamic-dispatch-9.slang
index 8c3dab041..77112a318 100644
--- a/tests/compute/dynamic-dispatch-9.slang
+++ b/tests/compute/dynamic-dispatch-9.slang
@@ -1,7 +1,7 @@
-//TEST(compute):COMPARE_COMPUTE:-dx11
-//TEST(compute):COMPARE_COMPUTE:-vk
-//TEST(compute):COMPARE_COMPUTE:-cpu -xslang -disable-specialization
-//TEST(compute):COMPARE_COMPUTE:-cuda -xslang -disable-specialization
+//TEST(compute):COMPARE_COMPUTE:-dx11 -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-vk -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -xslang -disable-specialization -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cuda -xslang -disable-specialization -shaderobj
// Test dynamic dispatch code gen for initializing an extential value
// from a generic value.
diff --git a/tests/compute/empty-struct.slang b/tests/compute/empty-struct.slang
index 53c19384f..17e86b3c1 100644
--- a/tests/compute/empty-struct.slang
+++ b/tests/compute/empty-struct.slang
@@ -1,5 +1,5 @@
-//TEST(smoke,compute):COMPARE_COMPUTE:
-//TEST(smoke,compute):COMPARE_COMPUTE:-cpu
+//TEST(smoke,compute):COMPARE_COMPUTE: -shaderobj
+//TEST(smoke,compute):COMPARE_COMPUTE:-cpu -shaderobj
// Confirm that generics syntax can be used in user
// code and generates valid output.
diff --git a/tests/compute/empty-struct2.slang b/tests/compute/empty-struct2.slang
index 0f65a39b3..27e587b42 100644
--- a/tests/compute/empty-struct2.slang
+++ b/tests/compute/empty-struct2.slang
@@ -1,5 +1,5 @@
-//TEST(smoke,compute):COMPARE_COMPUTE:
-//TEST(smoke,compute):COMPARE_COMPUTE:-cpu
+//TEST(smoke,compute):COMPARE_COMPUTE: -shaderobj
+//TEST(smoke,compute):COMPARE_COMPUTE:-cpu -shaderobj
// This is a basic test for Slang compute shader.
diff --git a/tests/compute/enum-conversion2.slang b/tests/compute/enum-conversion2.slang
index 13d807277..07b1a4315 100644
--- a/tests/compute/enum-conversion2.slang
+++ b/tests/compute/enum-conversion2.slang
@@ -1,8 +1,8 @@
// enum-conversion2.slang
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute
+//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
// More significant stress testing of `enum` types
diff --git a/tests/compute/enum-tag-conversion.slang b/tests/compute/enum-tag-conversion.slang
index a5dcf2a69..e972860a0 100644
--- a/tests/compute/enum-tag-conversion.slang
+++ b/tests/compute/enum-tag-conversion.slang
@@ -1,8 +1,8 @@
// enum-tag-conversion.slang
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute
+//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
// Confirm that a value of `enum` type can have an initializer
// that includes basic operations like type conversion.
diff --git a/tests/compute/enum.slang b/tests/compute/enum.slang
index f38adbc94..cae18404e 100644
--- a/tests/compute/enum.slang
+++ b/tests/compute/enum.slang
@@ -1,7 +1,7 @@
// enum.slang
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute
+//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
// Confirm that basic `enum` declarations are supported.
diff --git a/tests/compute/explicit-this-expr.slang b/tests/compute/explicit-this-expr.slang
index c55bb70ff..baf718be0 100644
--- a/tests/compute/explicit-this-expr.slang
+++ b/tests/compute/explicit-this-expr.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
// Access fields of a `struct` type from within a "method" by
diff --git a/tests/compute/extension-multi-interface.slang b/tests/compute/extension-multi-interface.slang
index cde6c4a5a..23c917411 100644
--- a/tests/compute/extension-multi-interface.slang
+++ b/tests/compute/extension-multi-interface.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/compute/frem.slang b/tests/compute/frem.slang
index 848f0513a..75207a8d0 100644
--- a/tests/compute/frem.slang
+++ b/tests/compute/frem.slang
@@ -1,8 +1,8 @@
// frem.slang
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
-//TEST(compute):COMPARE_COMPUTE:-vk
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-vk -shaderobj
// Test uses of floating-point `%` operator.
diff --git a/tests/compute/func-cbuffer-param.slang b/tests/compute/func-cbuffer-param.slang
index a67c9ca00..ec9543334 100644
--- a/tests/compute/func-cbuffer-param.slang
+++ b/tests/compute/func-cbuffer-param.slang
@@ -5,10 +5,10 @@
// This has a compatibility issue on Windows 10.0.10586 on Dx12 - dxcompiler will crash (can remove form tests with -exclude compatibility-issue)
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute, vulkan, compatibility-issue):COMPARE_COMPUTE_EX:-dx12 -compute -use-dxil
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-cpu -compute
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
+//TEST(compute, vulkan, compatibility-issue):COMPARE_COMPUTE_EX:-dx12 -compute -use-dxil -shaderobj
+//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
+//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-cpu -compute -shaderobj
struct Data
{
diff --git a/tests/compute/func-param-legalize.slang b/tests/compute/func-param-legalize.slang
index 877324ac7..2d7c57e9f 100644
--- a/tests/compute/func-param-legalize.slang
+++ b/tests/compute/func-param-legalize.slang
@@ -1,4 +1,4 @@
-//TEST(compute):COMPARE_COMPUTE:
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
struct Param
{
diff --git a/tests/compute/func-resource-param.slang b/tests/compute/func-resource-param.slang
index 570501c50..4b67c909e 100644
--- a/tests/compute/func-resource-param.slang
+++ b/tests/compute/func-resource-param.slang
@@ -4,10 +4,10 @@
// requires non-trivial legalization can be compiled
// to work on GLSL-based targets.
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-dx12 -compute
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-cpu -compute
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
+//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-dx12 -compute -shaderobj
+//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
+//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-cpu -compute -shaderobj
//NO_TEST:SIMPLE:-target glsl -entry computeMain -stage compute -validate-ir -dump-ir
diff --git a/tests/compute/generic-closer.slang b/tests/compute/generic-closer.slang
index 428174d1c..377b42dab 100644
--- a/tests/compute/generic-closer.slang
+++ b/tests/compute/generic-closer.slang
@@ -1,7 +1,7 @@
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute
+//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
+//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -shaderobj
interface IGetter
{
diff --git a/tests/compute/generic-interface-method-simple.slang b/tests/compute/generic-interface-method-simple.slang
index 8a3207671..0e20947d1 100644
--- a/tests/compute/generic-interface-method-simple.slang
+++ b/tests/compute/generic-interface-method-simple.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/compute/generic-interface-method.slang b/tests/compute/generic-interface-method.slang
index 47fa94f89..fade14d41 100644
--- a/tests/compute/generic-interface-method.slang
+++ b/tests/compute/generic-interface-method.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/compute/generic-list.slang b/tests/compute/generic-list.slang
index cf2433ebc..9fdf67535 100644
--- a/tests/compute/generic-list.slang
+++ b/tests/compute/generic-list.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
// Confirm that generics syntax can be used in user
// code and generates valid output.
diff --git a/tests/compute/generic-struct-with-constraint.slang b/tests/compute/generic-struct-with-constraint.slang
index 1263a7548..b17e2b05e 100644
--- a/tests/compute/generic-struct-with-constraint.slang
+++ b/tests/compute/generic-struct-with-constraint.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
// Confirm that generics syntax can be used in user
// code and generates valid output.
diff --git a/tests/compute/generic-struct.slang b/tests/compute/generic-struct.slang
index 7e0496c5f..2ccf9631e 100644
--- a/tests/compute/generic-struct.slang
+++ b/tests/compute/generic-struct.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
// Check that user code can declare and use a generic
// `struct` type.
diff --git a/tests/compute/generics-constrained.slang b/tests/compute/generics-constrained.slang
index 72d6b4777..435b840d1 100644
--- a/tests/compute/generics-constrained.slang
+++ b/tests/compute/generics-constrained.slang
@@ -1,5 +1,5 @@
-//TEST(smoke,compute):COMPARE_COMPUTE:
-//TEST(smoke,compute):COMPARE_COMPUTE:-cpu
+//TEST(smoke,compute):COMPARE_COMPUTE: -shaderobj
+//TEST(smoke,compute):COMPARE_COMPUTE:-cpu -shaderobj
// Use interface constraints on a generic parameter
diff --git a/tests/compute/generics-constructor.slang b/tests/compute/generics-constructor.slang
index 0439856cb..65fad20c0 100644
--- a/tests/compute/generics-constructor.slang
+++ b/tests/compute/generics-constructor.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/compute/generics-overload.slang b/tests/compute/generics-overload.slang
index 05bb075e7..b9753aff1 100644
--- a/tests/compute/generics-overload.slang
+++ b/tests/compute/generics-overload.slang
@@ -1,5 +1,5 @@
-//TEST(smoke,compute):COMPARE_COMPUTE:
-//TEST(smoke,compute):COMPARE_COMPUTE:-cpu
+//TEST(smoke,compute):COMPARE_COMPUTE: -shaderobj
+//TEST(smoke,compute):COMPARE_COMPUTE:-cpu -shaderobj
// Confirm that generics syntax can be used in user
// code and generates valid output.
diff --git a/tests/compute/generics-simple.slang b/tests/compute/generics-simple.slang
index dd1ffa932..76c1167ce 100644
--- a/tests/compute/generics-simple.slang
+++ b/tests/compute/generics-simple.slang
@@ -1,5 +1,5 @@
-//TEST(smoke,compute):COMPARE_COMPUTE:
-//TEST(smoke,compute):COMPARE_COMPUTE:-cpu
+//TEST(smoke,compute):COMPARE_COMPUTE: -shaderobj
+//TEST(smoke,compute):COMPARE_COMPUTE:-cpu -shaderobj
// Confirm that generics syntax can be used in user
// code and generates valid output.
diff --git a/tests/compute/generics-syntax-2.slang b/tests/compute/generics-syntax-2.slang
index 3f83528a5..71603ba47 100644
--- a/tests/compute/generics-syntax-2.slang
+++ b/tests/compute/generics-syntax-2.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
// Confirm that generics syntax can be used in user
// code and generates valid output.
diff --git a/tests/compute/generics-syntax.slang b/tests/compute/generics-syntax.slang
index d0f3d6eb4..1d9de89a9 100644
--- a/tests/compute/generics-syntax.slang
+++ b/tests/compute/generics-syntax.slang
@@ -1,5 +1,5 @@
-//TEST(smoke,compute):COMPARE_COMPUTE:
-//TEST(smoke,compute):COMPARE_COMPUTE:-cpu
+//TEST(smoke,compute):COMPARE_COMPUTE: -shaderobj
+//TEST(smoke,compute):COMPARE_COMPUTE:-cpu -shaderobj
// Confirm that generics syntax can be used in user
// code and generates valid output.
diff --git a/tests/compute/global-generic-value-param.slang b/tests/compute/global-generic-value-param.slang
index d2299e501..dd1b091c1 100644
--- a/tests/compute/global-generic-value-param.slang
+++ b/tests/compute/global-generic-value-param.slang
@@ -1,6 +1,6 @@
// global-generic-value-param.slang
-//TEST(compute):COMPARE_COMPUTE:
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
// This is a basic test of support for global generic
// value parameters: explicit named parameters at global
diff --git a/tests/compute/global-init.slang b/tests/compute/global-init.slang
index 42e8ff30b..fd7937cf0 100644
--- a/tests/compute/global-init.slang
+++ b/tests/compute/global-init.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
// Test that a global variable (not a shader parameter)
// with an initializer works.
diff --git a/tests/compute/global-type-param-in-entrypoint.slang b/tests/compute/global-type-param-in-entrypoint.slang
index b2a1146d8..a82cd88bc 100644
--- a/tests/compute/global-type-param-in-entrypoint.slang
+++ b/tests/compute/global-type-param-in-entrypoint.slang
@@ -1,4 +1,4 @@
-//TEST(compute):COMPARE_RENDER_COMPUTE:
+//TEST(compute):COMPARE_RENDER_COMPUTE: -shaderobj
//TEST_INPUT: cbuffer(data=[1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0], stride=16):name Uniforms
//TEST_INPUT: ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
diff --git a/tests/compute/global-type-param.slang b/tests/compute/global-type-param.slang
index ecaa26096..7a3e31187 100644
--- a/tests/compute/global-type-param.slang
+++ b/tests/compute/global-type-param.slang
@@ -1,4 +1,4 @@
-//TEST(smoke,compute):COMPARE_COMPUTE:
+//TEST(smoke,compute):COMPARE_COMPUTE: -shaderobj
//TEST_INPUT:type Wrapper<Impl>
diff --git a/tests/compute/groupshared.slang b/tests/compute/groupshared.slang
index ec7e055c5..7a49ab82b 100644
--- a/tests/compute/groupshared.slang
+++ b/tests/compute/groupshared.slang
@@ -1,9 +1,9 @@
// groupshared.slang
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute
+//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
+//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out, name=gBuffer
RWStructuredBuffer<int> gBuffer;
diff --git a/tests/compute/half-calc.slang b/tests/compute/half-calc.slang
index b9ed7c439..57efebe53 100644
--- a/tests/compute/half-calc.slang
+++ b/tests/compute/half-calc.slang
@@ -1,5 +1,5 @@
-//DISABLE_TEST(compute):COMPARE_COMPUTE:-dx12 -compute -use-dxil -profile cs_6_2 -render-features half
-//TEST(compute):COMPARE_COMPUTE:-vk -compute -profile cs_6_2 -render-features half
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-dx12 -compute -use-dxil -profile cs_6_2 -render-features half -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-vk -compute -profile cs_6_2 -render-features half -shaderobj
// Test for doing a calculation using half
diff --git a/tests/compute/half-structured-buffer.slang b/tests/compute/half-structured-buffer.slang
index abccfb32a..db0837d53 100644
--- a/tests/compute/half-structured-buffer.slang
+++ b/tests/compute/half-structured-buffer.slang
@@ -1,6 +1,6 @@
-//TEST(compute):COMPARE_COMPUTE:-vk -compute -profile cs_6_2 -render-features half
+//TEST(compute):COMPARE_COMPUTE:-vk -compute -profile cs_6_2 -render-features half -shaderobj
//Disable on Dx12 for now - because writing to structured buffer produces unexpected results
-//TEST_DISABLED(compute):COMPARE_COMPUTE:-dx12 -compute -use-dxil -profile cs_6_2 -render-features half
+//TEST_DISABLED(compute):COMPARE_COMPUTE:-dx12 -compute -use-dxil -profile cs_6_2 -render-features half -shaderobj
struct Thing
{
diff --git a/tests/compute/half-texture.slang b/tests/compute/half-texture.slang
index b4dafac99..1cb73dadd 100644
--- a/tests/compute/half-texture.slang
+++ b/tests/compute/half-texture.slang
@@ -1,5 +1,5 @@
//TEST:CROSS_COMPILE: -target spirv -entry computeMain -profile cs_6_2
-//TEST:SIMPLE: -target hlsl -entry computeMain -profile cs_6_2
+//TEST:SIMPLE: -target hlsl -entry computeMain -profile cs_6_2
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], stride=16):out
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/compute/implicit-generic-app.slang b/tests/compute/implicit-generic-app.slang
index 6c2658372..c41b5e31d 100644
--- a/tests/compute/implicit-generic-app.slang
+++ b/tests/compute/implicit-generic-app.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
// Testing that we can implicitly specialize a generic
// that has a constrained type parameter.
diff --git a/tests/compute/implicit-this-expr.slang b/tests/compute/implicit-this-expr.slang
index 9a77b6a4f..e8b720093 100644
--- a/tests/compute/implicit-this-expr.slang
+++ b/tests/compute/implicit-this-expr.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
// Access fields of a `struct` type from within a "method" by
// using an implicit `this` expression.
diff --git a/tests/compute/init-list-defaults.slang b/tests/compute/init-list-defaults.slang
index fa7ef5c8e..049450109 100644
--- a/tests/compute/init-list-defaults.slang
+++ b/tests/compute/init-list-defaults.slang
@@ -1,6 +1,6 @@
// init-list-defaults.slang
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
// Confirm that initializer lists correctly default-initialize elements past those specified.
diff --git a/tests/compute/initializer-list.slang b/tests/compute/initializer-list.slang
index 6dde8694e..85ad0d8cf 100644
--- a/tests/compute/initializer-list.slang
+++ b/tests/compute/initializer-list.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
struct Test
{
diff --git a/tests/compute/inout.slang b/tests/compute/inout.slang
index e1af8b256..186bcd3db 100644
--- a/tests/compute/inout.slang
+++ b/tests/compute/inout.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
// Test that we correctly support both `out`
// and `inout` function parameters.
diff --git a/tests/compute/int-generic.slang b/tests/compute/int-generic.slang
index 2d3c57575..7d693e42b 100644
--- a/tests/compute/int-generic.slang
+++ b/tests/compute/int-generic.slang
@@ -1,4 +1,4 @@
-//TEST(compute):COMPARE_COMPUTE:
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
//TEST_INPUT:type Material<1,2>
diff --git a/tests/compute/interface-assoc-type-param.slang b/tests/compute/interface-assoc-type-param.slang
index d43a43fc9..4e6df4eb5 100644
--- a/tests/compute/interface-assoc-type-param.slang
+++ b/tests/compute/interface-assoc-type-param.slang
@@ -1,7 +1,7 @@
// Tests using associated types through an existential-struct-typed param.
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cuda
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cpu
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cuda -shaderobj
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cpu -shaderobj
[anyValueSize(8)]
interface IInterface
diff --git a/tests/compute/interface-func-param-in-struct.slang b/tests/compute/interface-func-param-in-struct.slang
index 550758f38..c32254cb5 100644
--- a/tests/compute/interface-func-param-in-struct.slang
+++ b/tests/compute/interface-func-param-in-struct.slang
@@ -1,7 +1,7 @@
// Tests specializing a function with existential-struct-typed param.
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cuda
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cpu
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cuda -shaderobj
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cpu -shaderobj
[anyValueSize(8)]
interface IInterface
diff --git a/tests/compute/interface-local.slang b/tests/compute/interface-local.slang
index 6e42d30ab..714a72cca 100644
--- a/tests/compute/interface-local.slang
+++ b/tests/compute/interface-local.slang
@@ -10,10 +10,10 @@
// on a generic type parameter.
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute
+//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
+//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -shaderobj
interface IHelper
diff --git a/tests/compute/interface-param-partial-specialize.slang b/tests/compute/interface-param-partial-specialize.slang
index e856e04e8..f81a1cdb7 100644
--- a/tests/compute/interface-param-partial-specialize.slang
+++ b/tests/compute/interface-param-partial-specialize.slang
@@ -3,8 +3,8 @@
// with __Dynamic. This verifies that the handling of
// "partially" specializing an existential type is correct.
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cuda
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cpu
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cuda -shaderobj
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cpu -shaderobj
[anyValueSize(8)]
interface IInterface
diff --git a/tests/compute/interface-param.slang b/tests/compute/interface-param.slang
index 18edbe3be..3f557d8de 100644
--- a/tests/compute/interface-param.slang
+++ b/tests/compute/interface-param.slang
@@ -4,10 +4,10 @@
// for a value parameter, instead of just as a constraint
// on a generic type parameter.
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute
+//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
+//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -shaderobj
interface IHelper
{
diff --git a/tests/compute/interface-static-method.slang b/tests/compute/interface-static-method.slang
index bdfddd938..d526f7c47 100644
--- a/tests/compute/interface-static-method.slang
+++ b/tests/compute/interface-static-method.slang
@@ -1,9 +1,9 @@
// interface-static-method.slang
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute
+//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
+//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -shaderobj
interface IHideout
{
diff --git a/tests/compute/loop-unroll.slang b/tests/compute/loop-unroll.slang
index 25f25b0ec..9a3fa3ba4 100644
--- a/tests/compute/loop-unroll.slang
+++ b/tests/compute/loop-unroll.slang
@@ -1,11 +1,11 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-dx12
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-dx12 -shaderobj
//TODO(JS): This test fails with a crash in CreateComputePipelineState, so disabled for now
-//DISABLE_TEST(compute):COMPARE_COMPUTE:-dx12 -use-dxil
-//TEST(compute):COMPARE_COMPUTE:-cpu
-//TEST(compute):COMPARE_COMPUTE:-cuda
+//DISABLE_TEST(compute):COMPARE_COMPUTE:-dx12 -use-dxil -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cuda -shaderobj
// Note VK output is not loop unrolled
-//TEST(compute):COMPARE_COMPUTE:-vk
+//TEST(compute):COMPARE_COMPUTE:-vk -shaderobj
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out, name buffers[0]
//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):name buffers[1]
diff --git a/tests/compute/matrix-layout-structured-buffer.slang b/tests/compute/matrix-layout-structured-buffer.slang
index 56112f959..bdc2e1ced 100644
--- a/tests/compute/matrix-layout-structured-buffer.slang
+++ b/tests/compute/matrix-layout-structured-buffer.slang
@@ -5,8 +5,8 @@
// 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
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -xslang -matrix-layout-column-major
+//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_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 a7a167926..c655d06c7 100644
--- a/tests/compute/matrix-layout.hlsl
+++ b/tests/compute/matrix-layout.hlsl
@@ -7,8 +7,8 @@
// This has a compatibility issue on Windows 10.0.10586 on Dx12 - dxcompiler will crash (can remove form tests with -exclude compatibility-issue)
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -xslang -matrix-layout-row-major
-//TEST(compute,compatibility-issue):COMPARE_COMPUTE_EX:-slang -compute -dx12 -use-dxil -xslang -matrix-layout-row-major
+//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
// 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 4f7b94f01..e1a9ad146 100644
--- a/tests/compute/modern-syntax.slang
+++ b/tests/compute/modern-syntax.slang
@@ -1,6 +1,6 @@
// modern-syntax.slang
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -slang -compute
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
+//TEST(compute):COMPARE_COMPUTE_EX:-cpu -slang -compute -shaderobj
// This file exists to confirm that declarations using "modern"
// syntax are handled correctly by the compiler front-end.
diff --git a/tests/compute/multi-interface.slang b/tests/compute/multi-interface.slang
index bcb25b6dc..caa21d3f0 100644
--- a/tests/compute/multi-interface.slang
+++ b/tests/compute/multi-interface.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/compute/multiple-continue-sites.slang b/tests/compute/multiple-continue-sites.slang
index d5cbf926b..0776bfbdb 100644
--- a/tests/compute/multiple-continue-sites.slang
+++ b/tests/compute/multiple-continue-sites.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
// Test that a loop with multiple `continue` sites works.
//
diff --git a/tests/compute/mutating-and-inout.slang b/tests/compute/mutating-and-inout.slang
index d06933b77..a92be2025 100644
--- a/tests/compute/mutating-and-inout.slang
+++ b/tests/compute/mutating-and-inout.slang
@@ -2,7 +2,7 @@
// Test that calling a `[mutating]` method on an `inout` function parameter works.
-//TEST(compute):COMPARE_COMPUTE:
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
//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 c386da67f..73be4b604 100644
--- a/tests/compute/mutating-methods.slang
+++ b/tests/compute/mutating-methods.slang
@@ -1,8 +1,8 @@
// mutating-methods.slang
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -xslang -serial-ir
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -xslang -serial-ir
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -xslang -serial-ir
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -xslang -serial-ir
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -xslang -serial-ir -shaderobj
+//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
interface IAccumulator
{
diff --git a/tests/compute/nested-generics.slang b/tests/compute/nested-generics.slang
index e1b62a2ad..29f260f37 100644
--- a/tests/compute/nested-generics.slang
+++ b/tests/compute/nested-generics.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
// test specialization of nested generic functions
diff --git a/tests/compute/nested-generics2.slang b/tests/compute/nested-generics2.slang
index c1b12179c..177466c9c 100644
--- a/tests/compute/nested-generics2.slang
+++ b/tests/compute/nested-generics2.slang
@@ -1,5 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
// test specialization of nested generic functions
diff --git a/tests/compute/performance-profile.slang b/tests/compute/performance-profile.slang
index 22f73e075..d8b9e31ae 100644
--- a/tests/compute/performance-profile.slang
+++ b/tests/compute/performance-profile.slang
@@ -1,8 +1,8 @@
-//TEST(compute):PERFORMANCE_PROFILE:-cpu -compute -compile-arg -O3 -compute-dispatch 256,1,1
-//TEST(compute):PERFORMANCE_PROFILE:-cpu -compute -source-language cpp -compile-arg -O3 -compute-dispatch 256,1,1
-//TEST(compute):PERFORMANCE_PROFILE:-slang -compute -compute-dispatch 256,1,1
-//TEST(compute):PERFORMANCE_PROFILE:-slang -compute -dx12 -compute-dispatch 256,1,1
-//TEST(compute, vulkan):PERFORMANCE_PROFILE:-vk -compute -compute-dispatch 256,1,1
+//TEST(compute):PERFORMANCE_PROFILE:-cpu -compute -compile-arg -O3 -compute-dispatch 256,1,1 -shaderobj
+//TEST(compute):PERFORMANCE_PROFILE:-cpu -compute -source-language cpp -compile-arg -O3 -compute-dispatch 256,1,1 -shaderobj
+//TEST(compute):PERFORMANCE_PROFILE:-slang -compute -compute-dispatch 256,1,1 -shaderobj
+//TEST(compute):PERFORMANCE_PROFILE:-slang -compute -dx12 -compute-dispatch 256,1,1 -shaderobj
+//TEST(compute, vulkan):PERFORMANCE_PROFILE:-vk -compute -compute-dispatch 256,1,1 -shaderobj
//TEST_INPUT:ubuffer(random(float, 4096, -1, 1), stride=4):out,name outputBuffer
diff --git a/tests/compute/pointer-emit.slang b/tests/compute/pointer-emit.slang
index 1c31103ae..0516e2dfa 100644
--- a/tests/compute/pointer-emit.slang
+++ b/tests/compute/pointer-emit.slang
@@ -1,4 +1,4 @@
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
// Test emitting logic of pointer types.
diff --git a/tests/compute/rewriter-parameter-block-complex.hlsl b/tests/compute/rewriter-parameter-block-complex.hlsl
index efcf89b24..d61383276 100644
--- a/tests/compute/rewriter-parameter-block-complex.hlsl
+++ b/tests/compute/rewriter-parameter-block-complex.hlsl
@@ -1,12 +1,18 @@
//TEST(compute):COMPARE_COMPUTE:
-//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out
-
-//TEST_INPUT:cbuffer(data=[256]):
-//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):
-
-//TEST_INPUT:cbuffer(data=[4096]):
-//TEST_INPUT:ubuffer(data=[16 32 48 64], stride=4):
+//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out, name=outputBuffer
+
+//TEST_INPUT:cbuffer(data=[256]):name=C.gA.val
+//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):name=C.gA.buf
+//TEST_INPUT:cbuffer(data=[4096]):name=C.gB.val
+//TEST_INPUT:ubuffer(data=[16 32 48 64], stride=4):name=C.gB.buf
+
+//TODO_TEST_INPUT:object:name=C
+//TODO_TEST_INPUT:object:name=C.gA
+//TODO_TEST_INPUT:root_constants(data=[256]):name=C.gA.val
+//TODO_TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):name=C.gA.buf
+//TODO_TEST_INPUT:root_constants(data=[4096]):name=C.gB.val
+//TODO_TEST_INPUT:ubuffer(data=[16 32 48 64], stride=4):name=C.gB.buf
// Test that we can declare a `ParameterBlock<...>` type as a shader
// parameter (potentially nested inside a `cbuffer`) and use it in
diff --git a/tests/compute/rw-texture-simple.slang b/tests/compute/rw-texture-simple.slang
index a6632a143..a5a103200 100644
--- a/tests/compute/rw-texture-simple.slang
+++ b/tests/compute/rw-texture-simple.slang
@@ -1,13 +1,13 @@
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -output-using-type
+//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -output-using-type -shaderobj
// Doesn't work on DX11 currently - locks up on binding
-//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -output-using-type -shaderobj
// Produces a different result on DX12 with DXBC than expected(!). So disabled for now
-//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -output-using-type
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -profile cs_6_0 -use-dxil -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -output-using-type -shaderobj
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -profile cs_6_0 -use-dxil -output-using-type -shaderobj
// TODO(JS): Doesn't work on vk currently, because createTextureView not implemented on vk renderer
-//DISABLE_TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -output-using-type
+//DISABLE_TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -output-using-type -shaderobj
// TODO(JS): Doesn't work on certain CI systems.
-//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -output-using-type
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -output-using-type -shaderobj
//TEST_INPUT: RWTexture1D(format=R_Float32, size=4, content = one):name rwt1D
RWTexture1D<float> rwt1D;
diff --git a/tests/compute/scope-operator.slang b/tests/compute/scope-operator.slang
index eb65d7d2a..9b5b3f229 100644
--- a/tests/compute/scope-operator.slang
+++ b/tests/compute/scope-operator.slang
@@ -1,7 +1,7 @@
// scope.slang
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute
+//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
// Confirm that scoping on enums and types works
diff --git a/tests/compute/select-expr.slang b/tests/compute/select-expr.slang
index 85963ca5e..c7172579b 100644
--- a/tests/compute/select-expr.slang
+++ b/tests/compute/select-expr.slang
@@ -1,5 +1,5 @@
-//TEST(smoke,compute):COMPARE_COMPUTE:
-//TEST(smoke,compute):COMPARE_COMPUTE:-cpu
+//TEST(smoke,compute):COMPARE_COMPUTE: -shaderobj
+//TEST(smoke,compute):COMPARE_COMPUTE:-cpu -shaderobj
// Test IR code generation for the `?:` "select" operator
diff --git a/tests/compute/semantic.slang b/tests/compute/semantic.slang
index a3a38e525..49e9ff948 100644
--- a/tests/compute/semantic.slang
+++ b/tests/compute/semantic.slang
@@ -1,7 +1,7 @@
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -compile-arg -O3 -compute-dispatch 3,1,1
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -compute-dispatch 3,1,1
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -compute-dispatch 3,1,1
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -compute-dispatch 3,1,1
+//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -compile-arg -O3 -compute-dispatch 3,1,1 -shaderobj
+//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
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/compute/simple.slang b/tests/compute/simple.slang
index e1489d70f..c62f88d5e 100644
--- a/tests/compute/simple.slang
+++ b/tests/compute/simple.slang
@@ -1,5 +1,5 @@
-//TEST(smoke,compute):COMPARE_COMPUTE:
-//TEST(smoke,compute):COMPARE_COMPUTE:-cpu
+//TEST(smoke,compute):COMPARE_COMPUTE: -shaderobj
+//TEST(smoke,compute):COMPARE_COMPUTE:-cpu -shaderobj
// This is a basic test for Slang compute shader.
diff --git a/tests/compute/ssa-reduce-bug.slang b/tests/compute/ssa-reduce-bug.slang
index 041fc83c8..b5cdb7084 100644
--- a/tests/compute/ssa-reduce-bug.slang
+++ b/tests/compute/ssa-reduce-bug.slang
@@ -1,6 +1,6 @@
// ssa-reduce-bug.slang
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -slang -compute
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
+//TEST(compute):COMPARE_COMPUTE_EX:-cpu -slang -compute -shaderobj
//TEST_INPUT:ubuffer(data=[0 3 1 2 6 4 7 6], stride=4):name=inputBuffer
RWStructuredBuffer<int> inputBuffer;
diff --git a/tests/compute/static-const-array.slang b/tests/compute/static-const-array.slang
index 1f111e364..2afa1f39e 100644
--- a/tests/compute/static-const-array.slang
+++ b/tests/compute/static-const-array.slang
@@ -1,8 +1,8 @@
// static-const-array.slang
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -slang -compute
+//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
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out, name outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/compute/static-const-matrix-array.slang b/tests/compute/static-const-matrix-array.slang
index 2ac132121..9a468b6ed 100644
--- a/tests/compute/static-const-matrix-array.slang
+++ b/tests/compute/static-const-matrix-array.slang
@@ -1,8 +1,8 @@
// static-const-array.slang
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -output-using-type
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -output-using-type
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -slang -compute -output-using-type
+//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
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0], stride=4):out, name outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/compute/static-const-vector-array.slang b/tests/compute/static-const-vector-array.slang
index 4d9234a70..edfe24028 100644
--- a/tests/compute/static-const-vector-array.slang
+++ b/tests/compute/static-const-vector-array.slang
@@ -1,8 +1,8 @@
// static-const-array.slang
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -output-using-type
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -output-using-type
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -slang -compute -output-using-type
+//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
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0], stride=4):out, name outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/compute/struct-default-init.slang b/tests/compute/struct-default-init.slang
index ac01317a1..50933ae84 100644
--- a/tests/compute/struct-default-init.slang
+++ b/tests/compute/struct-default-init.slang
@@ -1,5 +1,5 @@
// struct-default-init.slang
-//TEST(compute):COMPARE_COMPUTE:
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
struct Test
{
@@ -25,7 +25,7 @@ int test(int inVal)
+ t.d;
}
-//TEST_INPUT:ubuffer(data=[9 9 9 9], stride=4):out
+//TEST_INPUT:ubuffer(data=[9 9 9 9], stride=4):out,name=outputBuffer
RWStructuredBuffer<int> outputBuffer : register(u0);
[numthreads(4, 1, 1)]
diff --git a/tests/compute/struct-in-generic.slang b/tests/compute/struct-in-generic.slang
index dfcc305f2..eb41efac6 100644
--- a/tests/compute/struct-in-generic.slang
+++ b/tests/compute/struct-in-generic.slang
@@ -1,8 +1,8 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
// Confirm that a struct type defined in a generic parent works
+//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
struct GenStruct<T>
diff --git a/tests/compute/struct-make.slang b/tests/compute/struct-make.slang
index 265370b89..f42d76876 100644
--- a/tests/compute/struct-make.slang
+++ b/tests/compute/struct-make.slang
@@ -1,7 +1,7 @@
// scope.slang
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute
+//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
// Confirm that scoping on enums and types works
diff --git a/tests/compute/structured-buffer-of-matrices.slang b/tests/compute/structured-buffer-of-matrices.slang
index e87cf8c59..b76061310 100644
--- a/tests/compute/structured-buffer-of-matrices.slang
+++ b/tests/compute/structured-buffer-of-matrices.slang
@@ -11,10 +11,10 @@
// output on all targets, correctly respecting the user's
// request for row-major layout via command-line option.
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -compile-arg -O3 -xslang -matrix-layout-row-major
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -xslang -matrix-layout-row-major
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -xslang -matrix-layout-row-major
-//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -xslang -matrix-layout-row-major
+//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -compile-arg -O3 -xslang -matrix-layout-row-major -shaderobj
+//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
// 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
diff --git a/tests/compute/switch-stmt.slang b/tests/compute/switch-stmt.slang
index 36aac70a2..f0de612cb 100644
--- a/tests/compute/switch-stmt.slang
+++ b/tests/compute/switch-stmt.slang
@@ -1,5 +1,4 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST_INPUT:ubuffer(data=[0 1 2 3 4 5 6 7], stride=4):out
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
// Test that `swith` statement works
@@ -30,6 +29,7 @@ int test(int inVal)
return result;
}
+//TEST_INPUT:ubuffer(data=[0 1 2 3 4 5 6 7], stride=4):out,name=outputBuffer
RWStructuredBuffer<int> outputBuffer : register(u0);
[numthreads(8, 1, 1)]
diff --git a/tests/compute/texture-get-dimensions.slang b/tests/compute/texture-get-dimensions.slang
index 67c1fddc8..1ab2891ff 100644
--- a/tests/compute/texture-get-dimensions.slang
+++ b/tests/compute/texture-get-dimensions.slang
@@ -1,11 +1,11 @@
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -profile cs_6_0 -use-dxil
+//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -shaderobj
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -profile cs_6_0 -use-dxil -shaderobj
// TODO(JS): Doesn't work on vk currently, because createTextureView not implemented on vk renderer
-//DISABLE_TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
+//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
+//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj
//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 932e56985..12bdc80bf 100644
--- a/tests/compute/texture-sampling.slang
+++ b/tests/compute/texture-sampling.slang
@@ -1,14 +1,14 @@
-//TEST(compute):COMPARE_RENDER_COMPUTE:
-
-//TEST_INPUT: Texture1D(size=4, content = one):
-//TEST_INPUT: Texture2D(size=4, content = one):
-//TEST_INPUT: Texture3D(size=4, content = one):
-//TEST_INPUT: TextureCube(size=4, content = one):
-//TEST_INPUT: Texture1D(size=4, content = one, arrayLength=2):
-//TEST_INPUT: Texture2D(size=4, content = one, arrayLength=2):
-//TEST_INPUT: TextureCube(size=4, content = one, arrayLength=2):
-//TEST_INPUT: Sampler:
-//TEST_INPUT: ubuffer(data=[0], stride=4):out
+//TEST(compute):COMPARE_RENDER_COMPUTE: -shaderobj
+
+//TEST_INPUT: Texture1D(size=4, content = one):name=t1D
+//TEST_INPUT: Texture2D(size=4, content = one):name=t2D
+//TEST_INPUT: Texture3D(size=4, content = one):name=t3D
+//TEST_INPUT: TextureCube(size=4, content = one):name=tCube
+//TEST_INPUT: Texture1D(size=4, content = one, arrayLength=2):name=t1dArray
+//TEST_INPUT: Texture2D(size=4, content = one, arrayLength=2):name=t2dArray
+//TEST_INPUT: TextureCube(size=4, content = one, arrayLength=2):name=tCubeArray
+//TEST_INPUT: Sampler:name=samplerState
+//TEST_INPUT: ubuffer(data=[0], stride=4):out,name=outputBuffer
Texture1D t1D;
Texture2D t2D;
diff --git a/tests/compute/texture-simple.slang b/tests/compute/texture-simple.slang
index e2a14043e..f2f247d2d 100644
--- a/tests/compute/texture-simple.slang
+++ b/tests/compute/texture-simple.slang
@@ -1,10 +1,10 @@
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12
-//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -profile cs_6_0 -use-dxil
+//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -shaderobj
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -profile cs_6_0 -use-dxil -shaderobj
// TODO(JS): Doesn't work on vk currently, because createTextureView not implemented on vk renderer
-//DISABLE_TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
-//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute
+//DISABLE_TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
+//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj
// 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/this-type.slang b/tests/compute/this-type.slang
index 551fd0244..94f42ce53 100644
--- a/tests/compute/this-type.slang
+++ b/tests/compute/this-type.slang
@@ -2,8 +2,8 @@
// Confirm that that `This` type works as expected
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
interface IFrobable
{
diff --git a/tests/compute/transcendental.slang b/tests/compute/transcendental.slang
index bde43ee38..e9feb4d95 100644
--- a/tests/compute/transcendental.slang
+++ b/tests/compute/transcendental.slang
@@ -1,7 +1,7 @@
-//TEST(compute):COMPARE_COMPUTE:-cuda
-//TEST(compute):COMPARE_COMPUTE:-cpu
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute,vulcan):COMPARE_COMPUTE:-vk
+//TEST(compute):COMPARE_COMPUTE:-cuda -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute,vulcan):COMPARE_COMPUTE:-vk -shaderobj
//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 : register(u0);
diff --git a/tests/compute/transitive-interface.slang b/tests/compute/transitive-interface.slang
index 1ee8275e3..e4d7db91d 100644
--- a/tests/compute/transitive-interface.slang
+++ b/tests/compute/transitive-interface.slang
@@ -1,7 +1,7 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<int> outputBuffer;
interface IAdd
diff --git a/tests/compute/type-legalize-global-with-init.slang b/tests/compute/type-legalize-global-with-init.slang
index e668b1a0a..573ac9849 100644
--- a/tests/compute/type-legalize-global-with-init.slang
+++ b/tests/compute/type-legalize-global-with-init.slang
@@ -4,12 +4,12 @@
// with a resource type or a type that recursively contains
// resources.
//
-//TEST(compute):COMPARE_COMPUTE:
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
//
-//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out
+//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<uint> outputBuffer;
-//TEST_INPUT:ubuffer(data=[1 2 3 4 5 6 7 8], stride=4):
+//TEST_INPUT:ubuffer(data=[1 2 3 4 5 6 7 8], stride=4):name=inputBuffer
RWStructuredBuffer<uint> inputBuffer;
static const RWStructuredBuffer<uint> gBuffer = inputBuffer;
diff --git a/tests/compute/typedef-member.slang b/tests/compute/typedef-member.slang
index c0e044d29..ae3debd40 100644
--- a/tests/compute/typedef-member.slang
+++ b/tests/compute/typedef-member.slang
@@ -1,8 +1,8 @@
-//TEST(compute):COMPARE_COMPUTE:
-//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
// Confirm that a struct type defined in a generic parent works
+//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
struct SubType<T>
diff --git a/tests/compute/unbounded-array-of-array-syntax.slang b/tests/compute/unbounded-array-of-array-syntax.slang
index 17bb5eb2e..6a5f4ea6e 100644
--- a/tests/compute/unbounded-array-of-array-syntax.slang
+++ b/tests/compute/unbounded-array-of-array-syntax.slang
@@ -1,8 +1,8 @@
-//IGNORE_TEST:CPU_REFLECTION: -profile cs_5_0 -entry computeMain -target cpp
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute
+//IGNORE_TEST:CPU_REFLECTION: -profile cs_5_0 -entry computeMain -target cpp
+//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -shaderobj
//TEST:CROSS_COMPILE:-target dxbc-assembly -entry computeMain -profile cs_5_1
//TEST:CROSS_COMPILE:-target spirv-assembly -entry computeMain -profile cs_5_1
-//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute
+//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/compute/unbounded-array-of-array.slang b/tests/compute/unbounded-array-of-array.slang
index 4d57b9e94..d5071d876 100644
--- a/tests/compute/unbounded-array-of-array.slang
+++ b/tests/compute/unbounded-array-of-array.slang
@@ -1,5 +1,5 @@
//DISABLE_TEST:CPU_REFLECTION: -profile cs_5_0 -entry computeMain -target cpp
-//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute
+//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute
struct IntAoa { RWStructuredBuffer<int> array[]; }
diff --git a/tests/compute/user-defined-initializer.slang b/tests/compute/user-defined-initializer.slang
index 8f7492881..dcd94f68a 100644
--- a/tests/compute/user-defined-initializer.slang
+++ b/tests/compute/user-defined-initializer.slang
@@ -3,8 +3,8 @@
// Confirm that user-defined initializer/constructor
// methods in a type work as expected.
-//TEST(compute):COMPARE_COMPUTE:
-//TEST(compute):COMPARE_COMPUTE:-cpu
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
struct Pair
{
diff --git a/tests/compute/vector-scalar-compare.slang b/tests/compute/vector-scalar-compare.slang
index aa9580b5c..cd1088062 100644
--- a/tests/compute/vector-scalar-compare.slang
+++ b/tests/compute/vector-scalar-compare.slang
@@ -1,8 +1,9 @@
-//TEST(compute):COMPARE_COMPUTE:-dx12 -compute
-//TEST(compute):COMPARE_COMPUTE:-vk -compute
-//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], stride=4):out
+//TEST(compute):COMPARE_COMPUTE:-dx12 -compute -shaderobj
+//TEST(compute):COMPARE_COMPUTE:-vk -compute -shaderobj
// Test doing vector comparisons
+
+//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;
[numthreads(4, 4, 1)]
diff --git a/tests/compute/write-structured-buffer-field.slang b/tests/compute/write-structured-buffer-field.slang
index 7de94aa68..77bde894d 100644
--- a/tests/compute/write-structured-buffer-field.slang
+++ b/tests/compute/write-structured-buffer-field.slang
@@ -1,6 +1,5 @@
-//TEST(compute):COMPARE_COMPUTE:
+//TEST(compute):COMPARE_COMPUTE: -shaderobj
-//TEST_INPUT:ubuffer(data=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32], stride=32):out
struct S
{
@@ -8,6 +7,7 @@ struct S
int4 b;
};
+//TEST_INPUT:ubuffer(data=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32], stride=32):out,name=outputBuffer
RWStructuredBuffer<S> outputBuffer;
[numthreads(4, 1, 1)]