From: Giovanni Mascellani <gmascellani(a)codeweavers.com>
---
Makefile.am | 1 +
tests/hlsl-normalize.shader_test | 80 ++++++++++++++++++++++++++++++++
2 files changed, 81 insertions(+)
create mode 100644 tests/hlsl-normalize.shader_test
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);
+}
--
GitLab
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/23