nvk: Drop most buffer tracking
authorFaith Ekstrand <faith.ekstrand@collabora.com>
Tue, 31 Jan 2023 02:11:56 +0000 (20:11 -0600)
committerMarge Bot <emma+marge@anholt.net>
Fri, 4 Aug 2023 21:31:58 +0000 (21:31 +0000)
If it's backed by an nvk_device_memory, we don't need to track it since
we always add all of those to every submit so that bindless works.

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

src/nouveau/vulkan/nvk_buffer.h
src/nouveau/vulkan/nvk_cmd_blit.c
src/nouveau/vulkan/nvk_cmd_copy.c
src/nouveau/vulkan/nvk_cmd_draw.c
src/nouveau/vulkan/nvk_image.h

index 521df0b..9d32fe9 100644 (file)
@@ -5,7 +5,6 @@
 #include "nvk_device_memory.h"
 
 #include "nouveau_bo.h"
-#include "nouveau_push.h"
 #include "vulkan/runtime/vk_buffer.h"
 
 struct nvk_device_memory;
@@ -18,14 +17,6 @@ struct nvk_buffer {
 
 VK_DEFINE_HANDLE_CASTS(nvk_buffer, vk.base, VkBuffer, VK_OBJECT_TYPE_BUFFER)
 
-static void
-nvk_push_buffer_ref(struct nouveau_ws_push *push,
-                    const struct nvk_buffer *buffer,
-                    enum nouveau_ws_bo_map_flags flags)
-{
-   nouveau_ws_push_ref(push, buffer->mem->bo, flags);
-}
-
 static inline uint64_t
 nvk_buffer_address(const struct nvk_buffer *buffer, uint64_t offset)
 {
index fc27446..ddd7cf0 100644 (file)
@@ -25,9 +25,6 @@ nvk_CmdBlitImage2(VkCommandBuffer commandBuffer,
    assert(nvk_get_format(src->vk.format)->supports_2d_blit);
    assert(nvk_get_format(dst->vk.format)->supports_2d_blit);
 
-   nvk_push_image_ref(p, src, NOUVEAU_WS_BO_RD);
-   nvk_push_image_ref(p, dst, NOUVEAU_WS_BO_WR);
-
    P_IMMD(p, NV902D, SET_CLIP_ENABLE, V_FALSE);
    P_IMMD(p, NV902D, SET_COLOR_KEY_ENABLE, V_FALSE);
    P_IMMD(p, NV902D, SET_RENDER_ENABLE_C, MODE_TRUE);
index 5591c8d..4f54daa 100644 (file)
@@ -289,9 +289,6 @@ nvk_CmdCopyBuffer2(VkCommandBuffer commandBuffer,
    VK_FROM_HANDLE(nvk_buffer, src, pCopyBufferInfo->srcBuffer);
    VK_FROM_HANDLE(nvk_buffer, dst, pCopyBufferInfo->dstBuffer);
 
-   nvk_push_buffer_ref(cmd->push, src, NOUVEAU_WS_BO_RD);
-   nvk_push_buffer_ref(cmd->push, dst, NOUVEAU_WS_BO_WR);
-
    for (unsigned r = 0; r < pCopyBufferInfo->regionCount; r++) {
       const VkBufferCopy2 *region = &pCopyBufferInfo->pRegions[r];
 
@@ -337,9 +334,6 @@ nvk_CmdCopyBufferToImage2(VkCommandBuffer commandBuffer,
    VK_FROM_HANDLE(nvk_buffer, src, pCopyBufferToImageInfo->srcBuffer);
    VK_FROM_HANDLE(nvk_image, dst, pCopyBufferToImageInfo->dstImage);
 
-   nvk_push_buffer_ref(cmd->push, src, NOUVEAU_WS_BO_RD);
-   nvk_push_image_ref(cmd->push, dst, NOUVEAU_WS_BO_WR);
-
    for (unsigned r = 0; r < pCopyBufferToImageInfo->regionCount; r++) {
       const VkBufferImageCopy2 *region = &pCopyBufferToImageInfo->pRegions[r];
       struct vk_image_buffer_layout buffer_layout =
@@ -408,9 +402,6 @@ nvk_CmdCopyImageToBuffer2(VkCommandBuffer commandBuffer,
    VK_FROM_HANDLE(nvk_image, src, pCopyImageToBufferInfo->srcImage);
    VK_FROM_HANDLE(nvk_buffer, dst, pCopyImageToBufferInfo->dstBuffer);
 
-   nvk_push_image_ref(cmd->push, src, NOUVEAU_WS_BO_RD);
-   nvk_push_buffer_ref(cmd->push, dst, NOUVEAU_WS_BO_WR);
-
    for (unsigned r = 0; r < pCopyImageToBufferInfo->regionCount; r++) {
       const VkBufferImageCopy2 *region = &pCopyImageToBufferInfo->pRegions[r];
       struct vk_image_buffer_layout buffer_layout =
@@ -479,9 +470,6 @@ nvk_CmdCopyImage2(VkCommandBuffer commandBuffer,
    VK_FROM_HANDLE(nvk_image, src, pCopyImageInfo->srcImage);
    VK_FROM_HANDLE(nvk_image, dst, pCopyImageInfo->dstImage);
 
-   nvk_push_image_ref(cmd->push, src, NOUVEAU_WS_BO_RD);
-   nvk_push_image_ref(cmd->push, dst, NOUVEAU_WS_BO_WR);
-
    for (unsigned r = 0; r < pCopyImageInfo->regionCount; r++) {
       const VkImageCopy2 *region = &pCopyImageInfo->pRegions[r];
 
@@ -547,8 +535,6 @@ nvk_CmdClearColorImage(VkCommandBuffer commandBuffer,
    VK_FROM_HANDLE(nvk_image, dst, image);
    struct nouveau_ws_push *p = cmd->push;
 
-   nvk_push_image_ref(p, dst, NOUVEAU_WS_BO_WR);
-
    P_IMMD(p, NV902D, SET_OPERATION, V_SRCCOPY);
 
    P_IMMD(p, NV902D, SET_CLIP_ENABLE, V_FALSE);
@@ -676,8 +662,6 @@ nvk_CmdFillBuffer(VkCommandBuffer commandBuffer,
    uint32_t pitch = 1 << 19;
    uint32_t line = pitch / 4;
 
-   nvk_push_buffer_ref(p, dst, NOUVEAU_WS_BO_WR);
-
    P_IMMD(p, NV902D, SET_OPERATION, V_SRCCOPY);
 
    P_MTHD(p, NV902D, SET_DST_FORMAT);
@@ -752,8 +736,6 @@ nvk_CmdUpdateBuffer(VkCommandBuffer commandBuffer,
 
    VkDeviceSize dst_addr = nvk_buffer_address(dst, 0);
 
-   nvk_push_buffer_ref(p, dst, NOUVEAU_WS_BO_WR);
-
    P_IMMD(p, NV902D, SET_OPERATION, V_SRCCOPY);
 
    P_MTHD(p, NV902D, SET_DST_OFFSET_UPPER);
index df020e8..2301c0a 100644 (file)
@@ -424,7 +424,6 @@ nvk_CmdBeginRendering(VkCommandBuffer commandBuffer,
          assert(render->samples == 0 || render->samples == image->vk.samples);
          render->samples |= image->vk.samples;
 
-         nvk_push_image_ref(cmd->push, image, NOUVEAU_WS_BO_WR);
          uint64_t addr = nvk_image_base_address(image) + level->offset_B;
 
          P_MTHD(p, NV9097, SET_COLOR_TARGET_A(i));
@@ -491,7 +490,6 @@ nvk_CmdBeginRendering(VkCommandBuffer commandBuffer,
       assert(render->samples == 0 || render->samples == image->vk.samples);
       render->samples |= image->vk.samples;
 
-      nvk_push_image_ref(cmd->push, image, NOUVEAU_WS_BO_WR);
       uint64_t addr = nvk_image_base_address(image) + level->offset_B;
 
       P_MTHD(p, NV9097, SET_ZT_A);
index e1fc705..4695917 100644 (file)
@@ -6,7 +6,6 @@
 
 #include "nil_image.h"
 #include "nouveau_bo.h"
-#include "nouveau_push.h"
 #include "vulkan/runtime/vk_image.h"
 
 struct nvk_physical_device;
@@ -29,14 +28,6 @@ struct nvk_image {
 
 VK_DEFINE_HANDLE_CASTS(nvk_image, vk.base, VkImage, VK_OBJECT_TYPE_IMAGE)
 
-static void
-nvk_push_image_ref(struct nouveau_ws_push *push,
-                   const struct nvk_image *image,
-                   enum nouveau_ws_bo_map_flags flags)
-{
-   nouveau_ws_push_ref(push, image->mem->bo, flags);
-}
-
 static inline uint64_t
 nvk_image_base_address(const struct nvk_image *image)
 {