mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08:00
137 lines
1.8 KiB
Plaintext
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 all 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 all 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;
|
|
}
|