diff --git a/Makefile.am b/Makefile.am index cc06a839..110b66f6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -96,6 +96,7 @@ vkd3d_shader_tests = \ tests/hlsl-matrix-indexing.shader_test \ tests/hlsl-mul.shader_test \ tests/hlsl-nested-arrays.shader_test \ + tests/hlsl-normalize.shader_test \ tests/hlsl-numeric-constructor-truncation.shader_test \ tests/hlsl-numeric-types.shader_test \ tests/hlsl-return-implicit-conversion.shader_test \ diff --git a/tests/hlsl-normalize.shader_test b/tests/hlsl-normalize.shader_test new file mode 100644 index 00000000..3e4bb83e --- /dev/null +++ b/tests/hlsl-normalize.shader_test @@ -0,0 +1,80 @@ +[pixel shader] +uniform float4 x; + +float4 main() : SV_TARGET +{ + return normalize(x); +} + +[test] +uniform 0 float4 2.0 3.0 4.0 5.0 +todo draw quad +probe all rgba (0.272165537, 0.408248305, 0.544331074, 0.680413842) 1 + +[pixel shader] +uniform float3 x; + +float4 main() : SV_TARGET +{ + return float4(normalize(x), 0.0); +} + +[test] +uniform 0 float4 2.0 3.0 4.0 0.0 +todo draw quad +probe all rgba (0.371390700, 0.557086051, 0.742781401, 0.0) 1 + +[pixel shader] +uniform float2 x; + +float4 main() : SV_TARGET +{ + return float4(normalize(x), 0.0, 0.0); +} + +[test] +uniform 0 float4 2.0 3.0 0.0 0.0 +todo draw quad +probe all rgba (0.554700196, 0.832050323, 0.0, 0.0) 1 + +[pixel shader] +uniform float1 x; + +float4 main() : SV_TARGET +{ + return normalize(x); +} + +[test] +uniform 0 float4 2.0 0.0 0.0 0.0 +todo draw quad +probe all rgba (1.0, 1.0, 1.0, 1.0) + +[pixel shader] +uniform float x; + +float4 main() : SV_TARGET +{ + return normalize(x); +} + +[test] +uniform 0 float4 2.0 0.0 0.0 0.0 +todo draw quad +probe all rgba (1.0, 1.0, 1.0, 1.0) + +[pixel shader fail] +uniform float1x3 x; + +float4 main() : SV_TARGET +{ + return normalize(x); +} + +[pixel shader fail] +uniform float4x1 x; + +float4 main() : SV_TARGET +{ + return normalize(x); +}