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

Author: Faith Ekstrand <faith.ekstr...@collabora.com>
Date:   Wed Nov 29 10:04:52 2023 -0600

nvk: Drop unnecessary per-draw/dispatch cache maintenance

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

---

 src/nouveau/vulkan/nvk_cmd_dispatch.c     | 14 ++------------
 src/nouveau/vulkan/nvk_cmd_draw.c         | 16 ++--------------
 src/nouveau/vulkan/nvk_compute_pipeline.c |  6 ------
 3 files changed, 4 insertions(+), 32 deletions(-)

diff --git a/src/nouveau/vulkan/nvk_cmd_dispatch.c 
b/src/nouveau/vulkan/nvk_cmd_dispatch.c
index 96eca35bfbe..32ed0ead7df 100644
--- a/src/nouveau/vulkan/nvk_cmd_dispatch.c
+++ b/src/nouveau/vulkan/nvk_cmd_dispatch.c
@@ -282,17 +282,12 @@ nvk_CmdDispatchBase(VkCommandBuffer commandBuffer,
       (uint64_t)local_size * (uint64_t)groupCountX *
       (uint64_t)groupCountY * (uint64_t)groupCountZ;
 
-   struct nv_push *p = nvk_cmd_buffer_push(cmd, 9);
+   struct nv_push *p = nvk_cmd_buffer_push(cmd, 7);
 
    P_1INC(p, NV9097, CALL_MME_MACRO(NVK_MME_ADD_CS_INVOCATIONS));
    P_INLINE_DATA(p, cs_invocations >> 32);
    P_INLINE_DATA(p, cs_invocations);
 
-   P_MTHD(p, NVA0C0, INVALIDATE_SHADER_CACHES_NO_WFI);
-   P_NVA0C0_INVALIDATE_SHADER_CACHES_NO_WFI(p, {
-      .constant = CONSTANT_TRUE
-   });
-
    P_MTHD(p, NVA0C0, SEND_PCAS_A);
    P_NVA0C0_SEND_PCAS_A(p, qmd_addr >> 8);
 
@@ -394,7 +389,7 @@ nvk_CmdDispatchIndirect(VkCommandBuffer commandBuffer,
    if (unlikely(qmd_addr == 0))
       return;
 
-   struct nv_push *p = nvk_cmd_buffer_push(cmd, 18);
+   struct nv_push *p = nvk_cmd_buffer_push(cmd, 16);
 
    P_IMMD(p, NVC597, MME_DMA_SYSMEMBAR, 0);
    P_IMMD(p, NVC597, SET_MME_DATA_FIFO_CONFIG, FIFO_SIZE_SIZE_4KB);
@@ -407,11 +402,6 @@ nvk_CmdDispatchIndirect(VkCommandBuffer commandBuffer,
    P_INLINE_DATA(p, qmd_addr >> 32);
    P_INLINE_DATA(p, qmd_addr);
 
-   P_MTHD(p, NVA0C0, INVALIDATE_SHADER_CACHES_NO_WFI);
-   P_NVA0C0_INVALIDATE_SHADER_CACHES_NO_WFI(p, {
-      .constant = CONSTANT_TRUE
-   });
-
    P_MTHD(p, NVA0C0, SEND_PCAS_A);
    P_NVA0C0_SEND_PCAS_A(p, qmd_addr >> 8);
    if (nvk_cmd_buffer_compute_cls(cmd) <= TURING_COMPUTE_A) {
diff --git a/src/nouveau/vulkan/nvk_cmd_draw.c 
b/src/nouveau/vulkan/nvk_cmd_draw.c
index 752b0cf7bb5..980825856d6 100644
--- a/src/nouveau/vulkan/nvk_cmd_draw.c
+++ b/src/nouveau/vulkan/nvk_cmd_draw.c
@@ -1564,7 +1564,7 @@ nvk_flush_descriptors(struct nvk_cmd_buffer *cmd)
    desc->root.root_desc_addr = root_desc_addr;
    memcpy(root_desc_map, &desc->root, sizeof(desc->root));
 
-   struct nv_push *p = nvk_cmd_buffer_push(cmd, 26);
+   struct nv_push *p = nvk_cmd_buffer_push(cmd, 24);
 
    P_MTHD(p, NV9097, SET_CONSTANT_BUFFER_SELECTOR_A);
    P_NV9097_SET_CONSTANT_BUFFER_SELECTOR_A(p, sizeof(desc->root));
@@ -1581,11 +1581,6 @@ nvk_flush_descriptors(struct nvk_cmd_buffer *cmd)
          .shader_slot = 1,
       });
    }
-
-   assert(nvk_cmd_buffer_3d_cls(cmd) >= KEPLER_A);
-   P_IMMD(p, NVA097, INVALIDATE_SHADER_CACHES_NO_WFI, {
-      .constant = CONSTANT_TRUE,
-   });
 }
 
 static void
