From 22a028ea992d0ef037c7ed64f3c1dc69df832c1c Mon Sep 17 00:00:00 2001 From: Konstantin Seurer Date: Thu, 2 Feb 2023 16:00:24 +0100 Subject: [PATCH] radv: Implement ordered compute dispatches Reviewed-by: Bas Nieuwenhuizen Part-of: --- src/amd/vulkan/radv_cmd_buffer.c | 3 +++ src/amd/vulkan/radv_private.h | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 7198b604542..8802525ade5 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -9561,6 +9561,9 @@ radv_emit_dispatch_packets(struct radv_cmd_buffer *cmd_buffer, dispatch_initiator |= S_00B800_CS_W32_EN(1); } + if (info->ordered) + dispatch_initiator &= ~S_00B800_ORDER_MODE(1); + if (info->va) { if (info->indirect) radv_cs_add_buffer(ws, cs, info->indirect); diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h index f6d7c692edb..127897e35ca 100644 --- a/src/amd/vulkan/radv_private.h +++ b/src/amd/vulkan/radv_private.h @@ -1705,6 +1705,11 @@ struct radv_dispatch_info { */ bool unaligned; + /** + * Whether waves must be launched in order. + */ + bool ordered; + /** * Indirect compute parameters resource. */