[PATCH v3 0/1] MR189: tests: Add a test for arrays with an expression as the index.
See https://bugs.winehq.org/show_bug.cgi?id=54832 I'm starting to see this particular FIXME in quite a few games (Escape Goat 2, Murder Miners, and Little Racers STREET to name a few), and since I'm not sure how to fix this I figured I could at least provide a test for someone that knows more SM4 than me :P -- v3: tests: Add a test for arrays with an expression as the index. https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/189
From: Ethan Lee <flibitijibibo(a)gmail.com> See https://bugs.winehq.org/show_bug.cgi?id=54832 Signed-off-by: Ethan Lee <flibitijibibo(a)gmail.com> --- Makefile.am | 1 + tests/array-index-expr.shader_test | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 tests/array-index-expr.shader_test diff --git a/Makefile.am b/Makefile.am index b9fd06ee..b812b09f 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/asuint.shader_test \ tests/bitwise.shader_test \ diff --git a/tests/array-index-expr.shader_test b/tests/array-index-expr.shader_test new file mode 100644 index 00000000..0edcb8ee --- /dev/null +++ b/tests/array-index-expr.shader_test @@ -0,0 +1,25 @@ +% https://bugs.winehq.org/show_bug.cgi?id=54832 +[pixel shader notimpl] +uniform float4 f[2]; +uniform uint2 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 uint4 0 0 0 0 +todo draw quad +todo probe all rgba (1.0, 2.0, 3.0, 4.0) +uniform 8 uint4 1 0 0 0 +todo draw quad +todo probe all rgba (5.0, 6.0, 7.0, 8.0) +uniform 8 uint4 0 1 0 0 +todo draw quad +todo probe all rgba (5.0, 6.0, 7.0, 8.0) +uniform 8 uint4 1 1 0 0 +todo draw quad +todo probe all rgba (0.0, 0.0, 0.0, 0.0) -- GitLab https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/189
You want "todo", not "notimpl"; the latter is for cases where native d3dcompiler returns E_NOTIMPL (yes, it's supposed to return E_FAIL, but sometimes it doesn't.) In general it's best to use float uniforms if possible; uint uniforms are submitted differently for sm1 and sm4. -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/189#note_31603
For the record, I have patches for this that need to be cleaned up and rebased. I will see if I can send a MR soon. -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/189#note_31659
participants (4)
-
Ethan Lee -
Ethan Lee (@flibitijibibo) -
Francisco Casas (@fcasas) -
Zebediah Figura (@zfigura)