From dc3419195cb57a9fa041c61fd92727cb0a81f36b Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Fri, 2 Nov 2018 12:20:48 +0100 Subject: [PATCH] radv: remove useless sync after copying query results with compute The spec says: "vkCmdCopyQueryPoolResults is considered to be a transfer operation, and its writes to buffer memory must be synchronized using VK_PIPELINE_STAGE_TRANSFER_BIT and VK_ACCESS_TRANSFER_WRITE_BIT before using the results." VK_PIPELINE_STAGE_TRANSFER_BIT will wait for compute to be idle, while VK_ACCESS_TRANSFER_WRITE_BIT will invalidate both L1 vector caches and L2. So, it's useless to set those flags internally. Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen --- src/amd/vulkan/radv_query.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/amd/vulkan/radv_query.c b/src/amd/vulkan/radv_query.c index 57ea22fb847..4153dc2f679 100644 --- a/src/amd/vulkan/radv_query.c +++ b/src/amd/vulkan/radv_query.c @@ -755,10 +755,6 @@ static void radv_query_shader(struct radv_cmd_buffer *cmd_buffer, radv_unaligned_dispatch(cmd_buffer, count, 1, 1); - cmd_buffer->state.flush_bits |= RADV_CMD_FLAG_INV_GLOBAL_L2 | - RADV_CMD_FLAG_INV_VMEM_L1 | - RADV_CMD_FLAG_CS_PARTIAL_FLUSH; - radv_meta_restore(&saved_state, cmd_buffer); } -- 2.30.2