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