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