diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/bindings/multiple-parameter-blocks.slang | 20 | ||||
| -rw-r--r-- | tests/bugs/split-nested-types.hlsl | 30 | ||||
| -rw-r--r-- | tests/bugs/split-nested-types.slang | 14 | ||||
| -rw-r--r-- | tests/compute/rewriter-parameter-block-complex.hlsl | 2 | ||||
| -rw-r--r-- | tests/compute/rewriter-parameter-block.hlsl | 2 | ||||
| -rw-r--r-- | tests/compute/rewriter-use-ir-type.hlsl | 24 | ||||
| -rw-r--r-- | tests/compute/rewriter-use-ir-type.hlsl.expected.txt | 4 | ||||
| -rw-r--r-- | tests/compute/rewriter-use-ir-type.slang | 6 |
8 files changed, 88 insertions, 14 deletions
diff --git a/tests/bindings/multiple-parameter-blocks.slang b/tests/bindings/multiple-parameter-blocks.slang index 0a73fdcbd..5fcb9c6d5 100644 --- a/tests/bindings/multiple-parameter-blocks.slang +++ b/tests/bindings/multiple-parameter-blocks.slang @@ -29,20 +29,20 @@ 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 _SV01pL0 : register(t0, space0); +Texture2D _SV01pL1[4] : register(t1, space0); +SamplerState _SV01pL2 : register(s0, space0); -Texture2D _S12 : register(t0, space1); -Texture2D _S13[4] : register(t1, space1); -SamplerState _S14 : register(s0, space1); +Texture2D _SV02p1L0 : register(t0, space1); +Texture2D _SV02p1L1[4] : register(t1, space1); +SamplerState _SV02p1L2 : register(s0, space1); float4 main(float v : V) : SV_Target { - return use(_S1, _S3) - + use(_S2[int(v)], _S3) - + use(_S12, _S14) - + use(_S13[int(v)], _S14); + return use(_SV01pL0, _SV01pL2) + + use(_SV01pL1[int(v)], _SV01pL2) + + use(_SV02p1L0, _SV02p1L2) + + use(_SV02p1L1[int(v)], _SV02p1L2); } #endif diff --git a/tests/bugs/split-nested-types.hlsl b/tests/bugs/split-nested-types.hlsl new file mode 100644 index 000000000..210c119df --- /dev/null +++ b/tests/bugs/split-nested-types.hlsl @@ -0,0 +1,30 @@ +// array-size-static-const.hlsl +//TEST:COMPARE_HLSL: -profile ps_5_0 -target dxbc-assembly + +#ifdef __SLANG__ +import split_nested_types; +#else + +struct A { int x; }; + +struct B { float y; }; + +struct C { Texture2D t; SamplerState s; }; + +struct M +{ + A a; + B b; +}; + +#endif + +cbuffer C +{ + M m; +} + +float4 main() : SV_target +{ + return m.b.y; +} diff --git a/tests/bugs/split-nested-types.slang b/tests/bugs/split-nested-types.slang new file mode 100644 index 000000000..ccf95d906 --- /dev/null +++ b/tests/bugs/split-nested-types.slang @@ -0,0 +1,14 @@ +//TEST_IGNORE_FILE: + +struct A { int x; }; + +struct B { float y; }; + +struct C { Texture2D t; SamplerState s; }; + +struct M +{ + A a; + B b; + C c; +}; diff --git a/tests/compute/rewriter-parameter-block-complex.hlsl b/tests/compute/rewriter-parameter-block-complex.hlsl index 4dc312f95..fe7aae4a6 100644 --- a/tests/compute/rewriter-parameter-block-complex.hlsl +++ b/tests/compute/rewriter-parameter-block-complex.hlsl @@ -1,7 +1,5 @@ //TEST(compute):HLSL_COMPUTE:-xslang -no-checking //TEST(compute):COMPARE_COMPUTE:-xslang -use-ir - -// Doesn't work with IR yet. //DISABLED_TEST(compute):HLSL_COMPUTE:-xslang -no-checking -xslang -use-ir //TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out diff --git a/tests/compute/rewriter-parameter-block.hlsl b/tests/compute/rewriter-parameter-block.hlsl index 0cc06cc10..9d3140475 100644 --- a/tests/compute/rewriter-parameter-block.hlsl +++ b/tests/compute/rewriter-parameter-block.hlsl @@ -1,7 +1,5 @@ //TEST(compute):HLSL_COMPUTE:-xslang -no-checking //TEST(compute):COMPARE_COMPUTE:-xslang -use-ir - -// Doesn't work with rewriter + IR yet. //DISABLED_TEST(compute):HLSL_COMPUTE:-xslang -no-checking -xslang -use-ir //TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out diff --git a/tests/compute/rewriter-use-ir-type.hlsl b/tests/compute/rewriter-use-ir-type.hlsl new file mode 100644 index 000000000..8d388addf --- /dev/null +++ b/tests/compute/rewriter-use-ir-type.hlsl @@ -0,0 +1,24 @@ +//TEST(compute):HLSL_COMPUTE:-xslang -no-checking -xslang -use-ir + +//TEST_INPUT:cbuffer(data=[1 2 3 4 16 32 48 64]):dxbinding(0),glbinding(0) +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out + +import rewriter_use_ir_type; + +RWStructuredBuffer<int> outputBuffer : register(u0); + +cbuffer C : register(b0) +{ + Helper helper; +} + +[numthreads(4, 1, 1)] +void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +{ + uint tid = dispatchThreadID.x; + int inVal = tid; + + int outVal = helper.a[inVal]; + + outputBuffer[tid] = outVal; +}
\ No newline at end of file diff --git a/tests/compute/rewriter-use-ir-type.hlsl.expected.txt b/tests/compute/rewriter-use-ir-type.hlsl.expected.txt new file mode 100644 index 000000000..94ebaf900 --- /dev/null +++ b/tests/compute/rewriter-use-ir-type.hlsl.expected.txt @@ -0,0 +1,4 @@ +1 +2 +3 +4 diff --git a/tests/compute/rewriter-use-ir-type.slang b/tests/compute/rewriter-use-ir-type.slang new file mode 100644 index 000000000..8870f000f --- /dev/null +++ b/tests/compute/rewriter-use-ir-type.slang @@ -0,0 +1,6 @@ +//TEST_IGNORE_FILE: + +struct Helper +{ + int4 a; +};
\ No newline at end of file |
