From: Zebediah Figura zfigura@codeweavers.com
Co-authored-by: Francisco Casas fcasas@codeweavers.com --- Makefile.am | 1 + tests/side-effects.shader_test | 47 ++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 tests/side-effects.shader_test
diff --git a/Makefile.am b/Makefile.am index 29692432..4232e5d7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -143,6 +143,7 @@ vkd3d_shader_tests = \ tests/sampler-offset.shader_test \ tests/saturate.shader_test \ tests/shader-interstage-interface.shader_test \ + tests/side-effects.shader_test \ tests/sqrt.shader_test \ tests/step.shader_test \ tests/swizzle-constant-prop.shader_test \ diff --git a/tests/side-effects.shader_test b/tests/side-effects.shader_test new file mode 100644 index 00000000..b64a9dd4 --- /dev/null +++ b/tests/side-effects.shader_test @@ -0,0 +1,47 @@ +[pixel shader] +float4 main() : sv_target +{ + float x[3] = {0, 2, 3}; + + return x[x[1] = 1]; +} + +[test] +draw quad +probe all rgba (1.0, 1.0, 1.0, 1.0) + + +[pixel shader] +uint4 func(uint t) +{ + return uint4(t + 0, t + 1, t + 2, t + 3); +} + +float4 main() : sv_target +{ + return func(10)[func(0).y]; +} + +[test] +draw quad +todo probe all rgba (11.0, 11.0, 11.0, 11.0) + + +[pixel shader] +float4 func(void) +{ + static uint i; + + i += 1; + + return float4(0.1, 0.2, 0.3, 0.4) + i; +} + +float4 main() : sv_target +{ + return func()[func().x]; +} + +[test] +draw quad +todo probe all rgba (2.2, 2.2, 2.2, 2.2)