18 init_external_memory_image(device);
19 init_external_memory_pixel_buffer(device);
23void VKMemoryPools::init_external_memory_image(
VKDevice &device)
25 VkExternalMemoryImageCreateInfo external_image_create_info = {
26 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
29 VkImageCreateInfo image_create_info = {VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
30 &external_image_create_info,
33 VK_FORMAT_R8G8B8A8_UNORM,
37 VK_SAMPLE_COUNT_1_BIT,
38 VK_IMAGE_TILING_OPTIMAL,
39 VK_IMAGE_USAGE_TRANSFER_SRC_BIT |
40 VK_IMAGE_USAGE_TRANSFER_DST_BIT |
41 VK_IMAGE_USAGE_SAMPLED_BIT,
42 VK_SHARING_MODE_EXCLUSIVE,
45 VK_IMAGE_LAYOUT_UNDEFINED};
46 VmaAllocationCreateInfo allocation_create_info = {};
47 allocation_create_info.flags = VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT;
48 allocation_create_info.usage = VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE;
50 vmaFindMemoryTypeIndexForImageInfo(
51 device.
mem_allocator_get(), &image_create_info, &allocation_create_info, &memory_type_index);
54 VmaPoolCreateInfo pool_create_info = {};
55 pool_create_info.memoryTypeIndex = memory_type_index;
57 pool_create_info.priority = 1.0f;
61void VKMemoryPools::init_external_memory_pixel_buffer(
VKDevice &device)
63 VkExternalMemoryBufferCreateInfo external_buffer_create_info = {
64 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
67 VkBufferCreateInfo buffer_create_info = {VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
68 &external_buffer_create_info,
71 VK_BUFFER_USAGE_TRANSFER_DST_BIT |
72 VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
73 VK_SHARING_MODE_EXCLUSIVE,
76 VmaAllocationCreateInfo allocation_create_info = {};
77 allocation_create_info.flags = VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT;
78 allocation_create_info.usage = VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE;
80 vmaFindMemoryTypeIndexForBufferInfo(device.mem_allocator_get(),
82 &allocation_create_info,
86 VmaPoolCreateInfo pool_create_info = {};
87 pool_create_info.memoryTypeIndex = memory_type_index;
89 pool_create_info.priority = 1.0f;
VmaAllocator mem_allocator_get() const
const VKExtensions & extensions_get() const
constexpr VkExternalMemoryHandleTypeFlags vk_external_memory_handle_type()
void deinit(VKDevice &device)
VKMemoryPool external_memory_image
void deinit(VKDevice &device)
VKMemoryPool external_memory_pixel_buffer
void init(VKDevice &device)