From 5b0e4dd6e80224961a0341628bebe73fb40e5d80 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Fri, 16 Feb 2024 16:33:57 +0100 Subject: [PATCH] radv: stop using conditional rendering internally when preprocessing DGC Preprocess and execute can be executed on different queue families. If preprocess is executed on GFX and the indirect count optimization is enabled, this will generate an empty cmdbuf. Expect GPU hangs if this DGC IB is then executed on ACE. Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_device_generated_commands.c | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/src/amd/vulkan/radv_device_generated_commands.c b/src/amd/vulkan/radv_device_generated_commands.c index eab1e9cd06c..0b978519971 100644 --- a/src/amd/vulkan/radv_device_generated_commands.c +++ b/src/amd/vulkan/radv_device_generated_commands.c @@ -1628,23 +1628,7 @@ radv_CmdPreprocessGeneratedCommandsNV(VkCommandBuffer commandBuffer, if (!radv_dgc_can_preprocess(layout, pipeline)) return; - const bool use_predication = radv_use_dgc_predication(cmd_buffer, pGeneratedCommandsInfo); - - if (use_predication) { - VK_FROM_HANDLE(radv_buffer, seq_count_buffer, pGeneratedCommandsInfo->sequencesCountBuffer); - const uint64_t va = radv_buffer_get_va(seq_count_buffer->bo) + seq_count_buffer->offset + - pGeneratedCommandsInfo->sequencesCountOffset; - - radv_begin_conditional_rendering(cmd_buffer, va, true); - cmd_buffer->state.predicating = true; - } - radv_prepare_dgc(cmd_buffer, pGeneratedCommandsInfo); - - if (use_predication) { - cmd_buffer->state.predicating = false; - radv_end_conditional_rendering(cmd_buffer); - } } /* Always need to call this directly before draw due to dependence on bound state. */