From 95489899bee957a4654a0516007cdf238ab93cdc Mon Sep 17 00:00:00 2001 From: Conor McCarthy Date: Thu, 18 Apr 2024 11:37:25 +1000 Subject: [PATCH] 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)