1 #ifndef VULKAN_BETA_H_
2 #define VULKAN_BETA_H_ 1
3 
4 /*
5 ** Copyright (c) 2015-2020 The Khronos Group Inc.
6 **
7 ** Licensed under the Apache License, Version 2.0 (the "License");
8 ** you may not use this file except in compliance with the License.
9 ** You may obtain a copy of the License at
10 **
11 **     http://www.apache.org/licenses/LICENSE-2.0
12 **
13 ** Unless required by applicable law or agreed to in writing, software
14 ** distributed under the License is distributed on an "AS IS" BASIS,
15 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 ** See the License for the specific language governing permissions and
17 ** limitations under the License.
18 */
19 
20 /*
21 ** This header is generated from the Khronos Vulkan XML API Registry.
22 **
23 */
24 
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 
31 
32 #define VK_KHR_deferred_host_operations 1
33 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR)
34 #define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 2
35 #define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations"
36 typedef struct VkDeferredOperationInfoKHR {
37     VkStructureType           sType;
38     const void*               pNext;
39     VkDeferredOperationKHR    operationHandle;
40 } VkDeferredOperationInfoKHR;
41 
42 typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation);
43 typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator);
44 typedef uint32_t (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation);
45 typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation);
46 typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation);
47 
48 #ifndef VK_NO_PROTOTYPES
49 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR(
50     VkDevice                                    device,
51     const VkAllocationCallbacks*                pAllocator,
52     VkDeferredOperationKHR*                     pDeferredOperation);
53 
54 VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR(
55     VkDevice                                    device,
56     VkDeferredOperationKHR                      operation,
57     const VkAllocationCallbacks*                pAllocator);
58 
59 VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR(
60     VkDevice                                    device,
61     VkDeferredOperationKHR                      operation);
62 
63 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR(
64     VkDevice                                    device,
65     VkDeferredOperationKHR                      operation);
66 
67 VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR(
68     VkDevice                                    device,
69     VkDeferredOperationKHR                      operation);
70 #endif
71 
72 
73 #define VK_KHR_pipeline_library 1
74 #define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
75 #define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
76 typedef struct VkPipelineLibraryCreateInfoKHR {
77     VkStructureType      sType;
78     const void*          pNext;
79     uint32_t             libraryCount;
80     const VkPipeline*    pLibraries;
81 } VkPipelineLibraryCreateInfoKHR;
82 
83 
84 
85 #define VK_KHR_ray_tracing 1
86 #define VK_KHR_RAY_TRACING_SPEC_VERSION   8
87 #define VK_KHR_RAY_TRACING_EXTENSION_NAME "VK_KHR_ray_tracing"
88 
89 typedef enum VkAccelerationStructureBuildTypeKHR {
90     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0,
91     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1,
92     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2,
93     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
94 } VkAccelerationStructureBuildTypeKHR;
95 typedef union VkDeviceOrHostAddressKHR {
96     VkDeviceAddress    deviceAddress;
97     void*              hostAddress;
98 } VkDeviceOrHostAddressKHR;
99 
100 typedef union VkDeviceOrHostAddressConstKHR {
101     VkDeviceAddress    deviceAddress;
102     const void*        hostAddress;
103 } VkDeviceOrHostAddressConstKHR;
104 
105 typedef struct VkAccelerationStructureBuildOffsetInfoKHR {
106     uint32_t    primitiveCount;
107     uint32_t    primitiveOffset;
108     uint32_t    firstVertex;
109     uint32_t    transformOffset;
110 } VkAccelerationStructureBuildOffsetInfoKHR;
111 
112 typedef struct VkRayTracingShaderGroupCreateInfoKHR {
113     VkStructureType                   sType;
114     const void*                       pNext;
115     VkRayTracingShaderGroupTypeKHR    type;
116     uint32_t                          generalShader;
117     uint32_t                          closestHitShader;
118     uint32_t                          anyHitShader;
119     uint32_t                          intersectionShader;
120     const void*                       pShaderGroupCaptureReplayHandle;
121 } VkRayTracingShaderGroupCreateInfoKHR;
122 
123 typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
124     VkStructureType    sType;
125     const void*        pNext;
126     uint32_t           maxPayloadSize;
127     uint32_t           maxAttributeSize;
128     uint32_t           maxCallableSize;
129 } VkRayTracingPipelineInterfaceCreateInfoKHR;
130 
131 typedef struct VkRayTracingPipelineCreateInfoKHR {
132     VkStructureType                                      sType;
133     const void*                                          pNext;
134     VkPipelineCreateFlags                                flags;
135     uint32_t                                             stageCount;
136     const VkPipelineShaderStageCreateInfo*               pStages;
137     uint32_t                                             groupCount;
138     const VkRayTracingShaderGroupCreateInfoKHR*          pGroups;
139     uint32_t                                             maxRecursionDepth;
140     VkPipelineLibraryCreateInfoKHR                       libraries;
141     const VkRayTracingPipelineInterfaceCreateInfoKHR*    pLibraryInterface;
142     VkPipelineLayout                                     layout;
143     VkPipeline                                           basePipelineHandle;
144     int32_t                                              basePipelineIndex;
145 } VkRayTracingPipelineCreateInfoKHR;
146 
147 typedef struct VkAccelerationStructureGeometryTrianglesDataKHR {
148     VkStructureType                  sType;
149     const void*                      pNext;
150     VkFormat                         vertexFormat;
151     VkDeviceOrHostAddressConstKHR    vertexData;
152     VkDeviceSize                     vertexStride;
153     VkIndexType                      indexType;
154     VkDeviceOrHostAddressConstKHR    indexData;
155     VkDeviceOrHostAddressConstKHR    transformData;
156 } VkAccelerationStructureGeometryTrianglesDataKHR;
157 
158 typedef struct VkAccelerationStructureGeometryAabbsDataKHR {
159     VkStructureType                  sType;
160     const void*                      pNext;
161     VkDeviceOrHostAddressConstKHR    data;
162     VkDeviceSize                     stride;
163 } VkAccelerationStructureGeometryAabbsDataKHR;
164 
165 typedef struct VkAccelerationStructureGeometryInstancesDataKHR {
166     VkStructureType                  sType;
167     const void*                      pNext;
168     VkBool32                         arrayOfPointers;
169     VkDeviceOrHostAddressConstKHR    data;
170 } VkAccelerationStructureGeometryInstancesDataKHR;
171 
172 typedef union VkAccelerationStructureGeometryDataKHR {
173     VkAccelerationStructureGeometryTrianglesDataKHR    triangles;
174     VkAccelerationStructureGeometryAabbsDataKHR        aabbs;
175     VkAccelerationStructureGeometryInstancesDataKHR    instances;
176 } VkAccelerationStructureGeometryDataKHR;
177 
178 typedef struct VkAccelerationStructureGeometryKHR {
179     VkStructureType                           sType;
180     const void*                               pNext;
181     VkGeometryTypeKHR                         geometryType;
182     VkAccelerationStructureGeometryDataKHR    geometry;
183     VkGeometryFlagsKHR                        flags;
184 } VkAccelerationStructureGeometryKHR;
185 
186 typedef struct VkAccelerationStructureBuildGeometryInfoKHR {
187     VkStructureType                                     sType;
188     const void*                                         pNext;
189     VkAccelerationStructureTypeKHR                      type;
190     VkBuildAccelerationStructureFlagsKHR                flags;
191     VkBool32                                            update;
192     VkAccelerationStructureKHR                          srcAccelerationStructure;
193     VkAccelerationStructureKHR                          dstAccelerationStructure;
194     VkBool32                                            geometryArrayOfPointers;
195     uint32_t                                            geometryCount;
196     const VkAccelerationStructureGeometryKHR* const*    ppGeometries;
197     VkDeviceOrHostAddressKHR                            scratchData;
198 } VkAccelerationStructureBuildGeometryInfoKHR;
199 
200 typedef struct VkAccelerationStructureCreateGeometryTypeInfoKHR {
201     VkStructureType      sType;
202     const void*          pNext;
203     VkGeometryTypeKHR    geometryType;
204     uint32_t             maxPrimitiveCount;
205     VkIndexType          indexType;
206     uint32_t             maxVertexCount;
207     VkFormat             vertexFormat;
208     VkBool32             allowsTransforms;
209 } VkAccelerationStructureCreateGeometryTypeInfoKHR;
210 
211 typedef struct VkAccelerationStructureCreateInfoKHR {
212     VkStructureType                                            sType;
213     const void*                                                pNext;
214     VkDeviceSize                                               compactedSize;
215     VkAccelerationStructureTypeKHR                             type;
216     VkBuildAccelerationStructureFlagsKHR                       flags;
217     uint32_t                                                   maxGeometryCount;
218     const VkAccelerationStructureCreateGeometryTypeInfoKHR*    pGeometryInfos;
219     VkDeviceAddress                                            deviceAddress;
220 } VkAccelerationStructureCreateInfoKHR;
221 
222 typedef struct VkAccelerationStructureMemoryRequirementsInfoKHR {
223     VkStructureType                                     sType;
224     const void*                                         pNext;
225     VkAccelerationStructureMemoryRequirementsTypeKHR    type;
226     VkAccelerationStructureBuildTypeKHR                 buildType;
227     VkAccelerationStructureKHR                          accelerationStructure;
228 } VkAccelerationStructureMemoryRequirementsInfoKHR;
229 
230 typedef struct VkPhysicalDeviceRayTracingFeaturesKHR {
231     VkStructureType    sType;
232     void*              pNext;
233     VkBool32           rayTracing;
234     VkBool32           rayTracingShaderGroupHandleCaptureReplay;
235     VkBool32           rayTracingShaderGroupHandleCaptureReplayMixed;
236     VkBool32           rayTracingAccelerationStructureCaptureReplay;
237     VkBool32           rayTracingIndirectTraceRays;
238     VkBool32           rayTracingIndirectAccelerationStructureBuild;
239     VkBool32           rayTracingHostAccelerationStructureCommands;
240     VkBool32           rayQuery;
241     VkBool32           rayTracingPrimitiveCulling;
242 } VkPhysicalDeviceRayTracingFeaturesKHR;
243 
244 typedef struct VkPhysicalDeviceRayTracingPropertiesKHR {
245     VkStructureType    sType;
246     void*              pNext;
247     uint32_t           shaderGroupHandleSize;
248     uint32_t           maxRecursionDepth;
249     uint32_t           maxShaderGroupStride;
250     uint32_t           shaderGroupBaseAlignment;
251     uint64_t           maxGeometryCount;
252     uint64_t           maxInstanceCount;
253     uint64_t           maxPrimitiveCount;
254     uint32_t           maxDescriptorSetAccelerationStructures;
255     uint32_t           shaderGroupHandleCaptureReplaySize;
256 } VkPhysicalDeviceRayTracingPropertiesKHR;
257 
258 typedef struct VkAccelerationStructureDeviceAddressInfoKHR {
259     VkStructureType               sType;
260     const void*                   pNext;
261     VkAccelerationStructureKHR    accelerationStructure;
262 } VkAccelerationStructureDeviceAddressInfoKHR;
263 
264 typedef struct VkAccelerationStructureVersionKHR {
265     VkStructureType    sType;
266     const void*        pNext;
267     const uint8_t*     versionData;
268 } VkAccelerationStructureVersionKHR;
269 
270 typedef struct VkStridedBufferRegionKHR {
271     VkBuffer        buffer;
272     VkDeviceSize    offset;
273     VkDeviceSize    stride;
274     VkDeviceSize    size;
275 } VkStridedBufferRegionKHR;
276 
277 typedef struct VkTraceRaysIndirectCommandKHR {
278     uint32_t    width;
279     uint32_t    height;
280     uint32_t    depth;
281 } VkTraceRaysIndirectCommandKHR;
282 
283 typedef struct VkCopyAccelerationStructureToMemoryInfoKHR {
284     VkStructureType                       sType;
285     const void*                           pNext;
286     VkAccelerationStructureKHR            src;
287     VkDeviceOrHostAddressKHR              dst;
288     VkCopyAccelerationStructureModeKHR    mode;
289 } VkCopyAccelerationStructureToMemoryInfoKHR;
290 
291 typedef struct VkCopyMemoryToAccelerationStructureInfoKHR {
292     VkStructureType                       sType;
293     const void*                           pNext;
294     VkDeviceOrHostAddressConstKHR         src;
295     VkAccelerationStructureKHR            dst;
296     VkCopyAccelerationStructureModeKHR    mode;
297 } VkCopyMemoryToAccelerationStructureInfoKHR;
298 
299 typedef struct VkCopyAccelerationStructureInfoKHR {
300     VkStructureType                       sType;
301     const void*                           pNext;
302     VkAccelerationStructureKHR            src;
303     VkAccelerationStructureKHR            dst;
304     VkCopyAccelerationStructureModeKHR    mode;
305 } VkCopyAccelerationStructureInfoKHR;
306 
307 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice                                           device, const VkAccelerationStructureCreateInfoKHR*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkAccelerationStructureKHR*                        pAccelerationStructure);
308 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsKHR)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoKHR* pInfo, VkMemoryRequirements2* pMemoryRequirements);
309 typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureKHR)(VkCommandBuffer                                    commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos);
310 typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureIndirectKHR)(VkCommandBuffer                                    commandBuffer, const VkAccelerationStructureBuildGeometryInfoKHR* pInfo, VkBuffer                                           indirectBuffer, VkDeviceSize                                       indirectOffset, uint32_t                                           indirectStride);
311 typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructureKHR)(VkDevice                                           device, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos);
312 typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, const VkCopyAccelerationStructureInfoKHR* pInfo);
313 typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
314 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
315 typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType  queryType, size_t       dataSize, void* pData, size_t stride);
316 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
317 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
318 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
319 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysKHR)(VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR* pRaygenShaderBindingTable, const VkStridedBufferRegionKHR* pMissShaderBindingTable, const VkStridedBufferRegionKHR* pHitShaderBindingTable, const VkStridedBufferRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth);
320 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
321 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
322 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
323 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR* pRaygenShaderBindingTable, const VkStridedBufferRegionKHR* pMissShaderBindingTable, const VkStridedBufferRegionKHR* pHitShaderBindingTable, const VkStridedBufferRegionKHR* pCallableShaderBindingTable, VkBuffer buffer, VkDeviceSize offset);
324 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionKHR* version);
325 
326 #ifndef VK_NO_PROTOTYPES
327 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR(
328     VkDevice                                    device,
329     const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
330     const VkAllocationCallbacks*                pAllocator,
331     VkAccelerationStructureKHR*                 pAccelerationStructure);
332 
333 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsKHR(
334     VkDevice                                    device,
335     const VkAccelerationStructureMemoryRequirementsInfoKHR* pInfo,
336     VkMemoryRequirements2*                      pMemoryRequirements);
337 
338 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureKHR(
339     VkCommandBuffer                             commandBuffer,
340     uint32_t                                    infoCount,
341     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
342     const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos);
343 
344 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureIndirectKHR(
345     VkCommandBuffer                             commandBuffer,
346     const VkAccelerationStructureBuildGeometryInfoKHR* pInfo,
347     VkBuffer                                    indirectBuffer,
348     VkDeviceSize                                indirectOffset,
349     uint32_t                                    indirectStride);
350 
351 VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructureKHR(
352     VkDevice                                    device,
353     uint32_t                                    infoCount,
354     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
355     const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos);
356 
357 VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR(
358     VkDevice                                    device,
359     const VkCopyAccelerationStructureInfoKHR*   pInfo);
360 
361 VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR(
362     VkDevice                                    device,
363     const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
364 
365 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR(
366     VkDevice                                    device,
367     const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
368 
369 VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR(
370     VkDevice                                    device,
371     uint32_t                                    accelerationStructureCount,
372     const VkAccelerationStructureKHR*           pAccelerationStructures,
373     VkQueryType                                 queryType,
374     size_t                                      dataSize,
375     void*                                       pData,
376     size_t                                      stride);
377 
378 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR(
379     VkCommandBuffer                             commandBuffer,
380     const VkCopyAccelerationStructureInfoKHR*   pInfo);
381 
382 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR(
383     VkCommandBuffer                             commandBuffer,
384     const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
385 
386 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR(
387     VkCommandBuffer                             commandBuffer,
388     const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
389 
390 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR(
391     VkCommandBuffer                             commandBuffer,
392     const VkStridedBufferRegionKHR*             pRaygenShaderBindingTable,
393     const VkStridedBufferRegionKHR*             pMissShaderBindingTable,
394     const VkStridedBufferRegionKHR*             pHitShaderBindingTable,
395     const VkStridedBufferRegionKHR*             pCallableShaderBindingTable,
396     uint32_t                                    width,
397     uint32_t                                    height,
398     uint32_t                                    depth);
399 
400 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR(
401     VkDevice                                    device,
402     VkPipelineCache                             pipelineCache,
403     uint32_t                                    createInfoCount,
404     const VkRayTracingPipelineCreateInfoKHR*    pCreateInfos,
405     const VkAllocationCallbacks*                pAllocator,
406     VkPipeline*                                 pPipelines);
407 
408 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR(
409     VkDevice                                    device,
410     const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
411 
412 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
413     VkDevice                                    device,
414     VkPipeline                                  pipeline,
415     uint32_t                                    firstGroup,
416     uint32_t                                    groupCount,
417     size_t                                      dataSize,
418     void*                                       pData);
419 
420 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR(
421     VkCommandBuffer                             commandBuffer,
422     const VkStridedBufferRegionKHR*             pRaygenShaderBindingTable,
423     const VkStridedBufferRegionKHR*             pMissShaderBindingTable,
424     const VkStridedBufferRegionKHR*             pHitShaderBindingTable,
425     const VkStridedBufferRegionKHR*             pCallableShaderBindingTable,
426     VkBuffer                                    buffer,
427     VkDeviceSize                                offset);
428 
429 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR(
430     VkDevice                                    device,
431     const VkAccelerationStructureVersionKHR*    version);
432 #endif
433 
434 #ifdef __cplusplus
435 }
436 #endif
437 
438 #endif
439