| #ifndef VULKAN_BETA_H_ | |
| #define VULKAN_BETA_H_ 1 | |
| /* | |
| ** Copyright 2015-2026 The Khronos Group Inc. | |
| ** | |
| ** SPDX-License-Identifier: Apache-2.0 OR MIT | |
| */ | |
| /* | |
| ** This header is generated from the Khronos Vulkan XML API Registry. | |
| ** | |
| */ | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| // VK_KHR_portability_subset is a preprocessor guard. Do not pass it to API calls. | |
| #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; | |
| // VK_AMDX_shader_enqueue is a preprocessor guard. Do not pass it to API calls. | |
| #define VK_AMDX_shader_enqueue 1 | |
| #define VK_AMDX_SHADER_ENQUEUE_SPEC_VERSION 2 | |
| #define VK_AMDX_SHADER_ENQUEUE_EXTENSION_NAME "VK_AMDX_shader_enqueue" | |
| #define VK_SHADER_INDEX_UNUSED_AMDX (~0U) | |
| typedef struct VkPhysicalDeviceShaderEnqueueFeaturesAMDX { | |
| VkStructureType sType; | |
| void* pNext; | |
| VkBool32 shaderEnqueue; | |
| VkBool32 shaderMeshEnqueue; | |
| } VkPhysicalDeviceShaderEnqueueFeaturesAMDX; | |
| typedef struct VkPhysicalDeviceShaderEnqueuePropertiesAMDX { | |
| VkStructureType sType; | |
| void* pNext; | |
| uint32_t maxExecutionGraphDepth; | |
| uint32_t maxExecutionGraphShaderOutputNodes; | |
| uint32_t maxExecutionGraphShaderPayloadSize; | |
| uint32_t maxExecutionGraphShaderPayloadCount; | |
| uint32_t executionGraphDispatchAddressAlignment; | |
| uint32_t maxExecutionGraphWorkgroupCount[3]; | |
| uint32_t maxExecutionGraphWorkgroups; | |
| } VkPhysicalDeviceShaderEnqueuePropertiesAMDX; | |
| typedef struct VkExecutionGraphPipelineScratchSizeAMDX { | |
| VkStructureType sType; | |
| void* pNext; | |
| VkDeviceSize minSize; | |
| VkDeviceSize maxSize; | |
| VkDeviceSize sizeGranularity; | |
| } VkExecutionGraphPipelineScratchSizeAMDX; | |
| typedef struct VkExecutionGraphPipelineCreateInfoAMDX { | |
| VkStructureType sType; | |
| const void* pNext; | |
| VkPipelineCreateFlags flags; | |
| uint32_t stageCount; | |
| const VkPipelineShaderStageCreateInfo* pStages; | |
| const VkPipelineLibraryCreateInfoKHR* pLibraryInfo; | |
| VkPipelineLayout layout; | |
| VkPipeline basePipelineHandle; | |
| int32_t basePipelineIndex; | |
| } VkExecutionGraphPipelineCreateInfoAMDX; | |
| typedef union VkDeviceOrHostAddressConstAMDX { | |
| VkDeviceAddress deviceAddress; | |
| const void* hostAddress; | |
| } VkDeviceOrHostAddressConstAMDX; | |
| typedef struct VkDispatchGraphInfoAMDX { | |
| uint32_t nodeIndex; | |
| uint32_t payloadCount; | |
| VkDeviceOrHostAddressConstAMDX payloads; | |
| uint64_t payloadStride; | |
| } VkDispatchGraphInfoAMDX; | |
| typedef struct VkDispatchGraphCountInfoAMDX { | |
| uint32_t count; | |
| VkDeviceOrHostAddressConstAMDX infos; | |
| uint64_t stride; | |
| } VkDispatchGraphCountInfoAMDX; | |
| typedef struct VkPipelineShaderStageNodeCreateInfoAMDX { | |
| VkStructureType sType; | |
| const void* pNext; | |
| const char* pName; | |
| uint32_t index; | |
| } VkPipelineShaderStageNodeCreateInfoAMDX; | |
| typedef VkResult (VKAPI_PTR *PFN_vkCreateExecutionGraphPipelinesAMDX)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); | |
| typedef VkResult (VKAPI_PTR *PFN_vkGetExecutionGraphPipelineScratchSizeAMDX)(VkDevice device, VkPipeline executionGraph, VkExecutionGraphPipelineScratchSizeAMDX* pSizeInfo); | |
| typedef VkResult (VKAPI_PTR *PFN_vkGetExecutionGraphPipelineNodeIndexAMDX)(VkDevice device, VkPipeline executionGraph, const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo, uint32_t* pNodeIndex); | |
| typedef void (VKAPI_PTR *PFN_vkCmdInitializeGraphScratchMemoryAMDX)(VkCommandBuffer commandBuffer, VkPipeline executionGraph, VkDeviceAddress scratch, VkDeviceSize scratchSize); | |
| typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, VkDeviceSize scratchSize, const VkDispatchGraphCountInfoAMDX* pCountInfo); | |
| typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, VkDeviceSize scratchSize, const VkDispatchGraphCountInfoAMDX* pCountInfo); | |
| typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectCountAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, VkDeviceSize scratchSize, VkDeviceAddress countInfo); | |
| #ifndef VK_NO_PROTOTYPES | |
| #ifndef VK_ONLY_EXPORTED_PROTOTYPES | |
| VKAPI_ATTR VkResult VKAPI_CALL vkCreateExecutionGraphPipelinesAMDX( | |
| VkDevice device, | |
| VkPipelineCache pipelineCache, | |
| uint32_t createInfoCount, | |
| const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkPipeline* pPipelines); | |
| #endif | |
| #ifndef VK_ONLY_EXPORTED_PROTOTYPES | |
| VKAPI_ATTR VkResult VKAPI_CALL vkGetExecutionGraphPipelineScratchSizeAMDX( | |
| VkDevice device, | |
| VkPipeline executionGraph, | |
| VkExecutionGraphPipelineScratchSizeAMDX* pSizeInfo); | |
| #endif | |
| #ifndef VK_ONLY_EXPORTED_PROTOTYPES | |
| VKAPI_ATTR VkResult VKAPI_CALL vkGetExecutionGraphPipelineNodeIndexAMDX( | |
| VkDevice device, | |
| VkPipeline executionGraph, | |
| const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo, | |
| uint32_t* pNodeIndex); | |
| #endif | |
| #ifndef VK_ONLY_EXPORTED_PROTOTYPES | |
| VKAPI_ATTR void VKAPI_CALL vkCmdInitializeGraphScratchMemoryAMDX( | |
| VkCommandBuffer commandBuffer, | |
| VkPipeline executionGraph, | |
| VkDeviceAddress scratch, | |
| VkDeviceSize scratchSize); | |
| #endif | |
| #ifndef VK_ONLY_EXPORTED_PROTOTYPES | |
| VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphAMDX( | |
| VkCommandBuffer commandBuffer, | |
| VkDeviceAddress scratch, | |
| VkDeviceSize scratchSize, | |
| const VkDispatchGraphCountInfoAMDX* pCountInfo); | |
| #endif | |
| #ifndef VK_ONLY_EXPORTED_PROTOTYPES | |
| VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphIndirectAMDX( | |
| VkCommandBuffer commandBuffer, | |
| VkDeviceAddress scratch, | |
| VkDeviceSize scratchSize, | |
| const VkDispatchGraphCountInfoAMDX* pCountInfo); | |
| #endif | |
| #ifndef VK_ONLY_EXPORTED_PROTOTYPES | |
| VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphIndirectCountAMDX( | |
| VkCommandBuffer commandBuffer, | |
| VkDeviceAddress scratch, | |
| VkDeviceSize scratchSize, | |
| VkDeviceAddress countInfo); | |
| #endif | |
| #endif | |
| // VK_NV_cuda_kernel_launch is a preprocessor guard. Do not pass it to API calls. | |
| #define VK_NV_cuda_kernel_launch 1 | |
| VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaModuleNV) | |
| VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaFunctionNV) | |
| #define VK_NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION 2 | |
| #define VK_NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME "VK_NV_cuda_kernel_launch" | |
| typedef struct VkCudaModuleCreateInfoNV { | |
| VkStructureType sType; | |
| const void* pNext; | |
| size_t dataSize; | |
| const void* pData; | |
| } VkCudaModuleCreateInfoNV; | |
| typedef struct VkCudaFunctionCreateInfoNV { | |
| VkStructureType sType; | |
| const void* pNext; | |
| VkCudaModuleNV module; | |
| const char* pName; | |
| } VkCudaFunctionCreateInfoNV; | |
| typedef struct VkCudaLaunchInfoNV { | |
| VkStructureType sType; | |
| const void* pNext; | |
| VkCudaFunctionNV function; | |
| uint32_t gridDimX; | |
| uint32_t gridDimY; | |
| uint32_t gridDimZ; | |
| uint32_t blockDimX; | |
| uint32_t blockDimY; | |
| uint32_t blockDimZ; | |
| uint32_t sharedMemBytes; | |
| size_t paramCount; | |
| const void* const * pParams; | |
| size_t extraCount; | |
| const void* const * pExtras; | |
| } VkCudaLaunchInfoNV; | |
| typedef struct VkPhysicalDeviceCudaKernelLaunchFeaturesNV { | |
| VkStructureType sType; | |
| void* pNext; | |
| VkBool32 cudaKernelLaunchFeatures; | |
| } VkPhysicalDeviceCudaKernelLaunchFeaturesNV; | |
| typedef struct VkPhysicalDeviceCudaKernelLaunchPropertiesNV { | |
| VkStructureType sType; | |
| void* pNext; | |
| uint32_t computeCapabilityMinor; | |
| uint32_t computeCapabilityMajor; | |
| } VkPhysicalDeviceCudaKernelLaunchPropertiesNV; | |
| typedef VkResult (VKAPI_PTR *PFN_vkCreateCudaModuleNV)(VkDevice device, const VkCudaModuleCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCudaModuleNV* pModule); | |
| typedef VkResult (VKAPI_PTR *PFN_vkGetCudaModuleCacheNV)(VkDevice device, VkCudaModuleNV module, size_t* pCacheSize, void* pCacheData); | |
| typedef VkResult (VKAPI_PTR *PFN_vkCreateCudaFunctionNV)(VkDevice device, const VkCudaFunctionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCudaFunctionNV* pFunction); | |
| typedef void (VKAPI_PTR *PFN_vkDestroyCudaModuleNV)(VkDevice device, VkCudaModuleNV module, const VkAllocationCallbacks* pAllocator); | |
| typedef void (VKAPI_PTR *PFN_vkDestroyCudaFunctionNV)(VkDevice device, VkCudaFunctionNV function, const VkAllocationCallbacks* pAllocator); | |
| typedef void (VKAPI_PTR *PFN_vkCmdCudaLaunchKernelNV)(VkCommandBuffer commandBuffer, const VkCudaLaunchInfoNV* pLaunchInfo); | |
| #ifndef VK_NO_PROTOTYPES | |
| #ifndef VK_ONLY_EXPORTED_PROTOTYPES | |
| VKAPI_ATTR VkResult VKAPI_CALL vkCreateCudaModuleNV( | |
| VkDevice device, | |
| const VkCudaModuleCreateInfoNV* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkCudaModuleNV* pModule); | |
| #endif | |
| #ifndef VK_ONLY_EXPORTED_PROTOTYPES | |
| VKAPI_ATTR VkResult VKAPI_CALL vkGetCudaModuleCacheNV( | |
| VkDevice device, | |
| VkCudaModuleNV module, | |
| size_t* pCacheSize, | |
| void* pCacheData); | |
| #endif | |
| #ifndef VK_ONLY_EXPORTED_PROTOTYPES | |
| VKAPI_ATTR VkResult VKAPI_CALL vkCreateCudaFunctionNV( | |
| VkDevice device, | |
| const VkCudaFunctionCreateInfoNV* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkCudaFunctionNV* pFunction); | |
| #endif | |
| #ifndef VK_ONLY_EXPORTED_PROTOTYPES | |
| VKAPI_ATTR void VKAPI_CALL vkDestroyCudaModuleNV( | |
| VkDevice device, | |
| VkCudaModuleNV module, | |
| const VkAllocationCallbacks* pAllocator); | |
| #endif | |
| #ifndef VK_ONLY_EXPORTED_PROTOTYPES | |
| VKAPI_ATTR void VKAPI_CALL vkDestroyCudaFunctionNV( | |
| VkDevice device, | |
| VkCudaFunctionNV function, | |
| const VkAllocationCallbacks* pAllocator); | |
| #endif | |
| #ifndef VK_ONLY_EXPORTED_PROTOTYPES | |
| VKAPI_ATTR void VKAPI_CALL vkCmdCudaLaunchKernelNV( | |
| VkCommandBuffer commandBuffer, | |
| const VkCudaLaunchInfoNV* pLaunchInfo); | |
| #endif | |
| #endif | |
| // VK_NV_displacement_micromap is a preprocessor guard. Do not pass it to API calls. | |
| #define VK_NV_displacement_micromap 1 | |
| #define VK_NV_DISPLACEMENT_MICROMAP_SPEC_VERSION 2 | |
| #define VK_NV_DISPLACEMENT_MICROMAP_EXTENSION_NAME "VK_NV_displacement_micromap" | |
| typedef enum VkDisplacementMicromapFormatNV { | |
| VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV = 1, | |
| VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV = 2, | |
| VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV = 3, | |
| VK_DISPLACEMENT_MICROMAP_FORMAT_MAX_ENUM_NV = 0x7FFFFFFF | |
| } VkDisplacementMicromapFormatNV; | |
| typedef struct VkPhysicalDeviceDisplacementMicromapFeaturesNV { | |
| VkStructureType sType; | |
| void* pNext; | |
| VkBool32 displacementMicromap; | |
| } VkPhysicalDeviceDisplacementMicromapFeaturesNV; | |
| typedef struct VkPhysicalDeviceDisplacementMicromapPropertiesNV { | |
| VkStructureType sType; | |
| void* pNext; | |
| uint32_t maxDisplacementMicromapSubdivisionLevel; | |
| } VkPhysicalDeviceDisplacementMicromapPropertiesNV; | |
| typedef struct VkAccelerationStructureTrianglesDisplacementMicromapNV { | |
| VkStructureType sType; | |
| void* pNext; | |
| VkFormat displacementBiasAndScaleFormat; | |
| VkFormat displacementVectorFormat; | |
| VkDeviceOrHostAddressConstKHR displacementBiasAndScaleBuffer; | |
| VkDeviceSize displacementBiasAndScaleStride; | |
| VkDeviceOrHostAddressConstKHR displacementVectorBuffer; | |
| VkDeviceSize displacementVectorStride; | |
| VkDeviceOrHostAddressConstKHR displacedMicromapPrimitiveFlags; | |
| VkDeviceSize displacedMicromapPrimitiveFlagsStride; | |
| VkIndexType indexType; | |
| VkDeviceOrHostAddressConstKHR indexBuffer; | |
| VkDeviceSize indexStride; | |
| uint32_t baseTriangle; | |
| uint32_t usageCountsCount; | |
| const VkMicromapUsageEXT* pUsageCounts; | |
| const VkMicromapUsageEXT* const* ppUsageCounts; | |
| VkMicromapEXT micromap; | |
| } VkAccelerationStructureTrianglesDisplacementMicromapNV; | |
| // VK_AMDX_dense_geometry_format is a preprocessor guard. Do not pass it to API calls. | |
| # define VK_AMDX_dense_geometry_format 1 | |
| # define VK_AMDX_DENSE_GEOMETRY_FORMAT_SPEC_VERSION 1 | |
| # define VK_AMDX_DENSE_GEOMETRY_FORMAT_EXTENSION_NAME "VK_AMDX_dense_geometry_format" | |
| # define VK_COMPRESSED_TRIANGLE_FORMAT_DGF1_BYTE_ALIGNMENT_AMDX 128U | |
| # define VK_COMPRESSED_TRIANGLE_FORMAT_DGF1_BYTE_STRIDE_AMDX 128U | |
| typedef enum VkCompressedTriangleFormatAMDX | |
| { | |
| VK_COMPRESSED_TRIANGLE_FORMAT_DGF1_AMDX = 0, | |
| VK_COMPRESSED_TRIANGLE_FORMAT_MAX_ENUM_AMDX = 0x7FFFFFFF | |
| } VkCompressedTriangleFormatAMDX; | |
| typedef struct VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX | |
| { | |
| VkStructureType sType; | |
| void *pNext; | |
| VkBool32 denseGeometryFormat; | |
| } VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX; | |
| typedef struct VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX | |
| { | |
| VkStructureType sType; | |
| const void *pNext; | |
| VkDeviceOrHostAddressConstKHR compressedData; | |
| VkDeviceSize dataSize; | |
| uint32_t numTriangles; | |
| uint32_t numVertices; | |
| uint32_t maxPrimitiveIndex; | |
| uint32_t maxGeometryIndex; | |
| VkCompressedTriangleFormatAMDX format; | |
| } VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX; | |
| # ifdef __cplusplus | |
| } | |
| #endif | |
| #endif |