vulkan_fuchsia.h 13 KB

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