Module: Mesa
Branch: main
Commit: 5176f75e0d2d43f7c432c110e1f450ec710ba10c
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5176f75e0d2d43f7c432c110e1f450ec710ba10c

Author: Samuel Pitoiset <samuel.pitoi...@gmail.com>
Date:   Thu Oct 26 10:04:38 2023 +0200

radv: remove unnecessary VS_PARTIAL_FLUSH for NGG streamout

This used to be a PS_PARTIAL_FLUSH to fix synchronization issues with
NGG streamout on RDNA2 but it's no longer needed for RDNA3. It's
already synchronized in CmdEndTransformFeedbackEXT().

Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25903>

---

 src/amd/vulkan/radv_cmd_buffer.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c
index dfb011f10d7..bfd4b5c3865 100644
--- a/src/amd/vulkan/radv_cmd_buffer.c
+++ b/src/amd/vulkan/radv_cmd_buffer.c
@@ -10960,17 +10960,8 @@ radv_CmdBeginTransformFeedbackEXT(VkCommandBuffer 
commandBuffer, uint32_t firstC
    struct radeon_cmdbuf *cs = cmd_buffer->cs;
 
    assert(firstCounterBuffer + counterBufferCount <= MAX_SO_BUFFERS);
-   if (cmd_buffer->device->physical_device->use_ngg_streamout) {
-      /* Sync because the next streamout operation will overwrite GDS and we
-       * have to make sure it's idle.
-       * TODO: Improve by tracking if there is a streamout operation in
-       * flight.
-       */
-      cmd_buffer->state.flush_bits |= RADV_CMD_FLAG_VS_PARTIAL_FLUSH;
-      si_emit_cache_flush(cmd_buffer);
-   } else {
+   if (!cmd_buffer->device->physical_device->use_ngg_streamout)
       radv_flush_vgt_streamout(cmd_buffer);
-   }
 
    ASSERTED unsigned cdw_max = radeon_check_space(cmd_buffer->device->ws, 
cmd_buffer->cs, MAX_SO_BUFFERS * 10);
 

Reply via email to