diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/bindings/multiple-parameter-blocks.slang | 2 | ||||
| -rw-r--r-- | tests/bindings/parameter-blocks.slang | 10 | ||||
| -rw-r--r-- | tests/compute/cbuffer-legalize.slang | 36 | ||||
| -rw-r--r-- | tests/compute/cbuffer-legalize.slang.expected.txt | 4 |
4 files changed, 46 insertions, 6 deletions
diff --git a/tests/bindings/multiple-parameter-blocks.slang b/tests/bindings/multiple-parameter-blocks.slang index 093d2ea43..0a73fdcbd 100644 --- a/tests/bindings/multiple-parameter-blocks.slang +++ b/tests/bindings/multiple-parameter-blocks.slang @@ -1,4 +1,4 @@ -//TEST:COMPARE_HLSL:-no-mangle -use-ir -target dxbc-assembly -profile ps_5_1 -entry main -parameter-blocks-use-register-spaces +//TEST:COMPARE_HLSL:-use-ir -target dxbc-assembly -profile ps_5_1 -entry main -parameter-blocks-use-register-spaces // Confirm that Slang `ParameterBlock<T>` generates // parameter bindings like we expect. diff --git a/tests/bindings/parameter-blocks.slang b/tests/bindings/parameter-blocks.slang index 38f99d105..de976cc36 100644 --- a/tests/bindings/parameter-blocks.slang +++ b/tests/bindings/parameter-blocks.slang @@ -26,14 +26,14 @@ float4 main(float v : V) : SV_Target #else -Texture2D _S1 : register(t0, space0); -Texture2D _S2[4] : register(t1, space0); -SamplerState _S3 : register(s0, space0); +Texture2D t : register(t0, space0); +Texture2D ta[4] : register(t1, space0); +SamplerState s : register(s0, space0); float4 main(float v : V) : SV_Target { - return use(_S2[int(v)], _S3) - + use(_S1, _S3); + return use(ta[int(v)], s) + + use(t, s); } #endif diff --git a/tests/compute/cbuffer-legalize.slang b/tests/compute/cbuffer-legalize.slang new file mode 100644 index 000000000..52641ef51 --- /dev/null +++ b/tests/compute/cbuffer-legalize.slang @@ -0,0 +1,36 @@ +//TEST(compute):COMPARE_COMPUTE:-xslang -use-ir + +//TEST_INPUT:cbuffer(data=[1 2 3 4]):dxbinding(0),glbinding(0) +//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 P +{ + uint4 c; + Texture2D t; + SamplerState s; +}; + +float4 test(P p) +{ + return p.t.SampleLevel(p.s, float2(0.0), 0) + p.c; +} + +cbuffer C +{ + P p; +}; + +RWStructuredBuffer<float> outputBuffer; + +[numthreads(1, 1, 1)] +void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +{ + float4 outVal = test(p); + + outputBuffer[0] = outVal.x; + outputBuffer[1] = outVal.y; + outputBuffer[2] = outVal.z; + outputBuffer[3] = outVal.w; +}
\ No newline at end of file diff --git a/tests/compute/cbuffer-legalize.slang.expected.txt b/tests/compute/cbuffer-legalize.slang.expected.txt new file mode 100644 index 000000000..94fadffd5 --- /dev/null +++ b/tests/compute/cbuffer-legalize.slang.expected.txt @@ -0,0 +1,4 @@ +40000000 +40400000 +40800000 +40A00000 |
