diff options
Diffstat (limited to 'tests/bugs')
| -rw-r--r-- | tests/bugs/sv-clip-distance-array.slang | 19 | ||||
| -rw-r--r-- | tests/bugs/sv-clip-distance-out-param.slang | 28 | ||||
| -rw-r--r-- | tests/bugs/sv-clip-distance-split.slang | 35 | ||||
| -rw-r--r-- | tests/bugs/sv-clip-distance.slang | 32 |
4 files changed, 114 insertions, 0 deletions
diff --git a/tests/bugs/sv-clip-distance-array.slang b/tests/bugs/sv-clip-distance-array.slang new file mode 100644 index 000000000..f0c6c9acc --- /dev/null +++ b/tests/bugs/sv-clip-distance-array.slang @@ -0,0 +1,19 @@ +// sv-clip-distance.slang + +//TEST:SIMPLE(filecheck=CHECK): -profile sm_5_0 -stage vertex -entry mainVertex -target glsl + +//CHECK: out float gl_ClipDistance[2]; +//CHECK: gl_ClipDistance = + +struct VertexInput +{ + float3 position : POSITION; +}; + +void mainVertex(VertexInput vi, out float4 outPosition : SV_Position, out float outClips[2] : SV_ClipDistance) +{ + outPosition = float4(vi.position, 1); + outClips[0] = vi.position.x / 10; + outClips[1] = vi.position.z * 2; +} + diff --git a/tests/bugs/sv-clip-distance-out-param.slang b/tests/bugs/sv-clip-distance-out-param.slang new file mode 100644 index 000000000..776cd0c84 --- /dev/null +++ b/tests/bugs/sv-clip-distance-out-param.slang @@ -0,0 +1,28 @@ +// sv-clip-distance-out-param.slang + +//TEST:SIMPLE(filecheck=CHECK): -profile sm_5_0 -stage vertex -entry mainVertex -target glsl + +//CHECK: out float gl_ClipDistance[2]; +//CHECK: gl_ClipDistance[0] = +//CHECK: gl_ClipDistance[1] = + +struct VertexInput +{ + float3 position : POSITION; +}; + +struct VertexOutput +{ + float4 position : SV_Position; + + float clip0 : SV_ClipDistance0; + float clip1 : SV_ClipDistance1; +}; + +void mainVertex(VertexInput vi, out VertexOutput vo) +{ + vo.position = float4(vi.position, 1); + vo.clip0 = vi.position.x / 10; + vo.clip1 = vi.position.z * 2; +} + diff --git a/tests/bugs/sv-clip-distance-split.slang b/tests/bugs/sv-clip-distance-split.slang new file mode 100644 index 000000000..99adf4f31 --- /dev/null +++ b/tests/bugs/sv-clip-distance-split.slang @@ -0,0 +1,35 @@ +// sv-clip-distance-split.slang + +//TEST:SIMPLE(filecheck=CHECK): -profile sm_5_0 -stage vertex -entry mainVertex -target glsl + +//CHECK: out float gl_ClipDistance[3]; +//CHECK: gl_ClipDistance[0] = +//CHECK: gl_ClipDistance[1] = +//CHECK: gl_ClipDistance[2] = + +struct VertexInput +{ + float3 position : POSITION; +}; + +struct VertexOutput +{ + float4 position : SV_Position; + + float clip0 : SV_ClipDistance0; + float clip1 : SV_ClipDistance1; +}; + +VertexOutput mainVertex(VertexInput vi, out float outClip : SV_ClipDistance2) +{ + VertexOutput vo; + + vo.position = float4(vi.position, 1); + vo.clip0 = vi.position.x / 10; + vo.clip1 = vi.position.z * 2; + + outClip = vi.position.y + 1; + + return vo; +} + diff --git a/tests/bugs/sv-clip-distance.slang b/tests/bugs/sv-clip-distance.slang new file mode 100644 index 000000000..ccfafad85 --- /dev/null +++ b/tests/bugs/sv-clip-distance.slang @@ -0,0 +1,32 @@ +// sv-clip-distance.slang + +//TEST:SIMPLE(filecheck=CHECK): -profile sm_5_0 -stage vertex -entry mainVertex -target glsl + +//CHECK: out float gl_ClipDistance[2]; +//CHECK: gl_ClipDistance[0] = +//CHECK: gl_ClipDistance[1] = + +struct VertexInput +{ + float3 position : POSITION; +}; + +struct VertexOutput +{ + float4 position : SV_Position; + + float clip0 : SV_ClipDistance0; + float clip1 : SV_ClipDistance1; +}; + +VertexOutput mainVertex(VertexInput vi) +{ + VertexOutput vo; + + vo.position = float4(vi.position, 1); + vo.clip0 = vi.position.x / 10; + vo.clip1 = vi.position.z * 2; + + return vo; +} + |
