blob: e05df3ec94f022492168d1f6b5b37e9ab5f17758 [file] [log] [blame]
// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// 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.
// Use these tables whenever enumerating all functions in the Vulkan API is
// required. In most cases IREE_VULKAN_DYNAMIC_SYMBOL_TABLES is the right
// choice (includes both common and enabled platform-specific functions).
//
// Table macros are designed to take two macros: one for each instance-specific
// function and one for each device-specific function. These macros are also
// passed a requirement flag that enables compile-time exclusion of methods that
// are not used in the binary. If you find yourself getting compilation errors
// on missing methods you probably need to change it in the tables below from
// EXCLUDED to REQUIRED or OPTIONAL.
//
// Define to get instance-specific functions:
// #define INS_PFN(requirement, function_name)
//
// Define to get device-specific functions:
// #define DEV_PFN(requirement, function_name)
//
// requirement is one of REQUIRED, OPTIONAL, or EXCLUDED.
#ifndef THIRD_PARTY_MLIR_EDGE_IREE_HAL_VULKAN_DYNAMIC_SYMBOL_TABLES_H_
#define THIRD_PARTY_MLIR_EDGE_IREE_HAL_VULKAN_DYNAMIC_SYMBOL_TABLES_H_
namespace iree {
namespace hal {
namespace vulkan {
#define IREE_VULKAN_DYNAMIC_SYMBOL_COMMON_TABLE(INS_PFN, DEV_PFN) \
INS_PFN(REQUIRED, vkCreateInstance) \
INS_PFN(REQUIRED, vkEnumerateInstanceExtensionProperties) \
INS_PFN(REQUIRED, vkEnumerateInstanceLayerProperties) \
INS_PFN(REQUIRED, vkEnumerateInstanceVersion) \
DEV_PFN(REQUIRED, vkBeginCommandBuffer) \
DEV_PFN(EXCLUDED, vkCmdBeginConditionalRenderingEXT) \
DEV_PFN(OPTIONAL, vkCmdBeginDebugUtilsLabelEXT) \
DEV_PFN(EXCLUDED, vkCmdBeginQuery) \
DEV_PFN(EXCLUDED, vkCmdBeginQueryIndexedEXT) \
DEV_PFN(EXCLUDED, vkCmdBeginRenderPass) \
DEV_PFN(EXCLUDED, vkCmdBeginRenderPass2KHR) \
DEV_PFN(EXCLUDED, vkCmdBeginTransformFeedbackEXT) \
DEV_PFN(REQUIRED, vkCmdBindDescriptorSets) \
DEV_PFN(EXCLUDED, vkCmdBindIndexBuffer) \
DEV_PFN(REQUIRED, vkCmdBindPipeline) \
DEV_PFN(EXCLUDED, vkCmdBindShadingRateImageNV) \
DEV_PFN(EXCLUDED, vkCmdBindTransformFeedbackBuffersEXT) \
DEV_PFN(EXCLUDED, vkCmdBindVertexBuffers) \
DEV_PFN(EXCLUDED, vkCmdBlitImage) \
DEV_PFN(EXCLUDED, vkCmdBuildAccelerationStructureNV) \
DEV_PFN(EXCLUDED, vkCmdClearAttachments) \
DEV_PFN(EXCLUDED, vkCmdClearColorImage) \
DEV_PFN(EXCLUDED, vkCmdClearDepthStencilImage) \
DEV_PFN(EXCLUDED, vkCmdCopyAccelerationStructureNV) \
DEV_PFN(REQUIRED, vkCmdCopyBuffer) \
DEV_PFN(EXCLUDED, vkCmdCopyBufferToImage) \
DEV_PFN(EXCLUDED, vkCmdCopyImage) \
DEV_PFN(EXCLUDED, vkCmdCopyImageToBuffer) \
DEV_PFN(EXCLUDED, vkCmdCopyQueryPoolResults) \
DEV_PFN(EXCLUDED, vkCmdDebugMarkerBeginEXT) \
DEV_PFN(EXCLUDED, vkCmdDebugMarkerEndEXT) \
DEV_PFN(EXCLUDED, vkCmdDebugMarkerInsertEXT) \
DEV_PFN(REQUIRED, vkCmdDispatch) \
DEV_PFN(REQUIRED, vkCmdDispatchBase) \
DEV_PFN(EXCLUDED, vkCmdDispatchBaseKHR) \
DEV_PFN(REQUIRED, vkCmdDispatchIndirect) \
DEV_PFN(EXCLUDED, vkCmdDraw) \
DEV_PFN(EXCLUDED, vkCmdDrawIndexed) \
DEV_PFN(EXCLUDED, vkCmdDrawIndexedIndirect) \
DEV_PFN(EXCLUDED, vkCmdDrawIndexedIndirectCountAMD) \
DEV_PFN(EXCLUDED, vkCmdDrawIndexedIndirectCountKHR) \
DEV_PFN(EXCLUDED, vkCmdDrawIndirect) \
DEV_PFN(EXCLUDED, vkCmdDrawIndirectByteCountEXT) \
DEV_PFN(EXCLUDED, vkCmdDrawIndirectCountAMD) \
DEV_PFN(EXCLUDED, vkCmdDrawIndirectCountKHR) \
DEV_PFN(EXCLUDED, vkCmdDrawMeshTasksIndirectCountNV) \
DEV_PFN(EXCLUDED, vkCmdDrawMeshTasksIndirectNV) \
DEV_PFN(EXCLUDED, vkCmdDrawMeshTasksNV) \
DEV_PFN(EXCLUDED, vkCmdEndConditionalRenderingEXT) \
DEV_PFN(OPTIONAL, vkCmdEndDebugUtilsLabelEXT) \
DEV_PFN(EXCLUDED, vkCmdEndQuery) \
DEV_PFN(EXCLUDED, vkCmdEndQueryIndexedEXT) \
DEV_PFN(EXCLUDED, vkCmdEndRenderPass) \
DEV_PFN(EXCLUDED, vkCmdEndRenderPass2KHR) \
DEV_PFN(EXCLUDED, vkCmdEndTransformFeedbackEXT) \
DEV_PFN(REQUIRED, vkCmdExecuteCommands) \
DEV_PFN(REQUIRED, vkCmdFillBuffer) \
DEV_PFN(OPTIONAL, vkCmdInsertDebugUtilsLabelEXT) \
DEV_PFN(EXCLUDED, vkCmdNextSubpass) \
DEV_PFN(EXCLUDED, vkCmdNextSubpass2KHR) \
DEV_PFN(REQUIRED, vkCmdPipelineBarrier) \
DEV_PFN(EXCLUDED, vkCmdProcessCommandsNVX) \
DEV_PFN(REQUIRED, vkCmdPushConstants) \
DEV_PFN(OPTIONAL, vkCmdPushDescriptorSetKHR) \
DEV_PFN(EXCLUDED, vkCmdPushDescriptorSetWithTemplateKHR) \
DEV_PFN(EXCLUDED, vkCmdReserveSpaceForCommandsNVX) \
DEV_PFN(REQUIRED, vkCmdResetEvent) \
DEV_PFN(EXCLUDED, vkCmdResetQueryPool) \
DEV_PFN(EXCLUDED, vkCmdResolveImage) \
DEV_PFN(EXCLUDED, vkCmdSetBlendConstants) \
DEV_PFN(EXCLUDED, vkCmdSetCheckpointNV) \
DEV_PFN(EXCLUDED, vkCmdSetCoarseSampleOrderNV) \
DEV_PFN(EXCLUDED, vkCmdSetDepthBias) \
DEV_PFN(EXCLUDED, vkCmdSetDepthBounds) \
DEV_PFN(EXCLUDED, vkCmdSetDeviceMask) \
DEV_PFN(EXCLUDED, vkCmdSetDeviceMaskKHR) \
DEV_PFN(EXCLUDED, vkCmdSetDiscardRectangleEXT) \
DEV_PFN(REQUIRED, vkCmdSetEvent) \
DEV_PFN(EXCLUDED, vkCmdSetExclusiveScissorNV) \
DEV_PFN(EXCLUDED, vkCmdSetLineWidth) \
DEV_PFN(EXCLUDED, vkCmdSetSampleLocationsEXT) \
DEV_PFN(EXCLUDED, vkCmdSetScissor) \
DEV_PFN(EXCLUDED, vkCmdSetStencilCompareMask) \
DEV_PFN(EXCLUDED, vkCmdSetStencilReference) \
DEV_PFN(EXCLUDED, vkCmdSetStencilWriteMask) \
DEV_PFN(EXCLUDED, vkCmdSetViewport) \
DEV_PFN(EXCLUDED, vkCmdSetViewportShadingRatePaletteNV) \
DEV_PFN(EXCLUDED, vkCmdSetViewportWScalingNV) \
DEV_PFN(EXCLUDED, vkCmdTraceRaysNV) \
DEV_PFN(REQUIRED, vkCmdUpdateBuffer) \
DEV_PFN(REQUIRED, vkCmdWaitEvents) \
DEV_PFN(EXCLUDED, vkCmdWriteAccelerationStructuresPropertiesNV) \
DEV_PFN(EXCLUDED, vkCmdWriteBufferMarkerAMD) \
DEV_PFN(REQUIRED, vkCmdWriteTimestamp) \
DEV_PFN(REQUIRED, vkEndCommandBuffer) \
DEV_PFN(EXCLUDED, vkResetCommandBuffer) \
DEV_PFN(EXCLUDED, vkAcquireNextImage2KHR) \
DEV_PFN(EXCLUDED, vkAcquireNextImageKHR) \
DEV_PFN(REQUIRED, vkAllocateCommandBuffers) \
DEV_PFN(REQUIRED, vkAllocateDescriptorSets) \
DEV_PFN(REQUIRED, vkAllocateMemory) \
DEV_PFN(EXCLUDED, vkBindAccelerationStructureMemoryNV) \
DEV_PFN(REQUIRED, vkBindBufferMemory) \
DEV_PFN(EXCLUDED, vkBindBufferMemory2) \
DEV_PFN(EXCLUDED, vkBindBufferMemory2KHR) \
DEV_PFN(REQUIRED, vkBindImageMemory) \
DEV_PFN(EXCLUDED, vkBindImageMemory2) \
DEV_PFN(EXCLUDED, vkBindImageMemory2KHR) \
DEV_PFN(EXCLUDED, vkCompileDeferredNV) \
DEV_PFN(EXCLUDED, vkCreateAccelerationStructureNV) \
DEV_PFN(REQUIRED, vkCreateBuffer) \
DEV_PFN(REQUIRED, vkCreateBufferView) \
DEV_PFN(REQUIRED, vkCreateCommandPool) \
DEV_PFN(REQUIRED, vkCreateComputePipelines) \
DEV_PFN(REQUIRED, vkCreateDescriptorPool) \
DEV_PFN(REQUIRED, vkCreateDescriptorSetLayout) \
DEV_PFN(EXCLUDED, vkCreateDescriptorUpdateTemplate) \
DEV_PFN(EXCLUDED, vkCreateDescriptorUpdateTemplateKHR) \
DEV_PFN(REQUIRED, vkCreateEvent) \
DEV_PFN(REQUIRED, vkCreateFence) \
DEV_PFN(EXCLUDED, vkCreateFramebuffer) \
DEV_PFN(EXCLUDED, vkCreateGraphicsPipelines) \
DEV_PFN(REQUIRED, vkCreateImage) \
DEV_PFN(EXCLUDED, vkCreateImageView) \
DEV_PFN(EXCLUDED, vkCreateIndirectCommandsLayoutNVX) \
DEV_PFN(EXCLUDED, vkCreateObjectTableNVX) \
DEV_PFN(REQUIRED, vkCreatePipelineCache) \
DEV_PFN(REQUIRED, vkCreatePipelineLayout) \
DEV_PFN(EXCLUDED, vkCreateQueryPool) \
DEV_PFN(EXCLUDED, vkCreateRayTracingPipelinesNV) \
DEV_PFN(EXCLUDED, vkCreateRenderPass) \
DEV_PFN(EXCLUDED, vkCreateRenderPass2KHR) \
DEV_PFN(EXCLUDED, vkCreateSampler) \
DEV_PFN(EXCLUDED, vkCreateSamplerYcbcrConversion) \
DEV_PFN(EXCLUDED, vkCreateSamplerYcbcrConversionKHR) \
DEV_PFN(REQUIRED, vkCreateSemaphore) \
DEV_PFN(REQUIRED, vkCreateShaderModule) \
DEV_PFN(EXCLUDED, vkCreateSharedSwapchainsKHR) \
DEV_PFN(EXCLUDED, vkCreateSwapchainKHR) \
DEV_PFN(EXCLUDED, vkCreateValidationCacheEXT) \
DEV_PFN(EXCLUDED, vkDebugMarkerSetObjectNameEXT) \
DEV_PFN(EXCLUDED, vkDebugMarkerSetObjectTagEXT) \
DEV_PFN(EXCLUDED, vkDestroyAccelerationStructureNV) \
DEV_PFN(REQUIRED, vkDestroyBuffer) \
DEV_PFN(REQUIRED, vkDestroyBufferView) \
DEV_PFN(REQUIRED, vkDestroyCommandPool) \
DEV_PFN(REQUIRED, vkDestroyDescriptorPool) \
DEV_PFN(REQUIRED, vkDestroyDescriptorSetLayout) \
DEV_PFN(EXCLUDED, vkDestroyDescriptorUpdateTemplate) \
DEV_PFN(EXCLUDED, vkDestroyDescriptorUpdateTemplateKHR) \
DEV_PFN(REQUIRED, vkDestroyDevice) \
DEV_PFN(REQUIRED, vkDestroyEvent) \
DEV_PFN(REQUIRED, vkDestroyFence) \
DEV_PFN(EXCLUDED, vkDestroyFramebuffer) \
DEV_PFN(REQUIRED, vkDestroyImage) \
DEV_PFN(EXCLUDED, vkDestroyImageView) \
DEV_PFN(EXCLUDED, vkDestroyIndirectCommandsLayoutNVX) \
DEV_PFN(EXCLUDED, vkDestroyObjectTableNVX) \
DEV_PFN(REQUIRED, vkDestroyPipeline) \
DEV_PFN(REQUIRED, vkDestroyPipelineCache) \
DEV_PFN(REQUIRED, vkDestroyPipelineLayout) \
DEV_PFN(EXCLUDED, vkDestroyQueryPool) \
DEV_PFN(EXCLUDED, vkDestroyRenderPass) \
DEV_PFN(EXCLUDED, vkDestroySampler) \
DEV_PFN(EXCLUDED, vkDestroySamplerYcbcrConversion) \
DEV_PFN(EXCLUDED, vkDestroySamplerYcbcrConversionKHR) \
DEV_PFN(REQUIRED, vkDestroySemaphore) \
DEV_PFN(REQUIRED, vkDestroyShaderModule) \
DEV_PFN(EXCLUDED, vkDestroySwapchainKHR) \
DEV_PFN(EXCLUDED, vkDestroyValidationCacheEXT) \
DEV_PFN(REQUIRED, vkDeviceWaitIdle) \
DEV_PFN(EXCLUDED, vkDisplayPowerControlEXT) \
DEV_PFN(REQUIRED, vkFlushMappedMemoryRanges) \
DEV_PFN(REQUIRED, vkFreeCommandBuffers) \
DEV_PFN(REQUIRED, vkFreeDescriptorSets) \
DEV_PFN(REQUIRED, vkFreeMemory) \
DEV_PFN(EXCLUDED, vkGetAccelerationStructureHandleNV) \
DEV_PFN(EXCLUDED, vkGetAccelerationStructureMemoryRequirementsNV) \
DEV_PFN(EXCLUDED, vkGetBufferDeviceAddressEXT) \
DEV_PFN(REQUIRED, vkGetBufferMemoryRequirements) \
DEV_PFN(EXCLUDED, vkGetBufferMemoryRequirements2) \
DEV_PFN(EXCLUDED, vkGetBufferMemoryRequirements2KHR) \
DEV_PFN(EXCLUDED, vkGetCalibratedTimestampsEXT) \
DEV_PFN(REQUIRED, vkGetDescriptorSetLayoutSupport) \
DEV_PFN(EXCLUDED, vkGetDescriptorSetLayoutSupportKHR) \
DEV_PFN(EXCLUDED, vkGetDeviceGroupPeerMemoryFeatures) \
DEV_PFN(EXCLUDED, vkGetDeviceGroupPeerMemoryFeaturesKHR) \
DEV_PFN(EXCLUDED, vkGetDeviceGroupPresentCapabilitiesKHR) \
DEV_PFN(EXCLUDED, vkGetDeviceGroupSurfacePresentModesKHR) \
DEV_PFN(EXCLUDED, vkGetDeviceMemoryCommitment) \
DEV_PFN(REQUIRED, vkGetDeviceQueue) \
DEV_PFN(EXCLUDED, vkGetDeviceQueue2) \
DEV_PFN(REQUIRED, vkGetEventStatus) \
DEV_PFN(OPTIONAL, vkGetFenceFdKHR) \
DEV_PFN(REQUIRED, vkGetFenceStatus) \
DEV_PFN(EXCLUDED, vkGetImageDrmFormatModifierPropertiesEXT) \
DEV_PFN(REQUIRED, vkGetImageMemoryRequirements) \
DEV_PFN(EXCLUDED, vkGetImageMemoryRequirements2) \
DEV_PFN(EXCLUDED, vkGetImageMemoryRequirements2KHR) \
DEV_PFN(EXCLUDED, vkGetImageSparseMemoryRequirements) \
DEV_PFN(EXCLUDED, vkGetImageSparseMemoryRequirements2) \
DEV_PFN(EXCLUDED, vkGetImageSparseMemoryRequirements2KHR) \
DEV_PFN(EXCLUDED, vkGetImageSubresourceLayout) \
DEV_PFN(EXCLUDED, vkGetImageViewHandleNVX) \
DEV_PFN(EXCLUDED, vkGetMemoryFdKHR) \
DEV_PFN(EXCLUDED, vkGetMemoryFdPropertiesKHR) \
DEV_PFN(EXCLUDED, vkGetMemoryHostPointerPropertiesEXT) \
DEV_PFN(EXCLUDED, vkGetPastPresentationTimingGOOGLE) \
DEV_PFN(REQUIRED, vkGetPipelineCacheData) \
DEV_PFN(EXCLUDED, vkGetQueryPoolResults) \
DEV_PFN(EXCLUDED, vkGetRayTracingShaderGroupHandlesNV) \
DEV_PFN(EXCLUDED, vkGetRefreshCycleDurationGOOGLE) \
DEV_PFN(EXCLUDED, vkGetRenderAreaGranularity) \
DEV_PFN(OPTIONAL, vkGetSemaphoreFdKHR) \
DEV_PFN(EXCLUDED, vkGetShaderInfoAMD) \
DEV_PFN(EXCLUDED, vkGetSwapchainCounterEXT) \
DEV_PFN(EXCLUDED, vkGetSwapchainImagesKHR) \
DEV_PFN(EXCLUDED, vkGetSwapchainStatusKHR) \
DEV_PFN(EXCLUDED, vkGetValidationCacheDataEXT) \
DEV_PFN(OPTIONAL, vkImportFenceFdKHR) \
DEV_PFN(OPTIONAL, vkImportSemaphoreFdKHR) \
DEV_PFN(REQUIRED, vkInvalidateMappedMemoryRanges) \
DEV_PFN(REQUIRED, vkMapMemory) \
DEV_PFN(REQUIRED, vkMergePipelineCaches) \
DEV_PFN(EXCLUDED, vkMergeValidationCachesEXT) \
DEV_PFN(EXCLUDED, vkRegisterDeviceEventEXT) \
DEV_PFN(EXCLUDED, vkRegisterDisplayEventEXT) \
DEV_PFN(EXCLUDED, vkRegisterObjectsNVX) \
DEV_PFN(EXCLUDED, vkResetCommandPool) \
DEV_PFN(EXCLUDED, vkResetDescriptorPool) \
DEV_PFN(REQUIRED, vkResetEvent) \
DEV_PFN(REQUIRED, vkResetFences) \
DEV_PFN(EXCLUDED, vkResetQueryPoolEXT) \
DEV_PFN(OPTIONAL, vkSetDebugUtilsObjectNameEXT) \
DEV_PFN(OPTIONAL, vkSetDebugUtilsObjectTagEXT) \
DEV_PFN(REQUIRED, vkSetEvent) \
DEV_PFN(EXCLUDED, vkSetHdrMetadataEXT) \
DEV_PFN(EXCLUDED, vkSetLocalDimmingAMD) \
DEV_PFN(REQUIRED, vkTrimCommandPool) \
DEV_PFN(EXCLUDED, vkTrimCommandPoolKHR) \
DEV_PFN(REQUIRED, vkUnmapMemory) \
DEV_PFN(EXCLUDED, vkUnregisterObjectsNVX) \
DEV_PFN(EXCLUDED, vkUpdateDescriptorSetWithTemplate) \
DEV_PFN(EXCLUDED, vkUpdateDescriptorSetWithTemplateKHR) \
DEV_PFN(REQUIRED, vkUpdateDescriptorSets) \
DEV_PFN(REQUIRED, vkWaitForFences) \
\
INS_PFN(OPTIONAL, vkCreateDebugReportCallbackEXT) \
INS_PFN(OPTIONAL, vkCreateDebugUtilsMessengerEXT) \
INS_PFN(EXCLUDED, vkCreateDisplayPlaneSurfaceKHR) \
INS_PFN(EXCLUDED, vkCreateHeadlessSurfaceEXT) \
INS_PFN(EXCLUDED, vkDebugReportMessageEXT) \
INS_PFN(OPTIONAL, vkDestroyDebugReportCallbackEXT) \
INS_PFN(OPTIONAL, vkDestroyDebugUtilsMessengerEXT) \
INS_PFN(REQUIRED, vkDestroyInstance) \
INS_PFN(EXCLUDED, vkDestroySurfaceKHR) \
INS_PFN(EXCLUDED, vkEnumeratePhysicalDeviceGroups) \
INS_PFN(EXCLUDED, vkEnumeratePhysicalDeviceGroupsKHR) \
INS_PFN(REQUIRED, vkEnumeratePhysicalDevices) \
INS_PFN(EXCLUDED, vkSubmitDebugUtilsMessageEXT) \
INS_PFN(REQUIRED, vkCreateDevice) \
INS_PFN(EXCLUDED, vkCreateDisplayModeKHR) \
INS_PFN(REQUIRED, vkEnumerateDeviceExtensionProperties) \
INS_PFN(REQUIRED, vkEnumerateDeviceLayerProperties) \
INS_PFN(EXCLUDED, vkGetDisplayModeProperties2KHR) \
INS_PFN(EXCLUDED, vkGetDisplayModePropertiesKHR) \
INS_PFN(EXCLUDED, vkGetDisplayPlaneCapabilities2KHR) \
INS_PFN(EXCLUDED, vkGetDisplayPlaneCapabilitiesKHR) \
INS_PFN(EXCLUDED, vkGetDisplayPlaneSupportedDisplaysKHR) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceCalibrateableTimeDomainsEXT) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceCooperativeMatrixPropertiesNV) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceDisplayPlaneProperties2KHR) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceDisplayPlanePropertiesKHR) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceDisplayProperties2KHR) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceDisplayPropertiesKHR) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceExternalBufferProperties) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceExternalBufferPropertiesKHR) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceExternalFenceProperties) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceExternalFencePropertiesKHR) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceExternalImageFormatPropertiesNV) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceExternalSemaphoreProperties) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceExternalSemaphorePropertiesKHR) \
INS_PFN(REQUIRED, vkGetPhysicalDeviceFeatures) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceFeatures2) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceFeatures2KHR) \
INS_PFN(REQUIRED, vkGetPhysicalDeviceFormatProperties) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceFormatProperties2) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceFormatProperties2KHR) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceImageFormatProperties) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceImageFormatProperties2) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceImageFormatProperties2KHR) \
INS_PFN(REQUIRED, vkGetPhysicalDeviceMemoryProperties) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceMemoryProperties2) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceMemoryProperties2KHR) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceMultisamplePropertiesEXT) \
INS_PFN(EXCLUDED, vkGetPhysicalDevicePresentRectanglesKHR) \
INS_PFN(REQUIRED, vkGetPhysicalDeviceProperties) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceProperties2) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceProperties2KHR) \
INS_PFN(REQUIRED, vkGetPhysicalDeviceQueueFamilyProperties) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceQueueFamilyProperties2) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceQueueFamilyProperties2KHR) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceSparseImageFormatProperties) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceSparseImageFormatProperties2) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceSparseImageFormatProperties2KHR) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceSurfaceCapabilities2EXT) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceSurfaceCapabilities2KHR) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceSurfaceCapabilitiesKHR) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceSurfaceFormats2KHR) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceSurfaceFormatsKHR) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceSurfacePresentModesKHR) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceSurfaceSupportKHR) \
INS_PFN(EXCLUDED, vkReleaseDisplayEXT) \
DEV_PFN(EXCLUDED, vkGetQueueCheckpointDataNV) \
DEV_PFN(OPTIONAL, vkQueueBeginDebugUtilsLabelEXT) \
DEV_PFN(EXCLUDED, vkQueueBindSparse) \
DEV_PFN(OPTIONAL, vkQueueEndDebugUtilsLabelEXT) \
DEV_PFN(OPTIONAL, vkQueueInsertDebugUtilsLabelEXT) \
DEV_PFN(EXCLUDED, vkQueuePresentKHR) \
DEV_PFN(REQUIRED, vkQueueSubmit) \
DEV_PFN(REQUIRED, vkQueueWaitIdle)
#ifdef VK_USE_PLATFORM_ANDROID_KHR
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_ANDROID_KHR(INS_PFN, DEV_PFN) \
DEV_PFN(OPTIONAL, vkGetAndroidHardwareBufferPropertiesANDROID) \
DEV_PFN(OPTIONAL, vkGetMemoryAndroidHardwareBufferANDROID) \
INS_PFN(EXCLUDED, vkCreateAndroidSurfaceKHR)
#else
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_ANDROID_KHR(INS_PFN, DEV_PFN)
#endif // VK_USE_PLATFORM_ANDROID_KHR
#ifdef VK_USE_PLATFORM_GGP
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_GGP(INS_PFN, DEV_PFN) \
INS_PFN(EXCLUDED, vkCreateStreamDescriptorSurfaceGGP)
#else
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_GGP(INS_PFN, DEV_PFN)
#endif // VK_USE_PLATFORM_GGP
#ifdef VK_USE_PLATFORM_IOS_MVK
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_IOS_MVK(INS_PFN, DEV_PFN) \
INS_PFN(EXCLUDED, vkCreateIOSSurfaceMVK)
#else
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_IOS_MVK(INS_PFN, DEV_PFN)
#endif // VK_USE_PLATFORM_IOS_MVK
#ifdef VK_USE_PLATFORM_FUCHSIA
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_FUSCHIA(INS_PFN, DEV_PFN) \
INS_PFN(EXCLUDED, vkCreateImagePipeSurfaceFUCHSIA)
#else
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_FUSCHIA(INS_PFN, DEV_PFN)
#endif // VK_USE_PLATFORM_FUCHSIA
#ifdef VK_USE_PLATFORM_MACOS_MVK
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_MACOS_MVK(INS_PFN, DEV_PFN) \
INS_PFN(EXCLUDED, vkCreateMacOSSurfaceMVK)
#else
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_MACOS_MVK(INS_PFN, DEV_PFN)
#endif // VK_USE_PLATFORM_MACOS_MVK
#ifdef VK_USE_PLATFORM_METAL_EXT
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_METAL_EXT(INS_PFN, DEV_PFN) \
INS_PFN(EXCLUDED, vkCreateMetalSurfaceEXT)
#else
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_METAL_EXT(INS_PFN, DEV_PFN)
#endif // VK_USE_PLATFORM_METAL_EXT
#ifdef VK_USE_PLATFORM_VI_NN
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_VI_NN(INS_PFN, DEV_PFN) \
INS_PFN(EXCLUDED, vkCreateViSurfaceNN)
#else
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_VI_NN(INS_PFN, DEV_PFN)
#endif // VK_USE_PLATFORM_VI_NN
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_WAYLAND_KHR(INS_PFN, DEV_PFN) \
INS_PFN(EXCLUDED, vkCreateWaylandSurfaceKHR) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceWaylandPresentationSupportKHR)
#else
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_WAYLAND_KHR(INS_PFN, DEV_PFN)
#endif // VK_USE_PLATFORM_WAYLAND_KHR
#ifdef VK_USE_PLATFORM_WIN32_KHR
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_WIN32_KHR(INS_PFN, DEV_PFN) \
DEV_PFN(EXCLUDED, vkAcquireFullScreenExclusiveModeEXT) \
DEV_PFN(EXCLUDED, vkGetDeviceGroupSurfacePresentModes2EXT) \
DEV_PFN(REQUIRED, vkGetFenceWin32HandleKHR) \
DEV_PFN(EXCLUDED, vkGetMemoryWin32HandleKHR) \
DEV_PFN(EXCLUDED, vkGetMemoryWin32HandleNV) \
DEV_PFN(EXCLUDED, vkGetMemoryWin32HandlePropertiesKHR) \
DEV_PFN(REQUIRED, vkGetSemaphoreWin32HandleKHR) \
DEV_PFN(REQUIRED, vkImportFenceWin32HandleKHR) \
DEV_PFN(REQUIRED, vkImportSemaphoreWin32HandleKHR) \
DEV_PFN(EXCLUDED, vkReleaseFullScreenExclusiveModeEXT) \
INS_PFN(EXCLUDED, vkCreateWin32SurfaceKHR) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceSurfacePresentModes2EXT) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceWin32PresentationSupportKHR)
#else
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_WIN32_KHR(INS_PFN, DEV_PFN)
#endif // VK_USE_PLATFORM_WIN32_KHR
#ifdef VK_USE_PLATFORM_XCB_KHR
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_XCB_KHR(INS_PFN, DEV_PFN) \
INS_PFN(EXCLUDED, vkCreateXcbSurfaceKHR) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceXcbPresentationSupportKHR)
#else
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_XCB_KHR(INS_PFN, DEV_PFN)
#endif // VK_USE_PLATFORM_XCB_KHR
#ifdef VK_USE_PLATFORM_XLIB_KHR
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_XLIB_KHR(INS_PFN, DEV_PFN) \
INS_PFN(EXCLUDED, vkCreateXlibSurfaceKHR) \
INS_PFN(EXCLUDED, vkGetPhysicalDeviceXlibPresentationSupportKHR)
#else
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_XLIB_KHR(INS_PFN, DEV_PFN)
#endif // VK_USE_PLATFORM_XLIB_KHR
#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_XLIB_XRANDR_EXT(INS_PFN, DEV_PFN) \
INS_PFN(EXCLUDED, vkAcquireXlibDisplayEXT) \
INS_PFN(EXCLUDED, vkGetRandROutputDisplayEXT)
#else
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_XLIB_XRANDR_EXT(INS_PFN, DEV_PFN)
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
#define IREE_VULKAN_DYNAMIC_SYMBOL_PLATFORM_TABLES(INS_PFN, DEV_PFN) \
IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_ANDROID_KHR(INS_PFN, DEV_PFN) \
IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_GGP(INS_PFN, DEV_PFN) \
IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_IOS_MVK(INS_PFN, DEV_PFN) \
IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_FUSCHIA(INS_PFN, DEV_PFN) \
IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_MACOS_MVK(INS_PFN, DEV_PFN) \
IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_METAL_EXT(INS_PFN, DEV_PFN) \
IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_VI_NN(INS_PFN, DEV_PFN) \
IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_WAYLAND_KHR(INS_PFN, DEV_PFN) \
IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_WIN32_KHR(INS_PFN, DEV_PFN) \
IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_XCB_KHR(INS_PFN, DEV_PFN) \
IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_XLIB_KHR(INS_PFN, DEV_PFN) \
IREE_VULKAN_DYNAMIC_SYMBOL_TABLE_XLIB_XRANDR_EXT(INS_PFN, DEV_PFN)
#define IREE_VULKAN_DYNAMIC_SYMBOL_TABLES(INS_PFN, DEV_PFN) \
IREE_VULKAN_DYNAMIC_SYMBOL_COMMON_TABLE(INS_PFN, DEV_PFN) \
IREE_VULKAN_DYNAMIC_SYMBOL_PLATFORM_TABLES(INS_PFN, DEV_PFN)
} // namespace vulkan
} // namespace hal
} // namespace iree
#endif // THIRD_PARTY_MLIR_EDGE_IREE_HAL_VULKAN_DYNAMIC_SYMBOL_TABLES_H_