Module: vkd3d Branch: master Commit: 95489899bee957a4654a0516007cdf238ab93cdc URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/95489899bee957a4654a0516007cdf...
Author: Conor McCarthy cmccarthy@codeweavers.com Date: Thu Apr 18 11:37:25 2024 +1000
vkd3d-shader/spirv: Handle the WAVE_ANY_TRUE instruction.
---
libs/vkd3d-shader/spirv.c | 3 +++ tests/hlsl/wave-ops-float.shader_test | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c index 848d4e4d..0a52e1a7 100644 --- a/libs/vkd3d-shader/spirv.c +++ b/libs/vkd3d-shader/spirv.c @@ -9766,6 +9766,8 @@ static SpvOp map_wave_bool_op(enum vkd3d_shader_opcode handler_idx) return SpvOpGroupNonUniformAllEqual; case VKD3DSIH_WAVE_ALL_TRUE: return SpvOpGroupNonUniformAll; + case VKD3DSIH_WAVE_ANY_TRUE: + return SpvOpGroupNonUniformAny; default: vkd3d_unreachable(); } @@ -10137,6 +10139,7 @@ static int spirv_compiler_handle_instruction(struct spirv_compiler *compiler, break; case VKD3DSIH_WAVE_ACTIVE_ALL_EQUAL: case VKD3DSIH_WAVE_ALL_TRUE: + case VKD3DSIH_WAVE_ANY_TRUE: spirv_compiler_emit_wave_bool_op(compiler, instruction); break; case VKD3DSIH_DCL: diff --git a/tests/hlsl/wave-ops-float.shader_test b/tests/hlsl/wave-ops-float.shader_test index 09e7937e..b0fdcb6c 100644 --- a/tests/hlsl/wave-ops-float.shader_test +++ b/tests/hlsl/wave-ops-float.shader_test @@ -58,7 +58,7 @@ void main(uint id : SV_GroupIndex) }
[test] -todo dispatch 4 1 1 +dispatch 4 1 1 probe uav 1 (0) rgbaui (1, 1, 0, 0) probe uav 1 (1) rgbaui (1, 1, 0, 0) probe uav 1 (2) rgbaui (1, 1, 0, 0)