2 #define VULKAN_BETA_H_ 1
5 ** Copyright (c) 2015-2020 The Khronos Group Inc.
7 ** SPDX-License-Identifier: Apache-2.0
11 ** This header is generated from the Khronos Vulkan XML API Registry.
22 #define VK_KHR_deferred_host_operations 1
23 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR
)
24 #define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 3
25 #define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations"
26 typedef struct VkDeferredOperationInfoKHR
{
27 VkStructureType sType
;
29 VkDeferredOperationKHR operationHandle
;
30 } VkDeferredOperationInfoKHR
;
32 typedef VkResult (VKAPI_PTR
*PFN_vkCreateDeferredOperationKHR
)(VkDevice device
, const VkAllocationCallbacks
* pAllocator
, VkDeferredOperationKHR
* pDeferredOperation
);
33 typedef void (VKAPI_PTR
*PFN_vkDestroyDeferredOperationKHR
)(VkDevice device
, VkDeferredOperationKHR operation
, const VkAllocationCallbacks
* pAllocator
);
34 typedef uint32_t (VKAPI_PTR
*PFN_vkGetDeferredOperationMaxConcurrencyKHR
)(VkDevice device
, VkDeferredOperationKHR operation
);
35 typedef VkResult (VKAPI_PTR
*PFN_vkGetDeferredOperationResultKHR
)(VkDevice device
, VkDeferredOperationKHR operation
);
36 typedef VkResult (VKAPI_PTR
*PFN_vkDeferredOperationJoinKHR
)(VkDevice device
, VkDeferredOperationKHR operation
);
38 #ifndef VK_NO_PROTOTYPES
39 VKAPI_ATTR VkResult VKAPI_CALL
vkCreateDeferredOperationKHR(
41 const VkAllocationCallbacks
* pAllocator
,
42 VkDeferredOperationKHR
* pDeferredOperation
);
44 VKAPI_ATTR
void VKAPI_CALL
vkDestroyDeferredOperationKHR(
46 VkDeferredOperationKHR operation
,
47 const VkAllocationCallbacks
* pAllocator
);
49 VKAPI_ATTR
uint32_t VKAPI_CALL
vkGetDeferredOperationMaxConcurrencyKHR(
51 VkDeferredOperationKHR operation
);
53 VKAPI_ATTR VkResult VKAPI_CALL
vkGetDeferredOperationResultKHR(
55 VkDeferredOperationKHR operation
);
57 VKAPI_ATTR VkResult VKAPI_CALL
vkDeferredOperationJoinKHR(
59 VkDeferredOperationKHR operation
);
63 #define VK_KHR_pipeline_library 1
64 #define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
65 #define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
66 typedef struct VkPipelineLibraryCreateInfoKHR
{
67 VkStructureType sType
;
69 uint32_t libraryCount
;
70 const VkPipeline
* pLibraries
;
71 } VkPipelineLibraryCreateInfoKHR
;
75 #define VK_KHR_ray_tracing 1
76 #define VK_KHR_RAY_TRACING_SPEC_VERSION 8
77 #define VK_KHR_RAY_TRACING_EXTENSION_NAME "VK_KHR_ray_tracing"
79 typedef enum VkAccelerationStructureBuildTypeKHR
{
80 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR
= 0,
81 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR
= 1,
82 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR
= 2,
83 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR
= 0x7FFFFFFF
84 } VkAccelerationStructureBuildTypeKHR
;
85 typedef union VkDeviceOrHostAddressKHR
{
86 VkDeviceAddress deviceAddress
;
88 } VkDeviceOrHostAddressKHR
;
90 typedef union VkDeviceOrHostAddressConstKHR
{
91 VkDeviceAddress deviceAddress
;
92 const void* hostAddress
;
93 } VkDeviceOrHostAddressConstKHR
;
95 typedef struct VkAccelerationStructureBuildOffsetInfoKHR
{
96 uint32_t primitiveCount
;
97 uint32_t primitiveOffset
;
99 uint32_t transformOffset
;
100 } VkAccelerationStructureBuildOffsetInfoKHR
;
102 typedef struct VkRayTracingShaderGroupCreateInfoKHR
{
103 VkStructureType sType
;
105 VkRayTracingShaderGroupTypeKHR type
;
106 uint32_t generalShader
;
107 uint32_t closestHitShader
;
108 uint32_t anyHitShader
;
109 uint32_t intersectionShader
;
110 const void* pShaderGroupCaptureReplayHandle
;
111 } VkRayTracingShaderGroupCreateInfoKHR
;
113 typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR
{
114 VkStructureType sType
;
116 uint32_t maxPayloadSize
;
117 uint32_t maxAttributeSize
;
118 uint32_t maxCallableSize
;
119 } VkRayTracingPipelineInterfaceCreateInfoKHR
;
121 typedef struct VkRayTracingPipelineCreateInfoKHR
{
122 VkStructureType sType
;
124 VkPipelineCreateFlags flags
;
126 const VkPipelineShaderStageCreateInfo
* pStages
;
128 const VkRayTracingShaderGroupCreateInfoKHR
* pGroups
;
129 uint32_t maxRecursionDepth
;
130 VkPipelineLibraryCreateInfoKHR libraries
;
131 const VkRayTracingPipelineInterfaceCreateInfoKHR
* pLibraryInterface
;
132 VkPipelineLayout layout
;
133 VkPipeline basePipelineHandle
;
134 int32_t basePipelineIndex
;
135 } VkRayTracingPipelineCreateInfoKHR
;
137 typedef struct VkAccelerationStructureGeometryTrianglesDataKHR
{
138 VkStructureType sType
;
140 VkFormat vertexFormat
;
141 VkDeviceOrHostAddressConstKHR vertexData
;
142 VkDeviceSize vertexStride
;
143 VkIndexType indexType
;
144 VkDeviceOrHostAddressConstKHR indexData
;
145 VkDeviceOrHostAddressConstKHR transformData
;
146 } VkAccelerationStructureGeometryTrianglesDataKHR
;
148 typedef struct VkAccelerationStructureGeometryAabbsDataKHR
{
149 VkStructureType sType
;
151 VkDeviceOrHostAddressConstKHR data
;
153 } VkAccelerationStructureGeometryAabbsDataKHR
;
155 typedef struct VkAccelerationStructureGeometryInstancesDataKHR
{
156 VkStructureType sType
;
158 VkBool32 arrayOfPointers
;
159 VkDeviceOrHostAddressConstKHR data
;
160 } VkAccelerationStructureGeometryInstancesDataKHR
;
162 typedef union VkAccelerationStructureGeometryDataKHR
{
163 VkAccelerationStructureGeometryTrianglesDataKHR triangles
;
164 VkAccelerationStructureGeometryAabbsDataKHR aabbs
;
165 VkAccelerationStructureGeometryInstancesDataKHR instances
;
166 } VkAccelerationStructureGeometryDataKHR
;
168 typedef struct VkAccelerationStructureGeometryKHR
{
169 VkStructureType sType
;
171 VkGeometryTypeKHR geometryType
;
172 VkAccelerationStructureGeometryDataKHR geometry
;
173 VkGeometryFlagsKHR flags
;
174 } VkAccelerationStructureGeometryKHR
;
176 typedef struct VkAccelerationStructureBuildGeometryInfoKHR
{
177 VkStructureType sType
;
179 VkAccelerationStructureTypeKHR type
;
180 VkBuildAccelerationStructureFlagsKHR flags
;
182 VkAccelerationStructureKHR srcAccelerationStructure
;
183 VkAccelerationStructureKHR dstAccelerationStructure
;
184 VkBool32 geometryArrayOfPointers
;
185 uint32_t geometryCount
;
186 const VkAccelerationStructureGeometryKHR
* const* ppGeometries
;
187 VkDeviceOrHostAddressKHR scratchData
;
188 } VkAccelerationStructureBuildGeometryInfoKHR
;
190 typedef struct VkAccelerationStructureCreateGeometryTypeInfoKHR
{
191 VkStructureType sType
;
193 VkGeometryTypeKHR geometryType
;
194 uint32_t maxPrimitiveCount
;
195 VkIndexType indexType
;
196 uint32_t maxVertexCount
;
197 VkFormat vertexFormat
;
198 VkBool32 allowsTransforms
;
199 } VkAccelerationStructureCreateGeometryTypeInfoKHR
;
201 typedef struct VkAccelerationStructureCreateInfoKHR
{
202 VkStructureType sType
;
204 VkDeviceSize compactedSize
;
205 VkAccelerationStructureTypeKHR type
;
206 VkBuildAccelerationStructureFlagsKHR flags
;
207 uint32_t maxGeometryCount
;
208 const VkAccelerationStructureCreateGeometryTypeInfoKHR
* pGeometryInfos
;
209 VkDeviceAddress deviceAddress
;
210 } VkAccelerationStructureCreateInfoKHR
;
212 typedef struct VkAccelerationStructureMemoryRequirementsInfoKHR
{
213 VkStructureType sType
;
215 VkAccelerationStructureMemoryRequirementsTypeKHR type
;
216 VkAccelerationStructureBuildTypeKHR buildType
;
217 VkAccelerationStructureKHR accelerationStructure
;
218 } VkAccelerationStructureMemoryRequirementsInfoKHR
;
220 typedef struct VkPhysicalDeviceRayTracingFeaturesKHR
{
221 VkStructureType sType
;
224 VkBool32 rayTracingShaderGroupHandleCaptureReplay
;
225 VkBool32 rayTracingShaderGroupHandleCaptureReplayMixed
;
226 VkBool32 rayTracingAccelerationStructureCaptureReplay
;
227 VkBool32 rayTracingIndirectTraceRays
;
228 VkBool32 rayTracingIndirectAccelerationStructureBuild
;
229 VkBool32 rayTracingHostAccelerationStructureCommands
;
231 VkBool32 rayTracingPrimitiveCulling
;
232 } VkPhysicalDeviceRayTracingFeaturesKHR
;
234 typedef struct VkPhysicalDeviceRayTracingPropertiesKHR
{
235 VkStructureType sType
;
237 uint32_t shaderGroupHandleSize
;
238 uint32_t maxRecursionDepth
;
239 uint32_t maxShaderGroupStride
;
240 uint32_t shaderGroupBaseAlignment
;
241 uint64_t maxGeometryCount
;
242 uint64_t maxInstanceCount
;
243 uint64_t maxPrimitiveCount
;
244 uint32_t maxDescriptorSetAccelerationStructures
;
245 uint32_t shaderGroupHandleCaptureReplaySize
;
246 } VkPhysicalDeviceRayTracingPropertiesKHR
;
248 typedef struct VkAccelerationStructureDeviceAddressInfoKHR
{
249 VkStructureType sType
;
251 VkAccelerationStructureKHR accelerationStructure
;
252 } VkAccelerationStructureDeviceAddressInfoKHR
;
254 typedef struct VkAccelerationStructureVersionKHR
{
255 VkStructureType sType
;
257 const uint8_t* versionData
;
258 } VkAccelerationStructureVersionKHR
;
260 typedef struct VkStridedBufferRegionKHR
{
265 } VkStridedBufferRegionKHR
;
267 typedef struct VkTraceRaysIndirectCommandKHR
{
271 } VkTraceRaysIndirectCommandKHR
;
273 typedef struct VkCopyAccelerationStructureToMemoryInfoKHR
{
274 VkStructureType sType
;
276 VkAccelerationStructureKHR src
;
277 VkDeviceOrHostAddressKHR dst
;
278 VkCopyAccelerationStructureModeKHR mode
;
279 } VkCopyAccelerationStructureToMemoryInfoKHR
;
281 typedef struct VkCopyMemoryToAccelerationStructureInfoKHR
{
282 VkStructureType sType
;
284 VkDeviceOrHostAddressConstKHR src
;
285 VkAccelerationStructureKHR dst
;
286 VkCopyAccelerationStructureModeKHR mode
;
287 } VkCopyMemoryToAccelerationStructureInfoKHR
;
289 typedef struct VkCopyAccelerationStructureInfoKHR
{
290 VkStructureType sType
;
292 VkAccelerationStructureKHR src
;
293 VkAccelerationStructureKHR dst
;
294 VkCopyAccelerationStructureModeKHR mode
;
295 } VkCopyAccelerationStructureInfoKHR
;
297 typedef VkResult (VKAPI_PTR
*PFN_vkCreateAccelerationStructureKHR
)(VkDevice device
, const VkAccelerationStructureCreateInfoKHR
* pCreateInfo
, const VkAllocationCallbacks
* pAllocator
, VkAccelerationStructureKHR
* pAccelerationStructure
);
298 typedef void (VKAPI_PTR
*PFN_vkGetAccelerationStructureMemoryRequirementsKHR
)(VkDevice device
, const VkAccelerationStructureMemoryRequirementsInfoKHR
* pInfo
, VkMemoryRequirements2
* pMemoryRequirements
);
299 typedef void (VKAPI_PTR
*PFN_vkCmdBuildAccelerationStructureKHR
)(VkCommandBuffer commandBuffer
, uint32_t infoCount
, const VkAccelerationStructureBuildGeometryInfoKHR
* pInfos
, const VkAccelerationStructureBuildOffsetInfoKHR
* const* ppOffsetInfos
);
300 typedef void (VKAPI_PTR
*PFN_vkCmdBuildAccelerationStructureIndirectKHR
)(VkCommandBuffer commandBuffer
, const VkAccelerationStructureBuildGeometryInfoKHR
* pInfo
, VkBuffer indirectBuffer
, VkDeviceSize indirectOffset
, uint32_t indirectStride
);
301 typedef VkResult (VKAPI_PTR
*PFN_vkBuildAccelerationStructureKHR
)(VkDevice device
, uint32_t infoCount
, const VkAccelerationStructureBuildGeometryInfoKHR
* pInfos
, const VkAccelerationStructureBuildOffsetInfoKHR
* const* ppOffsetInfos
);
302 typedef VkResult (VKAPI_PTR
*PFN_vkCopyAccelerationStructureKHR
)(VkDevice device
, const VkCopyAccelerationStructureInfoKHR
* pInfo
);
303 typedef VkResult (VKAPI_PTR
*PFN_vkCopyAccelerationStructureToMemoryKHR
)(VkDevice device
, const VkCopyAccelerationStructureToMemoryInfoKHR
* pInfo
);
304 typedef VkResult (VKAPI_PTR
*PFN_vkCopyMemoryToAccelerationStructureKHR
)(VkDevice device
, const VkCopyMemoryToAccelerationStructureInfoKHR
* pInfo
);
305 typedef VkResult (VKAPI_PTR
*PFN_vkWriteAccelerationStructuresPropertiesKHR
)(VkDevice device
, uint32_t accelerationStructureCount
, const VkAccelerationStructureKHR
* pAccelerationStructures
, VkQueryType queryType
, size_t dataSize
, void* pData
, size_t stride
);
306 typedef void (VKAPI_PTR
*PFN_vkCmdCopyAccelerationStructureKHR
)(VkCommandBuffer commandBuffer
, const VkCopyAccelerationStructureInfoKHR
* pInfo
);
307 typedef void (VKAPI_PTR
*PFN_vkCmdCopyAccelerationStructureToMemoryKHR
)(VkCommandBuffer commandBuffer
, const VkCopyAccelerationStructureToMemoryInfoKHR
* pInfo
);
308 typedef void (VKAPI_PTR
*PFN_vkCmdCopyMemoryToAccelerationStructureKHR
)(VkCommandBuffer commandBuffer
, const VkCopyMemoryToAccelerationStructureInfoKHR
* pInfo
);
309 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
);
310 typedef VkResult (VKAPI_PTR
*PFN_vkCreateRayTracingPipelinesKHR
)(VkDevice device
, VkPipelineCache pipelineCache
, uint32_t createInfoCount
, const VkRayTracingPipelineCreateInfoKHR
* pCreateInfos
, const VkAllocationCallbacks
* pAllocator
, VkPipeline
* pPipelines
);
311 typedef VkDeviceAddress (VKAPI_PTR
*PFN_vkGetAccelerationStructureDeviceAddressKHR
)(VkDevice device
, const VkAccelerationStructureDeviceAddressInfoKHR
* pInfo
);
312 typedef VkResult (VKAPI_PTR
*PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR
)(VkDevice device
, VkPipeline pipeline
, uint32_t firstGroup
, uint32_t groupCount
, size_t dataSize
, void* pData
);
313 typedef void (VKAPI_PTR
*PFN_vkCmdTraceRaysIndirectKHR
)(VkCommandBuffer commandBuffer
, const VkStridedBufferRegionKHR
* pRaygenShaderBindingTable
, const VkStridedBufferRegionKHR
* pMissShaderBindingTable
, const VkStridedBufferRegionKHR
* pHitShaderBindingTable
, const VkStridedBufferRegionKHR
* pCallableShaderBindingTable
, VkBuffer buffer
, VkDeviceSize offset
);
314 typedef VkResult (VKAPI_PTR
*PFN_vkGetDeviceAccelerationStructureCompatibilityKHR
)(VkDevice device
, const VkAccelerationStructureVersionKHR
* version
);
316 #ifndef VK_NO_PROTOTYPES
317 VKAPI_ATTR VkResult VKAPI_CALL
vkCreateAccelerationStructureKHR(
319 const VkAccelerationStructureCreateInfoKHR
* pCreateInfo
,
320 const VkAllocationCallbacks
* pAllocator
,
321 VkAccelerationStructureKHR
* pAccelerationStructure
);
323 VKAPI_ATTR
void VKAPI_CALL
vkGetAccelerationStructureMemoryRequirementsKHR(
325 const VkAccelerationStructureMemoryRequirementsInfoKHR
* pInfo
,
326 VkMemoryRequirements2
* pMemoryRequirements
);
328 VKAPI_ATTR
void VKAPI_CALL
vkCmdBuildAccelerationStructureKHR(
329 VkCommandBuffer commandBuffer
,
331 const VkAccelerationStructureBuildGeometryInfoKHR
* pInfos
,
332 const VkAccelerationStructureBuildOffsetInfoKHR
* const* ppOffsetInfos
);
334 VKAPI_ATTR
void VKAPI_CALL
vkCmdBuildAccelerationStructureIndirectKHR(
335 VkCommandBuffer commandBuffer
,
336 const VkAccelerationStructureBuildGeometryInfoKHR
* pInfo
,
337 VkBuffer indirectBuffer
,
338 VkDeviceSize indirectOffset
,
339 uint32_t indirectStride
);
341 VKAPI_ATTR VkResult VKAPI_CALL
vkBuildAccelerationStructureKHR(
344 const VkAccelerationStructureBuildGeometryInfoKHR
* pInfos
,
345 const VkAccelerationStructureBuildOffsetInfoKHR
* const* ppOffsetInfos
);
347 VKAPI_ATTR VkResult VKAPI_CALL
vkCopyAccelerationStructureKHR(
349 const VkCopyAccelerationStructureInfoKHR
* pInfo
);
351 VKAPI_ATTR VkResult VKAPI_CALL
vkCopyAccelerationStructureToMemoryKHR(
353 const VkCopyAccelerationStructureToMemoryInfoKHR
* pInfo
);
355 VKAPI_ATTR VkResult VKAPI_CALL
vkCopyMemoryToAccelerationStructureKHR(
357 const VkCopyMemoryToAccelerationStructureInfoKHR
* pInfo
);
359 VKAPI_ATTR VkResult VKAPI_CALL
vkWriteAccelerationStructuresPropertiesKHR(
361 uint32_t accelerationStructureCount
,
362 const VkAccelerationStructureKHR
* pAccelerationStructures
,
363 VkQueryType queryType
,
368 VKAPI_ATTR
void VKAPI_CALL
vkCmdCopyAccelerationStructureKHR(
369 VkCommandBuffer commandBuffer
,
370 const VkCopyAccelerationStructureInfoKHR
* pInfo
);
372 VKAPI_ATTR
void VKAPI_CALL
vkCmdCopyAccelerationStructureToMemoryKHR(
373 VkCommandBuffer commandBuffer
,
374 const VkCopyAccelerationStructureToMemoryInfoKHR
* pInfo
);
376 VKAPI_ATTR
void VKAPI_CALL
vkCmdCopyMemoryToAccelerationStructureKHR(
377 VkCommandBuffer commandBuffer
,
378 const VkCopyMemoryToAccelerationStructureInfoKHR
* pInfo
);
380 VKAPI_ATTR
void VKAPI_CALL
vkCmdTraceRaysKHR(
381 VkCommandBuffer commandBuffer
,
382 const VkStridedBufferRegionKHR
* pRaygenShaderBindingTable
,
383 const VkStridedBufferRegionKHR
* pMissShaderBindingTable
,
384 const VkStridedBufferRegionKHR
* pHitShaderBindingTable
,
385 const VkStridedBufferRegionKHR
* pCallableShaderBindingTable
,
390 VKAPI_ATTR VkResult VKAPI_CALL
vkCreateRayTracingPipelinesKHR(
392 VkPipelineCache pipelineCache
,
393 uint32_t createInfoCount
,
394 const VkRayTracingPipelineCreateInfoKHR
* pCreateInfos
,
395 const VkAllocationCallbacks
* pAllocator
,
396 VkPipeline
* pPipelines
);
398 VKAPI_ATTR VkDeviceAddress VKAPI_CALL
vkGetAccelerationStructureDeviceAddressKHR(
400 const VkAccelerationStructureDeviceAddressInfoKHR
* pInfo
);
402 VKAPI_ATTR VkResult VKAPI_CALL
vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
410 VKAPI_ATTR
void VKAPI_CALL
vkCmdTraceRaysIndirectKHR(
411 VkCommandBuffer commandBuffer
,
412 const VkStridedBufferRegionKHR
* pRaygenShaderBindingTable
,
413 const VkStridedBufferRegionKHR
* pMissShaderBindingTable
,
414 const VkStridedBufferRegionKHR
* pHitShaderBindingTable
,
415 const VkStridedBufferRegionKHR
* pCallableShaderBindingTable
,
417 VkDeviceSize offset
);
419 VKAPI_ATTR VkResult VKAPI_CALL
vkGetDeviceAccelerationStructureCompatibilityKHR(
421 const VkAccelerationStructureVersionKHR
* version
);