| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259 |
- // Tencent is pleased to support the open source community by making ncnn available.
- //
- // Copyright (C) 2020 THL A29 Limited, a Tencent company. All rights reserved.
- //
- // Licensed under the BSD 3-Clause License (the "License"); you may not use this file except
- // in compliance with the License. You may obtain a copy of the License at
- //
- // https://opensource.org/licenses/BSD-3-Clause
- //
- // Unless required by applicable law or agreed to in writing, software distributed
- // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
- // CONDITIONS OF ANY KIND, either express or implied. See the License for the
- // specific language governing permissions and limitations under the License.
- #ifndef NCNN_VULKAN_HEADER_FIX_H
- #define NCNN_VULKAN_HEADER_FIX_H
- #include <vulkan/vulkan.h>
- // This header contains new structure and function declearation to fix build with old vulkan sdk
- #if VK_HEADER_VERSION < 70
- #define VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES (VkStructureType)1000094000
- typedef enum VkSubgroupFeatureFlagBits
- {
- VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
- VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
- VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
- VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
- VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
- VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
- VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
- VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
- VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
- VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
- } VkSubgroupFeatureFlagBits;
- typedef VkFlags VkSubgroupFeatureFlags;
- typedef struct VkPhysicalDeviceSubgroupProperties
- {
- VkStructureType sType;
- void* pNext;
- uint32_t subgroupSize;
- VkShaderStageFlags supportedStages;
- VkSubgroupFeatureFlags supportedOperations;
- VkBool32 quadOperationsInAllStages;
- } VkPhysicalDeviceSubgroupProperties;
- #define VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES (VkStructureType)1000168000
- #define VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT (VkStructureType)1000168001
- typedef struct VkPhysicalDeviceMaintenance3Properties
- {
- VkStructureType sType;
- void* pNext;
- uint32_t maxPerSetDescriptors;
- VkDeviceSize maxMemoryAllocationSize;
- } VkPhysicalDeviceMaintenance3Properties;
- typedef struct VkDescriptorSetLayoutSupport
- {
- VkStructureType sType;
- void* pNext;
- VkBool32 supported;
- } VkDescriptorSetLayoutSupport;
- typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
- typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
- typedef void(VKAPI_PTR* PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
- #endif // VK_HEADER_VERSION < 70
- #if VK_HEADER_VERSION < 80
- #define VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR (VkStructureType)1000177000
- typedef struct VkPhysicalDevice8BitStorageFeaturesKHR
- {
- VkStructureType sType;
- void* pNext;
- VkBool32 storageBuffer8BitAccess;
- VkBool32 uniformAndStorageBuffer8BitAccess;
- VkBool32 storagePushConstant8;
- } VkPhysicalDevice8BitStorageFeaturesKHR;
- #define VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR (VkStructureType)1000109000
- #define VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR (VkStructureType)1000109001
- #define VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR (VkStructureType)1000109002
- #define VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR (VkStructureType)1000109003
- #define VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR (VkStructureType)1000109004
- #define VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR (VkStructureType)1000109005
- #define VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR (VkStructureType)1000109006
- typedef struct VkAttachmentDescription2KHR
- {
- VkStructureType sType;
- const void* pNext;
- VkAttachmentDescriptionFlags flags;
- VkFormat format;
- VkSampleCountFlagBits samples;
- VkAttachmentLoadOp loadOp;
- VkAttachmentStoreOp storeOp;
- VkAttachmentLoadOp stencilLoadOp;
- VkAttachmentStoreOp stencilStoreOp;
- VkImageLayout initialLayout;
- VkImageLayout finalLayout;
- } VkAttachmentDescription2KHR;
- typedef struct VkAttachmentReference2KHR
- {
- VkStructureType sType;
- const void* pNext;
- uint32_t attachment;
- VkImageLayout layout;
- VkImageAspectFlags aspectMask;
- } VkAttachmentReference2KHR;
- typedef struct VkSubpassDescription2KHR
- {
- VkStructureType sType;
- const void* pNext;
- VkSubpassDescriptionFlags flags;
- VkPipelineBindPoint pipelineBindPoint;
- uint32_t viewMask;
- uint32_t inputAttachmentCount;
- const VkAttachmentReference2KHR* pInputAttachments;
- uint32_t colorAttachmentCount;
- const VkAttachmentReference2KHR* pColorAttachments;
- const VkAttachmentReference2KHR* pResolveAttachments;
- const VkAttachmentReference2KHR* pDepthStencilAttachment;
- uint32_t preserveAttachmentCount;
- const uint32_t* pPreserveAttachments;
- } VkSubpassDescription2KHR;
- typedef struct VkSubpassDependency2KHR
- {
- VkStructureType sType;
- const void* pNext;
- uint32_t srcSubpass;
- uint32_t dstSubpass;
- VkPipelineStageFlags srcStageMask;
- VkPipelineStageFlags dstStageMask;
- VkAccessFlags srcAccessMask;
- VkAccessFlags dstAccessMask;
- VkDependencyFlags dependencyFlags;
- int32_t viewOffset;
- } VkSubpassDependency2KHR;
- typedef struct VkRenderPassCreateInfo2KHR
- {
- VkStructureType sType;
- const void* pNext;
- VkRenderPassCreateFlags flags;
- uint32_t attachmentCount;
- const VkAttachmentDescription2KHR* pAttachments;
- uint32_t subpassCount;
- const VkSubpassDescription2KHR* pSubpasses;
- uint32_t dependencyCount;
- const VkSubpassDependency2KHR* pDependencies;
- uint32_t correlatedViewMaskCount;
- const uint32_t* pCorrelatedViewMasks;
- } VkRenderPassCreateInfo2KHR;
- typedef struct VkSubpassBeginInfoKHR
- {
- VkStructureType sType;
- const void* pNext;
- VkSubpassContents contents;
- } VkSubpassBeginInfoKHR;
- typedef struct VkSubpassEndInfoKHR
- {
- VkStructureType sType;
- const void* pNext;
- } VkSubpassEndInfoKHR;
- typedef VkResult(VKAPI_PTR* PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2KHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
- typedef void(VKAPI_PTR* PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfoKHR* pSubpassBeginInfo);
- typedef void(VKAPI_PTR* PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfoKHR* pSubpassBeginInfo, const VkSubpassEndInfoKHR* pSubpassEndInfo);
- typedef void(VKAPI_PTR* PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfoKHR* pSubpassEndInfo);
- #endif // VK_HEADER_VERSION < 80
- #if VK_HEADER_VERSION < 95
- #define VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR (VkStructureType)1000082000
- typedef struct VkPhysicalDeviceFloat16Int8FeaturesKHR
- {
- VkStructureType sType;
- void* pNext;
- VkBool32 shaderFloat16;
- VkBool32 shaderInt8;
- } VkPhysicalDeviceFloat16Int8FeaturesKHR;
- #endif // VK_HEADER_VERSION < 95
- #if VK_HEADER_VERSION < 97
- #define VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT (VkStructureType)1000237000
- typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT
- {
- VkStructureType sType;
- void* pNext;
- VkDeviceSize heapBudget[VK_MAX_MEMORY_HEAPS];
- VkDeviceSize heapUsage[VK_MAX_MEMORY_HEAPS];
- } VkPhysicalDeviceMemoryBudgetPropertiesEXT;
- #endif // VK_HEADER_VERSION < 97
- #if VK_HEADER_VERSION < 101
- #define VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV (VkStructureType)1000249000
- #define VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV (VkStructureType)1000249001
- #define VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV (VkStructureType)1000249002
- typedef enum VkComponentTypeNV
- {
- VK_COMPONENT_TYPE_FLOAT16_NV = 0,
- VK_COMPONENT_TYPE_FLOAT32_NV = 1,
- VK_COMPONENT_TYPE_FLOAT64_NV = 2,
- VK_COMPONENT_TYPE_SINT8_NV = 3,
- VK_COMPONENT_TYPE_SINT16_NV = 4,
- VK_COMPONENT_TYPE_SINT32_NV = 5,
- VK_COMPONENT_TYPE_SINT64_NV = 6,
- VK_COMPONENT_TYPE_UINT8_NV = 7,
- VK_COMPONENT_TYPE_UINT16_NV = 8,
- VK_COMPONENT_TYPE_UINT32_NV = 9,
- VK_COMPONENT_TYPE_UINT64_NV = 10,
- VK_COMPONENT_TYPE_BEGIN_RANGE_NV = VK_COMPONENT_TYPE_FLOAT16_NV,
- VK_COMPONENT_TYPE_END_RANGE_NV = VK_COMPONENT_TYPE_UINT64_NV,
- VK_COMPONENT_TYPE_RANGE_SIZE_NV = (VK_COMPONENT_TYPE_UINT64_NV - VK_COMPONENT_TYPE_FLOAT16_NV + 1),
- VK_COMPONENT_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
- } VkComponentTypeNV;
- typedef enum VkScopeNV
- {
- VK_SCOPE_DEVICE_NV = 1,
- VK_SCOPE_WORKGROUP_NV = 2,
- VK_SCOPE_SUBGROUP_NV = 3,
- VK_SCOPE_QUEUE_FAMILY_NV = 5,
- VK_SCOPE_BEGIN_RANGE_NV = VK_SCOPE_DEVICE_NV,
- VK_SCOPE_END_RANGE_NV = VK_SCOPE_QUEUE_FAMILY_NV,
- VK_SCOPE_RANGE_SIZE_NV = (VK_SCOPE_QUEUE_FAMILY_NV - VK_SCOPE_DEVICE_NV + 1),
- VK_SCOPE_MAX_ENUM_NV = 0x7FFFFFFF
- } VkScopeNV;
- typedef struct VkCooperativeMatrixPropertiesNV
- {
- VkStructureType sType;
- void* pNext;
- uint32_t MSize;
- uint32_t NSize;
- uint32_t KSize;
- VkComponentTypeNV AType;
- VkComponentTypeNV BType;
- VkComponentTypeNV CType;
- VkComponentTypeNV DType;
- VkScopeNV scope;
- } VkCooperativeMatrixPropertiesNV;
- typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV
- {
- VkStructureType sType;
- void* pNext;
- VkBool32 cooperativeMatrix;
- VkBool32 cooperativeMatrixRobustBufferAccess;
- } VkPhysicalDeviceCooperativeMatrixFeaturesNV;
- typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV
- {
- VkStructureType sType;
- void* pNext;
- VkShaderStageFlags cooperativeMatrixSupportedStages;
- } VkPhysicalDeviceCooperativeMatrixPropertiesNV;
- typedef VkResult(VKAPI_PTR* PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
- #endif // VK_HEADER_VERSION < 101
- #if VK_HEADER_VERSION < 208
- typedef enum VkInstanceCreateFlagBits
- {
- VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0x00000001,
- VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
- } VkInstanceCreateFlagBits;
- #endif // VK_HEADER_VERSION < 208
- #endif // NCNN_VULKAN_HEADER_FIX_H
|