#ifndef VULKAN_FUCHSIA_H_ #define VULKAN_FUCHSIA_H_ 1 /* ** Copyright 2015-2023 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