summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/doc/doc.slang.expected4
-rw-r--r--tests/spirv/scalar-structured-buffer.slang26
2 files changed, 28 insertions, 2 deletions
diff --git a/tests/doc/doc.slang.expected b/tests/doc/doc.slang.expected
index ed9892b33..1163e6485 100644
--- a/tests/doc/doc.slang.expected
+++ b/tests/doc/doc.slang.expected
@@ -120,7 +120,7 @@ void Hey::doAnotherThing(int a);
# inputBuffer
```
-RWStructuredBuffer<int> inputBuffer
+RWStructuredBuffer<int, DefaultDataLayout> inputBuffer
```
## Description
@@ -330,7 +330,7 @@ An enum
# outputBuffer
```
-RWStructuredBuffer<int> outputBuffer
+RWStructuredBuffer<int, DefaultDataLayout> outputBuffer
```
## Description
diff --git a/tests/spirv/scalar-structured-buffer.slang b/tests/spirv/scalar-structured-buffer.slang
new file mode 100644
index 000000000..383ead9f5
--- /dev/null
+++ b/tests/spirv/scalar-structured-buffer.slang
@@ -0,0 +1,26 @@
+//TEST(compute, vulkan):COMPARE_COMPUTE_EX(filecheck-buffer=CHECK): -vk -compute
+
+float getData<L:IBufferDataLayout>(StructuredBuffer<float3, L> p, int index)
+{
+ return p[index].x;
+}
+
+// GLSL: layout({{.*}}scalar{{.*}})
+
+//TEST_INPUT:set scalarBuffer = ubuffer(data=[1 2 3 4 5 6], stride=12)
+StructuredBuffer<float3, ScalarDataLayout> scalarBuffer;
+//TEST_INPUT:set outputBuffer = out ubuffer(data=[0 0 0 0 0 0], stride=12)
+RWStructuredBuffer<float3, ScalarDataLayout> outputBuffer;
+
+[numthreads(1,1,1)]
+void computeMain()
+{
+ // CHECK: 1
+ // CHECK: 1
+ // CHECK: 1
+ // CHECK: 4
+ // CHECK: 4
+ // CHECK: 4
+ outputBuffer[0] = float3(getData(scalarBuffer, 0));
+ outputBuffer[1] = float3(getData(scalarBuffer, 1));
+}