1#ifndef VULKAN_BETA_H_ 2#define VULKAN_BETA_H_ 1 3 4/* 5** Copyright 2015-2024 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 17extern "C" { 18#endif 19 20 21 22// VK_KHR_portability_subset is a preprocessor guard. Do not pass it to API calls. 23#define VK_KHR_portability_subset 1 24#define VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION 1 25#define VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME "VK_KHR_portability_subset" 26typedef struct VkPhysicalDevicePortabilitySubsetFeaturesKHR { 27 VkStructureType sType; 28 void* pNext; 29 VkBool32 constantAlphaColorBlendFactors; 30 VkBool32 events; 31 VkBool32 imageViewFormatReinterpretation; 32 VkBool32 imageViewFormatSwizzle; 33 VkBool32 imageView2DOn3DImage; 34 VkBool32 multisampleArrayImage; 35 VkBool32 mutableComparisonSamplers; 36 VkBool32 pointPolygons; 37 VkBool32 samplerMipLodBias; 38 VkBool32 separateStencilMaskRef; 39 VkBool32 shaderSampleRateInterpolationFunctions; 40 VkBool32 tessellationIsolines; 41 VkBool32 tessellationPointMode; 42 VkBool32 triangleFans; 43 VkBool32 vertexAttributeAccessBeyondStride; 44} VkPhysicalDevicePortabilitySubsetFeaturesKHR; 45 46typedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR { 47 VkStructureType sType; 48 void* pNext; 49 uint32_t minVertexInputBindingStrideAlignment; 50} VkPhysicalDevicePortabilitySubsetPropertiesKHR; 51 52 53 54// VK_AMDX_shader_enqueue is a preprocessor guard. Do not pass it to API calls. 55#define VK_AMDX_shader_enqueue 1 56#define VK_AMDX_SHADER_ENQUEUE_SPEC_VERSION 1 57#define VK_AMDX_SHADER_ENQUEUE_EXTENSION_NAME "VK_AMDX_shader_enqueue" 58#define VK_SHADER_INDEX_UNUSED_AMDX (~0U) 59typedef struct VkPhysicalDeviceShaderEnqueueFeaturesAMDX { 60 VkStructureType sType; 61 void* pNext; 62 VkBool32 shaderEnqueue; 63} VkPhysicalDeviceShaderEnqueueFeaturesAMDX; 64 65typedef struct VkPhysicalDeviceShaderEnqueuePropertiesAMDX { 66 VkStructureType sType; 67 void* pNext; 68 uint32_t maxExecutionGraphDepth; 69 uint32_t maxExecutionGraphShaderOutputNodes; 70 uint32_t maxExecutionGraphShaderPayloadSize; 71 uint32_t maxExecutionGraphShaderPayloadCount; 72 uint32_t executionGraphDispatchAddressAlignment; 73} VkPhysicalDeviceShaderEnqueuePropertiesAMDX; 74 75typedef struct VkExecutionGraphPipelineScratchSizeAMDX { 76 VkStructureType sType; 77 void* pNext; 78 VkDeviceSize size; 79} VkExecutionGraphPipelineScratchSizeAMDX; 80 81typedef struct VkExecutionGraphPipelineCreateInfoAMDX { 82 VkStructureType sType; 83 const void* pNext; 84 VkPipelineCreateFlags flags; 85 uint32_t stageCount; 86 const VkPipelineShaderStageCreateInfo* pStages; 87 const VkPipelineLibraryCreateInfoKHR* pLibraryInfo; 88 VkPipelineLayout layout; 89 VkPipeline basePipelineHandle; 90 int32_t basePipelineIndex; 91} VkExecutionGraphPipelineCreateInfoAMDX; 92 93typedef union VkDeviceOrHostAddressConstAMDX { 94 VkDeviceAddress deviceAddress; 95 const void* hostAddress; 96} VkDeviceOrHostAddressConstAMDX; 97 98typedef struct VkDispatchGraphInfoAMDX { 99 uint32_t nodeIndex; 100 uint32_t payloadCount; 101 VkDeviceOrHostAddressConstAMDX payloads; 102 uint64_t payloadStride; 103} VkDispatchGraphInfoAMDX; 104 105typedef struct VkDispatchGraphCountInfoAMDX { 106 uint32_t count; 107 VkDeviceOrHostAddressConstAMDX infos; 108 uint64_t stride; 109} VkDispatchGraphCountInfoAMDX; 110 111typedef struct VkPipelineShaderStageNodeCreateInfoAMDX { 112 VkStructureType sType; 113 const void* pNext; 114 const char* pName; 115 uint32_t index; 116} VkPipelineShaderStageNodeCreateInfoAMDX; 117 118typedef VkResult (VKAPI_PTR *PFN_vkCreateExecutionGraphPipelinesAMDX)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); 119typedef VkResult (VKAPI_PTR *PFN_vkGetExecutionGraphPipelineScratchSizeAMDX)(VkDevice device, VkPipeline executionGraph, VkExecutionGraphPipelineScratchSizeAMDX* pSizeInfo); 120typedef VkResult (VKAPI_PTR *PFN_vkGetExecutionGraphPipelineNodeIndexAMDX)(VkDevice device, VkPipeline executionGraph, const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo, uint32_t* pNodeIndex); 121typedef void (VKAPI_PTR *PFN_vkCmdInitializeGraphScratchMemoryAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch); 122typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, const VkDispatchGraphCountInfoAMDX* pCountInfo); 123typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, const VkDispatchGraphCountInfoAMDX* pCountInfo); 124typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectCountAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, VkDeviceAddress countInfo); 125 126#ifndef VK_NO_PROTOTYPES 127VKAPI_ATTR VkResult VKAPI_CALL vkCreateExecutionGraphPipelinesAMDX( 128 VkDevice device, 129 VkPipelineCache pipelineCache, 130 uint32_t createInfoCount, 131 const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos, 132 const VkAllocationCallbacks* pAllocator, 133 VkPipeline* pPipelines); 134 135VKAPI_ATTR VkResult VKAPI_CALL vkGetExecutionGraphPipelineScratchSizeAMDX( 136 VkDevice device, 137 VkPipeline executionGraph, 138 VkExecutionGraphPipelineScratchSizeAMDX* pSizeInfo); 139 140VKAPI_ATTR VkResult VKAPI_CALL vkGetExecutionGraphPipelineNodeIndexAMDX( 141 VkDevice device, 142 VkPipeline executionGraph, 143 const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo, 144 uint32_t* pNodeIndex); 145 146VKAPI_ATTR void VKAPI_CALL vkCmdInitializeGraphScratchMemoryAMDX( 147 VkCommandBuffer commandBuffer, 148 VkDeviceAddress scratch); 149 150VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphAMDX( 151 VkCommandBuffer commandBuffer, 152 VkDeviceAddress scratch, 153 const VkDispatchGraphCountInfoAMDX* pCountInfo); 154 155VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphIndirectAMDX( 156 VkCommandBuffer commandBuffer, 157 VkDeviceAddress scratch, 158 const VkDispatchGraphCountInfoAMDX* pCountInfo); 159 160VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphIndirectCountAMDX( 161 VkCommandBuffer commandBuffer, 162 VkDeviceAddress scratch, 163 VkDeviceAddress countInfo); 164#endif 165 166 167// VK_NV_displacement_micromap is a preprocessor guard. Do not pass it to API calls. 168#define VK_NV_displacement_micromap 1 169#define VK_NV_DISPLACEMENT_MICROMAP_SPEC_VERSION 2 170#define VK_NV_DISPLACEMENT_MICROMAP_EXTENSION_NAME "VK_NV_displacement_micromap" 171 172typedef enum VkDisplacementMicromapFormatNV { 173 VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV = 1, 174 VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV = 2, 175 VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV = 3, 176 VK_DISPLACEMENT_MICROMAP_FORMAT_MAX_ENUM_NV = 0x7FFFFFFF 177} VkDisplacementMicromapFormatNV; 178typedef struct VkPhysicalDeviceDisplacementMicromapFeaturesNV { 179 VkStructureType sType; 180 void* pNext; 181 VkBool32 displacementMicromap; 182} VkPhysicalDeviceDisplacementMicromapFeaturesNV; 183 184typedef struct VkPhysicalDeviceDisplacementMicromapPropertiesNV { 185 VkStructureType sType; 186 void* pNext; 187 uint32_t maxDisplacementMicromapSubdivisionLevel; 188} VkPhysicalDeviceDisplacementMicromapPropertiesNV; 189 190typedef struct VkAccelerationStructureTrianglesDisplacementMicromapNV { 191 VkStructureType sType; 192 void* pNext; 193 VkFormat displacementBiasAndScaleFormat; 194 VkFormat displacementVectorFormat; 195 VkDeviceOrHostAddressConstKHR displacementBiasAndScaleBuffer; 196 VkDeviceSize displacementBiasAndScaleStride; 197 VkDeviceOrHostAddressConstKHR displacementVectorBuffer; 198 VkDeviceSize displacementVectorStride; 199 VkDeviceOrHostAddressConstKHR displacedMicromapPrimitiveFlags; 200 VkDeviceSize displacedMicromapPrimitiveFlagsStride; 201 VkIndexType indexType; 202 VkDeviceOrHostAddressConstKHR indexBuffer; 203 VkDeviceSize indexStride; 204 uint32_t baseTriangle; 205 uint32_t usageCountsCount; 206 const VkMicromapUsageEXT* pUsageCounts; 207 const VkMicromapUsageEXT* const* ppUsageCounts; 208 VkMicromapEXT micromap; 209} VkAccelerationStructureTrianglesDisplacementMicromapNV; 210 211 212#ifdef __cplusplus 213} 214#endif 215 216#endif 217