vkd3d/tests/hlsl/minimum-precision.shader_test

76 lines
1.4 KiB
Plaintext
Raw Normal View History

[require]
shader model >= 4.0
[pixel shader]
float4 main() : sv_target
{
min16float4 a = {0, 1, 2, 3};
min10float2 b = {4, 5};
min16int3 c = {6.4, 7, 8};
min12int d = 9.4;
min16uint4x2 e = {14.4, 15, 16, 17, 18, 19, 20, 21};
vector<min10float, 3> g = {22, 23, 24};
matrix<min16uint, 3, 2> h = {25.4, 26, 27, 28, 29, 30};
return mul(e, b) + a + c.xyzx + d + g.xxyz + h[2].xyxy;
}
[test]
draw quad
probe (0, 0) rgba (197.0, 218.0, 238.0, 257.0)
[rtv 0]
format r32g32b32a32-uint
size (2d, 640, 480)
[pixel shader]
uniform min16uint2 u;
uint4 main() : sv_target
{
min16uint i = 0x7fff, j = 0xffff;
return uint4(u.x + i, u.y + j, 0, 0);
}
[require]
shader model >= 4.0
shader model < 6.0
[test]
uniform 0 uint4 0 0 0 0
draw quad
probe (0, 0) rgbaui (0x7fff, 0xffff, 0, 0)
[require]
shader model >= 6.0
[test]
uniform 0 uint4 0 0 0 0
draw quad
probe (0, 0) rgbaui (0x7fff, 0xffffffff, 0, 0)
% The code d3dcompiler_47 produces for this appears correct, but the result
% is still zero in Windows.
[pixel shader]
uniform min16uint4 u;
uniform uint i;
uint4 main() : sv_target
{
min16uint arr[4] = {1, 2, 0x7fff, 0xffff};
return uint4(u.x + arr[i], u.y + arr[i + 1], 0, 0);
}
[test]
uniform 0 uint4 0 0 0 0
uniform 4 uint 2
draw quad
probe (0, 0) rgbaui (0x7fff, 0xffffffff, 0, 0)
uniform 0 uint4 0 0 0 0
uniform 4 uint 0
draw quad
probe (0, 0) rgbaui (1, 2, 0, 0)