Module: vkd3d Branch: master Commit: aa17d139be999dbb2bd044d69f8258638d665896 URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/aa17d139be999dbb2bd044d69f8258...
Author: Ethan Lee flibitijibibo@gmail.com Date: Fri Apr 28 22:28:05 2023 -0400
tests: Add a test for arrays with an expression as the index.
Currently, the compiler requires that dereferences be HLSL_IR_CONSTANT, so that it can compute the offset at compile time. However, scenarios such as this test will produce a dereference with HLSL_IR_EXPR, which will generate an error.
Passing this test in particular will require adding support for SM4 relative addressing, as well as support for non-constant indexing in general.
Signed-off-by: Ethan Lee flibitijibibo@gmail.com
---
Makefile.am | 1 + tests/array-index-expr.shader_test | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+)
diff --git a/Makefile.am b/Makefile.am index 954b0ffd..92c6d079 100644 --- a/Makefile.am +++ b/Makefile.am @@ -50,6 +50,7 @@ vkd3d_shader_tests = \ tests/arithmetic-int.shader_test \ tests/arithmetic-int-uniform.shader_test \ tests/arithmetic-uint.shader_test \ + tests/array-index-expr.shader_test \ tests/array-parameters.shader_test \ tests/asfloat.shader_test \ tests/asuint.shader_test \ diff --git a/tests/array-index-expr.shader_test b/tests/array-index-expr.shader_test new file mode 100644 index 00000000..8dda0c99 --- /dev/null +++ b/tests/array-index-expr.shader_test @@ -0,0 +1,25 @@ +[pixel shader todo] +uniform float4 f[3]; +uniform float2 i; + +float4 main() : sv_target +{ + return f[i.x + i.y]; +} + +[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 float4 9.0 10.0 11.0 12.0 +uniform 12 float4 0 0 0 0 +todo draw quad +todo probe all rgba (1.0, 2.0, 3.0, 4.0) +uniform 12 float4 1 0 0 0 +todo draw quad +todo probe all rgba (5.0, 6.0, 7.0, 8.0) +uniform 12 float4 0 1 0 0 +todo draw quad +todo probe all rgba (5.0, 6.0, 7.0, 8.0) +uniform 12 float4 1 1 0 0 +todo draw quad +todo probe all rgba (9.0, 10.0, 11.0, 12.0)