sdl

FORK: Simple Directmedia Layer
git clone https://git.neptards.moe/neptards/sdl.git
Log | Files | Refs

vulkan_beta.h (23939B)


      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