From b45e5aa07cf5e2e0bd23cf4c14bb40104b0b641c Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 28 Jun 2023 16:09:06 -0700 Subject: Fix parameter block loads in GLSL emit. (#2946) * Fix parameter block loads in GLSL emit. * Revert `[NoSideEffect]` declarations in DXR1.1 API. * fix. --------- Co-authored-by: Yong He --- tests/bugs/parameter-block-load.slang | 31 ++++++++++++++++++++++ tests/bugs/parameter-block-load.slang.expected.txt | 2 ++ 2 files changed, 33 insertions(+) create mode 100644 tests/bugs/parameter-block-load.slang create mode 100644 tests/bugs/parameter-block-load.slang.expected.txt (limited to 'tests') diff --git a/tests/bugs/parameter-block-load.slang b/tests/bugs/parameter-block-load.slang new file mode 100644 index 000000000..5828d021e --- /dev/null +++ b/tests/bugs/parameter-block-load.slang @@ -0,0 +1,31 @@ +// Test reading parameter block from a member function. + +//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -vk -output-using-type +//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx11 -profile sm_5_0 -output-using-type + +//TEST_INPUT:ubuffer(data=[0], stride=4):out,name=gOutputBuffer +RWStructuredBuffer gOutputBuffer; + +struct MyParameters +{ + int x; + int y; + StructuredBuffer buffer1; + + RWStructuredBuffer buffer; + int calc() + { + buffer[0].x = 3; + return x + y + buffer[0].x; + } +} + +//TEST_INPUT: set gObj = new MyParameters{2, 3, new StructuredBuffer{0.0}, new RWStructuredBuffer{{0,0,0}}} +ParameterBlock gObj; + +[numthreads(1, 1, 1)] +void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +{ + float result = 0.0; + gOutputBuffer[dispatchThreadID.x] = gObj.calc(); +} diff --git a/tests/bugs/parameter-block-load.slang.expected.txt b/tests/bugs/parameter-block-load.slang.expected.txt new file mode 100644 index 000000000..e6751c365 --- /dev/null +++ b/tests/bugs/parameter-block-load.slang.expected.txt @@ -0,0 +1,2 @@ +type: int32_t +8 -- cgit v1.2.3