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