mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 20:20:18 +01:00
venus: add struct vn_buffer_memory_requirements
This will simplify later buffer cache api. Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Chia-I Wu <olvaffe@gmail.com> Reviewed-by: Ryan Neph <ryanneph@google.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13428>
This commit is contained in:
parent
927dea7c34
commit
b108e096d1
4 changed files with 18 additions and 14 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue