Mesa (main): venus: add struct vn_buffer_memory_requirements

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Oct 28 00:33:48 UTC 2021


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

Author: Yiwei Zhang <zzyiwei at chromium.org>
Date:   Thu Oct 21 05:56:30 2021 +0000

venus: add struct vn_buffer_memory_requirements

This will simplify later buffer cache api.

Signed-off-by: Yiwei Zhang <zzyiwei at chromium.org>
Reviewed-by: Chia-I Wu <olvaffe at gmail.com>
Reviewed-by: Ryan Neph <ryanneph at google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13428>

---

 src/virtio/vulkan/vn_android.c       |  4 ++--
 src/virtio/vulkan/vn_buffer.c        | 18 +++++++++---------
 src/virtio/vulkan/vn_buffer.h        |  8 ++++++--
 src/virtio/vulkan/vn_device_memory.c |  2 +-
 4 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/src/virtio/vulkan/vn_android.c b/src/virtio/vulkan/vn_android.c
index b914966ca02..41642350fac 100644
--- a/src/virtio/vulkan/vn_android.c
+++ b/src/virtio/vulkan/vn_android.c
@@ -1237,10 +1237,10 @@ vn_android_buffer_from_ahb(struct vn_device *dev,
     * queried type bits from both buffer memory requirement and dma_buf fd
     * properties.
     */
-   (*out_buf)->memory_requirements.memoryRequirements.memoryTypeBits &=
+   (*out_buf)->requirements.memory.memoryRequirements.memoryTypeBits &=
       dev->ahb_buffer_memory_type_bits;
 
-   assert((*out_buf)->memory_requirements.memoryRequirements.memoryTypeBits);
+   assert((*out_buf)->requirements.memory.memoryRequirements.memoryTypeBits);
 
    return VK_SUCCESS;
 }
diff --git a/src/virtio/vulkan/vn_buffer.c b/src/virtio/vulkan/vn_buffer.c
index 7fd34fb38c3..fcd03828999 100644
--- a/src/virtio/vulkan/vn_buffer.c
+++ b/src/virtio/vulkan/vn_buffer.c
@@ -33,11 +33,11 @@ vn_buffer_init(struct vn_device *dev,
    if (result != VK_SUCCESS)
       return result;
 
-   buf->memory_requirements.sType = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2;
-   buf->memory_requirements.pNext = &buf->dedicated_requirements;
-   buf->dedicated_requirements.sType =
+   buf->requirements.memory.sType = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2;
+   buf->requirements.memory.pNext = &buf->requirements.dedicated;
+   buf->requirements.dedicated.sType =
       VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS;
-   buf->dedicated_requirements.pNext = NULL;
+   buf->requirements.dedicated.pNext = NULL;
 
    vn_call_vkGetBufferMemoryRequirements2(
       dev->instance, dev_handle,
@@ -45,7 +45,7 @@ vn_buffer_init(struct vn_device *dev,
          .sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
          .buffer = buf_handle,
       },
-      &buf->memory_requirements);
+      &buf->requirements.memory);
 
    return VK_SUCCESS;
 }
@@ -156,7 +156,7 @@ vn_GetBufferMemoryRequirements(VkDevice device,
 {
    const struct vn_buffer *buf = vn_buffer_from_handle(buffer);
 
-   *pMemoryRequirements = buf->memory_requirements.memoryRequirements;
+   *pMemoryRequirements = buf->requirements.memory.memoryRequirements;
 }
 
 void
@@ -175,13 +175,13 @@ vn_GetBufferMemoryRequirements2(VkDevice device,
       switch (u.pnext->sType) {
       case VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2:
          u.two->memoryRequirements =
-            buf->memory_requirements.memoryRequirements;
+            buf->requirements.memory.memoryRequirements;
          break;
       case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:
          u.dedicated->prefersDedicatedAllocation =
-            buf->dedicated_requirements.prefersDedicatedAllocation;
+            buf->requirements.dedicated.prefersDedicatedAllocation;
          u.dedicated->requiresDedicatedAllocation =
-            buf->dedicated_requirements.requiresDedicatedAllocation;
+            buf->requirements.dedicated.requiresDedicatedAllocation;
          break;
       default:
          break;
diff --git a/src/virtio/vulkan/vn_buffer.h b/src/virtio/vulkan/vn_buffer.h
index 7cec3b5de0b..97277dc46c8 100644
--- a/src/virtio/vulkan/vn_buffer.h
+++ b/src/virtio/vulkan/vn_buffer.h
@@ -13,11 +13,15 @@
 
 #include "vn_common.h"
 
+struct vn_buffer_memory_requirements {
+   VkMemoryRequirements2 memory;
+   VkMemoryDedicatedRequirements dedicated;
+};
+
 struct vn_buffer {
    struct vn_object_base base;
 
-   VkMemoryRequirements2 memory_requirements;
-   VkMemoryDedicatedRequirements dedicated_requirements;
+   struct vn_buffer_memory_requirements requirements;
 };
 VK_DEFINE_NONDISP_HANDLE_CASTS(vn_buffer,
                                base.base,
diff --git a/src/virtio/vulkan/vn_device_memory.c b/src/virtio/vulkan/vn_device_memory.c
index 44e9054687c..43ae4d162a7 100644
--- a/src/virtio/vulkan/vn_device_memory.c
+++ b/src/virtio/vulkan/vn_device_memory.c
@@ -213,7 +213,7 @@ vn_device_memory_should_suballocate(const VkMemoryAllocateInfo *alloc_info,
       }
 
       const struct vn_buffer *buf = vn_buffer_from_handle(dedicated->buffer);
-      if (buf && buf->dedicated_requirements.requiresDedicatedAllocation)
+      if (buf && buf->requirements.dedicated.requiresDedicatedAllocation)
          return false;
    }
 



More information about the mesa-commit mailing list