@@ -2679,8 +2674,6 @@ nvk_CmdBeginTransformFeedbackEXT(VkCommandBuffer 
commandBuffer,
    }
 }
 
-#include "nvk_cla0c0.h"
-
 VKAPI_ATTR void VKAPI_CALL
 nvk_CmdEndTransformFeedbackEXT(VkCommandBuffer commandBuffer,
                                uint32_t firstCounterBuffer,
@@ -2690,7 +2683,7 @@ nvk_CmdEndTransformFeedbackEXT(VkCommandBuffer 
commandBuffer,
 {
    VK_FROM_HANDLE(nvk_cmd_buffer, cmd, commandBuffer);
 
-   struct nv_push *p = nvk_cmd_buffer_push(cmd, 5 * counterBufferCount + 6);
+   struct nv_push *p = nvk_cmd_buffer_push(cmd, 5 * counterBufferCount + 2);
 
    P_IMMD(p, NV9097, SET_STREAM_OUTPUT, ENABLE_FALSE);
 
@@ -2713,11 +2706,6 @@ nvk_CmdEndTransformFeedbackEXT(VkCommandBuffer 
commandBuffer,
          .structure_size = STRUCTURE_SIZE_ONE_WORD,
       });
    }
-
-   if (counterBufferCount > 0) {
-      P_IMMD(p, NV9097, WAIT_FOR_IDLE, 0);
-      __push_immd(p, SUBC_NV9097, NV906F_SET_REFERENCE, 0);
-   }
 }
 
 VKAPI_ATTR void VKAPI_CALL
diff --git a/src/nouveau/vulkan/nvk_compute_pipeline.c 
b/src/nouveau/vulkan/nvk_compute_pipeline.c
index 21d13fa5ef4..80a9df4374b 100644
--- a/src/nouveau/vulkan/nvk_compute_pipeline.c
+++ b/src/nouveau/vulkan/nvk_compute_pipeline.c
@@ -77,12 +77,6 @@ nva0c0_compute_setup_launch_desc_template(uint32_t *qmd,
 {
    base_compute_setup_launch_desc_template(qmd, shader, A0C0, 00, 06);
 
-   NVA0C0_QMDV00_06_DEF_SET(qmd, INVALIDATE_TEXTURE_DATA_CACHE, TRUE);
-   NVA0C0_QMDV00_06_DEF_SET(qmd, INVALIDATE_TEXTURE_HEADER_CACHE, TRUE);
-   NVA0C0_QMDV00_06_DEF_SET(qmd, INVALIDATE_TEXTURE_SAMPLER_CACHE, TRUE);
-   NVA0C0_QMDV00_06_DEF_SET(qmd, INVALIDATE_SHADER_CONSTANT_CACHE, TRUE);
-   NVA0C0_QMDV00_06_DEF_SET(qmd, INVALIDATE_SHADER_DATA_CACHE, TRUE);
-
    if (shader->info.cs.smem_size <= (16 << 10))
       NVA0C0_QMDV00_06_DEF_SET(qmd, L1_CONFIGURATION, 
DIRECTLY_ADDRESSABLE_MEMORY_SIZE_16KB);
    else if (shader->info.cs.smem_size <= (32 << 10))

Reply via email to