| 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 |
| 17 | extern "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" |
| 26 | typedef 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 | |
| 46 | typedef 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) |
| 59 | typedef struct VkPhysicalDeviceShaderEnqueueFeaturesAMDX { |
| 60 | VkStructureType sType; |
| 61 | void* pNext; |
| 62 | VkBool32 shaderEnqueue; |
| 63 | } VkPhysicalDeviceShaderEnqueueFeaturesAMDX; |
| 64 | |
| 65 | typedef 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 | |
| 75 | typedef struct VkExecutionGraphPipelineScratchSizeAMDX { |
| 76 | VkStructureType sType; |
| 77 | void* pNext; |
| 78 | VkDeviceSize size; |
| 79 | } VkExecutionGraphPipelineScratchSizeAMDX; |
| 80 | |
| 81 | typedef 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 | |
| 93 | typedef union VkDeviceOrHostAddressConstAMDX { |
| 94 | VkDeviceAddress deviceAddress; |
| 95 | const void* hostAddress; |
| 96 | } VkDeviceOrHostAddressConstAMDX; |
| 97 | |
| 98 | typedef struct VkDispatchGraphInfoAMDX { |
| 99 | uint32_t nodeIndex; |
| 100 | uint32_t payloadCount; |
| 101 | VkDeviceOrHostAddressConstAMDX payloads; |
| 102 | uint64_t payloadStride; |
| 103 | } VkDispatchGraphInfoAMDX; |
| 104 | |
| 105 | typedef struct VkDispatchGraphCountInfoAMDX { |
| 106 | uint32_t count; |
| 107 | VkDeviceOrHostAddressConstAMDX infos; |
| 108 | uint64_t stride; |
| 109 | } VkDispatchGraphCountInfoAMDX; |
| 110 | |
| 111 | typedef struct VkPipelineShaderStageNodeCreateInfoAMDX { |
| 112 | VkStructureType sType; |
| 113 | const void* pNext; |
| 114 | const char* pName; |
| 115 | uint32_t index; |
| 116 | } VkPipelineShaderStageNodeCreateInfoAMDX; |
| 117 | |
| 118 | typedef VkResult (VKAPI_PTR *PFN_vkCreateExecutionGraphPipelinesAMDX)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); |
| 119 | typedef VkResult (VKAPI_PTR *PFN_vkGetExecutionGraphPipelineScratchSizeAMDX)(VkDevice device, VkPipeline executionGraph, VkExecutionGraphPipelineScratchSizeAMDX* pSizeInfo); |
| 120 | typedef VkResult (VKAPI_PTR *PFN_vkGetExecutionGraphPipelineNodeIndexAMDX)(VkDevice device, VkPipeline executionGraph, const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo, uint32_t* pNodeIndex); |
| 121 | typedef void (VKAPI_PTR *PFN_vkCmdInitializeGraphScratchMemoryAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch); |
| 122 | typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, const VkDispatchGraphCountInfoAMDX* pCountInfo); |
| 123 | typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, const VkDispatchGraphCountInfoAMDX* pCountInfo); |
| 124 | typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectCountAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, VkDeviceAddress countInfo); |
| 125 | |
| 126 | #ifndef VK_NO_PROTOTYPES |
| 127 | VKAPI_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 | |
| 135 | VKAPI_ATTR VkResult VKAPI_CALL vkGetExecutionGraphPipelineScratchSizeAMDX( |
| 136 | VkDevice device, |
| 137 | VkPipeline executionGraph, |
| 138 | VkExecutionGraphPipelineScratchSizeAMDX* pSizeInfo); |
| 139 | |
| 140 | VKAPI_ATTR VkResult VKAPI_CALL vkGetExecutionGraphPipelineNodeIndexAMDX( |
| 141 | VkDevice device, |
| 142 | VkPipeline executionGraph, |
| 143 | const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo, |
| 144 | uint32_t* pNodeIndex); |
| 145 | |
| 146 | VKAPI_ATTR void VKAPI_CALL vkCmdInitializeGraphScratchMemoryAMDX( |
| 147 | VkCommandBuffer commandBuffer, |
| 148 | VkDeviceAddress scratch); |
| 149 | |
| 150 | VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphAMDX( |
| 151 | VkCommandBuffer commandBuffer, |
| 152 | VkDeviceAddress scratch, |
| 153 | const VkDispatchGraphCountInfoAMDX* pCountInfo); |
| 154 | |
| 155 | VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphIndirectAMDX( |
| 156 | VkCommandBuffer commandBuffer, |
| 157 | VkDeviceAddress scratch, |
| 158 | const VkDispatchGraphCountInfoAMDX* pCountInfo); |
| 159 | |
| 160 | VKAPI_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 | |
| 172 | typedef 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; |
| 178 | typedef struct VkPhysicalDeviceDisplacementMicromapFeaturesNV { |
| 179 | VkStructureType sType; |
| 180 | void* pNext; |
| 181 | VkBool32 displacementMicromap; |
| 182 | } VkPhysicalDeviceDisplacementMicromapFeaturesNV; |
| 183 | |
| 184 | typedef struct VkPhysicalDeviceDisplacementMicromapPropertiesNV { |
| 185 | VkStructureType sType; |
| 186 | void* pNext; |
| 187 | uint32_t maxDisplacementMicromapSubdivisionLevel; |
| 188 | } VkPhysicalDeviceDisplacementMicromapPropertiesNV; |
| 189 | |
| 190 | typedef 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 | |