vkd3d-shader/hlsl: Implement round() intrinsic function in SM4.

Signed-off-by: Francisco Casas <fcasas@codeweavers.com>
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>
This commit is contained in:
Francisco Casas
2021-11-19 15:38:41 +01:00
committed by Alexandre Julliard
parent c632ac7605
commit 3dad54845e
6 changed files with 41 additions and 0 deletions

26
tests/round.shader_test Normal file
View File

@@ -0,0 +1,26 @@
[pixel shader]
float4 main(uniform float4 u) : sv_target
{
return round(u);
}
[test]
uniform 0 float4 -0.5 6.5 7.5 3.4
draw quad
probe all rgba (0.0, 6.0, 8.0, 3.0) 4
[pixel shader]
float4 main(uniform float4 u) : sv_target
{
float a = round(u.r);
int2 b = round(u.gb);
float4 res = float4(b, a, u.a);
return round(res);
}
[test]
uniform 0 float4 -0.5 6.5 7.5 3.4
draw quad
probe all rgba (6.0, 8.0, 0.0, 3.0) 4