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