mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08:00
tests: Test shader compilation within braces.
This commit is contained in:
parent
1d24587405
commit
9fa8921b50
Notes:
Henri Verbeet
2024-08-20 21:34:57 +02:00
Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1006
@ -152,6 +152,27 @@ PixelShader ps1 = CompileShader(ps_2_0, main());
|
|||||||
PixelShader ps2 = ps1;
|
PixelShader ps2 = ps1;
|
||||||
|
|
||||||
|
|
||||||
|
[pixel shader fail(sm<6)]
|
||||||
|
float4 main() : sv_target { return 0; }
|
||||||
|
PixelShader ps1 = 42;
|
||||||
|
|
||||||
|
[pixel shader todo]
|
||||||
|
float4 main() : sv_target { return 0; }
|
||||||
|
PixelShader ps1 = {42}; // braces make the type checking more permissive.
|
||||||
|
|
||||||
|
% This compiles, but the default value of "f" is not written.
|
||||||
|
[pixel shader todo fail(sm>=6)]
|
||||||
|
float4 fun() : sv_target { return 0; }
|
||||||
|
float f = {CompileShader(ps_2_0, fun())};
|
||||||
|
float4 main() : sv_target { return f; }
|
||||||
|
|
||||||
|
% This also compiles, but the default value of "f" is not written.
|
||||||
|
[pixel shader todo fail(sm>=6)]
|
||||||
|
float4 fun() : sv_target { return 0; }
|
||||||
|
float4 f = {1, 2, compile ps_2_0 fun(), 4};
|
||||||
|
float4 main() : sv_target { return f; }
|
||||||
|
|
||||||
|
|
||||||
[pixel shader fail(sm<6)]
|
[pixel shader fail(sm<6)]
|
||||||
float4 fun() : sv_target { return 0; }
|
float4 fun() : sv_target { return 0; }
|
||||||
|
|
||||||
@ -162,6 +183,37 @@ float4 main() : sv_target
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[require]
|
||||||
|
shader model >= 5.0
|
||||||
|
shader model < 6.0
|
||||||
|
|
||||||
|
|
||||||
|
% The following test segfaults on DXC.
|
||||||
|
[pixel shader todo]
|
||||||
|
float f;
|
||||||
|
|
||||||
|
float4 foo(uniform float r) : sv_target { return r; }
|
||||||
|
|
||||||
|
struct apple
|
||||||
|
{
|
||||||
|
float4 f;
|
||||||
|
PixelShader ps;
|
||||||
|
} a = {1, 2, 3, 4, compile ps_4_0 foo(f * f)};
|
||||||
|
|
||||||
|
technique
|
||||||
|
{
|
||||||
|
pass
|
||||||
|
{
|
||||||
|
PixelShader = a.ps;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
float4 main() : sv_target { return 0; }
|
||||||
|
|
||||||
|
[test]
|
||||||
|
todo draw quad
|
||||||
|
probe (0, 0) rgba (0, 0, 0, 0)
|
||||||
|
|
||||||
|
|
||||||
[require]
|
[require]
|
||||||
shader model >= 4.0
|
shader model >= 4.0
|
||||||
|
Loading…
Reference in New Issue
Block a user