| #ifndef VULKAN_BETA_H_ |
| #define VULKAN_BETA_H_ 1 |
| |
| /* |
| ** Copyright 2015-2024 The Khronos Group Inc. |
| ** |
| ** SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| /* |
| ** 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 1 |
| #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; |
| } VkPhysicalDeviceShaderEnqueueFeaturesAMDX; |
| |
| typedef struct VkPhysicalDeviceShaderEnqueuePropertiesAMDX { |
| VkStructureType sType; |
| void* pNext; |
| uint32_t maxExecutionGraphDepth; |
| uint32_t maxExecutionGraphShaderOutputNodes; |
| uint32_t maxExecutionGraphShaderPayloadSize; |
| uint32_t maxExecutionGraphShaderPayloadCount; |
| uint32_t executionGraphDispatchAddressAlignment; |
| } VkPhysicalDeviceShaderEnqueuePropertiesAMDX; |
| |
| typedef struct VkExecutionGraphPipelineScratchSizeAMDX { |
| VkStructureType sType; |
| void* pNext; |
| VkDeviceSize size; |
| } 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, VkDeviceAddress scratch); |
| typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, const VkDispatchGraphCountInfoAMDX* pCountInfo); |
| typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, const VkDispatchGraphCountInfoAMDX* pCountInfo); |
| typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectCountAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, VkDeviceAddress countInfo); |
| |
| #ifndef VK_NO_PROTOTYPES |
| VKAPI_ATTR VkResult VKAPI_CALL vkCreateExecutionGraphPipelinesAMDX( |
| VkDevice device, |
| VkPipelineCache pipelineCache, |
| uint32_t createInfoCount, |
| const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos, |
| const VkAllocationCallbacks* pAllocator, |
| VkPipeline* pPipelines); |
| |
| VKAPI_ATTR VkResult VKAPI_CALL vkGetExecutionGraphPipelineScratchSizeAMDX( |
| VkDevice device, |
| VkPipeline executionGraph, |
| VkExecutionGraphPipelineScratchSizeAMDX* pSizeInfo); |
| |
| VKAPI_ATTR VkResult VKAPI_CALL vkGetExecutionGraphPipelineNodeIndexAMDX( |
| VkDevice device, |
| VkPipeline executionGraph, |
| const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo, |
| uint32_t* pNodeIndex); |
| |
| VKAPI_ATTR void VKAPI_CALL vkCmdInitializeGraphScratchMemoryAMDX( |
| VkCommandBuffer commandBuffer, |
| VkDeviceAddress scratch); |
| |
| VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphAMDX( |
| VkCommandBuffer commandBuffer, |
| VkDeviceAddress scratch, |
| const VkDispatchGraphCountInfoAMDX* pCountInfo); |
| |
| VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphIndirectAMDX( |
| VkCommandBuffer commandBuffer, |
| VkDeviceAddress scratch, |
| const VkDispatchGraphCountInfoAMDX* pCountInfo); |
| |
| VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphIndirectCountAMDX( |
| VkCommandBuffer commandBuffer, |
| VkDeviceAddress scratch, |
| VkDeviceAddress countInfo); |
| #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; |
| |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif |