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

Author: Faith Ekstrand <[email protected]>
Date:   Wed Nov 29 15:24:13 2023 -0600

nvk: Drop MME_DMA_SYSMEMBAR before indirect draw/dispatch

This reverts commit 3d3641e446794e3ebfe07de81b37c4d60eea26f0.  We're now
doing this as part of CmdWaitEvents and CmdPipelineBarrier().

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26408>

---

 src/nouveau/vulkan/nvk_cmd_dispatch.c |  3 +--
 src/nouveau/vulkan/nvk_cmd_draw.c     | 18 ++++++------------
 2 files changed, 7 insertions(+), 14 deletions(-)

diff --git a/src/nouveau/vulkan/nvk_cmd_dispatch.c 
b/src/nouveau/vulkan/nvk_cmd_dispatch.c
index 32ed0ead7df..8ae616d4eeb 100644
--- a/src/nouveau/vulkan/nvk_cmd_dispatch.c
+++ b/src/nouveau/vulkan/nvk_cmd_dispatch.c
@@ -389,9 +389,8 @@ nvk_CmdDispatchIndirect(VkCommandBuffer commandBuffer,
    if (unlikely(qmd_addr == 0))
       return;
 
-   struct nv_push *p = nvk_cmd_buffer_push(cmd, 16);
+   struct nv_push *p = nvk_cmd_buffer_push(cmd, 14);
 
-   P_IMMD(p, NVC597, MME_DMA_SYSMEMBAR, 0);
    P_IMMD(p, NVC597, SET_MME_DATA_FIFO_CONFIG, FIFO_SIZE_SIZE_4KB);
    P_1INC(p, NV9097, CALL_MME_MACRO(NVK_MME_DISPATCH_INDIRECT));
    P_INLINE_DATA(p, nvk_compute_local_size(cmd));
diff --git a/src/nouveau/vulkan/nvk_cmd_draw.c 
b/src/nouveau/vulkan/nvk_cmd_draw.c
index 980825856d6..83307f743ab 100644
--- a/src/nouveau/vulkan/nvk_cmd_draw.c
+++ b/src/nouveau/vulkan/nvk_cmd_draw.c
@@ -2129,8 +2129,7 @@ nvk_CmdDrawIndirect(VkCommandBuffer commandBuffer,
    });
 
    if (nvk_cmd_buffer_3d_cls(cmd) >= TURING_A) {
-      struct nv_push *p = nvk_cmd_buffer_push(cmd, 10);
-      P_IMMD(p, NVC597, MME_DMA_SYSMEMBAR, 0);
+      struct nv_push *p = nvk_cmd_buffer_push(cmd, 8);
       P_IMMD(p, NVC597, SET_MME_DATA_FIFO_CONFIG, FIFO_SIZE_SIZE_4KB);
       P_1INC(p, NV9097, CALL_MME_MACRO(NVK_MME_DRAW_INDIRECT));
       P_INLINE_DATA(p, begin);
@@ -2247,8 +2246,7 @@ nvk_CmdDrawIndexedIndirect(VkCommandBuffer commandBuffer,
    });
 
    if (nvk_cmd_buffer_3d_cls(cmd) >= TURING_A) {
-      struct nv_push *p = nvk_cmd_buffer_push(cmd, 10);
-      P_IMMD(p, NVC597, MME_DMA_SYSMEMBAR, 0);
+      struct nv_push *p = nvk_cmd_buffer_push(cmd, 8);
       P_IMMD(p, NVC597, SET_MME_DATA_FIFO_CONFIG, FIFO_SIZE_SIZE_4KB);
       P_1INC(p, NV9097, CALL_MME_MACRO(NVK_MME_DRAW_INDEXED_INDIRECT));
       P_INLINE_DATA(p, begin);
@@ -2345,8 +2343,7 @@ nvk_CmdDrawIndirectCount(VkCommandBuffer commandBuffer,
       .split_mode = SPLIT_MODE_NORMAL_BEGIN_NORMAL_END,
    });
 
-   struct nv_push *p = nvk_cmd_buffer_push(cmd, 12);
-   P_IMMD(p, NVC597, MME_DMA_SYSMEMBAR, 0);
+   struct nv_push *p = nvk_cmd_buffer_push(cmd, 10);
    P_IMMD(p, NVC597, SET_MME_DATA_FIFO_CONFIG, FIFO_SIZE_SIZE_4KB);
    P_1INC(p, NV9097, CALL_MME_MACRO(NVK_MME_DRAW_INDIRECT_COUNT));
    P_INLINE_DATA(p, begin);
@@ -2423,8 +2420,7 @@ nvk_CmdDrawIndexedIndirectCount(VkCommandBuffer 
commandBuffer,
       .split_mode = SPLIT_MODE_NORMAL_BEGIN_NORMAL_END,
    });
 
-   struct nv_push *p = nvk_cmd_buffer_push(cmd, 12);
-   P_IMMD(p, NVC597, MME_DMA_SYSMEMBAR, 0);
+   struct nv_push *p = nvk_cmd_buffer_push(cmd, 10);
    P_IMMD(p, NVC597, SET_MME_DATA_FIFO_CONFIG, FIFO_SIZE_SIZE_4KB);
    P_1INC(p, NV9097, CALL_MME_MACRO(NVK_MME_DRAW_INDEXED_INDIRECT_COUNT));
    P_INLINE_DATA(p, begin);
@@ -2540,10 +2536,9 @@ nvk_CmdDrawIndirectByteCountEXT(VkCommandBuffer 
commandBuffer,
    });
 
    if (nvk_cmd_buffer_3d_cls(cmd) >= TURING_A) {
-      struct nv_push *p = nvk_cmd_buffer_push(cmd, 14);
+      struct nv_push *p = nvk_cmd_buffer_push(cmd, 12);
       P_IMMD(p, NV9097, SET_DRAW_AUTO_START, counterOffset);
       P_IMMD(p, NV9097, SET_DRAW_AUTO_STRIDE, vertexStride);
-      P_IMMD(p, NVC597, MME_DMA_SYSMEMBAR, 0);
       P_IMMD(p, NVC597, SET_MME_DATA_FIFO_CONFIG, FIFO_SIZE_SIZE_4KB);
 
       P_1INC(p, NV9097, CALL_MME_MACRO(NVK_MME_XFB_DRAW_INDIRECT));
@@ -2654,8 +2649,7 @@ nvk_CmdBeginTransformFeedbackEXT(VkCommandBuffer 
commandBuffer,
       uint64_t cb_addr = nvk_buffer_address(buffer, offset);
 
       if (nvk_cmd_buffer_device(cmd)->pdev->info.cls_eng3d >= TURING_A) {
-         struct nv_push *p = nvk_cmd_buffer_push(cmd, 8);
-         P_IMMD(p, NVC597, MME_DMA_SYSMEMBAR, 0);
+         struct nv_push *p = nvk_cmd_buffer_push(cmd, 6);
          P_IMMD(p, NVC597, SET_MME_DATA_FIFO_CONFIG, FIFO_SIZE_SIZE_4KB);
          P_1INC(p, NV9097, CALL_MME_MACRO(NVK_MME_XFB_COUNTER_LOAD));
          P_INLINE_DATA(p, cb_idx);

Reply via email to