diff options
| author | Yong He <yonghe@outlook.com> | 2024-12-18 11:33:55 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-18 11:33:55 -0800 |
| commit | ae04e604d43d169bcba7f24c8c23a0fdf4cbb483 (patch) | |
| tree | 899c872ec5cc5c6ccc27930ef6971a0baf018569 /tests | |
| parent | 41c627fd420a644f0ae86e36f4752e820e2d683c (diff) | |
Allow `Optional`, `Tuple` and `bool` to be used in varying input/output. (#5889)
* Allow `Optional` and `Tuple` to be used in varying input/output.
* Fix.
* format code
* Fix.
* Fix test.
* Fix.
* enhance test.
* Fix.
* format code
---------
Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/spirv/matrix-vertex-input.slang | 23 | ||||
| -rw-r--r-- | tests/spirv/optional-vertex-output.slang | 26 |
2 files changed, 49 insertions, 0 deletions
diff --git a/tests/spirv/matrix-vertex-input.slang b/tests/spirv/matrix-vertex-input.slang new file mode 100644 index 000000000..fc4af8c61 --- /dev/null +++ b/tests/spirv/matrix-vertex-input.slang @@ -0,0 +1,23 @@ +//TEST:SIMPLE(filecheck=CHECK): -target spirv +// CHECK: OpVectorTimesMatrix + +struct Vertex +{ + float4x4 m; + float4 pos; +} + +struct VertexOut +{ + float4 pos : SV_Position; + float4 color; +} + +[shader("vertex")] +VertexOut vertMain(Vertex v) +{ + VertexOut o; + o.pos = mul(v.m, v.pos); + o.color = v.pos; + return o; +}
\ No newline at end of file diff --git a/tests/spirv/optional-vertex-output.slang b/tests/spirv/optional-vertex-output.slang new file mode 100644 index 000000000..df15befa2 --- /dev/null +++ b/tests/spirv/optional-vertex-output.slang @@ -0,0 +1,26 @@ +//TEST:SIMPLE(filecheck=CHECK): -target spirv + +// Test that we can use Optional<T> or bool types in varying input or outputs. + +// CHECK: OpDecorate %i_inA_value Location 0 +// CHECK: OpDecorate %i_inA_hasValue Location 1 +// CHECK: OpDecorate %entryPointParam_vertMain_a_value Location 0 +// CHECK: OpDecorate %entryPointParam_vertMain_a_hasValue Location 1 + +struct VIn { + Optional<float> inA; +} + +struct VSOut { + Optional<float> a; + bool outputValues[3]; +}; + +[shader("vertex")] +VSOut vertMain(VIn i) +{ + VSOut o; + o.a = i.inA; + o.outputValues = { true, false, true }; + return o; +}
\ No newline at end of file |
