summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/compute/buffer-type-splitting.slang29
-rw-r--r--tests/compute/buffer-type-splitting.slang.expected.txt4
2 files changed, 33 insertions, 0 deletions
diff --git a/tests/compute/buffer-type-splitting.slang b/tests/compute/buffer-type-splitting.slang
new file mode 100644
index 000000000..c7577a0b2
--- /dev/null
+++ b/tests/compute/buffer-type-splitting.slang
@@ -0,0 +1,29 @@
+//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)
+
+RWStructuredBuffer<int> outputBuffer;
+
+struct S
+{
+ RWByteAddressBuffer a;
+ RWByteAddressBuffer b;
+};
+S s[2];
+
+[numthreads(4, 1, 1)]
+void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
+{
+ uint i = dispatchThreadID.x;
+
+ int val =
+ s[0].a.Load(i * 4)
+ + s[1].a.Load(i * 4)*16
+ + s[0].b.Load(i * 4)*256
+ + s[1].b.Load(i * 4)*4096;
+
+ outputBuffer[i] = val;
+} \ No newline at end of file
diff --git a/tests/compute/buffer-type-splitting.slang.expected.txt b/tests/compute/buffer-type-splitting.slang.expected.txt
new file mode 100644
index 000000000..4bc5fcbf9
--- /dev/null
+++ b/tests/compute/buffer-type-splitting.slang.expected.txt
@@ -0,0 +1,4 @@
+C840
+D952
+EA63
+FB73