Files
vkd3d/tests/hlsl/cast-to-half.shader_test
Giovanni Mascellani 303790875b tests/hlsl: Use explicit infinities in cast-to-half.shader_test.
We used to need workarounds when we used scanf() to parse float
numbers, but now we use strtof() which supports "inf" properly.
On the other hand, on some platforms it is the workaround that
now fails with a range error.
2025-10-27 18:53:38 +01:00

65 lines
1.3 KiB
Plaintext

[pixel shader]
uniform int i;
uniform uint u;
uniform bool b;
uniform float f;
float4 main() : sv_target
{
return float4(((half)i) + 1.5, ((half)u) - 2.5, ((half)b) / 2, f);
}
[test]
if(sm<4) uniform 0 float -1
if(sm<4) uniform 4 float 3
if(sm<4) uniform 8 float 1
if(sm<4) uniform 12 float 0.5
if(sm>=4) uniform 0 int -1
if(sm>=4) uniform 1 uint 3
if(sm>=4) uniform 2 int -2
if(sm>=4) uniform 3 float 0.5
draw quad
probe (0, 0) rgba (0.5, 0.5, 0.5, 0.5)
[pixel shader]
float4 main() : sv_target
{
int i = -1;
uint u = 3;
bool b = true;
float f = 0.5;
return float4(((half)i) + 1.5, ((half)u) - 2.5, ((half)b) / 2, f);
}
[test]
draw quad
probe (0, 0) rgba (0.5, 0.5, 0.5, 0.5)
[require]
shader model >= 6.2
native-16-bit
[pixel shader]
uniform float4 f;
float4 main() : sv_target
{
half4 h = f;
return h * half4(2.0, 2.0, 0.5, 0.5);
}
[test]
uniform 0 float4 65536.0 32768.0 65536.0 32768.0
draw quad
probe (0, 0) f32(inf, inf, inf, 16384.0)
uniform 0 float4 -65536.0 -32768.0 -65536.0 -32768.0
draw quad
probe (0, 0) f32(-inf, -inf, -inf, -16384.0)
uniform 0 float4 0.000062 5.0e-8 0.000062 5.0e-8
draw quad
probe (0, 0) rgba(0.00012397766, 1.1920929e-7, 0.000030994415, 0.0) 1
uniform 0 float4 -0.000062 -5.0e-8 -0.000062 -5.0e-8
draw quad
probe (0, 0) rgba(-0.00012397766, -1.1920929e-7, -0.000030994415, 0.0) 1