tests: Test constant propagation through swizzles.

The Load() method offsets are used for these tests since these must
solve to constants in order to pass.
This commit is contained in:
Francisco Casas 2022-12-09 20:02:03 -03:00 committed by Alexandre Julliard
parent cf17882189
commit 337b4c5db0
Notes: Alexandre Julliard 2023-01-24 22:27:58 +01:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Zebediah Figura (@zfigura)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/51
2 changed files with 64 additions and 0 deletions

View File

@ -141,6 +141,7 @@ vkd3d_shader_tests = \
tests/swizzle-5.shader_test \
tests/swizzle-6.shader_test \
tests/swizzle-7.shader_test \
tests/swizzle-constant-prop.shader_test \
tests/texture-load.shader_test \
tests/texture-load-offset.shader_test \
tests/texture-load-typed.shader_test \

View File

@ -0,0 +1,63 @@
% The texel offset argument to Load() must resolve to a constant integer;
% make sure that we can do so.
[require]
shader model >= 4.0
[texture 0]
size (4, 4)
1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4
5 5 5 5 6 6 6 6 7 7 7 7 8 8 8 8
9 9 9 9 10 10 10 10 11 11 11 11 12 12 12 12
13 13 13 13 14 14 14 14 14 15 15 15 16 16 16 16
[pixel shader todo]
Texture2D tex;
uniform int i;
float4 main() : sv_target
{
int4 a = {1, 2, i, i};
return 100 * a + tex.Load(int3(0, 0, 0), a.xy);
}
[test]
uniform 0 int 4
todo draw quad
todo probe all rgba (110, 210, 410, 410)
[pixel shader todo]
Texture2D tex;
uniform int i;
float4 main() : sv_target
{
int4 a = {0, 1, 2, i};
int4 b = a.yxww;
int3 c = b.wyx;
return 100 * b + tex.Load(int3(0, 0, 0), c.yz);
}
[test]
uniform 0 int 3
todo draw quad
todo probe all rgba (105, 5, 305, 305)
[pixel shader todo]
Texture2D tex;
uniform int i;
float4 main() : sv_target
{
int4 a = {1, 2, 3, i};
return tex.Load(int3(0, 0, 0), a.wzxx.yxw.zx);
}
[test]
uniform 0 int 1
todo draw quad
todo probe all rgba (14.0, 14.0, 14.0, 14.0)