mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
These tests should actually compile and run in SM1, which is possible if we pass the int and uint uniforms in the expected IEEE 754 float format for SM1 shaders. Also, bools should be passed as 1.0f or 0.0f to SM1.
59 lines
976 B
Plaintext
59 lines
976 B
Plaintext
[pixel shader]
|
|
uniform float4 x;
|
|
uniform float4 y;
|
|
|
|
float4 main() : SV_TARGET
|
|
{
|
|
return ldexp(x, y);
|
|
}
|
|
|
|
[test]
|
|
uniform 0 float4 2.0 3.0 4.0 5.0
|
|
uniform 4 float4 0.0 -10.0 10.0 100.0
|
|
draw quad
|
|
probe all rgba (2.0, 0.00292968750, 4096.0, 6.33825300e+030) 2
|
|
|
|
|
|
[pixel shader todo(sm<4)]
|
|
uniform int4 x;
|
|
uniform int4 y;
|
|
|
|
float4 main() : SV_TARGET
|
|
{
|
|
return ldexp(x, y);
|
|
}
|
|
|
|
[test]
|
|
if(sm<4) uniform 0 float4 2 3 4 5
|
|
if(sm<4) uniform 4 float4 0 -10 10 100
|
|
if(sm>=4) uniform 0 int4 2 3 4 5
|
|
if(sm>=4) uniform 4 int4 0 -10 10 100
|
|
todo(sm<4) draw quad
|
|
probe all rgba (2.0, 0.00292968750, 4096.0, 6.33825300e+030) 2
|
|
|
|
|
|
[pixel shader]
|
|
float4 main() : sv_target
|
|
{
|
|
float2x3 a = {1, 2, 3, 4, 5, 6};
|
|
float3x2 b = {6, 5, 4, 3, 2, 1};
|
|
|
|
float2x2 r = ldexp(a, b);
|
|
return float4(r);
|
|
}
|
|
|
|
[test]
|
|
draw quad
|
|
probe all rgba (64.0, 64.0, 64.0, 40.0)
|
|
|
|
|
|
[pixel shader fail]
|
|
float4 main() : sv_target
|
|
{
|
|
float2x2 a = {1, 2, 3, 4};
|
|
float1 b = {2};
|
|
|
|
ldexp(a, b);
|
|
return 0;
|
|
}
|