diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2019-08-22 15:58:28 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-08-22 15:58:28 -0400 |
| commit | 06a0e3980fd04fa265bd20eb11f2abc18bd6a215 (patch) | |
| tree | ea664d7f0ecfa4b6948319d4fcfb0bbd1e3af888 /tests | |
| parent | bc392f9dbfb8cb6c359bb890fb85b831e49bfd55 (diff) | |
WIP: CPU compute coverage (#1030)
* Add support for '=' when defining a name in test.
* Add support for double intrinsics.
* Add support for asdouble
Add findOrAddInst - used instead of findOrEmitHoistableInst, for nominal instructions.
Support cloning of string literals.
C++ working on more compute tests.
* Constant buffer support in reflection.
Fixed debugging into source for generated C++.
buffer-layout.slang works.
* Added cpu test result.
* Remove some commented out code.
Comment on next fixes.
* Improvements to reflection CPU code.
* C++ working with ByteAddressBuffer.
* Enabled more compute tests for CPU.
* Enabled more compute tests on CPU.
Added support for [] style access to a vector.
* Enabled more CPU compute tests.
* Handling of buffer-type-splitting.slang
Named buffers can be paths to resources
* Fix some warnings, remove some dead code.
* Fix problem with verification of number of operands for asuint/asint as they can have 1 or 3 operands. asdouble takes 2.
* Fix handling in MemoryArena around aligned allocations. That _allocateAlignedFromNewBlock assumed the block allocated has the aligment that was requested and so did not correct the start address.
Diffstat (limited to 'tests')
60 files changed, 150 insertions, 83 deletions
diff --git a/tests/compute/assoctype-complex.slang b/tests/compute/assoctype-complex.slang index ee5f2c86f..29df5310a 100644 --- a/tests/compute/assoctype-complex.slang +++ b/tests/compute/assoctype-complex.slang @@ -1,7 +1,9 @@ +//TEST(compute):COMPARE_COMPUTE: -cpu //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer; + interface IBase { associatedtype V; diff --git a/tests/compute/assoctype-func-param.slang b/tests/compute/assoctype-func-param.slang index fb3875d60..573016e4b 100644 --- a/tests/compute/assoctype-func-param.slang +++ b/tests/compute/assoctype-func-param.slang @@ -1,8 +1,9 @@ +//TEST(compute):COMPARE_COMPUTE:-cpu //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out // Test type checking of associatedtype and typedef +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<float> outputBuffer; interface IBase @@ -41,7 +42,6 @@ U.RetT test<U:IBase>(U.RetT val) return obj.getVal(sb); } - [numthreads(4, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { diff --git a/tests/compute/assoctype-generic-arg.slang b/tests/compute/assoctype-generic-arg.slang index dd183ea5d..ae14380f4 100644 --- a/tests/compute/assoctype-generic-arg.slang +++ b/tests/compute/assoctype-generic-arg.slang @@ -1,8 +1,9 @@ +//TEST(compute):COMPARE_COMPUTE:-cpu //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out -//TEST_INPUT:type AssocImpl +//TEST_INPUT:type AssocImpl +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<float> outputBuffer; interface IBase diff --git a/tests/compute/assoctype-nested.slang b/tests/compute/assoctype-nested.slang index b3d96306b..6f267a780 100644 --- a/tests/compute/assoctype-nested.slang +++ b/tests/compute/assoctype-nested.slang @@ -2,6 +2,7 @@ // 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 @@ -48,7 +49,7 @@ int test(int val) return helper(strategy, val); } -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=gOutputBuffer RWStructuredBuffer<int> gOutputBuffer; [numthreads(4, 1, 1)] diff --git a/tests/compute/assoctype-simple.slang b/tests/compute/assoctype-simple.slang index d12c29620..6edf46f33 100644 --- a/tests/compute/assoctype-simple.slang +++ b/tests/compute/assoctype-simple.slang @@ -1,8 +1,10 @@ +//TEST(smoke,compute):COMPARE_COMPUTE:-cpu //TEST(smoke,compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out + // Confirm that generics syntax can be used in user // code and generates valid output. +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<float> outputBuffer; interface ISimple diff --git a/tests/compute/bit-cast-double.slang b/tests/compute/bit-cast-double.slang index 27d0b48cf..69c93ba4f 100644 --- a/tests/compute/bit-cast-double.slang +++ b/tests/compute/bit-cast-double.slang @@ -1,9 +1,9 @@ +//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_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out - +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer; [numthreads(4, 1, 1)] diff --git a/tests/compute/break-stmt.slang b/tests/compute/break-stmt.slang index 02f5f9fa9..283593ee5 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_INPUT:ubuffer(data=[0 1 2 3], stride=4):dxbinding(0),glbinding(0),out // Test that `break` from a loop works. @@ -15,6 +15,7 @@ int test(int inVal) return -ii; } +//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer : register(u0); [numthreads(4, 1, 1)] diff --git a/tests/compute/buffer-layout.slang b/tests/compute/buffer-layout.slang index 145da99c8..9e4a63722 100644 --- a/tests/compute/buffer-layout.slang +++ b/tests/compute/buffer-layout.slang @@ -6,9 +6,9 @@ //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_INPUT: ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST_INPUT: ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer; struct A @@ -103,10 +103,10 @@ struct S int d; } -//TEST_INPUT:cbuffer(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 24 25 26 27 28 29 30 31 32]):dxbinding(0),glbinding(0) +//TEST_INPUT:cbuffer(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 24 25 26 27 28 29 30 31 32]):dxbinding(0),glbinding(0),name=cb ConstantBuffer<S> cb; -//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 24 25 26 27 28 29 30 31 32],stride=4):dxbinding(0),glbinding(1) +//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 24 25 26 27 28 29 30 31 32],stride=4):dxbinding(0),glbinding(1),name=sb RWStructuredBuffer<S> sb; int test(int val) diff --git a/tests/compute/buffer-layout.slang.3.expected.txt b/tests/compute/buffer-layout.slang.3.expected.txt new file mode 100644 index 000000000..4fcded8c6 --- /dev/null +++ b/tests/compute/buffer-layout.slang.3.expected.txt @@ -0,0 +1,4 @@ +13080308 +23080308 +33080308 +43080308 diff --git a/tests/compute/buffer-type-splitting.slang b/tests/compute/buffer-type-splitting.slang index c7577a0b2..f4a05c8f8 100644 --- a/tests/compute/buffer-type-splitting.slang +++ b/tests/compute/buffer-type-splitting.slang @@ -1,9 +1,11 @@ +//TEST(compute):COMPARE_COMPUTE:-cpu //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out -//TEST_INPUT:ubuffer(data=[0 2 3 3]):dxbinding(1),glbinding(1) -//TEST_INPUT:ubuffer(data=[4 5 6 7]):dxbinding(2),glbinding(2) -//TEST_INPUT:ubuffer(data=[8 9 10 11]):dxbinding(3),glbinding(3) -//TEST_INPUT:ubuffer(data=[12 13 14 15]):dxbinding(4),glbinding(4) + +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer +//TEST_INPUT:ubuffer(data=[0 2 3 3]):dxbinding(1),glbinding(1),name=s[0].a +//TEST_INPUT:ubuffer(data=[4 5 6 7]):dxbinding(2),glbinding(2),name=s[1].a +//TEST_INPUT:ubuffer(data=[8 9 10 11]):dxbinding(3),glbinding(3),name=s[0].b +//TEST_INPUT:ubuffer(data=[12 13 14 15]):dxbinding(4),glbinding(4),name=s[1].b RWStructuredBuffer<int> outputBuffer; diff --git a/tests/compute/byte-address-buffer.slang b/tests/compute/byte-address-buffer.slang index 2efbeb630..851e06214 100644 --- a/tests/compute/byte-address-buffer.slang +++ b/tests/compute/byte-address-buffer.slang @@ -1,5 +1,6 @@ // 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, vulkan):COMPARE_COMPUTE_EX:-d3d12 -compute @@ -9,10 +10,10 @@ // TODO: I'm only using `RWByteAddressBuffer` for now because I don't // know if `render-test` supports the non-UAV case. -//TEST_INPUT:ubuffer(data=[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15]):dxbinding(0),glbinding(0) +//TEST_INPUT:ubuffer(data=[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15]):dxbinding(0),glbinding(0),name=inputBuffer RWByteAddressBuffer inputBuffer; -//TEST_INPUT:ubuffer(data=[0 0 0 0]):dxbinding(1),glbinding(1),out +//TEST_INPUT:ubuffer(data=[0 0 0 0]):dxbinding(1),glbinding(1),out,name=outputBuffer RWByteAddressBuffer outputBuffer; void test(int val) diff --git a/tests/compute/cast-zero-to-struct.slang b/tests/compute/cast-zero-to-struct.slang index c2ed8fb6d..41bc299e5 100644 --- a/tests/compute/cast-zero-to-struct.slang +++ b/tests/compute/cast-zero-to-struct.slang @@ -4,6 +4,7 @@ // to a `struct` type works. //TEST(compute):COMPARE_COMPUTE: +//TEST(compute):COMPARE_COMPUTE:-cpu struct S { @@ -24,7 +25,7 @@ int test(int val) return t.x + t.y*16; } -//TEST_INPUT: ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST_INPUT: ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=gOutputBuffer RWStructuredBuffer<int> gOutputBuffer; [numthreads(4, 1, 1)] diff --git a/tests/compute/continue-stmt.slang b/tests/compute/continue-stmt.slang index 9adb5a4a6..f21592ecc 100644 --- a/tests/compute/continue-stmt.slang +++ b/tests/compute/continue-stmt.slang @@ -1,5 +1,5 @@ //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):dxbinding(0),glbinding(0),out +//TEST(compute):COMPARE_COMPUTE:-cpu // Test that `break` from a loop works. @@ -20,6 +20,7 @@ int test(int inVal) return -ii; } +//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer : register(u0); [numthreads(4, 1, 1)] diff --git a/tests/compute/default-parameter.slang b/tests/compute/default-parameter.slang index 6e6631bb4..cc960f2e5 100644 --- a/tests/compute/default-parameter.slang +++ b/tests/compute/default-parameter.slang @@ -1,8 +1,8 @@ //TEST(compute):COMPARE_COMPUTE_EX:-slang -compute //TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute +//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-cpu -compute -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out - +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer; int helper(int val, int a = 16) diff --git a/tests/compute/empty-struct.slang b/tests/compute/empty-struct.slang index 51094fad5..5e000b723 100644 --- a/tests/compute/empty-struct.slang +++ b/tests/compute/empty-struct.slang @@ -1,8 +1,10 @@ //TEST(smoke,compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(smoke,compute):COMPARE_COMPUTE:-cpu + // Confirm that generics syntax can be used in user // code and generates valid output. +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<float> outputBuffer; struct Simple diff --git a/tests/compute/empty-struct2.slang b/tests/compute/empty-struct2.slang index 17cbb6ab4..2ec7bbc3f 100644 --- a/tests/compute/empty-struct2.slang +++ b/tests/compute/empty-struct2.slang @@ -1,7 +1,9 @@ //TEST(smoke,compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(smoke,compute):COMPARE_COMPUTE:-cpu + // This is a basic test for Slang compute shader. +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<uint> outputBuffer; interface IInterface diff --git a/tests/compute/enum-tag-conversion.slang b/tests/compute/enum-tag-conversion.slang index 5758cc3c1..869b1c3af 100644 --- a/tests/compute/enum-tag-conversion.slang +++ b/tests/compute/enum-tag-conversion.slang @@ -2,6 +2,7 @@ //TEST(compute):COMPARE_COMPUTE_EX:-slang -compute //TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute +//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute // Confirm that a value of `enum` type can have an initializer // that includes basic operations like type conversion. @@ -16,7 +17,7 @@ int test(int val) return val + int(RoseColors.Red); } -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer; [numthreads(4, 1, 1)] diff --git a/tests/compute/enum.slang b/tests/compute/enum.slang index c10cedc25..cbe940f30 100644 --- a/tests/compute/enum.slang +++ b/tests/compute/enum.slang @@ -1,6 +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 // Confirm that basic `enum` declarations are supported. @@ -51,7 +52,7 @@ int test(int val) return (val << 4) + int(c); } -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer; [numthreads(4, 1, 1)] diff --git a/tests/compute/explicit-this-expr.slang b/tests/compute/explicit-this-expr.slang index 7179d046d..02f744662 100644 --- a/tests/compute/explicit-this-expr.slang +++ b/tests/compute/explicit-this-expr.slang @@ -1,5 +1,6 @@ //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(compute):COMPARE_COMPUTE:-cpu + // Access fields of a `struct` type from within a "method" by // using an explicit `this` expression. @@ -14,6 +15,7 @@ struct A } }; +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<float> outputBuffer : register(u0); diff --git a/tests/compute/extension-multi-interface.slang b/tests/compute/extension-multi-interface.slang index e29baf3b5..f13769f56 100644 --- a/tests/compute/extension-multi-interface.slang +++ b/tests/compute/extension-multi-interface.slang @@ -1,6 +1,7 @@ //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(compute):COMPARE_COMPUTE:-cpu +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<float> outputBuffer; interface IAdd diff --git a/tests/compute/extension-on-interface.slang b/tests/compute/extension-on-interface.slang index 0034cc43a..4f516092d 100644 --- a/tests/compute/extension-on-interface.slang +++ b/tests/compute/extension-on-interface.slang @@ -1,6 +1,7 @@ //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(compute):COMPARE_COMPUTE:-cpu +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<float> outputBuffer; interface IOp diff --git a/tests/compute/func-cbuffer-param.slang b/tests/compute/func-cbuffer-param.slang index 1fe7d2a38..a0784e21e 100644 --- a/tests/compute/func-cbuffer-param.slang +++ b/tests/compute/func-cbuffer-param.slang @@ -8,19 +8,20 @@ //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 struct Data { int4 val[4]; } -//TEST_INPUT:cbuffer(data=[0 1 2 3 16 17 18 19 32 33 34 35 48 49 50 51]):dxbinding(0),glbinding(0) +//TEST_INPUT:cbuffer(data=[0 1 2 3 16 17 18 19 32 33 34 35 48 49 50 51]):dxbinding(0),glbinding(0),name=a ConstantBuffer<Data> a; -//TEST_INPUT:cbuffer(data=[16 17 18 19 32 33 34 35 48 49 50 51 64 65 66 67]):dxbinding(1),glbinding(1) +//TEST_INPUT:cbuffer(data=[16 17 18 19 32 33 34 35 48 49 50 51 64 65 66 67]):dxbinding(1),glbinding(1),name=b ConstantBuffer<Data> b; -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(2),out +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(2),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer; int helper(ConstantBuffer<Data> buffer, int index) diff --git a/tests/compute/func-param-legalize.slang b/tests/compute/func-param-legalize.slang index f3177a1b1..a68766389 100644 --- a/tests/compute/func-param-legalize.slang +++ b/tests/compute/func-param-legalize.slang @@ -1,7 +1,4 @@ //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:Texture2D(size=4, content = one) : dxbinding(0),glbinding(0) -//TEST_INPUT: Sampler : dxbinding(0),glbinding(0,1,2,3,4,5,6) -//TEST_INPUT: ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out struct Param { @@ -10,8 +7,11 @@ struct Param float base; }; +//TEST_INPUT:Texture2D(size=4, content = one) : dxbinding(0),glbinding(0),name=diffuseMap Texture2D diffuseMap; +//TEST_INPUT: Sampler : dxbinding(0),glbinding(0,1,2,3,4,5,6),name=samplerState SamplerState samplerState; +//TEST_INPUT: ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<float> outputBuffer; float4 run(Param p) diff --git a/tests/compute/func-resource-param.slang b/tests/compute/func-resource-param.slang index 19784b108..2f6668dce 100644 --- a/tests/compute/func-resource-param.slang +++ b/tests/compute/func-resource-param.slang @@ -7,13 +7,14 @@ //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 //NO_TEST:SIMPLE:-target glsl -entry computeMain -stage compute -validate-ir -dump-ir -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer; -//TEST_INPUT:ubuffer(data=[0 16 32 48], stride=4):dxbinding(1),glbinding(1) +//TEST_INPUT:ubuffer(data=[0 16 32 48], stride=4):dxbinding(1),glbinding(1),name=inputBuffer RWStructuredBuffer<int> inputBuffer; int helper(RWStructuredBuffer<int> buffer, int index) diff --git a/tests/compute/generic-closer.slang b/tests/compute/generic-closer.slang index f3bb643de..a40d520cc 100644 --- a/tests/compute/generic-closer.slang +++ b/tests/compute/generic-closer.slang @@ -1,8 +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_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute interface IGetter { @@ -18,7 +17,9 @@ struct Gen1<TGetter : IGetter> : IGetter int get() { return g.get(); } }; +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer; + void writeArray(inout float3 a[4]) { a[0] = float3(1, 1, 1); diff --git a/tests/compute/generic-interface-method-simple.slang b/tests/compute/generic-interface-method-simple.slang index 2af6da969..a8b2fcd8a 100644 --- a/tests/compute/generic-interface-method-simple.slang +++ b/tests/compute/generic-interface-method-simple.slang @@ -1,6 +1,7 @@ //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(compute):COMPARE_COMPUTE:-cpu +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<float> outputBuffer; interface IVertexInterpolant diff --git a/tests/compute/generic-interface-method.slang b/tests/compute/generic-interface-method.slang index 38babdf7c..16d891636 100644 --- a/tests/compute/generic-interface-method.slang +++ b/tests/compute/generic-interface-method.slang @@ -1,6 +1,7 @@ //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(compute):COMPARE_COMPUTE:-cpu +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<float> outputBuffer; struct DisneyBRDFPattern diff --git a/tests/compute/generic-list.slang b/tests/compute/generic-list.slang index 118cbaed6..8b88a35ac 100644 --- a/tests/compute/generic-list.slang +++ b/tests/compute/generic-list.slang @@ -1,8 +1,10 @@ //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(compute):COMPARE_COMPUTE:-cpu + // Confirm that generics syntax can be used in user // code and generates valid output. +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<float4> outputBuffer; interface IElement diff --git a/tests/compute/generic-struct-with-constraint.slang b/tests/compute/generic-struct-with-constraint.slang index 1c2fdf4f3..5468cce80 100644 --- a/tests/compute/generic-struct-with-constraint.slang +++ b/tests/compute/generic-struct-with-constraint.slang @@ -1,8 +1,10 @@ //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(compute):COMPARE_COMPUTE:-cpu + // Confirm that generics syntax can be used in user // code and generates valid output. +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<float4> outputBuffer; interface IElement diff --git a/tests/compute/generic-struct.slang b/tests/compute/generic-struct.slang index b13a7bf77..8c97ef76d 100644 --- a/tests/compute/generic-struct.slang +++ b/tests/compute/generic-struct.slang @@ -1,9 +1,10 @@ //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(compute):COMPARE_COMPUTE:-cpu // Check that user code can declare and use a generic // `struct` type. +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer; __generic<T> diff --git a/tests/compute/generics-constrained.slang b/tests/compute/generics-constrained.slang index ba42b303c..eb3df321a 100644 --- a/tests/compute/generics-constrained.slang +++ b/tests/compute/generics-constrained.slang @@ -1,5 +1,5 @@ //TEST(smoke,compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(smoke,compute):COMPARE_COMPUTE:-cpu // Use interface constraints on a generic parameter @@ -27,6 +27,7 @@ float testHelp(T helper) return helper.getHelp(); } +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<float> outputBuffer : register(u0); diff --git a/tests/compute/generics-constructor.slang b/tests/compute/generics-constructor.slang index 59368b47c..d36f72a59 100644 --- a/tests/compute/generics-constructor.slang +++ b/tests/compute/generics-constructor.slang @@ -1,6 +1,7 @@ //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(compute):COMPARE_COMPUTE:-cpu +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<float> outputBuffer; __generic<T:__BuiltinFloatingPointType> diff --git a/tests/compute/generics-overload.slang b/tests/compute/generics-overload.slang index 45d0deb2b..8d30666c3 100644 --- a/tests/compute/generics-overload.slang +++ b/tests/compute/generics-overload.slang @@ -1,8 +1,10 @@ //TEST(smoke,compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(smoke,compute):COMPARE_COMPUTE:-cpu + // Confirm that generics syntax can be used in user // code and generates valid output. +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<float> outputBuffer; diff --git a/tests/compute/generics-simple.slang b/tests/compute/generics-simple.slang index 653ccfd0a..f7b73a5e6 100644 --- a/tests/compute/generics-simple.slang +++ b/tests/compute/generics-simple.slang @@ -1,8 +1,10 @@ //TEST(smoke,compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(smoke,compute):COMPARE_COMPUTE:-cpu + // Confirm that generics syntax can be used in user // code and generates valid output. +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<float> outputBuffer; diff --git a/tests/compute/generics-syntax-2.slang b/tests/compute/generics-syntax-2.slang index 56ace573c..f57ccb9ed 100644 --- a/tests/compute/generics-syntax-2.slang +++ b/tests/compute/generics-syntax-2.slang @@ -1,8 +1,10 @@ //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(compute):COMPARE_COMPUTE:-cpu + // Confirm that generics syntax can be used in user // code and generates valid output. +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<float> outputBuffer; struct GenStruct<T> diff --git a/tests/compute/generics-syntax.slang b/tests/compute/generics-syntax.slang index 194d860f5..2d1adea44 100644 --- a/tests/compute/generics-syntax.slang +++ b/tests/compute/generics-syntax.slang @@ -1,8 +1,10 @@ //TEST(smoke,compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(smoke,compute):COMPARE_COMPUTE:-cpu + // Confirm that generics syntax can be used in user // code and generates valid output. +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<float> outputBuffer; struct GenStruct<T> diff --git a/tests/compute/global-init.slang b/tests/compute/global-init.slang index 1fc4ae0a8..db99d1f2f 100644 --- a/tests/compute/global-init.slang +++ b/tests/compute/global-init.slang @@ -1,5 +1,5 @@ //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):dxbinding(0),glbinding(0),out +//TEST(compute):COMPARE_COMPUTE:-cpu // Test that a global variable (not a shader parameter) // with an initializer works. @@ -11,6 +11,7 @@ int test(int inVal) return inVal + gVar; } +//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer : register(u0); [numthreads(4, 1, 1)] diff --git a/tests/compute/global-type-param.slang b/tests/compute/global-type-param.slang index 7621f8961..ed0591064 100644 --- a/tests/compute/global-type-param.slang +++ b/tests/compute/global-type-param.slang @@ -1,7 +1,8 @@ //TEST(smoke,compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0], stride=4):dxbinding(0),glbinding(0),out + //TEST_INPUT:type Wrapper<Impl> +//TEST_INPUT:ubuffer(data=[0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<float> outputBuffer; interface IBase diff --git a/tests/compute/implicit-generic-app.slang b/tests/compute/implicit-generic-app.slang index b6fcbd434..53edefc66 100644 --- a/tests/compute/implicit-generic-app.slang +++ b/tests/compute/implicit-generic-app.slang @@ -1,5 +1,5 @@ //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(compute):COMPARE_COMPUTE:-cpu // Testing that we can implicitly specialize a generic // that has a constrained type parameter. @@ -29,7 +29,9 @@ int test(int val) return doIt(simple); } +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer : register(u0); + [numthreads(4, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { diff --git a/tests/compute/implicit-this-expr.slang b/tests/compute/implicit-this-expr.slang index 2d074f677..2197cde10 100644 --- a/tests/compute/implicit-this-expr.slang +++ b/tests/compute/implicit-this-expr.slang @@ -1,5 +1,5 @@ //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(compute):COMPARE_COMPUTE:-cpu // Access fields of a `struct` type from within a "method" by // using an implicit `this` expression. @@ -14,9 +14,9 @@ struct A } }; +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<float> outputBuffer : register(u0); - float test(float inVal) { A a; diff --git a/tests/compute/init-list-defaults.slang b/tests/compute/init-list-defaults.slang index d8eb72b5b..9ed54ffaa 100644 --- a/tests/compute/init-list-defaults.slang +++ b/tests/compute/init-list-defaults.slang @@ -1,5 +1,6 @@ // init-list-defaults.slang //TEST(compute):COMPARE_COMPUTE: +//TEST(compute):COMPARE_COMPUTE:-cpu // Confirm that initializer lists correctly default-initialize elements past those specified. @@ -22,7 +23,7 @@ int test(int inVal) + (inVal+1)*4096; } -//TEST_INPUT:ubuffer(data=[9 9 9 9], stride=4):dxbinding(0),glbinding(0),out +//TEST_INPUT:ubuffer(data=[9 9 9 9], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer : register(u0); [numthreads(4, 1, 1)] diff --git a/tests/compute/initializer-list.slang b/tests/compute/initializer-list.slang index de94d6c25..7d0af700e 100644 --- a/tests/compute/initializer-list.slang +++ b/tests/compute/initializer-list.slang @@ -1,6 +1,5 @@ //TEST(compute):COMPARE_COMPUTE: - -//TEST_INPUT: ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(compute):COMPARE_COMPUTE:-cpu struct Test { @@ -16,6 +15,7 @@ uint test(uint val) return val + t.b; } +//TEST_INPUT: ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<uint> outputBuffer; [numthreads(4, 1, 1)] diff --git a/tests/compute/inout.slang b/tests/compute/inout.slang index a11050055..b7c64d57f 100644 --- a/tests/compute/inout.slang +++ b/tests/compute/inout.slang @@ -1,5 +1,5 @@ //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):dxbinding(0),glbinding(0),out +//TEST(compute):COMPARE_COMPUTE:-cpu // Test that we correctly support both `out` // and `inout` function parameters. @@ -35,6 +35,7 @@ int test(int inVal) return x3; } +//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer : register(u0); [numthreads(4, 1, 1)] diff --git a/tests/compute/int-generic.slang b/tests/compute/int-generic.slang index d9eb85f82..c62ecf3d7 100644 --- a/tests/compute/int-generic.slang +++ b/tests/compute/int-generic.slang @@ -1,6 +1,8 @@ //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out + //TEST_INPUT:type Material<1,2> + +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer; interface IBRDF diff --git a/tests/compute/interface-local.slang b/tests/compute/interface-local.slang index d3ee88062..0a3d1c85f 100644 --- a/tests/compute/interface-local.slang +++ b/tests/compute/interface-local.slang @@ -13,6 +13,8 @@ //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 + interface IHelper { @@ -35,7 +37,7 @@ int test(int val) return existentialHelper.getVal(); } -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=gOutputBuffer RWStructuredBuffer<int> gOutputBuffer; [numthreads(4, 1, 1)] diff --git a/tests/compute/interface-param.slang b/tests/compute/interface-param.slang index 1c16d2e9b..6e0a735f4 100644 --- a/tests/compute/interface-param.slang +++ b/tests/compute/interface-param.slang @@ -7,6 +7,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 interface IHelper { @@ -31,7 +32,7 @@ int test(int val) return doTheThing(helperImpl); } -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=gOutputBuffer RWStructuredBuffer<int> gOutputBuffer; [numthreads(4, 1, 1)] diff --git a/tests/compute/interface-shader-param.slang b/tests/compute/interface-shader-param.slang index b8968b225..75788ee9a 100644 --- a/tests/compute/interface-shader-param.slang +++ b/tests/compute/interface-shader-param.slang @@ -6,6 +6,7 @@ //TEST(compute):COMPARE_COMPUTE_EX:-slang -compute //TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 //TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute +//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute // First we will define some fake interfaces for testing. // Let's pretend we are doing some kind of random number @@ -74,7 +75,7 @@ int test( // // We'll start with the buffer for writing the test output. -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=gOutputBuffer RWStructuredBuffer<int> gOutputBuffer; // Now we'll define a global shader parameter for the diff --git a/tests/compute/interface-static-method.slang b/tests/compute/interface-static-method.slang index 4747c8a8a..f10e00783 100644 --- a/tests/compute/interface-static-method.slang +++ b/tests/compute/interface-static-method.slang @@ -3,6 +3,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 interface IHideout { @@ -45,7 +46,7 @@ int test(int val) } -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer; [numthreads(4, 1, 1)] diff --git a/tests/compute/matrix-layout-structured-buffer.slang b/tests/compute/matrix-layout-structured-buffer.slang index fc46d7815..68b591f1b 100644 --- a/tests/compute/matrix-layout-structured-buffer.slang +++ b/tests/compute/matrix-layout-structured-buffer.slang @@ -17,8 +17,7 @@ //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_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):dxbinding(0),glbinding(0) +//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):dxbinding(0),glbinding(0),name=gMatrices RWStructuredBuffer<int3x4> gMatrices; int test(int val) diff --git a/tests/compute/matrix-layout.hlsl b/tests/compute/matrix-layout.hlsl index 034ac512c..64d863eb3 100644 --- a/tests/compute/matrix-layout.hlsl +++ b/tests/compute/matrix-layout.hlsl @@ -60,7 +60,7 @@ int test(int val) return ((a*N + b) * N + c) * N + d; } -//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0 0 0], stride=4):dxbinding(0),glbinding(2),out +//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0 0 0], stride=4):dxbinding(0),glbinding(2),out,name=buffer RWStructuredBuffer<int> buffer; [numthreads(12, 1, 1)] diff --git a/tests/compute/modern-syntax.slang b/tests/compute/modern-syntax.slang index c0a1f1442..cf5f89370 100644 --- a/tests/compute/modern-syntax.slang +++ b/tests/compute/modern-syntax.slang @@ -1,5 +1,6 @@ // modern-syntax.slang //TEST(compute):COMPARE_COMPUTE_EX:-slang -compute +//TEST(compute):COMPARE_COMPUTE_EX:-cpu -slang -compute // This file exists to confirm that declarations using "modern" // syntax are handled correctly by the compiler front-end. @@ -14,7 +15,7 @@ func test(val: MyInt) -> MyInt return tmp; } -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer; [numthreads(4, 1, 1)] diff --git a/tests/compute/multi-interface.slang b/tests/compute/multi-interface.slang index f2115f1fc..f3c18ba42 100644 --- a/tests/compute/multi-interface.slang +++ b/tests/compute/multi-interface.slang @@ -1,6 +1,7 @@ //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(compute):COMPARE_COMPUTE:-cpu +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<float> outputBuffer; interface IAdd diff --git a/tests/compute/multiple-continue-sites.slang b/tests/compute/multiple-continue-sites.slang index 5a5b78d0c..afab66a95 100644 --- a/tests/compute/multiple-continue-sites.slang +++ b/tests/compute/multiple-continue-sites.slang @@ -1,5 +1,5 @@ //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):dxbinding(0),glbinding(0),out +//TEST(compute):COMPARE_COMPUTE:-cpu // Test that a loop with multiple `continue` sites works. // @@ -27,6 +27,7 @@ int test(int inVal) return ii; } +//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer : register(u0); [numthreads(4, 1, 1)] diff --git a/tests/compute/mutating-methods.slang b/tests/compute/mutating-methods.slang index 8192acd82..bb3bdeb7e 100644 --- a/tests/compute/mutating-methods.slang +++ b/tests/compute/mutating-methods.slang @@ -2,6 +2,7 @@ //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 interface IAccumulator { @@ -40,7 +41,7 @@ int test(int x) return a.state; } -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer; [numthreads(4, 1, 1)] diff --git a/tests/compute/nested-generics.slang b/tests/compute/nested-generics.slang index 8996b2574..de1e52991 100644 --- a/tests/compute/nested-generics.slang +++ b/tests/compute/nested-generics.slang @@ -1,8 +1,9 @@ //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(compute):COMPARE_COMPUTE:-cpu // test specialization of nested generic functions +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer; interface IGetF diff --git a/tests/compute/nested-generics2.slang b/tests/compute/nested-generics2.slang index 1f6d4a50a..855f97a11 100644 --- a/tests/compute/nested-generics2.slang +++ b/tests/compute/nested-generics2.slang @@ -1,8 +1,9 @@ //TEST(compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(compute):COMPARE_COMPUTE:-cpu // test specialization of nested generic functions +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer; interface IBRDF diff --git a/tests/compute/scope-operator.slang b/tests/compute/scope-operator.slang index c50d95965..2afb642ab 100644 --- a/tests/compute/scope-operator.slang +++ b/tests/compute/scope-operator.slang @@ -1,10 +1,11 @@ // scope.slang //TEST(compute):COMPARE_COMPUTE_EX:-slang -compute //TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute +//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute // Confirm that scoping on enums and types works -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer; enum Color diff --git a/tests/compute/select-expr.slang b/tests/compute/select-expr.slang index d90708ab9..ae5375e42 100644 --- a/tests/compute/select-expr.slang +++ b/tests/compute/select-expr.slang @@ -1,6 +1,5 @@ //TEST(smoke,compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out - +//TEST(smoke,compute):COMPARE_COMPUTE:-cpu // Test IR code generation for the `?:` "select" operator @@ -9,6 +8,7 @@ int test(int input) return input > 1 ? -input : input; } +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer; [numthreads(4, 1, 1)] diff --git a/tests/compute/simple.slang b/tests/compute/simple.slang index 8f53a79b2..67ed67a6c 100644 --- a/tests/compute/simple.slang +++ b/tests/compute/simple.slang @@ -1,7 +1,9 @@ //TEST(smoke,compute):COMPARE_COMPUTE: -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out +//TEST(smoke,compute):COMPARE_COMPUTE:-cpu + // This is a basic test for Slang compute shader. +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out,name=outputBuffer RWStructuredBuffer<float> outputBuffer; [numthreads(4, 1, 1)] diff --git a/tests/compute/ssa-reduce-bug.slang b/tests/compute/ssa-reduce-bug.slang index fe53f2ab0..15af36f9f 100644 --- a/tests/compute/ssa-reduce-bug.slang +++ b/tests/compute/ssa-reduce-bug.slang @@ -1,10 +1,10 @@ // ssa-reduce-bug.slang //TEST(compute):COMPARE_COMPUTE_EX:-slang -compute +//TEST(compute):COMPARE_COMPUTE_EX:-cpu -slang -compute -//TEST_INPUT:ubuffer(data=[0 3 1 2 6 4 7 6], stride=4):dxbinding(0),glbinding(0) -//TEST_INPUT:ubuffer(data=[8 8 8 8 8 8 8 8], stride=4):dxbinding(1),glbinding(1),out - +//TEST_INPUT:ubuffer(data=[0 3 1 2 6 4 7 6], stride=4):dxbinding(0),glbinding(0),name=inputBuffer RWStructuredBuffer<int> inputBuffer; +//TEST_INPUT:ubuffer(data=[8 8 8 8 8 8 8 8], stride=4):dxbinding(1),glbinding(1),out,name=outputBuffer RWStructuredBuffer<int> outputBuffer; int2 reduce(int2 val) |
