tests: Import HLSL swizzle tests from Wine.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura 2020-09-30 21:01:19 -05:00 committed by Alexandre Julliard
parent 68ef1de6ec
commit e26a0f95d6
9 changed files with 117 additions and 1 deletions

View File

@ -49,6 +49,16 @@ vkd3d_cross_tests = \
vkd3d_shader_runners = \
tests/shader_runner_d3d12
vkd3d_shader_tests = \
tests/swizzle-0.shader_test \
tests/swizzle-1.shader_test \
tests/swizzle-2.shader_test \
tests/swizzle-3.shader_test \
tests/swizzle-4.shader_test \
tests/swizzle-5.shader_test \
tests/swizzle-6.shader_test \
tests/swizzle-7.shader_test
vkd3d_test_headers = \
tests/d3d12_crosstest.h \
tests/d3d12_test_utils.h
@ -159,13 +169,22 @@ TEST_EXTENSIONS = .shader_test
if BUILD_TESTS
check_PROGRAMS = $(vkd3d_tests) $(vkd3d_cross_tests) $(vkd3d_shader_runners)
TESTS = $(vkd3d_tests) $(vkd3d_cross_tests)
TESTS = $(vkd3d_tests) $(vkd3d_cross_tests) $(vkd3d_shader_tests)
tests_d3d12_LDADD = $(LDADD) @PTHREAD_LIBS@ @VULKAN_LIBS@
tests_d3d12_invalid_usage_LDADD = $(LDADD) @VULKAN_LIBS@
tests_shader_runner_d3d12_LDADD = $(LDADD) @VULKAN_LIBS@
tests_vkd3d_api_LDADD = libvkd3d.la @VULKAN_LIBS@
tests_vkd3d_shader_api_LDADD = libvkd3d-shader.la
SHADER_TEST_LOG_COMPILER = tests/shader_runner_d3d12
XFAIL_TESTS = \
tests/swizzle-0.shader_test \
tests/swizzle-1.shader_test \
tests/swizzle-2.shader_test \
tests/swizzle-3.shader_test \
tests/swizzle-4.shader_test \
tests/swizzle-5.shader_test \
tests/swizzle-6.shader_test \
tests/swizzle-7.shader_test
endif
if BUILD_DEMOS

View File

@ -0,0 +1,15 @@
[pixel shader]
uniform float4 color;
float4 main() : sv_target
{
float4 ret = color;
ret.gb = ret.ra;
ret.ra = float2(0.0101, 0.0404);
return ret;
}
[test]
uniform 0 float4 0.0303 0.08 0.07 0.0202
draw quad
probe all rgba (0.0101, 0.0303, 0.0202, 0.0404)

View File

@ -0,0 +1,11 @@
[pixel shader]
float4 main() : SV_target
{
float4 ret = float4(0.1, 0.2, 0.3, 0.4);
ret.wyz.yx = float2(0.5, 0.6).yx;
return ret;
}
[test]
draw quad
probe all rgba (0.1, 0.6, 0.3, 0.5)

View File

@ -0,0 +1,11 @@
[pixel shader]
float4 main() : SV_target
{
float4 ret;
ret.zwyx = float4(0.1, 0.2, 0.3, 0.4);
return ret;
}
[test]
draw quad
probe all rgba (0.4, 0.3, 0.1, 0.2)

View File

@ -0,0 +1,14 @@
[pixel shader]
float4 main() : SV_target
{
float4 ret;
ret.yw.y = 0.1;
ret.xzy.yz.y.x = 0.2;
ret.yzwx.yzwx.wz.y = 0.3;
ret.zxy.xyz.zxy.xy.y = 0.4;
return ret;
}
[test]
draw quad
probe all rgba (0.3, 0.2, 0.4, 0.1)

View File

@ -0,0 +1,13 @@
[pixel shader]
float4 main() : SV_target
{
float4 ret;
ret.yxz.yx = float2(0.1, 0.2);
ret.w.x = 0.3;
ret.wzyx.zyx.yx.x = 0.4;
return ret;
}
[test]
draw quad
probe all rgba (0.1, 0.2, 0.4, 0.3)

View File

@ -0,0 +1,10 @@
[pixel shader]
float4 main() : SV_target
{
float4 ret = float4(0.1, 0.2, 0.3, 0.4).ywxz.zyyz;
return ret;
}
[test]
draw quad
probe all rgba (0.1, 0.4, 0.4, 0.1)

View File

@ -0,0 +1,12 @@
[pixel shader]
float4 main() : SV_target
{
float4 ret = float4(0.1, 0.2, 0.3, 0.4);
ret.yxwz = ret;
ret = ret.wyzx;
return ret;
}
[test]
draw quad
probe all rgba (0.3, 0.1, 0.4, 0.2)

View File

@ -0,0 +1,11 @@
[pixel shader]
float4 main() : SV_target
{
float4 ret;
ret.xyzw.xyzw = float4(0.1, 0.2, 0.3, 0.4);
return ret;
}
[test]
draw quad
probe all rgba (0.1, 0.2, 0.3, 0.4)