vulkan: Update Vulkan XML and headers to 1.2.139
[mesa.git] / include / 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 ** 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_BEGIN_RANGE_KHR = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR,
94 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_END_RANGE_KHR = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR,
95 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_RANGE_SIZE_KHR = (VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR + 1),
96 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
97 } VkAccelerationStructureBuildTypeKHR;
98 typedef union VkDeviceOrHostAddressKHR {
99 VkDeviceAddress deviceAddress;
100 void* hostAddress;
101 } VkDeviceOrHostAddressKHR;
102
103 typedef union VkDeviceOrHostAddressConstKHR {
104 VkDeviceAddress deviceAddress;
105 const void* hostAddress;
106 } VkDeviceOrHostAddressConstKHR;
107
108 typedef struct VkAccelerationStructureBuildOffsetInfoKHR {
109 uint32_t primitiveCount;
110 uint32_t primitiveOffset;
111 uint32_t firstVertex;
112 uint32_t transformOffset;
113 } VkAccelerationStructureBuildOffsetInfoKHR;
114
115 typedef struct VkRayTracingShaderGroupCreateInfoKHR {
116 VkStructureType sType;
117 const void* pNext;
118 VkRayTracingShaderGroupTypeKHR type;
119 uint32_t generalShader;
120 uint32_t closestHitShader;
121 uint32_t anyHitShader;
122 uint32_t intersectionShader;
123 const void* pShaderGroupCaptureReplayHandle;
124 } VkRayTracingShaderGroupCreateInfoKHR;
125
126 typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
127 VkStructureType sType;
128 const void* pNext;
129 uint32_t maxPayloadSize;
130 uint32_t maxAttributeSize;
131 uint32_t maxCallableSize;
132 } VkRayTracingPipelineInterfaceCreateInfoKHR;
133
134 typedef struct VkRayTracingPipelineCreateInfoKHR {
135 VkStructureType sType;
136 const void* pNext;
137 VkPipelineCreateFlags flags;
138 uint32_t stageCount;
139 const VkPipelineShaderStageCreateInfo* pStages;
140 uint32_t groupCount;
141 const VkRayTracingShaderGroupCreateInfoKHR* pGroups;
142 uint32_t maxRecursionDepth;
143 VkPipelineLibraryCreateInfoKHR libraries;
144 const VkRayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface;
145 VkPipelineLayout layout;
146 VkPipeline basePipelineHandle;
147 int32_t basePipelineIndex;
148 } VkRayTracingPipelineCreateInfoKHR;
149
150 typedef struct VkAccelerationStructureGeometryTrianglesDataKHR {
151 VkStructureType sType;
152 const void* pNext;
153 VkFormat vertexFormat;
154 VkDeviceOrHostAddressConstKHR vertexData;
155 VkDeviceSize vertexStride;
156 VkIndexType indexType;
157 VkDeviceOrHostAddressConstKHR indexData;
158 VkDeviceOrHostAddressConstKHR transformData;
159 } VkAccelerationStructureGeometryTrianglesDataKHR;
160
161 typedef struct VkAccelerationStructureGeometryAabbsDataKHR {
162 VkStructureType sType;
163 const void* pNext;
164 VkDeviceOrHostAddressConstKHR data;
165 VkDeviceSize stride;
166 } VkAccelerationStructureGeometryAabbsDataKHR;
167
168 typedef struct VkAccelerationStructureGeometryInstancesDataKHR {
169 VkStructureType sType;
170 const void* pNext;
171 VkBool32 arrayOfPointers;
172 VkDeviceOrHostAddressConstKHR data;
173 } VkAccelerationStructureGeometryInstancesDataKHR;
174
175 typedef union VkAccelerationStructureGeometryDataKHR {
176 VkAccelerationStructureGeometryTrianglesDataKHR triangles;
177 VkAccelerationStructureGeometryAabbsDataKHR aabbs;
178 VkAccelerationStructureGeometryInstancesDataKHR instances;
179 } VkAccelerationStructureGeometryDataKHR;
180
181 typedef struct VkAccelerationStructureGeometryKHR {
182 VkStructureType sType;
183 const void* pNext;
184 VkGeometryTypeKHR geometryType;
185 VkAccelerationStructureGeometryDataKHR geometry;
186 VkGeometryFlagsKHR flags;
187 } VkAccelerationStructureGeometryKHR;
188
189 typedef struct VkAccelerationStructureBuildGeometryInfoKHR {
190 VkStructureType sType;
191 const void* pNext;
192 VkAccelerationStructureTypeKHR type;
193 VkBuildAccelerationStructureFlagsKHR flags;
194 VkBool32 update;
195 VkAccelerationStructureKHR srcAccelerationStructure;
196 VkAccelerationStructureKHR dstAccelerationStructure;
197 VkBool32 geometryArrayOfPointers;
198 uint32_t geometryCount;
199 const VkAccelerationStructureGeometryKHR* const* ppGeometries;
200 VkDeviceOrHostAddressKHR scratchData;
201 } VkAccelerationStructureBuildGeometryInfoKHR;
202
203 typedef struct VkAccelerationStructureCreateGeometryTypeInfoKHR {
204 VkStructureType sType;
205 const void* pNext;
206 VkGeometryTypeKHR geometryType;
207 uint32_t maxPrimitiveCount;
208 VkIndexType indexType;
209 uint32_t maxVertexCount;
210 VkFormat vertexFormat;
211 VkBool32 allowsTransforms;
212 } VkAccelerationStructureCreateGeometryTypeInfoKHR;
213
214 typedef struct VkAccelerationStructureCreateInfoKHR {
215 VkStructureType sType;
216 const void* pNext;
217 VkDeviceSize compactedSize;
218 VkAccelerationStructureTypeKHR type;
219 VkBuildAccelerationStructureFlagsKHR flags;
220 uint32_t maxGeometryCount;
221 const VkAccelerationStructureCreateGeometryTypeInfoKHR* pGeometryInfos;
222 VkDeviceAddress deviceAddress;
223 } VkAccelerationStructureCreateInfoKHR;
224
225 typedef struct VkAccelerationStructureMemoryRequirementsInfoKHR {
226 VkStructureType sType;
227 const void* pNext;
228 VkAccelerationStructureMemoryRequirementsTypeKHR type;
229 VkAccelerationStructureBuildTypeKHR buildType;
230 VkAccelerationStructureKHR accelerationStructure;
231 } VkAccelerationStructureMemoryRequirementsInfoKHR;
232
233 typedef struct VkPhysicalDeviceRayTracingFeaturesKHR {
234 VkStructureType sType;
235 void* pNext;
236 VkBool32 rayTracing;
237 VkBool32 rayTracingShaderGroupHandleCaptureReplay;
238 VkBool32 rayTracingShaderGroupHandleCaptureReplayMixed;
239 VkBool32 rayTracingAccelerationStructureCaptureReplay;
240 VkBool32 rayTracingIndirectTraceRays;
241 VkBool32 rayTracingIndirectAccelerationStructureBuild;
242 VkBool32 rayTracingHostAccelerationStructureCommands;
243 VkBool32 rayQuery;
244 VkBool32 rayTracingPrimitiveCulling;
245 } VkPhysicalDeviceRayTracingFeaturesKHR;
246
247 typedef struct VkPhysicalDeviceRayTracingPropertiesKHR {
248 VkStructureType sType;
249 void* pNext;
250 uint32_t shaderGroupHandleSize;
251 uint32_t maxRecursionDepth;
252 uint32_t maxShaderGroupStride;
253 uint32_t shaderGroupBaseAlignment;
254 uint64_t maxGeometryCount;
255 uint64_t maxInstanceCount;
256 uint64_t maxPrimitiveCount;
257 uint32_t maxDescriptorSetAccelerationStructures;
258 uint32_t shaderGroupHandleCaptureReplaySize;
259 } VkPhysicalDeviceRayTracingPropertiesKHR;
260
261 typedef struct VkAccelerationStructureDeviceAddressInfoKHR {
262 VkStructureType sType;
263 const void* pNext;
264 VkAccelerationStructureKHR accelerationStructure;
265 } VkAccelerationStructureDeviceAddressInfoKHR;
266
267 typedef struct VkAccelerationStructureVersionKHR {
268 VkStructureType sType;
269 const void* pNext;
270 const uint8_t* versionData;
271 } VkAccelerationStructureVersionKHR;
272
273 typedef struct VkStridedBufferRegionKHR {
274 VkBuffer buffer;
275 VkDeviceSize offset;
276 VkDeviceSize stride;
277 VkDeviceSize size;
278 } VkStridedBufferRegionKHR;
279
280 typedef struct VkTraceRaysIndirectCommandKHR {
281 uint32_t width;
282 uint32_t height;
283 uint32_t depth;
284 } VkTraceRaysIndirectCommandKHR;
285
286 typedef struct VkCopyAccelerationStructureToMemoryInfoKHR {
287 VkStructureType sType;
288 const void* pNext;
289 VkAccelerationStructureKHR src;
290 VkDeviceOrHostAddressKHR dst;
291 VkCopyAccelerationStructureModeKHR mode;
292 } VkCopyAccelerationStructureToMemoryInfoKHR;
293
294 typedef struct VkCopyMemoryToAccelerationStructureInfoKHR {
295 VkStructureType sType;
296 const void* pNext;
297 VkDeviceOrHostAddressConstKHR src;
298 VkAccelerationStructureKHR dst;
299 VkCopyAccelerationStructureModeKHR mode;
300 } VkCopyMemoryToAccelerationStructureInfoKHR;
301
302 typedef struct VkCopyAccelerationStructureInfoKHR {
303 VkStructureType sType;
304 const void* pNext;
305 VkAccelerationStructureKHR src;
306 VkAccelerationStructureKHR dst;
307 VkCopyAccelerationStructureModeKHR mode;
308 } VkCopyAccelerationStructureInfoKHR;
309
310 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure);
311 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsKHR)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoKHR* pInfo, VkMemoryRequirements2* pMemoryRequirements);
312 typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureKHR)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos);
313 typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureIndirectKHR)(VkCommandBuffer commandBuffer, const VkAccelerationStructureBuildGeometryInfoKHR* pInfo, VkBuffer indirectBuffer, VkDeviceSize indirectOffset, uint32_t indirectStride);
314 typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructureKHR)(VkDevice device, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos);
315 typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, const VkCopyAccelerationStructureInfoKHR* pInfo);
316 typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
317 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
318 typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride);
319 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
320 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
321 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
322 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);
323 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
324 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
325 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
326 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR* pRaygenShaderBindingTable, const VkStridedBufferRegionKHR* pMissShaderBindingTable, const VkStridedBufferRegionKHR* pHitShaderBindingTable, const VkStridedBufferRegionKHR* pCallableShaderBindingTable, VkBuffer buffer, VkDeviceSize offset);
327 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionKHR* version);
328
329 #ifndef VK_NO_PROTOTYPES
330 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR(
331 VkDevice device,
332 const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
333 const VkAllocationCallbacks* pAllocator,
334 VkAccelerationStructureKHR* pAccelerationStructure);
335
336 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsKHR(
337 VkDevice device,
338 const VkAccelerationStructureMemoryRequirementsInfoKHR* pInfo,
339 VkMemoryRequirements2* pMemoryRequirements);
340
341 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureKHR(
342 VkCommandBuffer commandBuffer,
343 uint32_t infoCount,
344 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
345 const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos);
346
347 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureIndirectKHR(
348 VkCommandBuffer commandBuffer,
349 const VkAccelerationStructureBuildGeometryInfoKHR* pInfo,
350 VkBuffer indirectBuffer,
351 VkDeviceSize indirectOffset,
352 uint32_t indirectStride);
353
354 VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructureKHR(
355 VkDevice device,
356 uint32_t infoCount,
357 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
358 const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos);
359
360 VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR(
361 VkDevice device,
362 const VkCopyAccelerationStructureInfoKHR* pInfo);
363
364 VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR(
365 VkDevice device,
366 const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
367
368 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR(
369 VkDevice device,
370 const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
371
372 VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR(
373 VkDevice device,
374 uint32_t accelerationStructureCount,
375 const VkAccelerationStructureKHR* pAccelerationStructures,
376 VkQueryType queryType,
377 size_t dataSize,
378 void* pData,
379 size_t stride);
380
381 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR(
382 VkCommandBuffer commandBuffer,
383 const VkCopyAccelerationStructureInfoKHR* pInfo);
384
385 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR(
386 VkCommandBuffer commandBuffer,
387 const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
388
389 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR(
390 VkCommandBuffer commandBuffer,
391 const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
392
393 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR(
394 VkCommandBuffer commandBuffer,
395 const VkStridedBufferRegionKHR* pRaygenShaderBindingTable,
396 const VkStridedBufferRegionKHR* pMissShaderBindingTable,
397 const VkStridedBufferRegionKHR* pHitShaderBindingTable,
398 const VkStridedBufferRegionKHR* pCallableShaderBindingTable,
399 uint32_t width,
400 uint32_t height,
401 uint32_t depth);
402
403 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR(
404 VkDevice device,
405 VkPipelineCache pipelineCache,
406 uint32_t createInfoCount,
407 const VkRayTracingPipelineCreateInfoKHR* pCreateInfos,
408 const VkAllocationCallbacks* pAllocator,
409 VkPipeline* pPipelines);
410
411 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR(
412 VkDevice device,
413 const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
414
415 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
416 VkDevice device,
417 VkPipeline pipeline,
418 uint32_t firstGroup,
419 uint32_t groupCount,
420 size_t dataSize,
421 void* pData);
422
423 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR(
424 VkCommandBuffer commandBuffer,
425 const VkStridedBufferRegionKHR* pRaygenShaderBindingTable,
426 const VkStridedBufferRegionKHR* pMissShaderBindingTable,
427 const VkStridedBufferRegionKHR* pHitShaderBindingTable,
428 const VkStridedBufferRegionKHR* pCallableShaderBindingTable,
429 VkBuffer buffer,
430 VkDeviceSize offset);
431
432 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR(
433 VkDevice device,
434 const VkAccelerationStructureVersionKHR* version);
435 #endif
436
437 #ifdef __cplusplus
438 }
439 #endif
440
441 #endif