From 23c65b873f8002b74d60f61cacb3614da60e078d Mon Sep 17 00:00:00 2001 From: Yong He Date: Mon, 5 Feb 2024 22:36:02 -0800 Subject: Add per-buffer data layout control. (#3551) * Add per-buffer data layout control. Fixes #3534. * Fixes. * Robustness. * Update test. * Fix. --- tests/doc/doc.slang.expected | 4 ++-- tests/spirv/scalar-structured-buffer.slang | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 tests/spirv/scalar-structured-buffer.slang (limited to 'tests') 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 inputBuffer +RWStructuredBuffer inputBuffer ``` ## Description @@ -330,7 +330,7 @@ An enum # outputBuffer ``` -RWStructuredBuffer outputBuffer +RWStructuredBuffer 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(StructuredBuffer 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 scalarBuffer; +//TEST_INPUT:set outputBuffer = out ubuffer(data=[0 0 0 0 0 0], stride=12) +RWStructuredBuffer 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)); +} -- cgit v1.2.3