vkd3d/tests/hlsl/trigonometry.shader_test
Conor McCarthy 57280673e5 tests/shader-runner: Test shaders with dxcompiler.
The location of dxcompiler should be set during configuration with
'DXCOMPILER_LIBS=-L/path/to/dxcompiler', and then at runtime with
LD_LIBRARY_PATH, WINEPATH or PATH as applicable.

A new 'fail(sm<6)' decoration is needed on many shader declarations
because dxcompiler succeeds on many shaders which fail with fxc. The
opposite case is less common and is flagged with 'fail(sm>=6)'. A few
tests cause dxcompiler to crash or hang, so these are avoided using
[require], which now skips tests until reset instead of exiting. Also,
'todo(sm<6)' and 'todo(sm>=6)' are used to separate checking of results.
2023-10-11 22:21:14 +02:00

76 lines
2.1 KiB
Plaintext

[vertex shader]
void main(out float tex : texcoord, inout float4 pos : sv_position)
{
tex = (pos.x + 1) * 320;
}
[pixel shader]
float4 main(float tex : texcoord) : sv_target
{
tex = floor(tex + 0.25);
return float4(sin(tex), cos(tex), tan(tex), 0);
}
[test]
todo(sm>=6) draw quad
probe ( 0, 0) rgba ( 0.00000000, 1.00000000, 0.00000000, 0.0)
probe ( 1, 0) rgba ( 0.84147098, 0.54030231, 1.55740772, 0.0) 1024
probe ( 2, 0) rgba ( 0.90929743, -0.41614684, -2.18503986, 0.0) 1024
probe ( 3, 0) rgba ( 0.14112001, -0.98999250, -0.14254654, 0.0) 1024
probe ( 4, 0) rgba (-0.75680250, -0.65364362, 1.15782128, 0.0) 1024
probe ( 5, 0) rgba (-0.95892427, 0.28366219, -3.38051501, 0.0) 1024
probe ( 6, 0) rgba (-0.27941550, 0.96017029, -0.29100619, 0.0) 1024
probe ( 7, 0) rgba ( 0.65698660, 0.75390225, 0.87144798, 0.0) 1024
probe ( 8, 0) rgba ( 0.98935825, -0.14550003, -6.79971146, 0.0) 1024
probe ( 9, 0) rgba ( 0.41211849, -0.91113026, -0.45231566, 0.0) 1024
probe (10, 0) rgba (-0.54402111, -0.83907153, 0.64836083, 0.0) 1024
probe (11, 0) rgba (-0.99999021, 0.00442570, -225.95084645, 0.0) 2048
probe (12, 0) rgba (-0.53657292, 0.84385396, -0.63585993, 0.0) 1024
probe (13, 0) rgba ( 0.42016704, 0.90744678, 0.46302113, 0.0) 1024
probe (14, 0) rgba ( 0.99060736, 0.13673722, 7.24460662, 0.0) 1024
probe (15, 0) rgba ( 0.65028784, -0.75968791, -0.85599340, 0.0) 1024
[pixel shader]
uniform float4 a;
float4 main() : sv_target
{
return round(1000 * sin(a));
}
[test]
uniform 0 float4 0.0 0.52359877 2.61799387 3.14159265
todo(sm>=6) draw quad
probe all rgba (0.0, 500.0, 500.0, 0.0)
[pixel shader]
uniform float4 a;
float4 main() : sv_target
{
return round(1000 * cos(a));
}
[test]
uniform 0 float4 0.0 0.78539816 1.57079632 2.35619449
todo(sm>=6) draw quad
probe all rgba (1000.0, 707.0, -0.0, -707.0)
[pixel shader]
uniform float4 a;
float4 main() : sv_target
{
return round(1000 * tan(a));
}
[test]
% tan(pi/2) is an asymtote and therefore undefined
% so check 0, pi/4, 3pi/4, pi
uniform 0 float4 0.0 0.78539816 2.35619449 3.14159265
todo(sm>=6) draw quad
probe all rgba (0, 1000, -1000.0, 0)