From b108e096d12f9baabcb730723003ff51a6dadfff Mon Sep 17 00:00:00 2001 From: Yiwei Zhang Date: Thu, 21 Oct 2021 05:56:30 +0000 Subject: [PATCH] venus: add struct vn_buffer_memory_requirements This will simplify later buffer cache api. Signed-off-by: Yiwei Zhang Reviewed-by: Chia-I Wu Reviewed-by: Ryan Neph Part-of: --- 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; }