Path: blob/21.2-virgl/src/virtio/vulkan/vn_image.h
4560 views
/*1* Copyright 2019 Google LLC2* SPDX-License-Identifier: MIT3*4* based in part on anv and radv which are:5* Copyright © 2015 Intel Corporation6* Copyright © 2016 Red Hat.7* Copyright © 2016 Bas Nieuwenhuizen8*/910#ifndef VN_IMAGE_H11#define VN_IMAGE_H1213#include "vn_common.h"1415/* changing this to VK_IMAGE_LAYOUT_PRESENT_SRC_KHR disables ownership16* transfers and can be useful for debugging17*/18#define VN_PRESENT_SRC_INTERNAL_LAYOUT VK_IMAGE_LAYOUT_GENERAL1920struct vn_image_create_deferred_info {21VkImageCreateInfo create;22VkImageFormatListCreateInfo list;23VkImageStencilUsageCreateInfo stencil;24};2526struct vn_image {27struct vn_object_base base;2829VkSharingMode sharing_mode;3031VkMemoryRequirements2 memory_requirements[4];32VkMemoryDedicatedRequirements dedicated_requirements[4];3334bool is_wsi;35VkBuffer prime_blit_buffer;3637/* For VK_ANDROID_native_buffer, the WSI image owns the memory, */38VkDeviceMemory private_memory;39/* For VK_ANDROID_external_memory_android_hardware_buffer, real image40* creation is deferred until bind image memory.41*/42struct vn_image_create_deferred_info *deferred_info;43};44VK_DEFINE_NONDISP_HANDLE_CASTS(vn_image,45base.base,46VkImage,47VK_OBJECT_TYPE_IMAGE)4849struct vn_image_view {50struct vn_object_base base;5152const struct vn_image *image;53};54VK_DEFINE_NONDISP_HANDLE_CASTS(vn_image_view,55base.base,56VkImageView,57VK_OBJECT_TYPE_IMAGE_VIEW)5859struct vn_sampler {60struct vn_object_base base;61};62VK_DEFINE_NONDISP_HANDLE_CASTS(vn_sampler,63base.base,64VkSampler,65VK_OBJECT_TYPE_SAMPLER)6667struct vn_sampler_ycbcr_conversion {68struct vn_object_base base;69};70VK_DEFINE_NONDISP_HANDLE_CASTS(vn_sampler_ycbcr_conversion,71base.base,72VkSamplerYcbcrConversion,73VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION)7475VkResult76vn_image_create(struct vn_device *dev,77const VkImageCreateInfo *create_info,78const VkAllocationCallbacks *alloc,79struct vn_image **out_img);8081VkResult82vn_image_init_deferred(struct vn_device *dev,83const VkImageCreateInfo *create_info,84struct vn_image *img);8586VkResult87vn_image_create_deferred(struct vn_device *dev,88const VkImageCreateInfo *create_info,89const VkAllocationCallbacks *alloc,90struct vn_image **out_img);9192#endif /* VN_IMAGE_H */939495