Signed-off-by: Francisco Casas fcasas@codeweavers.com
Btw, I am not sure if we should care about it, but there may be an argument for changing the tests a little so that the same value is not probed in two consecutive tests. Otherwise, some tests may pass just because of residual values. e.g. if the compilation succeeds in these tests but we were forgetting to store the value on the output semantic.
May 5, 2022 9:32 AM, "Giovanni Mascellani" gmascellani@codeweavers.com wrote:
Signed-off-by: Giovanni Mascellani gmascellani@codeweavers.com
Makefile.am | 1 + tests/matrix-semantics.shader_test | 71 ++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 tests/matrix-semantics.shader_test
diff --git a/Makefile.am b/Makefile.am index 2742e77c..d66f13a7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -107,6 +107,7 @@ vkd3d_shader_tests = \ tests/hlsl-vector-indexing-uniform.shader_test \ tests/logic-operations.shader_test \ tests/math.shader_test \
- tests/matrix-semantics.shader_test \
tests/nointerpolation.shader_test \ tests/pow.shader_test \ tests/preproc-if.shader_test \ diff --git a/tests/matrix-semantics.shader_test b/tests/matrix-semantics.shader_test new file mode 100644 index 00000000..7106eb86 --- /dev/null +++ b/tests/matrix-semantics.shader_test @@ -0,0 +1,71 @@ +[pixel shader] +float4x1 main() : sv_target +{
- return float4(1.0, 2.0, 3.0, 4.0);
+}
+[test] +todo draw quad +probe all rgba (1.0, 2.0, 3.0, 4.0)
+[pixel shader] +row_major float1x4 main() : sv_target +{
- return float4(1.0, 2.0, 3.0, 4.0);
+}
+[test] +todo draw quad +probe all rgba (1.0, 2.0, 3.0, 4.0)
+[require] +shader model >= 4.0
+[pixel shader] +row_major float4x1 main() : sv_target +{
- return float4(1.0, 2.0, 3.0, 4.0);
+}
+[test] +todo draw quad +probe all r 1.0
+[pixel shader] +float1x4 main() : sv_target +{
- return float4(1.0, 2.0, 3.0, 4.0);
+}
+[test] +todo draw quad +probe all r 1.0
+[pixel shader] +void main(out row_major float1x4 x : sv_target0, out float1x4 y : sv_target1) +{
- x = float4(1.0, 2.0, 3.0, 4.0);
- y = float4(5.0, 6.0, 7.0, 8.0);
+}
+[test] +todo draw quad +probe all rgba (1.0, 2.0, 3.0, 4.0)
+[pixel shader fail todo] +void main(out float1x4 x : sv_target0, out float1x4 y : sv_target1) +{
- x = float4(1.0, 2.0, 3.0, 4.0);
- y = float4(5.0, 6.0, 7.0, 8.0);
+}
+[pixel shader] +void main(out float1x4 x : sv_target0, out float1x4 y : sv_target4) +{
- x = float4(1.0, 2.0, 3.0, 4.0);
- y = float4(5.0, 6.0, 7.0, 8.0);
+}
+[test] +todo draw quad
+probe all r 1.0
2.36.0