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))