Module: vkd3d Branch: master Commit: d9eee8f24a150233604e9146fa7ec5533352ac96 URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=d9eee8f24a150233604e9146...
Author: Zebediah Figura zfigura@codeweavers.com Date: Thu Sep 9 21:11:34 2021 -0500
tests: Test casts to int.
Signed-off-by: Zebediah Figura zfigura@codeweavers.com Signed-off-by: Matteo Bruni mbruni@codeweavers.com Signed-off-by: Giovanni Mascellani gmascellani@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
Makefile.am | 2 ++ tests/cast-to-int.shader_test | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+)
diff --git a/Makefile.am b/Makefile.am index a1b6eb3..da57a68 100644 --- a/Makefile.am +++ b/Makefile.am @@ -56,6 +56,7 @@ vkd3d_shader_runners = \ vkd3d_shader_tests = \ tests/cast-to-float.shader_test \ tests/cast-to-half.shader_test \ + tests/cast-to-int.shader_test \ tests/conditional.shader_test \ tests/hlsl-array-dimension.shader_test \ tests/hlsl-bool-cast.shader_test \ @@ -270,6 +271,7 @@ SHADER_TEST_LOG_COMPILER = tests/shader_runner_d3d12 XFAIL_TESTS = \ tests/cast-to-float.shader_test \ tests/cast-to-half.shader_test \ + tests/cast-to-int.shader_test \ tests/conditional.shader_test \ tests/hlsl-array-dimension.shader_test \ tests/hlsl-bool-cast.shader_test \ diff --git a/tests/cast-to-int.shader_test b/tests/cast-to-int.shader_test new file mode 100644 index 0000000..c7d1e23 --- /dev/null +++ b/tests/cast-to-int.shader_test @@ -0,0 +1,41 @@ +[pixel shader] + +float4 main(uniform float f, uniform uint u, uniform bool b, uniform half h) : sv_target +{ + float4 ret; + + ret.x = ((float)(int)f) - 1.5; + ret.y = ((float)(int)u) + 2.5; + ret.z = ((float)(int)b) / 2; + ret.w = ((float)(int)h) + 3.5; + return ret; +} + +[test] +uniform 0 float 2.6 +uniform 1 int -2 +uniform 2 int -2 +uniform 3 float -3.6 +draw quad +probe all rgba (0.5, 0.5, 0.5, 0.5) + +[pixel shader] + +float4 main() : sv_target +{ + float f = 2.6; + uint u = 0xfffffffe; + bool b = true; + half h = -3.6; + float4 ret; + + ret.x = ((float)(int)f) - 1.5; + ret.y = ((float)(int)u) + 2.5; + ret.z = ((float)(int)b) / 2; + ret.w = ((float)(int)h) + 3.5; + return ret; +} + +[test] +draw quad +probe all rgba (0.5, 0.5, 0.5, 0.5)