mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-12-15 08:03:30 -08:00
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.
65 lines
1.3 KiB
Plaintext
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
|