Mesa (main): v3dv: implement vkCmdCopyBuffer2KHR

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Jun 21 06:14:51 UTC 2021


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

Author: Iago Toral Quiroga <itoral at igalia.com>
Date:   Thu Jun 17 09:46:37 2021 +0200

v3dv: implement vkCmdCopyBuffer2KHR

The common Vulkan code will call this to implement vkCmdCopyBuffer.

Reviewed-by: Alejandro Piñeiro <apinheiro at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11443>

---

 src/broadcom/vulkan/v3dv_meta_copy.c | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/src/broadcom/vulkan/v3dv_meta_copy.c b/src/broadcom/vulkan/v3dv_meta_copy.c
index 5391e4da2d8..c2802138ecb 100644
--- a/src/broadcom/vulkan/v3dv_meta_copy.c
+++ b/src/broadcom/vulkan/v3dv_meta_copy.c
@@ -2312,7 +2312,7 @@ copy_buffer(struct v3dv_cmd_buffer *cmd_buffer,
             uint32_t dst_offset,
             struct v3dv_bo *src,
             uint32_t src_offset,
-            const VkBufferCopy *region)
+            const VkBufferCopy2KHR *region)
 {
    const uint32_t internal_bpp = V3D_INTERNAL_BPP_32;
    const uint32_t internal_type = V3D_INTERNAL_TYPE_8UI;
@@ -2385,21 +2385,18 @@ copy_buffer(struct v3dv_cmd_buffer *cmd_buffer,
 }
 
 VKAPI_ATTR void VKAPI_CALL
-v3dv_CmdCopyBuffer(VkCommandBuffer commandBuffer,
-                   VkBuffer srcBuffer,
-                   VkBuffer dstBuffer,
-                   uint32_t regionCount,
-                   const VkBufferCopy *pRegions)
+v3dv_CmdCopyBuffer2KHR(VkCommandBuffer commandBuffer,
+                       const VkCopyBufferInfo2KHR *pCopyBufferInfo)
 {
    V3DV_FROM_HANDLE(v3dv_cmd_buffer, cmd_buffer, commandBuffer);
-   V3DV_FROM_HANDLE(v3dv_buffer, src_buffer, srcBuffer);
-   V3DV_FROM_HANDLE(v3dv_buffer, dst_buffer, dstBuffer);
+   V3DV_FROM_HANDLE(v3dv_buffer, src_buffer, pCopyBufferInfo->srcBuffer);
+   V3DV_FROM_HANDLE(v3dv_buffer, dst_buffer, pCopyBufferInfo->dstBuffer);
 
-   for (uint32_t i = 0; i < regionCount; i++) {
+   for (uint32_t i = 0; i < pCopyBufferInfo->regionCount; i++) {
      copy_buffer(cmd_buffer,
                  dst_buffer->mem->bo, dst_buffer->mem_offset,
                  src_buffer->mem->bo, src_buffer->mem_offset,
-                 &pRegions[i]);
+                 &pCopyBufferInfo->pRegions[i]);
    }
 }
 
@@ -2440,7 +2437,8 @@ v3dv_CmdUpdateBuffer(VkCommandBuffer commandBuffer,
 
    v3dv_bo_unmap(cmd_buffer->device, src_bo);
 
-   VkBufferCopy region = {
+   VkBufferCopy2KHR region = {
+      .sType = VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR,
       .srcOffset = 0,
       .dstOffset = dstOffset,
       .size = dataSize,



More information about the mesa-commit mailing list