|  | #ifndef VULKAN_BETA_H_ | 
|  | #define VULKAN_BETA_H_ 1 | 
|  |  | 
|  | /* | 
|  | ** Copyright (c) 2015-2020 The Khronos Group Inc. | 
|  | ** | 
|  | ** SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  |  | 
|  | /* | 
|  | ** This header is generated from the Khronos Vulkan XML API Registry. | 
|  | ** | 
|  | */ | 
|  |  | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_KHR_portability_subset 1 | 
|  | #define VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION 1 | 
|  | #define VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME "VK_KHR_portability_subset" | 
|  | typedef struct VkPhysicalDevicePortabilitySubsetFeaturesKHR { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           constantAlphaColorBlendFactors; | 
|  | VkBool32           events; | 
|  | VkBool32           imageViewFormatReinterpretation; | 
|  | VkBool32           imageViewFormatSwizzle; | 
|  | VkBool32           imageView2DOn3DImage; | 
|  | VkBool32           multisampleArrayImage; | 
|  | VkBool32           mutableComparisonSamplers; | 
|  | VkBool32           pointPolygons; | 
|  | VkBool32           samplerMipLodBias; | 
|  | VkBool32           separateStencilMaskRef; | 
|  | VkBool32           shaderSampleRateInterpolationFunctions; | 
|  | VkBool32           tessellationIsolines; | 
|  | VkBool32           tessellationPointMode; | 
|  | VkBool32           triangleFans; | 
|  | VkBool32           vertexAttributeAccessBeyondStride; | 
|  | } VkPhysicalDevicePortabilitySubsetFeaturesKHR; | 
|  |  | 
|  | typedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint32_t           minVertexInputBindingStrideAlignment; | 
|  | } VkPhysicalDevicePortabilitySubsetPropertiesKHR; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_KHR_deferred_host_operations 1 | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR) | 
|  | #define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 3 | 
|  | #define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations" | 
|  | typedef struct VkDeferredOperationInfoKHR { | 
|  | VkStructureType           sType; | 
|  | const void*               pNext; | 
|  | VkDeferredOperationKHR    operationHandle; | 
|  | } VkDeferredOperationInfoKHR; | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator); | 
|  | typedef uint32_t (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR( | 
|  | VkDevice                                    device, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkDeferredOperationKHR*                     pDeferredOperation); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR( | 
|  | VkDevice                                    device, | 
|  | VkDeferredOperationKHR                      operation, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR( | 
|  | VkDevice                                    device, | 
|  | VkDeferredOperationKHR                      operation); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR( | 
|  | VkDevice                                    device, | 
|  | VkDeferredOperationKHR                      operation); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR( | 
|  | VkDevice                                    device, | 
|  | VkDeferredOperationKHR                      operation); | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #define VK_KHR_pipeline_library 1 | 
|  | #define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1 | 
|  | #define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library" | 
|  | typedef struct VkPipelineLibraryCreateInfoKHR { | 
|  | VkStructureType      sType; | 
|  | const void*          pNext; | 
|  | uint32_t             libraryCount; | 
|  | const VkPipeline*    pLibraries; | 
|  | } VkPipelineLibraryCreateInfoKHR; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_KHR_ray_tracing 1 | 
|  | #define VK_KHR_RAY_TRACING_SPEC_VERSION   8 | 
|  | #define VK_KHR_RAY_TRACING_EXTENSION_NAME "VK_KHR_ray_tracing" | 
|  |  | 
|  | typedef enum VkAccelerationStructureBuildTypeKHR { | 
|  | VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0, | 
|  | VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1, | 
|  | VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2, | 
|  | VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkAccelerationStructureBuildTypeKHR; | 
|  | typedef union VkDeviceOrHostAddressKHR { | 
|  | VkDeviceAddress    deviceAddress; | 
|  | void*              hostAddress; | 
|  | } VkDeviceOrHostAddressKHR; | 
|  |  | 
|  | typedef union VkDeviceOrHostAddressConstKHR { | 
|  | VkDeviceAddress    deviceAddress; | 
|  | const void*        hostAddress; | 
|  | } VkDeviceOrHostAddressConstKHR; | 
|  |  | 
|  | typedef struct VkAccelerationStructureBuildOffsetInfoKHR { | 
|  | uint32_t    primitiveCount; | 
|  | uint32_t    primitiveOffset; | 
|  | uint32_t    firstVertex; | 
|  | uint32_t    transformOffset; | 
|  | } VkAccelerationStructureBuildOffsetInfoKHR; | 
|  |  | 
|  | typedef struct VkRayTracingShaderGroupCreateInfoKHR { | 
|  | VkStructureType                   sType; | 
|  | const void*                       pNext; | 
|  | VkRayTracingShaderGroupTypeKHR    type; | 
|  | uint32_t                          generalShader; | 
|  | uint32_t                          closestHitShader; | 
|  | uint32_t                          anyHitShader; | 
|  | uint32_t                          intersectionShader; | 
|  | const void*                       pShaderGroupCaptureReplayHandle; | 
|  | } VkRayTracingShaderGroupCreateInfoKHR; | 
|  |  | 
|  | typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           maxPayloadSize; | 
|  | uint32_t           maxAttributeSize; | 
|  | uint32_t           maxCallableSize; | 
|  | } VkRayTracingPipelineInterfaceCreateInfoKHR; | 
|  |  | 
|  | typedef struct VkRayTracingPipelineCreateInfoKHR { | 
|  | VkStructureType                                      sType; | 
|  | const void*                                          pNext; | 
|  | VkPipelineCreateFlags                                flags; | 
|  | uint32_t                                             stageCount; | 
|  | const VkPipelineShaderStageCreateInfo*               pStages; | 
|  | uint32_t                                             groupCount; | 
|  | const VkRayTracingShaderGroupCreateInfoKHR*          pGroups; | 
|  | uint32_t                                             maxRecursionDepth; | 
|  | VkPipelineLibraryCreateInfoKHR                       libraries; | 
|  | const VkRayTracingPipelineInterfaceCreateInfoKHR*    pLibraryInterface; | 
|  | VkPipelineLayout                                     layout; | 
|  | VkPipeline                                           basePipelineHandle; | 
|  | int32_t                                              basePipelineIndex; | 
|  | } VkRayTracingPipelineCreateInfoKHR; | 
|  |  | 
|  | typedef struct VkAccelerationStructureGeometryTrianglesDataKHR { | 
|  | VkStructureType                  sType; | 
|  | const void*                      pNext; | 
|  | VkFormat                         vertexFormat; | 
|  | VkDeviceOrHostAddressConstKHR    vertexData; | 
|  | VkDeviceSize                     vertexStride; | 
|  | VkIndexType                      indexType; | 
|  | VkDeviceOrHostAddressConstKHR    indexData; | 
|  | VkDeviceOrHostAddressConstKHR    transformData; | 
|  | } VkAccelerationStructureGeometryTrianglesDataKHR; | 
|  |  | 
|  | typedef struct VkAccelerationStructureGeometryAabbsDataKHR { | 
|  | VkStructureType                  sType; | 
|  | const void*                      pNext; | 
|  | VkDeviceOrHostAddressConstKHR    data; | 
|  | VkDeviceSize                     stride; | 
|  | } VkAccelerationStructureGeometryAabbsDataKHR; | 
|  |  | 
|  | typedef struct VkAccelerationStructureGeometryInstancesDataKHR { | 
|  | VkStructureType                  sType; | 
|  | const void*                      pNext; | 
|  | VkBool32                         arrayOfPointers; | 
|  | VkDeviceOrHostAddressConstKHR    data; | 
|  | } VkAccelerationStructureGeometryInstancesDataKHR; | 
|  |  | 
|  | typedef union VkAccelerationStructureGeometryDataKHR { | 
|  | VkAccelerationStructureGeometryTrianglesDataKHR    triangles; | 
|  | VkAccelerationStructureGeometryAabbsDataKHR        aabbs; | 
|  | VkAccelerationStructureGeometryInstancesDataKHR    instances; | 
|  | } VkAccelerationStructureGeometryDataKHR; | 
|  |  | 
|  | typedef struct VkAccelerationStructureGeometryKHR { | 
|  | VkStructureType                           sType; | 
|  | const void*                               pNext; | 
|  | VkGeometryTypeKHR                         geometryType; | 
|  | VkAccelerationStructureGeometryDataKHR    geometry; | 
|  | VkGeometryFlagsKHR                        flags; | 
|  | } VkAccelerationStructureGeometryKHR; | 
|  |  | 
|  | typedef struct VkAccelerationStructureBuildGeometryInfoKHR { | 
|  | VkStructureType                                     sType; | 
|  | const void*                                         pNext; | 
|  | VkAccelerationStructureTypeKHR                      type; | 
|  | VkBuildAccelerationStructureFlagsKHR                flags; | 
|  | VkBool32                                            update; | 
|  | VkAccelerationStructureKHR                          srcAccelerationStructure; | 
|  | VkAccelerationStructureKHR                          dstAccelerationStructure; | 
|  | VkBool32                                            geometryArrayOfPointers; | 
|  | uint32_t                                            geometryCount; | 
|  | const VkAccelerationStructureGeometryKHR* const*    ppGeometries; | 
|  | VkDeviceOrHostAddressKHR                            scratchData; | 
|  | } VkAccelerationStructureBuildGeometryInfoKHR; | 
|  |  | 
|  | typedef struct VkAccelerationStructureCreateGeometryTypeInfoKHR { | 
|  | VkStructureType      sType; | 
|  | const void*          pNext; | 
|  | VkGeometryTypeKHR    geometryType; | 
|  | uint32_t             maxPrimitiveCount; | 
|  | VkIndexType          indexType; | 
|  | uint32_t             maxVertexCount; | 
|  | VkFormat             vertexFormat; | 
|  | VkBool32             allowsTransforms; | 
|  | } VkAccelerationStructureCreateGeometryTypeInfoKHR; | 
|  |  | 
|  | typedef struct VkAccelerationStructureCreateInfoKHR { | 
|  | VkStructureType                                            sType; | 
|  | const void*                                                pNext; | 
|  | VkDeviceSize                                               compactedSize; | 
|  | VkAccelerationStructureTypeKHR                             type; | 
|  | VkBuildAccelerationStructureFlagsKHR                       flags; | 
|  | uint32_t                                                   maxGeometryCount; | 
|  | const VkAccelerationStructureCreateGeometryTypeInfoKHR*    pGeometryInfos; | 
|  | VkDeviceAddress                                            deviceAddress; | 
|  | } VkAccelerationStructureCreateInfoKHR; | 
|  |  | 
|  | typedef struct VkAccelerationStructureMemoryRequirementsInfoKHR { | 
|  | VkStructureType                                     sType; | 
|  | const void*                                         pNext; | 
|  | VkAccelerationStructureMemoryRequirementsTypeKHR    type; | 
|  | VkAccelerationStructureBuildTypeKHR                 buildType; | 
|  | VkAccelerationStructureKHR                          accelerationStructure; | 
|  | } VkAccelerationStructureMemoryRequirementsInfoKHR; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceRayTracingFeaturesKHR { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           rayTracing; | 
|  | VkBool32           rayTracingShaderGroupHandleCaptureReplay; | 
|  | VkBool32           rayTracingShaderGroupHandleCaptureReplayMixed; | 
|  | VkBool32           rayTracingAccelerationStructureCaptureReplay; | 
|  | VkBool32           rayTracingIndirectTraceRays; | 
|  | VkBool32           rayTracingIndirectAccelerationStructureBuild; | 
|  | VkBool32           rayTracingHostAccelerationStructureCommands; | 
|  | VkBool32           rayQuery; | 
|  | VkBool32           rayTracingPrimitiveCulling; | 
|  | } VkPhysicalDeviceRayTracingFeaturesKHR; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceRayTracingPropertiesKHR { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint32_t           shaderGroupHandleSize; | 
|  | uint32_t           maxRecursionDepth; | 
|  | uint32_t           maxShaderGroupStride; | 
|  | uint32_t           shaderGroupBaseAlignment; | 
|  | uint64_t           maxGeometryCount; | 
|  | uint64_t           maxInstanceCount; | 
|  | uint64_t           maxPrimitiveCount; | 
|  | uint32_t           maxDescriptorSetAccelerationStructures; | 
|  | uint32_t           shaderGroupHandleCaptureReplaySize; | 
|  | } VkPhysicalDeviceRayTracingPropertiesKHR; | 
|  |  | 
|  | typedef struct VkAccelerationStructureDeviceAddressInfoKHR { | 
|  | VkStructureType               sType; | 
|  | const void*                   pNext; | 
|  | VkAccelerationStructureKHR    accelerationStructure; | 
|  | } VkAccelerationStructureDeviceAddressInfoKHR; | 
|  |  | 
|  | typedef struct VkAccelerationStructureVersionKHR { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | const uint8_t*     versionData; | 
|  | } VkAccelerationStructureVersionKHR; | 
|  |  | 
|  | typedef struct VkStridedBufferRegionKHR { | 
|  | VkBuffer        buffer; | 
|  | VkDeviceSize    offset; | 
|  | VkDeviceSize    stride; | 
|  | VkDeviceSize    size; | 
|  | } VkStridedBufferRegionKHR; | 
|  |  | 
|  | typedef struct VkTraceRaysIndirectCommandKHR { | 
|  | uint32_t    width; | 
|  | uint32_t    height; | 
|  | uint32_t    depth; | 
|  | } VkTraceRaysIndirectCommandKHR; | 
|  |  | 
|  | typedef struct VkCopyAccelerationStructureToMemoryInfoKHR { | 
|  | VkStructureType                       sType; | 
|  | const void*                           pNext; | 
|  | VkAccelerationStructureKHR            src; | 
|  | VkDeviceOrHostAddressKHR              dst; | 
|  | VkCopyAccelerationStructureModeKHR    mode; | 
|  | } VkCopyAccelerationStructureToMemoryInfoKHR; | 
|  |  | 
|  | typedef struct VkCopyMemoryToAccelerationStructureInfoKHR { | 
|  | VkStructureType                       sType; | 
|  | const void*                           pNext; | 
|  | VkDeviceOrHostAddressConstKHR         src; | 
|  | VkAccelerationStructureKHR            dst; | 
|  | VkCopyAccelerationStructureModeKHR    mode; | 
|  | } VkCopyMemoryToAccelerationStructureInfoKHR; | 
|  |  | 
|  | typedef struct VkCopyAccelerationStructureInfoKHR { | 
|  | VkStructureType                       sType; | 
|  | const void*                           pNext; | 
|  | VkAccelerationStructureKHR            src; | 
|  | VkAccelerationStructureKHR            dst; | 
|  | VkCopyAccelerationStructureModeKHR    mode; | 
|  | } VkCopyAccelerationStructureInfoKHR; | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice                                           device, const VkAccelerationStructureCreateInfoKHR*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkAccelerationStructureKHR*                        pAccelerationStructure); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsKHR)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoKHR* pInfo, VkMemoryRequirements2* pMemoryRequirements); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureKHR)(VkCommandBuffer                                    commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureIndirectKHR)(VkCommandBuffer                  commandBuffer, const VkAccelerationStructureBuildGeometryInfoKHR* pInfo, VkBuffer                                           indirectBuffer, VkDeviceSize                                       indirectOffset, uint32_t                                           indirectStride); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructureKHR)(VkDevice                                           device, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, const VkCopyAccelerationStructureInfoKHR* pInfo); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType  queryType, size_t       dataSize, void* pData, size_t stride); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); | 
|  | 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); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); | 
|  | typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR* pRaygenShaderBindingTable, const VkStridedBufferRegionKHR* pMissShaderBindingTable, const VkStridedBufferRegionKHR* pHitShaderBindingTable, const VkStridedBufferRegionKHR* pCallableShaderBindingTable, VkBuffer buffer, VkDeviceSize offset); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionKHR* version); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR( | 
|  | VkDevice                                    device, | 
|  | const VkAccelerationStructureCreateInfoKHR* pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkAccelerationStructureKHR*                 pAccelerationStructure); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsKHR( | 
|  | VkDevice                                    device, | 
|  | const VkAccelerationStructureMemoryRequirementsInfoKHR* pInfo, | 
|  | VkMemoryRequirements2*                      pMemoryRequirements); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureKHR( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    infoCount, | 
|  | const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, | 
|  | const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureIndirectKHR( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | const VkAccelerationStructureBuildGeometryInfoKHR* pInfo, | 
|  | VkBuffer                                    indirectBuffer, | 
|  | VkDeviceSize                                indirectOffset, | 
|  | uint32_t                                    indirectStride); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructureKHR( | 
|  | VkDevice                                    device, | 
|  | uint32_t                                    infoCount, | 
|  | const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, | 
|  | const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR( | 
|  | VkDevice                                    device, | 
|  | const VkCopyAccelerationStructureInfoKHR*   pInfo); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR( | 
|  | VkDevice                                    device, | 
|  | const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR( | 
|  | VkDevice                                    device, | 
|  | const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR( | 
|  | VkDevice                                    device, | 
|  | uint32_t                                    accelerationStructureCount, | 
|  | const VkAccelerationStructureKHR*           pAccelerationStructures, | 
|  | VkQueryType                                 queryType, | 
|  | size_t                                      dataSize, | 
|  | void*                                       pData, | 
|  | size_t                                      stride); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | const VkCopyAccelerationStructureInfoKHR*   pInfo); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | const VkStridedBufferRegionKHR*             pRaygenShaderBindingTable, | 
|  | const VkStridedBufferRegionKHR*             pMissShaderBindingTable, | 
|  | const VkStridedBufferRegionKHR*             pHitShaderBindingTable, | 
|  | const VkStridedBufferRegionKHR*             pCallableShaderBindingTable, | 
|  | uint32_t                                    width, | 
|  | uint32_t                                    height, | 
|  | uint32_t                                    depth); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR( | 
|  | VkDevice                                    device, | 
|  | VkPipelineCache                             pipelineCache, | 
|  | uint32_t                                    createInfoCount, | 
|  | const VkRayTracingPipelineCreateInfoKHR*    pCreateInfos, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkPipeline*                                 pPipelines); | 
|  |  | 
|  | VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR( | 
|  | VkDevice                                    device, | 
|  | const VkAccelerationStructureDeviceAddressInfoKHR* pInfo); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( | 
|  | VkDevice                                    device, | 
|  | VkPipeline                                  pipeline, | 
|  | uint32_t                                    firstGroup, | 
|  | uint32_t                                    groupCount, | 
|  | size_t                                      dataSize, | 
|  | void*                                       pData); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | const VkStridedBufferRegionKHR*             pRaygenShaderBindingTable, | 
|  | const VkStridedBufferRegionKHR*             pMissShaderBindingTable, | 
|  | const VkStridedBufferRegionKHR*             pHitShaderBindingTable, | 
|  | const VkStridedBufferRegionKHR*             pCallableShaderBindingTable, | 
|  | VkBuffer                                    buffer, | 
|  | VkDeviceSize                                offset); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR( | 
|  | VkDevice                                    device, | 
|  | const VkAccelerationStructureVersionKHR*    version); | 
|  | #endif | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif |