From 8cd3defe0d6e82ea6de64d7c3fa0cd4385c2b448 Mon Sep 17 00:00:00 2001 From: Francisco Casas Date: Thu, 9 Mar 2023 21:08:16 -0300 Subject: [PATCH] tests: Test indexing of non-loads. --- Makefile.am | 1 + tests/expr-indexing.shader_test | 103 ++++++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 tests/expr-indexing.shader_test diff --git a/Makefile.am b/Makefile.am index 46057965..bff65a85 100644 --- a/Makefile.am +++ b/Makefile.am @@ -65,6 +65,7 @@ vkd3d_shader_tests = \ tests/distance.shader_test \ tests/entry-point-semantics.shader_test \ tests/exp.shader_test \ + tests/expr-indexing.shader_test \ tests/floor.shader_test \ tests/frac.shader_test \ tests/function-return.shader_test \ diff --git a/tests/expr-indexing.shader_test b/tests/expr-indexing.shader_test new file mode 100644 index 00000000..83a63d67 --- /dev/null +++ b/tests/expr-indexing.shader_test @@ -0,0 +1,103 @@ +[pixel shader] +float4 a, b; + +float4 main() : sv_target +{ + return (a + b)[1]; +} + +[test] +uniform 0 float4 1.0 2.0 3.0 4.0 +uniform 4 float4 5.0 6.0 7.0 8.0 +draw quad +probe all rgba (8.0, 8.0, 8.0, 8.0) + + +[pixel shader todo] +float4 a, b; +float i; + +float4 main() : sv_target +{ + return (a + b)[i]; +} + +[test] +uniform 0 float4 1.0 2.0 3.0 4.0 +uniform 4 float4 5.0 6.0 7.0 8.0 +uniform 8 float 2 +todo draw quad +todo probe all rgba (10.0, 10.0, 10.0, 10.0) + + +[pixel shader] +float4 a; + +float4 main() : sv_target +{ + return a.wyxz[3]; +} + +[test] +uniform 0 float4 1.0 2.0 3.0 4.0 +draw quad +probe all rgba (3.0, 3.0, 3.0, 3.0) + + +[pixel shader todo] +float4 a; +float i; + +float4 main() : sv_target +{ + return a.wyxz[i]; +} + +[test] +uniform 0 float4 1.0 2.0 3.0 4.0 +uniform 4 float 0 +todo draw quad +todo probe all rgba (4.0, 4.0, 4.0, 4.0) +uniform 4 float 2 +todo draw quad +todo probe all rgba (1.0, 1.0, 1.0, 1.0) + + +[pixel shader] +float4 a; + +float4 foo() +{ + return a; +} + +float4 main() : sv_target +{ + return foo()[3]; +} + +[test] +uniform 0 float4 1.0 2.0 3.0 4.0 +draw quad +probe all rgba (4.0, 4.0, 4.0, 4.0) + + +[pixel shader todo] +float4 a; +float i; + +float4 foo() +{ + return a; +} + +float4 main() : sv_target +{ + return foo()[i]; +} + +[test] +uniform 0 float4 1.0 2.0 3.0 4.0 +uniform 4 float 1 +todo draw quad +todo probe all rgba (2.0, 2.0, 2.0, 2.0)