Module: vkd3d Branch: master Commit: 4b8a4809d189959017de1fed5245d6fb52603919 URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/4b8a4809d189959017de1fed5245d6...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Fri Sep 22 18:23:46 2023 +0200
tests: Add a test for interpolation modifiers specified on structure fields.
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com
---
tests/hlsl/nointerpolation.shader_test | 132 +++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+)
diff --git a/tests/hlsl/nointerpolation.shader_test b/tests/hlsl/nointerpolation.shader_test index 8f15be6e..e3152780 100644 --- a/tests/hlsl/nointerpolation.shader_test +++ b/tests/hlsl/nointerpolation.shader_test @@ -25,3 +25,135 @@ float4 main(nointerpolation float4 t : texcoord) : sv_target [test] draw triangle list 3 probe all rgba (0.0, 1.0, 0.0, 1.0) + +[vertex shader] +struct ps_input +{ + nointerpolation float4 t : texcoord; +}; + +void main(uint id : sv_vertexid, inout ps_input input, out float4 pos : sv_position) +{ + float2 coords = float2((id << 1) & 2, id & 2); + pos = float4(coords * float2(2, -2) + float2(-1, 1), 0, 1); +} + +[pixel shader] +struct ps_input +{ + nointerpolation float4 t : texcoord; +}; + +float4 main(ps_input input) : sv_target +{ + return input.t; +} + +[test] +draw triangle list 3 +todo probe all rgba (0.0, 1.0, 0.0, 1.0) + +[vertex shader] +struct ps_input +{ + nointerpolation float4 t : texcoord; +}; + +void main(uint id : sv_vertexid, inout ps_input input, out float4 pos : sv_position) +{ + float2 coords = float2((id << 1) & 2, id & 2); + pos = float4(coords * float2(2, -2) + float2(-1, 1), 0, 1); +} + +[pixel shader] +struct ps_input +{ + float4 t : texcoord; +}; + +float4 main(nointerpolation ps_input input) : sv_target +{ + return input.t; +} + +[test] +draw triangle list 3 +probe all rgba (0.0, 1.0, 0.0, 1.0) + +[vertex shader] +struct ps_input +{ + nointerpolation float4 t : texcoord; +}; + +void main(uint id : sv_vertexid, inout ps_input input, out float4 pos : sv_position) +{ + float2 coords = float2((id << 1) & 2, id & 2); + pos = float4(coords * float2(2, -2) + float2(-1, 1), 0, 1); +} + +[pixel shader todo] +struct ps_input +{ + nointerpolation float4 t : texcoord; +}; + +float4 main(centroid ps_input input) : sv_target +{ + return input.t; +} + +[test] +todo draw triangle list 3 +todo probe all rgba (0.0, 1.0, 0.0, 1.0) + +[vertex shader] +struct ps_input +{ + nointerpolation float4 t : texcoord; +}; + +void main(uint id : sv_vertexid, inout ps_input input, out float4 pos : sv_position) +{ + float2 coords = float2((id << 1) & 2, id & 2); + pos = float4(coords * float2(2, -2) + float2(-1, 1), 0, 1); +} + +[pixel shader todo] +struct ps_input +{ + centroid float4 t : texcoord; +}; + +float4 main(nointerpolation ps_input input) : sv_target +{ + return input.t; +} + +[test] +todo draw triangle list 3 +todo probe all rgba (0.0, 1.0, 0.0, 1.0) + +[vertex shader fail] +struct ps_input +{ + nointerpolation centroid float4 t : texcoord; +}; + +void main(uint id : sv_vertexid, inout ps_input input, out float4 pos : sv_position) +{ + float2 coords = float2((id << 1) & 2, id & 2); + pos = float4(coords * float2(2, -2) + float2(-1, 1), 0, 1); +} + +[vertex shader todo] +struct ps_input +{ + nointerpolation float4 t : texcoord; +}; + +void main(uint id : sv_vertexid, inout centroid ps_input input, out float4 pos : sv_position) +{ + float2 coords = float2((id << 1) & 2, id & 2); + pos = float4(coords * float2(2, -2) + float2(-1, 1), 0, 1); +}