vkd3d/tests/hlsl/function-overload.shader_test
Elizabeth Figura d3ba810c98 tests: Stop probing all pixels when drawing a uniform colour.
This is simply unnecessary and wastes time.

As part of this, simply remove the "all" directive. Only for a couple of tests
is it even potentially interesting to validate all pixels (e.g.
nointerpolation.shader_test), and for those "all" is replaced with an explicit
(0, 0, 640, 480) rect.

In all other cases we just probe (0, 0).
2024-06-13 23:55:31 +02:00

137 lines
1.8 KiB
Plaintext

[pixel shader fail]
/* The same function signature cannot be defined twice. */
float func(int arg)
{
return 0.1;
}
float func(int arg)
{
return 0.1;
}
float4 main() : sv_target
{
return 0;
}
[pixel shader todo]
/* Test a basic overload. */
float func(int arg)
{
return 0.1;
}
float func(uint arg)
{
return 0.2;
}
float4 main() : sv_target
{
int i = 1;
uint u = 1;
return float4(func(i), func(u), func(int2(1, 1)), func(uint2(1, 1)));
}
[test]
todo(sm<6) draw quad
probe (0, 0) rgba (0.1, 0.2, 0.1, 0.2)
[pixel shader fail todo]
float func(int arg)
{
return 1.0;
}
float func(uint arg)
{
return 2.0;
}
float4 main() : sv_target
{
return func(3); // whether 3 is signed or unsigned is unspecified.
}
[pixel shader todo]
float func(int arg)
{
return 1.0;
}
float func(uint arg)
{
return 2.0;
}
float4 main() : sv_target
{
int a = 3;
uint b = 3l;
return float4(func(a), func(b), func(3u), func(3lu));
}
[test]
todo(sm<6) draw quad
todo(sm<6) probe (0,0) rgba (1.0, 2.0, 2.0, 2.0)
% float and float1 can be defined separately...
[pixel shader]
void func(float arg) {}
void func(float1 arg) {}
float4 main() : sv_target
{
return 1.0;
}
% ...but invoking them is considered ambiguous and fails.
[pixel shader fail todo]
void func(float arg) {}
void func(float1 arg) {}
float4 main() : sv_target
{
float x = 1.0;
func(x);
return 1.0;
}
[pixel shader fail todo]
void func(float arg) {}
void func(float1 arg) {}
float4 main() : sv_target
{
float1 x = {1.0};
func(x);
return 1.0;
}
% This holds true even if one variant isn't actually defined.
[pixel shader fail todo]
void func(float arg);
void func(float1 arg) {}
float4 main() : sv_target
{
float1 x = {1.0};
func(x);
return 1.0;
}