From: Zebediah Figura z.figura12@gmail.com
Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- Makefile.am | 12 ++++++++++-- tests/writemask-assignop-0.shader_test | 15 +++++++++++++++ tests/writemask-assignop-1.shader_test | 16 ++++++++++++++++ tests/writemask-assignop-2.shader_test | 13 +++++++++++++ tests/writemask-assignop-3.shader_test | 11 +++++++++++ 5 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 tests/writemask-assignop-0.shader_test create mode 100644 tests/writemask-assignop-1.shader_test create mode 100644 tests/writemask-assignop-2.shader_test create mode 100644 tests/writemask-assignop-3.shader_test
diff --git a/Makefile.am b/Makefile.am index a4121944..a79ad02f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -80,7 +80,11 @@ vkd3d_shader_tests = \ tests/swizzle-5.shader_test \ tests/swizzle-6.shader_test \ tests/swizzle-7.shader_test \ - tests/trigonometry.shader_test + tests/trigonometry.shader_test \ + tests/writemask-assignop-0.shader_test \ + tests/writemask-assignop-1.shader_test \ + tests/writemask-assignop-2.shader_test \ + tests/writemask-assignop-3.shader_test
vkd3d_test_headers = \ tests/d3d12_crosstest.h \ @@ -267,7 +271,11 @@ XFAIL_TESTS = \ tests/swizzle-5.shader_test \ tests/swizzle-6.shader_test \ tests/swizzle-7.shader_test \ - tests/trigonometry.shader_test + tests/trigonometry.shader_test \ + tests/writemask-assignop-0.shader_test \ + tests/writemask-assignop-1.shader_test \ + tests/writemask-assignop-2.shader_test \ + tests/writemask-assignop-3.shader_test endif
if BUILD_DEMOS diff --git a/tests/writemask-assignop-0.shader_test b/tests/writemask-assignop-0.shader_test new file mode 100644 index 00000000..374a38bb --- /dev/null +++ b/tests/writemask-assignop-0.shader_test @@ -0,0 +1,15 @@ +[pixel shader] +uniform float4 color; + +float4 main() : SV_target +{ + float4 ret = color; + ret.zw += float2(0.5, 0.3); + ret.yx -= float2(0.1, 0.5); + return ret; +} + +[test] +uniform 0 float4 0.0303 0.08 0.07 0.0202 +draw quad +probe all rgba (-0.4697, -0.02, 0.57, 0.3202) 2 diff --git a/tests/writemask-assignop-1.shader_test b/tests/writemask-assignop-1.shader_test new file mode 100644 index 00000000..61993257 --- /dev/null +++ b/tests/writemask-assignop-1.shader_test @@ -0,0 +1,16 @@ +[pixel shader] +uniform float4 color; + +float4 main() : SV_target +{ + float4 ret = color; + ret.zwx.yzx.xz += float2(0.4, 0.2); + ret.xzyw.wzx.xz.y.x -= 0.6; + ret.yxwz.yxwz *= -1; + return ret; +} + +[test] +uniform 0 float4 0.0303 0.08 0.07 0.0202 +draw quad +probe all rgba (0.5697, -0.08, -0.27, -0.4202) diff --git a/tests/writemask-assignop-2.shader_test b/tests/writemask-assignop-2.shader_test new file mode 100644 index 00000000..4e905e67 --- /dev/null +++ b/tests/writemask-assignop-2.shader_test @@ -0,0 +1,13 @@ +[pixel shader] +float4 main() : SV_target +{ + float4 ret = float4(2, 2, 2, 2); + 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 (2.1, 2.2, 0.8, 1.7) diff --git a/tests/writemask-assignop-3.shader_test b/tests/writemask-assignop-3.shader_test new file mode 100644 index 00000000..90957cb0 --- /dev/null +++ b/tests/writemask-assignop-3.shader_test @@ -0,0 +1,11 @@ +[pixel shader] +float4 main() : SV_target +{ + float4 ret = float4(2, 2, 2, 2); + ret.xyzw.xyzw -= float4(0.1, 0.2, 0.3, 0.4); + return ret; +} + +[test] +draw quad +probe all rgba (1.9, 1.8, 1.7, 1.6)