vkd3d-shader/hlsl: Partially implement trunc().

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
This commit is contained in:
Nikolay Sivov
2023-04-14 23:00:57 +02:00
committed by Alexandre Julliard
parent 5366ca7001
commit 4b3707aeb4
Notes: Alexandre Julliard 2023-04-28 22:03:23 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Zebediah Figura (@zfigura)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/161
6 changed files with 64 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
[pixel shader]
float4 main(uniform float4 u) : sv_target
{
return trunc(u);
}
[test]
uniform 0 float4 -0.5 6.5 7.5 3.4
draw quad
probe all rgba (0.0, 6.0, 7.0, 3.0)
uniform 0 float4 -1.5 6.5 7.5 3.4
draw quad
probe all rgba (-1.0, 6.0, 7.0, 3.0)
[pixel shader]
float4 main(uniform float4 u) : sv_target
{
float a = trunc(u.r);
int2 b = trunc(u.gb);
float4 res = float4(b, a, u.a);
return trunc(res);
}
[test]
uniform 0 float4 -0.5 6.5 7.5 3.4
draw quad
probe all rgba (6.0, 7.0, 0.0, 3.0)
[require]
shader model >= 4.0
[pixel shader]
float4 main(uniform int4 u) : sv_target
{
float a = trunc(u.r);
int2 b = trunc(u.gb);
float4 res = float4(b, a, u.a);
return trunc(res);
}
[test]
uniform 0 int4 -1 6 7 3
draw quad
probe all rgba (6.0, 7.0, -1.0, 3.0)