From d4eb5c76c97e2273502108a1bb40d50b89d26c0a Mon Sep 17 00:00:00 2001 From: Mel Henning Date: Mon, 6 Apr 2026 17:36:46 -0400 Subject: [PATCH] nvk: Split out nvk_cmd_fill_memory Reviewed-by: Mary Guillemard Part-of: --- src/nouveau/vulkan/nvk_cmd_buffer.h | 4 ++++ src/nouveau/vulkan/nvk_cmd_copy.c | 32 ++++++++++++++++++----------- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/nouveau/vulkan/nvk_cmd_buffer.h b/src/nouveau/vulkan/nvk_cmd_buffer.h index 4bf5321682a..47356580e31 100644 --- a/src/nouveau/vulkan/nvk_cmd_buffer.h +++ b/src/nouveau/vulkan/nvk_cmd_buffer.h @@ -437,6 +437,10 @@ void nvk_cmd_dispatch_shader(struct nvk_cmd_buffer *cmd, uint32_t groupCountY, uint32_t groupCountZ); +void nvk_cmd_fill_memory(struct nvk_cmd_buffer *cmd, + uint64_t dst_addr, uint64_t size, + uint32_t data); + void nvk_meta_resolve_rendering(struct nvk_cmd_buffer *cmd, const VkRenderingInfo *pRenderingInfo); diff --git a/src/nouveau/vulkan/nvk_cmd_copy.c b/src/nouveau/vulkan/nvk_cmd_copy.c index 1a565b0325a..b76c54f9165 100644 --- a/src/nouveau/vulkan/nvk_cmd_copy.c +++ b/src/nouveau/vulkan/nvk_cmd_copy.c @@ -893,19 +893,11 @@ nvk_CmdCopyImage2(VkCommandBuffer commandBuffer, } } -VKAPI_ATTR void VKAPI_CALL -nvk_CmdFillBuffer(VkCommandBuffer commandBuffer, - VkBuffer dstBuffer, - VkDeviceSize dstOffset, - VkDeviceSize size, - uint32_t data) +void +nvk_cmd_fill_memory(struct nvk_cmd_buffer *cmd, + uint64_t dst_addr, uint64_t size, + uint32_t data) { - VK_FROM_HANDLE(nvk_cmd_buffer, cmd, commandBuffer); - VK_FROM_HANDLE(nvk_buffer, dst_buffer, dstBuffer); - - uint64_t dst_addr = vk_buffer_address(&dst_buffer->vk, dstOffset); - size = vk_buffer_range(&dst_buffer->vk, dstOffset, size); - uint32_t max_dim = 1 << 15; struct nv_push *p = nvk_cmd_buffer_push(cmd, 7); @@ -964,6 +956,22 @@ nvk_CmdFillBuffer(VkCommandBuffer commandBuffer, } } +VKAPI_ATTR void VKAPI_CALL +nvk_CmdFillBuffer(VkCommandBuffer commandBuffer, + VkBuffer dstBuffer, + VkDeviceSize dstOffset, + VkDeviceSize size, + uint32_t data) +{ + VK_FROM_HANDLE(nvk_cmd_buffer, cmd, commandBuffer); + VK_FROM_HANDLE(nvk_buffer, dst_buffer, dstBuffer); + + uint64_t dst_addr = vk_buffer_address(&dst_buffer->vk, dstOffset); + size = vk_buffer_range(&dst_buffer->vk, dstOffset, size); + + nvk_cmd_fill_memory(cmd, dst_addr, size, data); +} + VKAPI_ATTR void VKAPI_CALL nvk_CmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer,