vulkan_fuchsia.h revision 7ec681f3
101e04c3fSmrg#ifndef VULKAN_FUCHSIA_H_ 201e04c3fSmrg#define VULKAN_FUCHSIA_H_ 1 301e04c3fSmrg 401e04c3fSmrg/* 57ec681f3Smrg** Copyright 2015-2021 The Khronos Group Inc. 601e04c3fSmrg** 77ec681f3Smrg** SPDX-License-Identifier: Apache-2.0 801e04c3fSmrg*/ 901e04c3fSmrg 1001e04c3fSmrg/* 1101e04c3fSmrg** This header is generated from the Khronos Vulkan XML API Registry. 1201e04c3fSmrg** 1301e04c3fSmrg*/ 1401e04c3fSmrg 1501e04c3fSmrg 167ec681f3Smrg#ifdef __cplusplus 177ec681f3Smrgextern "C" { 187ec681f3Smrg#endif 197ec681f3Smrg 207ec681f3Smrg 21ed98bd31Smaya 2201e04c3fSmrg#define VK_FUCHSIA_imagepipe_surface 1 2301e04c3fSmrg#define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1 2401e04c3fSmrg#define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface" 2501e04c3fSmrgtypedef VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA; 2601e04c3fSmrgtypedef struct VkImagePipeSurfaceCreateInfoFUCHSIA { 2701e04c3fSmrg VkStructureType sType; 2801e04c3fSmrg const void* pNext; 2901e04c3fSmrg VkImagePipeSurfaceCreateFlagsFUCHSIA flags; 3001e04c3fSmrg zx_handle_t imagePipeHandle; 3101e04c3fSmrg} VkImagePipeSurfaceCreateInfoFUCHSIA; 3201e04c3fSmrg 3301e04c3fSmrgtypedef VkResult (VKAPI_PTR *PFN_vkCreateImagePipeSurfaceFUCHSIA)(VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 3401e04c3fSmrg 3501e04c3fSmrg#ifndef VK_NO_PROTOTYPES 3601e04c3fSmrgVKAPI_ATTR VkResult VKAPI_CALL vkCreateImagePipeSurfaceFUCHSIA( 3701e04c3fSmrg VkInstance instance, 3801e04c3fSmrg const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, 3901e04c3fSmrg const VkAllocationCallbacks* pAllocator, 4001e04c3fSmrg VkSurfaceKHR* pSurface); 4101e04c3fSmrg#endif 4201e04c3fSmrg 437ec681f3Smrg 447ec681f3Smrg#define VK_FUCHSIA_external_memory 1 457ec681f3Smrg#define VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION 1 467ec681f3Smrg#define VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME "VK_FUCHSIA_external_memory" 477ec681f3Smrgtypedef struct VkImportMemoryZirconHandleInfoFUCHSIA { 487ec681f3Smrg VkStructureType sType; 497ec681f3Smrg const void* pNext; 507ec681f3Smrg VkExternalMemoryHandleTypeFlagBits handleType; 517ec681f3Smrg zx_handle_t handle; 527ec681f3Smrg} VkImportMemoryZirconHandleInfoFUCHSIA; 537ec681f3Smrg 547ec681f3Smrgtypedef struct VkMemoryZirconHandlePropertiesFUCHSIA { 557ec681f3Smrg VkStructureType sType; 567ec681f3Smrg void* pNext; 577ec681f3Smrg uint32_t memoryTypeBits; 587ec681f3Smrg} VkMemoryZirconHandlePropertiesFUCHSIA; 597ec681f3Smrg 607ec681f3Smrgtypedef struct VkMemoryGetZirconHandleInfoFUCHSIA { 617ec681f3Smrg VkStructureType sType; 627ec681f3Smrg const void* pNext; 637ec681f3Smrg VkDeviceMemory memory; 647ec681f3Smrg VkExternalMemoryHandleTypeFlagBits handleType; 657ec681f3Smrg} VkMemoryGetZirconHandleInfoFUCHSIA; 667ec681f3Smrg 677ec681f3Smrgtypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryZirconHandleFUCHSIA)(VkDevice device, const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle); 687ec681f3Smrgtypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, zx_handle_t zirconHandle, VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties); 697ec681f3Smrg 707ec681f3Smrg#ifndef VK_NO_PROTOTYPES 717ec681f3SmrgVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryZirconHandleFUCHSIA( 727ec681f3Smrg VkDevice device, 737ec681f3Smrg const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, 747ec681f3Smrg zx_handle_t* pZirconHandle); 757ec681f3Smrg 767ec681f3SmrgVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryZirconHandlePropertiesFUCHSIA( 777ec681f3Smrg VkDevice device, 787ec681f3Smrg VkExternalMemoryHandleTypeFlagBits handleType, 797ec681f3Smrg zx_handle_t zirconHandle, 807ec681f3Smrg VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties); 817ec681f3Smrg#endif 827ec681f3Smrg 837ec681f3Smrg 847ec681f3Smrg#define VK_FUCHSIA_external_semaphore 1 857ec681f3Smrg#define VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION 1 867ec681f3Smrg#define VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_FUCHSIA_external_semaphore" 877ec681f3Smrgtypedef struct VkImportSemaphoreZirconHandleInfoFUCHSIA { 887ec681f3Smrg VkStructureType sType; 897ec681f3Smrg const void* pNext; 907ec681f3Smrg VkSemaphore semaphore; 917ec681f3Smrg VkSemaphoreImportFlags flags; 927ec681f3Smrg VkExternalSemaphoreHandleTypeFlagBits handleType; 937ec681f3Smrg zx_handle_t zirconHandle; 947ec681f3Smrg} VkImportSemaphoreZirconHandleInfoFUCHSIA; 957ec681f3Smrg 967ec681f3Smrgtypedef struct VkSemaphoreGetZirconHandleInfoFUCHSIA { 977ec681f3Smrg VkStructureType sType; 987ec681f3Smrg const void* pNext; 997ec681f3Smrg VkSemaphore semaphore; 1007ec681f3Smrg VkExternalSemaphoreHandleTypeFlagBits handleType; 1017ec681f3Smrg} VkSemaphoreGetZirconHandleInfoFUCHSIA; 1027ec681f3Smrg 1037ec681f3Smrgtypedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreZirconHandleFUCHSIA)(VkDevice device, const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo); 1047ec681f3Smrgtypedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreZirconHandleFUCHSIA)(VkDevice device, const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle); 1057ec681f3Smrg 1067ec681f3Smrg#ifndef VK_NO_PROTOTYPES 1077ec681f3SmrgVKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreZirconHandleFUCHSIA( 1087ec681f3Smrg VkDevice device, 1097ec681f3Smrg const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo); 1107ec681f3Smrg 1117ec681f3SmrgVKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreZirconHandleFUCHSIA( 1127ec681f3Smrg VkDevice device, 1137ec681f3Smrg const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, 1147ec681f3Smrg zx_handle_t* pZirconHandle); 1157ec681f3Smrg#endif 1167ec681f3Smrg 1177ec681f3Smrg 1187ec681f3Smrg#define VK_FUCHSIA_buffer_collection 1 1197ec681f3SmrgVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferCollectionFUCHSIA) 1207ec681f3Smrg#define VK_FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION 2 1217ec681f3Smrg#define VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME "VK_FUCHSIA_buffer_collection" 1227ec681f3Smrg 1237ec681f3Smrgtypedef enum VkImageFormatConstraintsFlagBitsFUCHSIA { 1247ec681f3Smrg VK_IMAGE_FORMAT_CONSTRAINTS_FLAG_BITS_MAX_ENUM_FUCHSIA = 0x7FFFFFFF 1257ec681f3Smrg} VkImageFormatConstraintsFlagBitsFUCHSIA; 1267ec681f3Smrgtypedef VkFlags VkImageFormatConstraintsFlagsFUCHSIA; 1277ec681f3Smrg 1287ec681f3Smrgtypedef enum VkImageConstraintsInfoFlagBitsFUCHSIA { 1297ec681f3Smrg VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA = 0x00000001, 1307ec681f3Smrg VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA = 0x00000002, 1317ec681f3Smrg VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA = 0x00000004, 1327ec681f3Smrg VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA = 0x00000008, 1337ec681f3Smrg VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA = 0x00000010, 1347ec681f3Smrg VK_IMAGE_CONSTRAINTS_INFO_FLAG_BITS_MAX_ENUM_FUCHSIA = 0x7FFFFFFF 1357ec681f3Smrg} VkImageConstraintsInfoFlagBitsFUCHSIA; 1367ec681f3Smrgtypedef VkFlags VkImageConstraintsInfoFlagsFUCHSIA; 1377ec681f3Smrgtypedef struct VkBufferCollectionCreateInfoFUCHSIA { 1387ec681f3Smrg VkStructureType sType; 1397ec681f3Smrg const void* pNext; 1407ec681f3Smrg zx_handle_t collectionToken; 1417ec681f3Smrg} VkBufferCollectionCreateInfoFUCHSIA; 1427ec681f3Smrg 1437ec681f3Smrgtypedef struct VkImportMemoryBufferCollectionFUCHSIA { 1447ec681f3Smrg VkStructureType sType; 1457ec681f3Smrg const void* pNext; 1467ec681f3Smrg VkBufferCollectionFUCHSIA collection; 1477ec681f3Smrg uint32_t index; 1487ec681f3Smrg} VkImportMemoryBufferCollectionFUCHSIA; 1497ec681f3Smrg 1507ec681f3Smrgtypedef struct VkBufferCollectionImageCreateInfoFUCHSIA { 1517ec681f3Smrg VkStructureType sType; 1527ec681f3Smrg const void* pNext; 1537ec681f3Smrg VkBufferCollectionFUCHSIA collection; 1547ec681f3Smrg uint32_t index; 1557ec681f3Smrg} VkBufferCollectionImageCreateInfoFUCHSIA; 1567ec681f3Smrg 1577ec681f3Smrgtypedef struct VkBufferCollectionConstraintsInfoFUCHSIA { 1587ec681f3Smrg VkStructureType sType; 1597ec681f3Smrg const void* pNext; 1607ec681f3Smrg uint32_t minBufferCount; 1617ec681f3Smrg uint32_t maxBufferCount; 1627ec681f3Smrg uint32_t minBufferCountForCamping; 1637ec681f3Smrg uint32_t minBufferCountForDedicatedSlack; 1647ec681f3Smrg uint32_t minBufferCountForSharedSlack; 1657ec681f3Smrg} VkBufferCollectionConstraintsInfoFUCHSIA; 1667ec681f3Smrg 1677ec681f3Smrgtypedef struct VkBufferConstraintsInfoFUCHSIA { 1687ec681f3Smrg VkStructureType sType; 1697ec681f3Smrg const void* pNext; 1707ec681f3Smrg VkBufferCreateInfo createInfo; 1717ec681f3Smrg VkFormatFeatureFlags requiredFormatFeatures; 1727ec681f3Smrg VkBufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints; 1737ec681f3Smrg} VkBufferConstraintsInfoFUCHSIA; 1747ec681f3Smrg 1757ec681f3Smrgtypedef struct VkBufferCollectionBufferCreateInfoFUCHSIA { 1767ec681f3Smrg VkStructureType sType; 1777ec681f3Smrg const void* pNext; 1787ec681f3Smrg VkBufferCollectionFUCHSIA collection; 1797ec681f3Smrg uint32_t index; 1807ec681f3Smrg} VkBufferCollectionBufferCreateInfoFUCHSIA; 1817ec681f3Smrg 1827ec681f3Smrgtypedef struct VkSysmemColorSpaceFUCHSIA { 1837ec681f3Smrg VkStructureType sType; 1847ec681f3Smrg const void* pNext; 1857ec681f3Smrg uint32_t colorSpace; 1867ec681f3Smrg} VkSysmemColorSpaceFUCHSIA; 1877ec681f3Smrg 1887ec681f3Smrgtypedef struct VkBufferCollectionPropertiesFUCHSIA { 1897ec681f3Smrg VkStructureType sType; 1907ec681f3Smrg void* pNext; 1917ec681f3Smrg uint32_t memoryTypeBits; 1927ec681f3Smrg uint32_t bufferCount; 1937ec681f3Smrg uint32_t createInfoIndex; 1947ec681f3Smrg uint64_t sysmemPixelFormat; 1957ec681f3Smrg VkFormatFeatureFlags formatFeatures; 1967ec681f3Smrg VkSysmemColorSpaceFUCHSIA sysmemColorSpaceIndex; 1977ec681f3Smrg VkComponentMapping samplerYcbcrConversionComponents; 1987ec681f3Smrg VkSamplerYcbcrModelConversion suggestedYcbcrModel; 1997ec681f3Smrg VkSamplerYcbcrRange suggestedYcbcrRange; 2007ec681f3Smrg VkChromaLocation suggestedXChromaOffset; 2017ec681f3Smrg VkChromaLocation suggestedYChromaOffset; 2027ec681f3Smrg} VkBufferCollectionPropertiesFUCHSIA; 2037ec681f3Smrg 2047ec681f3Smrgtypedef struct VkImageFormatConstraintsInfoFUCHSIA { 2057ec681f3Smrg VkStructureType sType; 2067ec681f3Smrg const void* pNext; 2077ec681f3Smrg VkImageCreateInfo imageCreateInfo; 2087ec681f3Smrg VkFormatFeatureFlags requiredFormatFeatures; 2097ec681f3Smrg VkImageFormatConstraintsFlagsFUCHSIA flags; 2107ec681f3Smrg uint64_t sysmemPixelFormat; 2117ec681f3Smrg uint32_t colorSpaceCount; 2127ec681f3Smrg const VkSysmemColorSpaceFUCHSIA* pColorSpaces; 2137ec681f3Smrg} VkImageFormatConstraintsInfoFUCHSIA; 2147ec681f3Smrg 2157ec681f3Smrgtypedef struct VkImageConstraintsInfoFUCHSIA { 2167ec681f3Smrg VkStructureType sType; 2177ec681f3Smrg const void* pNext; 2187ec681f3Smrg uint32_t formatConstraintsCount; 2197ec681f3Smrg const VkImageFormatConstraintsInfoFUCHSIA* pFormatConstraints; 2207ec681f3Smrg VkBufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints; 2217ec681f3Smrg VkImageConstraintsInfoFlagsFUCHSIA flags; 2227ec681f3Smrg} VkImageConstraintsInfoFUCHSIA; 2237ec681f3Smrg 2247ec681f3Smrgtypedef VkResult (VKAPI_PTR *PFN_vkCreateBufferCollectionFUCHSIA)(VkDevice device, const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferCollectionFUCHSIA* pCollection); 2257ec681f3Smrgtypedef VkResult (VKAPI_PTR *PFN_vkSetBufferCollectionImageConstraintsFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo); 2267ec681f3Smrgtypedef VkResult (VKAPI_PTR *PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo); 2277ec681f3Smrgtypedef void (VKAPI_PTR *PFN_vkDestroyBufferCollectionFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, const VkAllocationCallbacks* pAllocator); 2287ec681f3Smrgtypedef VkResult (VKAPI_PTR *PFN_vkGetBufferCollectionPropertiesFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, VkBufferCollectionPropertiesFUCHSIA* pProperties); 2297ec681f3Smrg 2307ec681f3Smrg#ifndef VK_NO_PROTOTYPES 2317ec681f3SmrgVKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferCollectionFUCHSIA( 2327ec681f3Smrg VkDevice device, 2337ec681f3Smrg const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, 2347ec681f3Smrg const VkAllocationCallbacks* pAllocator, 2357ec681f3Smrg VkBufferCollectionFUCHSIA* pCollection); 2367ec681f3Smrg 2377ec681f3SmrgVKAPI_ATTR VkResult VKAPI_CALL vkSetBufferCollectionImageConstraintsFUCHSIA( 2387ec681f3Smrg VkDevice device, 2397ec681f3Smrg VkBufferCollectionFUCHSIA collection, 2407ec681f3Smrg const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo); 2417ec681f3Smrg 2427ec681f3SmrgVKAPI_ATTR VkResult VKAPI_CALL vkSetBufferCollectionBufferConstraintsFUCHSIA( 2437ec681f3Smrg VkDevice device, 2447ec681f3Smrg VkBufferCollectionFUCHSIA collection, 2457ec681f3Smrg const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo); 2467ec681f3Smrg 2477ec681f3SmrgVKAPI_ATTR void VKAPI_CALL vkDestroyBufferCollectionFUCHSIA( 2487ec681f3Smrg VkDevice device, 2497ec681f3Smrg VkBufferCollectionFUCHSIA collection, 2507ec681f3Smrg const VkAllocationCallbacks* pAllocator); 2517ec681f3Smrg 2527ec681f3SmrgVKAPI_ATTR VkResult VKAPI_CALL vkGetBufferCollectionPropertiesFUCHSIA( 2537ec681f3Smrg VkDevice device, 2547ec681f3Smrg VkBufferCollectionFUCHSIA collection, 2557ec681f3Smrg VkBufferCollectionPropertiesFUCHSIA* pProperties); 2567ec681f3Smrg#endif 2577ec681f3Smrg 25801e04c3fSmrg#ifdef __cplusplus 25901e04c3fSmrg} 26001e04c3fSmrg#endif 26101e04c3fSmrg 26201e04c3fSmrg#endif 263