#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