diff options
Diffstat (limited to 'src/virtio/vulkan/vn_image.h')
-rw-r--r-- | src/virtio/vulkan/vn_image.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/virtio/vulkan/vn_image.h b/src/virtio/vulkan/vn_image.h index b8fe8d3c6b4..f5560aa9acf 100644 --- a/src/virtio/vulkan/vn_image.h +++ b/src/virtio/vulkan/vn_image.h @@ -22,6 +22,12 @@ struct vn_image_ownership_cmds { VkCommandBuffer cmds[2]; }; +struct vn_image_create_deferred_info { + VkImageCreateInfo create; + VkImageFormatListCreateInfo list; + VkImageStencilUsageCreateInfo stencil; +}; + struct vn_image { struct vn_object_base base; @@ -29,6 +35,10 @@ struct vn_image { VkMemoryDedicatedRequirements dedicated_requirements[4]; /* For VK_ANDROID_native_buffer, the WSI image owns the memory, */ VkDeviceMemory private_memory; + /* For VK_ANDROID_external_memory_android_hardware_buffer, real image + * creation is deferred until bind image memory. + */ + struct vn_image_create_deferred_info *deferred_info; /* For queue family ownership transfer of WSI images */ VkSharingMode sharing_mode; struct vn_image_ownership_cmds *ownership_cmds; @@ -70,6 +80,17 @@ vn_image_create(struct vn_device *dev, struct vn_image **out_img); VkResult +vn_image_init_deferred(struct vn_device *dev, + const VkImageCreateInfo *create_info, + struct vn_image *img); + +VkResult +vn_image_create_deferred(struct vn_device *dev, + const VkImageCreateInfo *create_info, + const VkAllocationCallbacks *alloc, + struct vn_image **out_img); + +VkResult vn_image_android_wsi_init(struct vn_device *dev, struct vn_image *img, const VkAllocationCallbacks *alloc); |