1 #ifndef VULKAN_FUCHSIA_H_ 2 #define VULKAN_FUCHSIA_H_ 1 3 4 /* 5 ** Copyright 2015-2022 The Khronos Group Inc. 6 ** 7 ** SPDX-License-Identifier: Apache-2.0 8 */ 9 10 /* 11 ** This header is generated from the Khronos Vulkan XML API Registry. 12 ** 13 */ 14 15 16 #ifdef __cplusplus 17 extern "C" { 18 #endif 19 20 21 22 #define VK_FUCHSIA_imagepipe_surface 1 23 #define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1 24 #define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface" 25 typedef VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA; 26 typedef struct VkImagePipeSurfaceCreateInfoFUCHSIA { 27 VkStructureType sType; 28 const void* pNext; 29 VkImagePipeSurfaceCreateFlagsFUCHSIA flags; 30 zx_handle_t imagePipeHandle; 31 } VkImagePipeSurfaceCreateInfoFUCHSIA; 32 33 typedef VkResult (VKAPI_PTR *PFN_vkCreateImagePipeSurfaceFUCHSIA)(VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 34 35 #ifndef VK_NO_PROTOTYPES 36 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImagePipeSurfaceFUCHSIA( 37 VkInstance instance, 38 const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, 39 const VkAllocationCallbacks* pAllocator, 40 VkSurfaceKHR* pSurface); 41 #endif 42 43 44 #define VK_FUCHSIA_external_memory 1 45 #define VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION 1 46 #define VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME "VK_FUCHSIA_external_memory" 47 typedef struct VkImportMemoryZirconHandleInfoFUCHSIA { 48 VkStructureType sType; 49 const void* pNext; 50 VkExternalMemoryHandleTypeFlagBits handleType; 51 zx_handle_t handle; 52 } VkImportMemoryZirconHandleInfoFUCHSIA; 53 54 typedef struct VkMemoryZirconHandlePropertiesFUCHSIA { 55 VkStructureType sType; 56 void* pNext; 57 uint32_t memoryTypeBits; 58 } VkMemoryZirconHandlePropertiesFUCHSIA; 59 60 typedef struct VkMemoryGetZirconHandleInfoFUCHSIA { 61 VkStructureType sType; 62 const void* pNext; 63 VkDeviceMemory memory; 64 VkExternalMemoryHandleTypeFlagBits handleType; 65 } VkMemoryGetZirconHandleInfoFUCHSIA; 66 67 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryZirconHandleFUCHSIA)(VkDevice device, const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle); 68 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, zx_handle_t zirconHandle, VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties); 69 70 #ifndef VK_NO_PROTOTYPES 71 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryZirconHandleFUCHSIA( 72 VkDevice device, 73 const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, 74 zx_handle_t* pZirconHandle); 75 76 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryZirconHandlePropertiesFUCHSIA( 77 VkDevice device, 78 VkExternalMemoryHandleTypeFlagBits handleType, 79 zx_handle_t zirconHandle, 80 VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties); 81 #endif 82 83 84 #define VK_FUCHSIA_external_semaphore 1 85 #define VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION 1 86 #define VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_FUCHSIA_external_semaphore" 87 typedef struct VkImportSemaphoreZirconHandleInfoFUCHSIA { 88 VkStructureType sType; 89 const void* pNext; 90 VkSemaphore semaphore; 91 VkSemaphoreImportFlags flags; 92 VkExternalSemaphoreHandleTypeFlagBits handleType; 93 zx_handle_t zirconHandle; 94 } VkImportSemaphoreZirconHandleInfoFUCHSIA; 95 96 typedef struct VkSemaphoreGetZirconHandleInfoFUCHSIA { 97 VkStructureType sType; 98 const void* pNext; 99 VkSemaphore semaphore; 100 VkExternalSemaphoreHandleTypeFlagBits handleType; 101 } VkSemaphoreGetZirconHandleInfoFUCHSIA; 102 103 typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreZirconHandleFUCHSIA)(VkDevice device, const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo); 104 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreZirconHandleFUCHSIA)(VkDevice device, const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle); 105 106 #ifndef VK_NO_PROTOTYPES 107 VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreZirconHandleFUCHSIA( 108 VkDevice device, 109 const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo); 110 111 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreZirconHandleFUCHSIA( 112 VkDevice device, 113 const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, 114 zx_handle_t* pZirconHandle); 115 #endif 116 117 118 #define VK_FUCHSIA_buffer_collection 1 119 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferCollectionFUCHSIA) 120 #define VK_FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION 2 121 #define VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME "VK_FUCHSIA_buffer_collection" 122 typedef VkFlags VkImageFormatConstraintsFlagsFUCHSIA; 123 124 typedef enum VkImageConstraintsInfoFlagBitsFUCHSIA { 125 VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA = 0x00000001, 126 VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA = 0x00000002, 127 VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA = 0x00000004, 128 VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA = 0x00000008, 129 VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA = 0x00000010, 130 VK_IMAGE_CONSTRAINTS_INFO_FLAG_BITS_MAX_ENUM_FUCHSIA = 0x7FFFFFFF 131 } VkImageConstraintsInfoFlagBitsFUCHSIA; 132 typedef VkFlags VkImageConstraintsInfoFlagsFUCHSIA; 133 typedef struct VkBufferCollectionCreateInfoFUCHSIA { 134 VkStructureType sType; 135 const void* pNext; 136 zx_handle_t collectionToken; 137 } VkBufferCollectionCreateInfoFUCHSIA; 138 139 typedef struct VkImportMemoryBufferCollectionFUCHSIA { 140 VkStructureType sType; 141 const void* pNext; 142 VkBufferCollectionFUCHSIA collection; 143 uint32_t index; 144 } VkImportMemoryBufferCollectionFUCHSIA; 145 146 typedef struct VkBufferCollectionImageCreateInfoFUCHSIA { 147 VkStructureType sType; 148 const void* pNext; 149 VkBufferCollectionFUCHSIA collection; 150 uint32_t index; 151 } VkBufferCollectionImageCreateInfoFUCHSIA; 152 153 typedef struct VkBufferCollectionConstraintsInfoFUCHSIA { 154 VkStructureType sType; 155 const void* pNext; 156 uint32_t minBufferCount; 157 uint32_t maxBufferCount; 158 uint32_t minBufferCountForCamping; 159 uint32_t minBufferCountForDedicatedSlack; 160 uint32_t minBufferCountForSharedSlack; 161 } VkBufferCollectionConstraintsInfoFUCHSIA; 162 163 typedef struct VkBufferConstraintsInfoFUCHSIA { 164 VkStructureType sType; 165 const void* pNext; 166 VkBufferCreateInfo createInfo; 167 VkFormatFeatureFlags requiredFormatFeatures; 168 VkBufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints; 169 } VkBufferConstraintsInfoFUCHSIA; 170 171 typedef struct VkBufferCollectionBufferCreateInfoFUCHSIA { 172 VkStructureType sType; 173 const void* pNext; 174 VkBufferCollectionFUCHSIA collection; 175 uint32_t index; 176 } VkBufferCollectionBufferCreateInfoFUCHSIA; 177 178 typedef struct VkSysmemColorSpaceFUCHSIA { 179 VkStructureType sType; 180 const void* pNext; 181 uint32_t colorSpace; 182 } VkSysmemColorSpaceFUCHSIA; 183 184 typedef struct VkBufferCollectionPropertiesFUCHSIA { 185 VkStructureType sType; 186 void* pNext; 187 uint32_t memoryTypeBits; 188 uint32_t bufferCount; 189 uint32_t createInfoIndex; 190 uint64_t sysmemPixelFormat; 191 VkFormatFeatureFlags formatFeatures; 192 VkSysmemColorSpaceFUCHSIA sysmemColorSpaceIndex; 193 VkComponentMapping samplerYcbcrConversionComponents; 194 VkSamplerYcbcrModelConversion suggestedYcbcrModel; 195 VkSamplerYcbcrRange suggestedYcbcrRange; 196 VkChromaLocation suggestedXChromaOffset; 197 VkChromaLocation suggestedYChromaOffset; 198 } VkBufferCollectionPropertiesFUCHSIA; 199 200 typedef struct VkImageFormatConstraintsInfoFUCHSIA { 201 VkStructureType sType; 202 const void* pNext; 203 VkImageCreateInfo imageCreateInfo; 204 VkFormatFeatureFlags requiredFormatFeatures; 205 VkImageFormatConstraintsFlagsFUCHSIA flags; 206 uint64_t sysmemPixelFormat; 207 uint32_t colorSpaceCount; 208 const VkSysmemColorSpaceFUCHSIA* pColorSpaces; 209 } VkImageFormatConstraintsInfoFUCHSIA; 210 211 typedef struct VkImageConstraintsInfoFUCHSIA { 212 VkStructureType sType; 213 const void* pNext; 214 uint32_t formatConstraintsCount; 215 const VkImageFormatConstraintsInfoFUCHSIA* pFormatConstraints; 216 VkBufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints; 217 VkImageConstraintsInfoFlagsFUCHSIA flags; 218 } VkImageConstraintsInfoFUCHSIA; 219 220 typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferCollectionFUCHSIA)(VkDevice device, const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferCollectionFUCHSIA* pCollection); 221 typedef VkResult (VKAPI_PTR *PFN_vkSetBufferCollectionImageConstraintsFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo); 222 typedef VkResult (VKAPI_PTR *PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo); 223 typedef void (VKAPI_PTR *PFN_vkDestroyBufferCollectionFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, const VkAllocationCallbacks* pAllocator); 224 typedef VkResult (VKAPI_PTR *PFN_vkGetBufferCollectionPropertiesFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, VkBufferCollectionPropertiesFUCHSIA* pProperties); 225 226 #ifndef VK_NO_PROTOTYPES 227 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferCollectionFUCHSIA( 228 VkDevice device, 229 const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, 230 const VkAllocationCallbacks* pAllocator, 231 VkBufferCollectionFUCHSIA* pCollection); 232 233 VKAPI_ATTR VkResult VKAPI_CALL vkSetBufferCollectionImageConstraintsFUCHSIA( 234 VkDevice device, 235 VkBufferCollectionFUCHSIA collection, 236 const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo); 237 238 VKAPI_ATTR VkResult VKAPI_CALL vkSetBufferCollectionBufferConstraintsFUCHSIA( 239 VkDevice device, 240 VkBufferCollectionFUCHSIA collection, 241 const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo); 242 243 VKAPI_ATTR void VKAPI_CALL vkDestroyBufferCollectionFUCHSIA( 244 VkDevice device, 245 VkBufferCollectionFUCHSIA collection, 246 const VkAllocationCallbacks* pAllocator); 247 248 VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferCollectionPropertiesFUCHSIA( 249 VkDevice device, 250 VkBufferCollectionFUCHSIA collection, 251 VkBufferCollectionPropertiesFUCHSIA* pProperties); 252 #endif 253 254 #ifdef __cplusplus 255 } 256 #endif 257 258 #endif 259