|  | #ifndef VULKAN_FUCHSIA_H_ | 
|  | #define VULKAN_FUCHSIA_H_ 1 | 
|  |  | 
|  | /* | 
|  | ** Copyright 2015-2022 The Khronos Group Inc. | 
|  | ** | 
|  | ** SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  |  | 
|  | /* | 
|  | ** This header is generated from the Khronos Vulkan XML API Registry. | 
|  | ** | 
|  | */ | 
|  |  | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_FUCHSIA_imagepipe_surface 1 | 
|  | #define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1 | 
|  | #define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface" | 
|  | typedef VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA; | 
|  | typedef struct VkImagePipeSurfaceCreateInfoFUCHSIA { | 
|  | VkStructureType                         sType; | 
|  | const void*                             pNext; | 
|  | VkImagePipeSurfaceCreateFlagsFUCHSIA    flags; | 
|  | zx_handle_t                             imagePipeHandle; | 
|  | } VkImagePipeSurfaceCreateInfoFUCHSIA; | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateImagePipeSurfaceFUCHSIA)(VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateImagePipeSurfaceFUCHSIA( | 
|  | VkInstance                                  instance, | 
|  | const VkImagePipeSurfaceCreateInfoFUCHSIA*  pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkSurfaceKHR*                               pSurface); | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #define VK_FUCHSIA_external_memory 1 | 
|  | #define VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION 1 | 
|  | #define VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME "VK_FUCHSIA_external_memory" | 
|  | typedef struct VkImportMemoryZirconHandleInfoFUCHSIA { | 
|  | VkStructureType                       sType; | 
|  | const void*                           pNext; | 
|  | VkExternalMemoryHandleTypeFlagBits    handleType; | 
|  | zx_handle_t                           handle; | 
|  | } VkImportMemoryZirconHandleInfoFUCHSIA; | 
|  |  | 
|  | typedef struct VkMemoryZirconHandlePropertiesFUCHSIA { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint32_t           memoryTypeBits; | 
|  | } VkMemoryZirconHandlePropertiesFUCHSIA; | 
|  |  | 
|  | typedef struct VkMemoryGetZirconHandleInfoFUCHSIA { | 
|  | VkStructureType                       sType; | 
|  | const void*                           pNext; | 
|  | VkDeviceMemory                        memory; | 
|  | VkExternalMemoryHandleTypeFlagBits    handleType; | 
|  | } VkMemoryGetZirconHandleInfoFUCHSIA; | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryZirconHandleFUCHSIA)(VkDevice device, const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, zx_handle_t zirconHandle, VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryZirconHandleFUCHSIA( | 
|  | VkDevice                                    device, | 
|  | const VkMemoryGetZirconHandleInfoFUCHSIA*   pGetZirconHandleInfo, | 
|  | zx_handle_t*                                pZirconHandle); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryZirconHandlePropertiesFUCHSIA( | 
|  | VkDevice                                    device, | 
|  | VkExternalMemoryHandleTypeFlagBits          handleType, | 
|  | zx_handle_t                                 zirconHandle, | 
|  | VkMemoryZirconHandlePropertiesFUCHSIA*      pMemoryZirconHandleProperties); | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #define VK_FUCHSIA_external_semaphore 1 | 
|  | #define VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION 1 | 
|  | #define VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_FUCHSIA_external_semaphore" | 
|  | typedef struct VkImportSemaphoreZirconHandleInfoFUCHSIA { | 
|  | VkStructureType                          sType; | 
|  | const void*                              pNext; | 
|  | VkSemaphore                              semaphore; | 
|  | VkSemaphoreImportFlags                   flags; | 
|  | VkExternalSemaphoreHandleTypeFlagBits    handleType; | 
|  | zx_handle_t                              zirconHandle; | 
|  | } VkImportSemaphoreZirconHandleInfoFUCHSIA; | 
|  |  | 
|  | typedef struct VkSemaphoreGetZirconHandleInfoFUCHSIA { | 
|  | VkStructureType                          sType; | 
|  | const void*                              pNext; | 
|  | VkSemaphore                              semaphore; | 
|  | VkExternalSemaphoreHandleTypeFlagBits    handleType; | 
|  | } VkSemaphoreGetZirconHandleInfoFUCHSIA; | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreZirconHandleFUCHSIA)(VkDevice device, const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreZirconHandleFUCHSIA)(VkDevice device, const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreZirconHandleFUCHSIA( | 
|  | VkDevice                                    device, | 
|  | const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreZirconHandleFUCHSIA( | 
|  | VkDevice                                    device, | 
|  | const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, | 
|  | zx_handle_t*                                pZirconHandle); | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #define VK_FUCHSIA_buffer_collection 1 | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferCollectionFUCHSIA) | 
|  | #define VK_FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION 2 | 
|  | #define VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME "VK_FUCHSIA_buffer_collection" | 
|  | typedef VkFlags VkImageFormatConstraintsFlagsFUCHSIA; | 
|  |  | 
|  | typedef enum VkImageConstraintsInfoFlagBitsFUCHSIA { | 
|  | VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA = 0x00000001, | 
|  | VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA = 0x00000002, | 
|  | VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA = 0x00000004, | 
|  | VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA = 0x00000008, | 
|  | VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA = 0x00000010, | 
|  | VK_IMAGE_CONSTRAINTS_INFO_FLAG_BITS_MAX_ENUM_FUCHSIA = 0x7FFFFFFF | 
|  | } VkImageConstraintsInfoFlagBitsFUCHSIA; | 
|  | typedef VkFlags VkImageConstraintsInfoFlagsFUCHSIA; | 
|  | typedef struct VkBufferCollectionCreateInfoFUCHSIA { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | zx_handle_t        collectionToken; | 
|  | } VkBufferCollectionCreateInfoFUCHSIA; | 
|  |  | 
|  | typedef struct VkImportMemoryBufferCollectionFUCHSIA { | 
|  | VkStructureType              sType; | 
|  | const void*                  pNext; | 
|  | VkBufferCollectionFUCHSIA    collection; | 
|  | uint32_t                     index; | 
|  | } VkImportMemoryBufferCollectionFUCHSIA; | 
|  |  | 
|  | typedef struct VkBufferCollectionImageCreateInfoFUCHSIA { | 
|  | VkStructureType              sType; | 
|  | const void*                  pNext; | 
|  | VkBufferCollectionFUCHSIA    collection; | 
|  | uint32_t                     index; | 
|  | } VkBufferCollectionImageCreateInfoFUCHSIA; | 
|  |  | 
|  | typedef struct VkBufferCollectionConstraintsInfoFUCHSIA { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           minBufferCount; | 
|  | uint32_t           maxBufferCount; | 
|  | uint32_t           minBufferCountForCamping; | 
|  | uint32_t           minBufferCountForDedicatedSlack; | 
|  | uint32_t           minBufferCountForSharedSlack; | 
|  | } VkBufferCollectionConstraintsInfoFUCHSIA; | 
|  |  | 
|  | typedef struct VkBufferConstraintsInfoFUCHSIA { | 
|  | VkStructureType                             sType; | 
|  | const void*                                 pNext; | 
|  | VkBufferCreateInfo                          createInfo; | 
|  | VkFormatFeatureFlags                        requiredFormatFeatures; | 
|  | VkBufferCollectionConstraintsInfoFUCHSIA    bufferCollectionConstraints; | 
|  | } VkBufferConstraintsInfoFUCHSIA; | 
|  |  | 
|  | typedef struct VkBufferCollectionBufferCreateInfoFUCHSIA { | 
|  | VkStructureType              sType; | 
|  | const void*                  pNext; | 
|  | VkBufferCollectionFUCHSIA    collection; | 
|  | uint32_t                     index; | 
|  | } VkBufferCollectionBufferCreateInfoFUCHSIA; | 
|  |  | 
|  | typedef struct VkSysmemColorSpaceFUCHSIA { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           colorSpace; | 
|  | } VkSysmemColorSpaceFUCHSIA; | 
|  |  | 
|  | typedef struct VkBufferCollectionPropertiesFUCHSIA { | 
|  | VkStructureType                  sType; | 
|  | void*                            pNext; | 
|  | uint32_t                         memoryTypeBits; | 
|  | uint32_t                         bufferCount; | 
|  | uint32_t                         createInfoIndex; | 
|  | uint64_t                         sysmemPixelFormat; | 
|  | VkFormatFeatureFlags             formatFeatures; | 
|  | VkSysmemColorSpaceFUCHSIA        sysmemColorSpaceIndex; | 
|  | VkComponentMapping               samplerYcbcrConversionComponents; | 
|  | VkSamplerYcbcrModelConversion    suggestedYcbcrModel; | 
|  | VkSamplerYcbcrRange              suggestedYcbcrRange; | 
|  | VkChromaLocation                 suggestedXChromaOffset; | 
|  | VkChromaLocation                 suggestedYChromaOffset; | 
|  | } VkBufferCollectionPropertiesFUCHSIA; | 
|  |  | 
|  | typedef struct VkImageFormatConstraintsInfoFUCHSIA { | 
|  | VkStructureType                         sType; | 
|  | const void*                             pNext; | 
|  | VkImageCreateInfo                       imageCreateInfo; | 
|  | VkFormatFeatureFlags                    requiredFormatFeatures; | 
|  | VkImageFormatConstraintsFlagsFUCHSIA    flags; | 
|  | uint64_t                                sysmemPixelFormat; | 
|  | uint32_t                                colorSpaceCount; | 
|  | const VkSysmemColorSpaceFUCHSIA*        pColorSpaces; | 
|  | } VkImageFormatConstraintsInfoFUCHSIA; | 
|  |  | 
|  | typedef struct VkImageConstraintsInfoFUCHSIA { | 
|  | VkStructureType                               sType; | 
|  | const void*                                   pNext; | 
|  | uint32_t                                      formatConstraintsCount; | 
|  | const VkImageFormatConstraintsInfoFUCHSIA*    pFormatConstraints; | 
|  | VkBufferCollectionConstraintsInfoFUCHSIA      bufferCollectionConstraints; | 
|  | VkImageConstraintsInfoFlagsFUCHSIA            flags; | 
|  | } VkImageConstraintsInfoFUCHSIA; | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferCollectionFUCHSIA)(VkDevice device, const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferCollectionFUCHSIA* pCollection); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkSetBufferCollectionImageConstraintsFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyBufferCollectionFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetBufferCollectionPropertiesFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, VkBufferCollectionPropertiesFUCHSIA* pProperties); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferCollectionFUCHSIA( | 
|  | VkDevice                                    device, | 
|  | const VkBufferCollectionCreateInfoFUCHSIA*  pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkBufferCollectionFUCHSIA*                  pCollection); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkSetBufferCollectionImageConstraintsFUCHSIA( | 
|  | VkDevice                                    device, | 
|  | VkBufferCollectionFUCHSIA                   collection, | 
|  | const VkImageConstraintsInfoFUCHSIA*        pImageConstraintsInfo); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkSetBufferCollectionBufferConstraintsFUCHSIA( | 
|  | VkDevice                                    device, | 
|  | VkBufferCollectionFUCHSIA                   collection, | 
|  | const VkBufferConstraintsInfoFUCHSIA*       pBufferConstraintsInfo); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyBufferCollectionFUCHSIA( | 
|  | VkDevice                                    device, | 
|  | VkBufferCollectionFUCHSIA                   collection, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferCollectionPropertiesFUCHSIA( | 
|  | VkDevice                                    device, | 
|  | VkBufferCollectionFUCHSIA                   collection, | 
|  | VkBufferCollectionPropertiesFUCHSIA*        pProperties); | 
|  | #endif | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif |