blob: afdaeb7c1968049f2267a3024994ad45deb27ff4 [file] [log] [blame]
#include "vk_dispatch_table_helper.h"
const vvl::unordered_map<std::string, small_vector<std::string, 2, size_t>> api_extension_map{
{"vkBindBufferMemory2", {"VK_VERSION_1_1"}},
{"vkBindImageMemory2", {"VK_VERSION_1_1"}},
{"vkGetDeviceGroupPeerMemoryFeatures", {"VK_VERSION_1_1"}},
{"vkCmdSetDeviceMask", {"VK_VERSION_1_1"}},
{"vkCmdDispatchBase", {"VK_VERSION_1_1"}},
{"vkGetImageMemoryRequirements2", {"VK_VERSION_1_1"}},
{"vkGetBufferMemoryRequirements2", {"VK_VERSION_1_1"}},
{"vkGetImageSparseMemoryRequirements2", {"VK_VERSION_1_1"}},
{"vkTrimCommandPool", {"VK_VERSION_1_1"}},
{"vkGetDeviceQueue2", {"VK_VERSION_1_1"}},
{"vkCreateSamplerYcbcrConversion", {"VK_VERSION_1_1"}},
{"vkDestroySamplerYcbcrConversion", {"VK_VERSION_1_1"}},
{"vkCreateDescriptorUpdateTemplate", {"VK_VERSION_1_1"}},
{"vkDestroyDescriptorUpdateTemplate", {"VK_VERSION_1_1"}},
{"vkUpdateDescriptorSetWithTemplate", {"VK_VERSION_1_1"}},
{"vkGetDescriptorSetLayoutSupport", {"VK_VERSION_1_1"}},
{"vkCmdDrawIndirectCount", {"VK_VERSION_1_2"}},
{"vkCmdDrawIndexedIndirectCount", {"VK_VERSION_1_2"}},
{"vkCreateRenderPass2", {"VK_VERSION_1_2"}},
{"vkCmdBeginRenderPass2", {"VK_VERSION_1_2"}},
{"vkCmdNextSubpass2", {"VK_VERSION_1_2"}},
{"vkCmdEndRenderPass2", {"VK_VERSION_1_2"}},
{"vkResetQueryPool", {"VK_VERSION_1_2"}},
{"vkGetSemaphoreCounterValue", {"VK_VERSION_1_2"}},
{"vkWaitSemaphores", {"VK_VERSION_1_2"}},
{"vkSignalSemaphore", {"VK_VERSION_1_2"}},
{"vkGetBufferDeviceAddress", {"VK_VERSION_1_2"}},
{"vkGetBufferOpaqueCaptureAddress", {"VK_VERSION_1_2"}},
{"vkGetDeviceMemoryOpaqueCaptureAddress", {"VK_VERSION_1_2"}},
{"vkCreatePrivateDataSlot", {"VK_VERSION_1_3"}},
{"vkDestroyPrivateDataSlot", {"VK_VERSION_1_3"}},
{"vkSetPrivateData", {"VK_VERSION_1_3"}},
{"vkGetPrivateData", {"VK_VERSION_1_3"}},
{"vkCmdSetEvent2", {"VK_VERSION_1_3"}},
{"vkCmdResetEvent2", {"VK_VERSION_1_3"}},
{"vkCmdWaitEvents2", {"VK_VERSION_1_3"}},
{"vkCmdPipelineBarrier2", {"VK_VERSION_1_3"}},
{"vkCmdWriteTimestamp2", {"VK_VERSION_1_3"}},
{"vkQueueSubmit2", {"VK_VERSION_1_3"}},
{"vkCmdCopyBuffer2", {"VK_VERSION_1_3"}},
{"vkCmdCopyImage2", {"VK_VERSION_1_3"}},
{"vkCmdCopyBufferToImage2", {"VK_VERSION_1_3"}},
{"vkCmdCopyImageToBuffer2", {"VK_VERSION_1_3"}},
{"vkCmdBlitImage2", {"VK_VERSION_1_3"}},
{"vkCmdResolveImage2", {"VK_VERSION_1_3"}},
{"vkCmdBeginRendering", {"VK_VERSION_1_3"}},
{"vkCmdEndRendering", {"VK_VERSION_1_3"}},
{"vkCmdSetCullMode", {"VK_VERSION_1_3"}},
{"vkCmdSetFrontFace", {"VK_VERSION_1_3"}},
{"vkCmdSetPrimitiveTopology", {"VK_VERSION_1_3"}},
{"vkCmdSetViewportWithCount", {"VK_VERSION_1_3"}},
{"vkCmdSetScissorWithCount", {"VK_VERSION_1_3"}},
{"vkCmdBindVertexBuffers2", {"VK_VERSION_1_3"}},
{"vkCmdSetDepthTestEnable", {"VK_VERSION_1_3"}},
{"vkCmdSetDepthWriteEnable", {"VK_VERSION_1_3"}},
{"vkCmdSetDepthCompareOp", {"VK_VERSION_1_3"}},
{"vkCmdSetDepthBoundsTestEnable", {"VK_VERSION_1_3"}},
{"vkCmdSetStencilTestEnable", {"VK_VERSION_1_3"}},
{"vkCmdSetStencilOp", {"VK_VERSION_1_3"}},
{"vkCmdSetRasterizerDiscardEnable", {"VK_VERSION_1_3"}},
{"vkCmdSetDepthBiasEnable", {"VK_VERSION_1_3"}},
{"vkCmdSetPrimitiveRestartEnable", {"VK_VERSION_1_3"}},
{"vkGetDeviceBufferMemoryRequirements", {"VK_VERSION_1_3"}},
{"vkGetDeviceImageMemoryRequirements", {"VK_VERSION_1_3"}},
{"vkGetDeviceImageSparseMemoryRequirements", {"VK_VERSION_1_3"}},
{"vkCreateSwapchainKHR", {"VK_KHR_swapchain"}},
{"vkDestroySwapchainKHR", {"VK_KHR_swapchain"}},
{"vkGetSwapchainImagesKHR", {"VK_KHR_swapchain"}},
{"vkAcquireNextImageKHR", {"VK_KHR_swapchain"}},
{"vkQueuePresentKHR", {"VK_KHR_swapchain"}},
{"vkGetDeviceGroupPresentCapabilitiesKHR", {"VK_KHR_swapchain", "VK_KHR_device_group"}},
{"vkGetDeviceGroupSurfacePresentModesKHR", {"VK_KHR_swapchain", "VK_KHR_device_group"}},
{"vkAcquireNextImage2KHR", {"VK_KHR_swapchain", "VK_KHR_device_group"}},
{"vkCreateSharedSwapchainsKHR", {"VK_KHR_display_swapchain"}},
{"vkCreateVideoSessionKHR", {"VK_KHR_video_queue"}},
{"vkDestroyVideoSessionKHR", {"VK_KHR_video_queue"}},
{"vkGetVideoSessionMemoryRequirementsKHR", {"VK_KHR_video_queue"}},
{"vkBindVideoSessionMemoryKHR", {"VK_KHR_video_queue"}},
{"vkCreateVideoSessionParametersKHR", {"VK_KHR_video_queue"}},
{"vkUpdateVideoSessionParametersKHR", {"VK_KHR_video_queue"}},
{"vkDestroyVideoSessionParametersKHR", {"VK_KHR_video_queue"}},
{"vkCmdBeginVideoCodingKHR", {"VK_KHR_video_queue"}},
{"vkCmdEndVideoCodingKHR", {"VK_KHR_video_queue"}},
{"vkCmdControlVideoCodingKHR", {"VK_KHR_video_queue"}},
{"vkCmdDecodeVideoKHR", {"VK_KHR_video_decode_queue"}},
{"vkCmdBeginRenderingKHR", {"VK_KHR_dynamic_rendering"}},
{"vkCmdEndRenderingKHR", {"VK_KHR_dynamic_rendering"}},
{"vkGetDeviceGroupPeerMemoryFeaturesKHR", {"VK_KHR_device_group"}},
{"vkCmdSetDeviceMaskKHR", {"VK_KHR_device_group"}},
{"vkCmdDispatchBaseKHR", {"VK_KHR_device_group"}},
{"vkTrimCommandPoolKHR", {"VK_KHR_maintenance1"}},
{"vkGetMemoryWin32HandleKHR", {"VK_KHR_external_memory_win32"}},
{"vkGetMemoryWin32HandlePropertiesKHR", {"VK_KHR_external_memory_win32"}},
{"vkGetMemoryFdKHR", {"VK_KHR_external_memory_fd"}},
{"vkGetMemoryFdPropertiesKHR", {"VK_KHR_external_memory_fd"}},
{"vkImportSemaphoreWin32HandleKHR", {"VK_KHR_external_semaphore_win32"}},
{"vkGetSemaphoreWin32HandleKHR", {"VK_KHR_external_semaphore_win32"}},
{"vkImportSemaphoreFdKHR", {"VK_KHR_external_semaphore_fd"}},
{"vkGetSemaphoreFdKHR", {"VK_KHR_external_semaphore_fd"}},
{"vkCmdPushDescriptorSetKHR", {"VK_KHR_push_descriptor"}},
{"vkCmdPushDescriptorSetWithTemplateKHR", {"VK_KHR_push_descriptor", "VK_KHR_descriptor_update_template"}},
{"vkCreateDescriptorUpdateTemplateKHR", {"VK_KHR_descriptor_update_template"}},
{"vkDestroyDescriptorUpdateTemplateKHR", {"VK_KHR_descriptor_update_template"}},
{"vkUpdateDescriptorSetWithTemplateKHR", {"VK_KHR_descriptor_update_template"}},
{"vkCreateRenderPass2KHR", {"VK_KHR_create_renderpass2"}},
{"vkCmdBeginRenderPass2KHR", {"VK_KHR_create_renderpass2"}},
{"vkCmdNextSubpass2KHR", {"VK_KHR_create_renderpass2"}},
{"vkCmdEndRenderPass2KHR", {"VK_KHR_create_renderpass2"}},
{"vkGetSwapchainStatusKHR", {"VK_KHR_shared_presentable_image"}},
{"vkImportFenceWin32HandleKHR", {"VK_KHR_external_fence_win32"}},
{"vkGetFenceWin32HandleKHR", {"VK_KHR_external_fence_win32"}},
{"vkImportFenceFdKHR", {"VK_KHR_external_fence_fd"}},
{"vkGetFenceFdKHR", {"VK_KHR_external_fence_fd"}},
{"vkAcquireProfilingLockKHR", {"VK_KHR_performance_query"}},
{"vkReleaseProfilingLockKHR", {"VK_KHR_performance_query"}},
{"vkGetImageMemoryRequirements2KHR", {"VK_KHR_get_memory_requirements2"}},
{"vkGetBufferMemoryRequirements2KHR", {"VK_KHR_get_memory_requirements2"}},
{"vkGetImageSparseMemoryRequirements2KHR", {"VK_KHR_get_memory_requirements2"}},
{"vkCreateSamplerYcbcrConversionKHR", {"VK_KHR_sampler_ycbcr_conversion"}},
{"vkDestroySamplerYcbcrConversionKHR", {"VK_KHR_sampler_ycbcr_conversion"}},
{"vkBindBufferMemory2KHR", {"VK_KHR_bind_memory2"}},
{"vkBindImageMemory2KHR", {"VK_KHR_bind_memory2"}},
{"vkGetDescriptorSetLayoutSupportKHR", {"VK_KHR_maintenance3"}},
{"vkCmdDrawIndirectCountKHR", {"VK_KHR_draw_indirect_count"}},
{"vkCmdDrawIndexedIndirectCountKHR", {"VK_KHR_draw_indirect_count"}},
{"vkGetSemaphoreCounterValueKHR", {"VK_KHR_timeline_semaphore"}},
{"vkWaitSemaphoresKHR", {"VK_KHR_timeline_semaphore"}},
{"vkSignalSemaphoreKHR", {"VK_KHR_timeline_semaphore"}},
{"vkCmdSetFragmentShadingRateKHR", {"VK_KHR_fragment_shading_rate"}},
{"vkWaitForPresentKHR", {"VK_KHR_present_wait"}},
{"vkGetBufferDeviceAddressKHR", {"VK_KHR_buffer_device_address"}},
{"vkGetBufferOpaqueCaptureAddressKHR", {"VK_KHR_buffer_device_address"}},
{"vkGetDeviceMemoryOpaqueCaptureAddressKHR", {"VK_KHR_buffer_device_address"}},
{"vkCreateDeferredOperationKHR", {"VK_KHR_deferred_host_operations"}},
{"vkDestroyDeferredOperationKHR", {"VK_KHR_deferred_host_operations"}},
{"vkGetDeferredOperationMaxConcurrencyKHR", {"VK_KHR_deferred_host_operations"}},
{"vkGetDeferredOperationResultKHR", {"VK_KHR_deferred_host_operations"}},
{"vkDeferredOperationJoinKHR", {"VK_KHR_deferred_host_operations"}},
{"vkGetPipelineExecutablePropertiesKHR", {"VK_KHR_pipeline_executable_properties"}},
{"vkGetPipelineExecutableStatisticsKHR", {"VK_KHR_pipeline_executable_properties"}},
{"vkGetPipelineExecutableInternalRepresentationsKHR", {"VK_KHR_pipeline_executable_properties"}},
{"vkMapMemory2KHR", {"VK_KHR_map_memory2"}},
{"vkUnmapMemory2KHR", {"VK_KHR_map_memory2"}},
{"vkGetEncodedVideoSessionParametersKHR", {"VK_KHR_video_encode_queue"}},
{"vkCmdEncodeVideoKHR", {"VK_KHR_video_encode_queue"}},
{"vkCmdSetEvent2KHR", {"VK_KHR_synchronization2"}},
{"vkCmdResetEvent2KHR", {"VK_KHR_synchronization2"}},
{"vkCmdWaitEvents2KHR", {"VK_KHR_synchronization2"}},
{"vkCmdPipelineBarrier2KHR", {"VK_KHR_synchronization2"}},
{"vkCmdWriteTimestamp2KHR", {"VK_KHR_synchronization2"}},
{"vkQueueSubmit2KHR", {"VK_KHR_synchronization2"}},
{"vkCmdWriteBufferMarker2AMD", {"VK_KHR_synchronization2"}},
{"vkGetQueueCheckpointData2NV", {"VK_KHR_synchronization2"}},
{"vkCmdCopyBuffer2KHR", {"VK_KHR_copy_commands2"}},
{"vkCmdCopyImage2KHR", {"VK_KHR_copy_commands2"}},
{"vkCmdCopyBufferToImage2KHR", {"VK_KHR_copy_commands2"}},
{"vkCmdCopyImageToBuffer2KHR", {"VK_KHR_copy_commands2"}},
{"vkCmdBlitImage2KHR", {"VK_KHR_copy_commands2"}},
{"vkCmdResolveImage2KHR", {"VK_KHR_copy_commands2"}},
{"vkCmdTraceRaysIndirect2KHR", {"VK_KHR_ray_tracing_maintenance1"}},
{"vkGetDeviceBufferMemoryRequirementsKHR", {"VK_KHR_maintenance4"}},
{"vkGetDeviceImageMemoryRequirementsKHR", {"VK_KHR_maintenance4"}},
{"vkGetDeviceImageSparseMemoryRequirementsKHR", {"VK_KHR_maintenance4"}},
{"vkCmdBindIndexBuffer2KHR", {"VK_KHR_maintenance5"}},
{"vkGetRenderingAreaGranularityKHR", {"VK_KHR_maintenance5"}},
{"vkGetDeviceImageSubresourceLayoutKHR", {"VK_KHR_maintenance5"}},
{"vkGetImageSubresourceLayout2KHR", {"VK_KHR_maintenance5"}},
{"vkDebugMarkerSetObjectTagEXT", {"VK_EXT_debug_marker"}},
{"vkDebugMarkerSetObjectNameEXT", {"VK_EXT_debug_marker"}},
{"vkCmdDebugMarkerBeginEXT", {"VK_EXT_debug_marker"}},
{"vkCmdDebugMarkerEndEXT", {"VK_EXT_debug_marker"}},
{"vkCmdDebugMarkerInsertEXT", {"VK_EXT_debug_marker"}},
{"vkCmdBindTransformFeedbackBuffersEXT", {"VK_EXT_transform_feedback"}},
{"vkCmdBeginTransformFeedbackEXT", {"VK_EXT_transform_feedback"}},
{"vkCmdEndTransformFeedbackEXT", {"VK_EXT_transform_feedback"}},
{"vkCmdBeginQueryIndexedEXT", {"VK_EXT_transform_feedback"}},
{"vkCmdEndQueryIndexedEXT", {"VK_EXT_transform_feedback"}},
{"vkCmdDrawIndirectByteCountEXT", {"VK_EXT_transform_feedback"}},
{"vkCreateCuModuleNVX", {"VK_NVX_binary_import"}},
{"vkCreateCuFunctionNVX", {"VK_NVX_binary_import"}},
{"vkDestroyCuModuleNVX", {"VK_NVX_binary_import"}},
{"vkDestroyCuFunctionNVX", {"VK_NVX_binary_import"}},
{"vkCmdCuLaunchKernelNVX", {"VK_NVX_binary_import"}},
{"vkGetImageViewHandleNVX", {"VK_NVX_image_view_handle"}},
{"vkGetImageViewAddressNVX", {"VK_NVX_image_view_handle"}},
{"vkCmdDrawIndirectCountAMD", {"VK_AMD_draw_indirect_count"}},
{"vkCmdDrawIndexedIndirectCountAMD", {"VK_AMD_draw_indirect_count"}},
{"vkGetShaderInfoAMD", {"VK_AMD_shader_info"}},
{"vkGetMemoryWin32HandleNV", {"VK_NV_external_memory_win32"}},
{"vkCmdBeginConditionalRenderingEXT", {"VK_EXT_conditional_rendering"}},
{"vkCmdEndConditionalRenderingEXT", {"VK_EXT_conditional_rendering"}},
{"vkCmdSetViewportWScalingNV", {"VK_NV_clip_space_w_scaling"}},
{"vkDisplayPowerControlEXT", {"VK_EXT_display_control"}},
{"vkRegisterDeviceEventEXT", {"VK_EXT_display_control"}},
{"vkRegisterDisplayEventEXT", {"VK_EXT_display_control"}},
{"vkGetSwapchainCounterEXT", {"VK_EXT_display_control"}},
{"vkGetRefreshCycleDurationGOOGLE", {"VK_GOOGLE_display_timing"}},
{"vkGetPastPresentationTimingGOOGLE", {"VK_GOOGLE_display_timing"}},
{"vkCmdSetDiscardRectangleEXT", {"VK_EXT_discard_rectangles"}},
{"vkCmdSetDiscardRectangleEnableEXT", {"VK_EXT_discard_rectangles"}},
{"vkCmdSetDiscardRectangleModeEXT", {"VK_EXT_discard_rectangles"}},
{"vkSetHdrMetadataEXT", {"VK_EXT_hdr_metadata"}},
{"vkSetDebugUtilsObjectNameEXT", {"VK_EXT_debug_utils"}},
{"vkSetDebugUtilsObjectTagEXT", {"VK_EXT_debug_utils"}},
{"vkQueueBeginDebugUtilsLabelEXT", {"VK_EXT_debug_utils"}},
{"vkQueueEndDebugUtilsLabelEXT", {"VK_EXT_debug_utils"}},
{"vkQueueInsertDebugUtilsLabelEXT", {"VK_EXT_debug_utils"}},
{"vkCmdBeginDebugUtilsLabelEXT", {"VK_EXT_debug_utils"}},
{"vkCmdEndDebugUtilsLabelEXT", {"VK_EXT_debug_utils"}},
{"vkCmdInsertDebugUtilsLabelEXT", {"VK_EXT_debug_utils"}},
{"vkGetAndroidHardwareBufferPropertiesANDROID", {"VK_ANDROID_external_memory_android_hardware_buffer"}},
{"vkGetMemoryAndroidHardwareBufferANDROID", {"VK_ANDROID_external_memory_android_hardware_buffer"}},
{"vkCreateExecutionGraphPipelinesAMDX", {"VK_AMDX_shader_enqueue"}},
{"vkGetExecutionGraphPipelineScratchSizeAMDX", {"VK_AMDX_shader_enqueue"}},
{"vkGetExecutionGraphPipelineNodeIndexAMDX", {"VK_AMDX_shader_enqueue"}},
{"vkCmdInitializeGraphScratchMemoryAMDX", {"VK_AMDX_shader_enqueue"}},
{"vkCmdDispatchGraphAMDX", {"VK_AMDX_shader_enqueue"}},
{"vkCmdDispatchGraphIndirectAMDX", {"VK_AMDX_shader_enqueue"}},
{"vkCmdDispatchGraphIndirectCountAMDX", {"VK_AMDX_shader_enqueue"}},
{"vkCmdSetSampleLocationsEXT", {"VK_EXT_sample_locations"}},
{"vkGetImageDrmFormatModifierPropertiesEXT", {"VK_EXT_image_drm_format_modifier"}},
{"vkCreateValidationCacheEXT", {"VK_EXT_validation_cache"}},
{"vkDestroyValidationCacheEXT", {"VK_EXT_validation_cache"}},
{"vkMergeValidationCachesEXT", {"VK_EXT_validation_cache"}},
{"vkGetValidationCacheDataEXT", {"VK_EXT_validation_cache"}},
{"vkCmdBindShadingRateImageNV", {"VK_NV_shading_rate_image"}},
{"vkCmdSetViewportShadingRatePaletteNV", {"VK_NV_shading_rate_image"}},
{"vkCmdSetCoarseSampleOrderNV", {"VK_NV_shading_rate_image"}},
{"vkCreateAccelerationStructureNV", {"VK_NV_ray_tracing"}},
{"vkDestroyAccelerationStructureNV", {"VK_NV_ray_tracing"}},
{"vkGetAccelerationStructureMemoryRequirementsNV", {"VK_NV_ray_tracing"}},
{"vkBindAccelerationStructureMemoryNV", {"VK_NV_ray_tracing"}},
{"vkCmdBuildAccelerationStructureNV", {"VK_NV_ray_tracing"}},
{"vkCmdCopyAccelerationStructureNV", {"VK_NV_ray_tracing"}},
{"vkCmdTraceRaysNV", {"VK_NV_ray_tracing"}},
{"vkCreateRayTracingPipelinesNV", {"VK_NV_ray_tracing"}},
{"vkGetRayTracingShaderGroupHandlesKHR", {"VK_KHR_ray_tracing_pipeline"}},
{"vkGetRayTracingShaderGroupHandlesNV", {"VK_NV_ray_tracing"}},
{"vkGetAccelerationStructureHandleNV", {"VK_NV_ray_tracing"}},
{"vkCmdWriteAccelerationStructuresPropertiesNV", {"VK_NV_ray_tracing"}},
{"vkCompileDeferredNV", {"VK_NV_ray_tracing"}},
{"vkGetMemoryHostPointerPropertiesEXT", {"VK_EXT_external_memory_host"}},
{"vkCmdWriteBufferMarkerAMD", {"VK_AMD_buffer_marker"}},
{"vkGetCalibratedTimestampsEXT", {"VK_EXT_calibrated_timestamps"}},
{"vkCmdDrawMeshTasksNV", {"VK_NV_mesh_shader"}},
{"vkCmdDrawMeshTasksIndirectNV", {"VK_NV_mesh_shader"}},
{"vkCmdDrawMeshTasksIndirectCountNV", {"VK_NV_mesh_shader"}},
{"vkCmdSetExclusiveScissorEnableNV", {"VK_NV_scissor_exclusive"}},
{"vkCmdSetExclusiveScissorNV", {"VK_NV_scissor_exclusive"}},
{"vkCmdSetCheckpointNV", {"VK_NV_device_diagnostic_checkpoints"}},
{"vkGetQueueCheckpointDataNV", {"VK_NV_device_diagnostic_checkpoints"}},
{"vkInitializePerformanceApiINTEL", {"VK_INTEL_performance_query"}},
{"vkUninitializePerformanceApiINTEL", {"VK_INTEL_performance_query"}},
{"vkCmdSetPerformanceMarkerINTEL", {"VK_INTEL_performance_query"}},
{"vkCmdSetPerformanceStreamMarkerINTEL", {"VK_INTEL_performance_query"}},
{"vkCmdSetPerformanceOverrideINTEL", {"VK_INTEL_performance_query"}},
{"vkAcquirePerformanceConfigurationINTEL", {"VK_INTEL_performance_query"}},
{"vkReleasePerformanceConfigurationINTEL", {"VK_INTEL_performance_query"}},
{"vkQueueSetPerformanceConfigurationINTEL", {"VK_INTEL_performance_query"}},
{"vkGetPerformanceParameterINTEL", {"VK_INTEL_performance_query"}},
{"vkSetLocalDimmingAMD", {"VK_AMD_display_native_hdr"}},
{"vkGetBufferDeviceAddressEXT", {"VK_EXT_buffer_device_address"}},
{"vkAcquireFullScreenExclusiveModeEXT", {"VK_EXT_full_screen_exclusive"}},
{"vkReleaseFullScreenExclusiveModeEXT", {"VK_EXT_full_screen_exclusive"}},
{"vkGetDeviceGroupSurfacePresentModes2EXT", {"VK_EXT_full_screen_exclusive"}},
{"vkCmdSetLineStippleEXT", {"VK_EXT_line_rasterization"}},
{"vkResetQueryPoolEXT", {"VK_EXT_host_query_reset"}},
{"vkCmdSetCullModeEXT", {"VK_EXT_extended_dynamic_state", "VK_EXT_shader_object"}},
{"vkCmdSetFrontFaceEXT", {"VK_EXT_extended_dynamic_state", "VK_EXT_shader_object"}},
{"vkCmdSetPrimitiveTopologyEXT", {"VK_EXT_extended_dynamic_state", "VK_EXT_shader_object"}},
{"vkCmdSetViewportWithCountEXT", {"VK_EXT_extended_dynamic_state", "VK_EXT_shader_object"}},
{"vkCmdSetScissorWithCountEXT", {"VK_EXT_extended_dynamic_state", "VK_EXT_shader_object"}},
{"vkCmdBindVertexBuffers2EXT", {"VK_EXT_extended_dynamic_state", "VK_EXT_shader_object"}},
{"vkCmdSetDepthTestEnableEXT", {"VK_EXT_extended_dynamic_state", "VK_EXT_shader_object"}},
{"vkCmdSetDepthWriteEnableEXT", {"VK_EXT_extended_dynamic_state", "VK_EXT_shader_object"}},
{"vkCmdSetDepthCompareOpEXT", {"VK_EXT_extended_dynamic_state", "VK_EXT_shader_object"}},
{"vkCmdSetDepthBoundsTestEnableEXT", {"VK_EXT_extended_dynamic_state", "VK_EXT_shader_object"}},
{"vkCmdSetStencilTestEnableEXT", {"VK_EXT_extended_dynamic_state", "VK_EXT_shader_object"}},
{"vkCmdSetStencilOpEXT", {"VK_EXT_extended_dynamic_state", "VK_EXT_shader_object"}},
{"vkCopyMemoryToImageEXT", {"VK_EXT_host_image_copy"}},
{"vkCopyImageToMemoryEXT", {"VK_EXT_host_image_copy"}},
{"vkCopyImageToImageEXT", {"VK_EXT_host_image_copy"}},
{"vkTransitionImageLayoutEXT", {"VK_EXT_host_image_copy"}},
{"vkGetImageSubresourceLayout2EXT", {"VK_EXT_host_image_copy", "VK_EXT_image_compression_control"}},
{"vkReleaseSwapchainImagesEXT", {"VK_EXT_swapchain_maintenance1"}},
{"vkGetGeneratedCommandsMemoryRequirementsNV", {"VK_NV_device_generated_commands"}},
{"vkCmdPreprocessGeneratedCommandsNV", {"VK_NV_device_generated_commands"}},
{"vkCmdExecuteGeneratedCommandsNV", {"VK_NV_device_generated_commands"}},
{"vkCmdBindPipelineShaderGroupNV", {"VK_NV_device_generated_commands"}},
{"vkCreateIndirectCommandsLayoutNV", {"VK_NV_device_generated_commands"}},
{"vkDestroyIndirectCommandsLayoutNV", {"VK_NV_device_generated_commands"}},
{"vkCmdSetDepthBias2EXT", {"VK_EXT_depth_bias_control"}},
{"vkCreatePrivateDataSlotEXT", {"VK_EXT_private_data"}},
{"vkDestroyPrivateDataSlotEXT", {"VK_EXT_private_data"}},
{"vkSetPrivateDataEXT", {"VK_EXT_private_data"}},
{"vkGetPrivateDataEXT", {"VK_EXT_private_data"}},
{"vkExportMetalObjectsEXT", {"VK_EXT_metal_objects"}},
{"vkGetDescriptorSetLayoutSizeEXT", {"VK_EXT_descriptor_buffer"}},
{"vkGetDescriptorSetLayoutBindingOffsetEXT", {"VK_EXT_descriptor_buffer"}},
{"vkGetDescriptorEXT", {"VK_EXT_descriptor_buffer"}},
{"vkCmdBindDescriptorBuffersEXT", {"VK_EXT_descriptor_buffer"}},
{"vkCmdSetDescriptorBufferOffsetsEXT", {"VK_EXT_descriptor_buffer"}},
{"vkCmdBindDescriptorBufferEmbeddedSamplersEXT", {"VK_EXT_descriptor_buffer"}},
{"vkGetBufferOpaqueCaptureDescriptorDataEXT", {"VK_EXT_descriptor_buffer"}},
{"vkGetImageOpaqueCaptureDescriptorDataEXT", {"VK_EXT_descriptor_buffer"}},
{"vkGetImageViewOpaqueCaptureDescriptorDataEXT", {"VK_EXT_descriptor_buffer"}},
{"vkGetSamplerOpaqueCaptureDescriptorDataEXT", {"VK_EXT_descriptor_buffer"}},
{"vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT", {"VK_EXT_descriptor_buffer"}},
{"vkCmdSetFragmentShadingRateEnumNV", {"VK_NV_fragment_shading_rate_enums"}},
{"vkGetDeviceFaultInfoEXT", {"VK_EXT_device_fault"}},
{"vkCmdSetVertexInputEXT", {"VK_EXT_vertex_input_dynamic_state", "VK_EXT_shader_object"}},
{"vkGetMemoryZirconHandleFUCHSIA", {"VK_FUCHSIA_external_memory"}},
{"vkGetMemoryZirconHandlePropertiesFUCHSIA", {"VK_FUCHSIA_external_memory"}},
{"vkImportSemaphoreZirconHandleFUCHSIA", {"VK_FUCHSIA_external_semaphore"}},
{"vkGetSemaphoreZirconHandleFUCHSIA", {"VK_FUCHSIA_external_semaphore"}},
{"vkCreateBufferCollectionFUCHSIA", {"VK_FUCHSIA_buffer_collection"}},
{"vkSetBufferCollectionImageConstraintsFUCHSIA", {"VK_FUCHSIA_buffer_collection"}},
{"vkSetBufferCollectionBufferConstraintsFUCHSIA", {"VK_FUCHSIA_buffer_collection"}},
{"vkDestroyBufferCollectionFUCHSIA", {"VK_FUCHSIA_buffer_collection"}},
{"vkGetBufferCollectionPropertiesFUCHSIA", {"VK_FUCHSIA_buffer_collection"}},
{"vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI", {"VK_HUAWEI_subpass_shading"}},
{"vkCmdSubpassShadingHUAWEI", {"VK_HUAWEI_subpass_shading"}},
{"vkCmdBindInvocationMaskHUAWEI", {"VK_HUAWEI_invocation_mask"}},
{"vkGetMemoryRemoteAddressNV", {"VK_NV_external_memory_rdma"}},
{"vkGetPipelinePropertiesEXT", {"VK_EXT_pipeline_properties"}},
{"vkCmdSetPatchControlPointsEXT", {"VK_EXT_extended_dynamic_state2", "VK_EXT_shader_object"}},
{"vkCmdSetRasterizerDiscardEnableEXT", {"VK_EXT_extended_dynamic_state2", "VK_EXT_shader_object"}},
{"vkCmdSetDepthBiasEnableEXT", {"VK_EXT_extended_dynamic_state2", "VK_EXT_shader_object"}},
{"vkCmdSetLogicOpEXT", {"VK_EXT_extended_dynamic_state2", "VK_EXT_shader_object"}},
{"vkCmdSetPrimitiveRestartEnableEXT", {"VK_EXT_extended_dynamic_state2", "VK_EXT_shader_object"}},
{"vkCmdSetColorWriteEnableEXT", {"VK_EXT_color_write_enable"}},
{"vkCmdDrawMultiEXT", {"VK_EXT_multi_draw"}},
{"vkCmdDrawMultiIndexedEXT", {"VK_EXT_multi_draw"}},
{"vkCreateMicromapEXT", {"VK_EXT_opacity_micromap"}},
{"vkDestroyMicromapEXT", {"VK_EXT_opacity_micromap"}},
{"vkCmdBuildMicromapsEXT", {"VK_EXT_opacity_micromap"}},
{"vkBuildMicromapsEXT", {"VK_EXT_opacity_micromap"}},
{"vkCopyMicromapEXT", {"VK_EXT_opacity_micromap"}},
{"vkCopyMicromapToMemoryEXT", {"VK_EXT_opacity_micromap"}},
{"vkCopyMemoryToMicromapEXT", {"VK_EXT_opacity_micromap"}},
{"vkWriteMicromapsPropertiesEXT", {"VK_EXT_opacity_micromap"}},
{"vkCmdCopyMicromapEXT", {"VK_EXT_opacity_micromap"}},
{"vkCmdCopyMicromapToMemoryEXT", {"VK_EXT_opacity_micromap"}},
{"vkCmdCopyMemoryToMicromapEXT", {"VK_EXT_opacity_micromap"}},
{"vkCmdWriteMicromapsPropertiesEXT", {"VK_EXT_opacity_micromap"}},
{"vkGetDeviceMicromapCompatibilityEXT", {"VK_EXT_opacity_micromap"}},
{"vkGetMicromapBuildSizesEXT", {"VK_EXT_opacity_micromap"}},
{"vkCmdDrawClusterHUAWEI", {"VK_HUAWEI_cluster_culling_shader"}},
{"vkCmdDrawClusterIndirectHUAWEI", {"VK_HUAWEI_cluster_culling_shader"}},
{"vkSetDeviceMemoryPriorityEXT", {"VK_EXT_pageable_device_local_memory"}},
{"vkGetDescriptorSetLayoutHostMappingInfoVALVE", {"VK_VALVE_descriptor_set_host_mapping"}},
{"vkGetDescriptorSetHostMappingVALVE", {"VK_VALVE_descriptor_set_host_mapping"}},
{"vkCmdCopyMemoryIndirectNV", {"VK_NV_copy_memory_indirect"}},
{"vkCmdCopyMemoryToImageIndirectNV", {"VK_NV_copy_memory_indirect"}},
{"vkCmdDecompressMemoryNV", {"VK_NV_memory_decompression"}},
{"vkCmdDecompressMemoryIndirectCountNV", {"VK_NV_memory_decompression"}},
{"vkGetPipelineIndirectMemoryRequirementsNV", {"VK_NV_device_generated_commands_compute"}},
{"vkCmdUpdatePipelineIndirectBufferNV", {"VK_NV_device_generated_commands_compute"}},
{"vkGetPipelineIndirectDeviceAddressNV", {"VK_NV_device_generated_commands_compute"}},
{"vkCmdSetTessellationDomainOriginEXT", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetDepthClampEnableEXT", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetPolygonModeEXT", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetRasterizationSamplesEXT", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetSampleMaskEXT", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetAlphaToCoverageEnableEXT", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetAlphaToOneEnableEXT", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetLogicOpEnableEXT", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetColorBlendEnableEXT", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetColorBlendEquationEXT", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetColorWriteMaskEXT", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetRasterizationStreamEXT", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetConservativeRasterizationModeEXT", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetExtraPrimitiveOverestimationSizeEXT", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetDepthClipEnableEXT", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetSampleLocationsEnableEXT", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetColorBlendAdvancedEXT", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetProvokingVertexModeEXT", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetLineRasterizationModeEXT", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetLineStippleEnableEXT", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetDepthClipNegativeOneToOneEXT", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetViewportWScalingEnableNV", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetViewportSwizzleNV", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetCoverageToColorEnableNV", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetCoverageToColorLocationNV", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetCoverageModulationModeNV", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetCoverageModulationTableEnableNV", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetCoverageModulationTableNV", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetShadingRateImageEnableNV", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetRepresentativeFragmentTestEnableNV", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkCmdSetCoverageReductionModeNV", {"VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object"}},
{"vkGetShaderModuleIdentifierEXT", {"VK_EXT_shader_module_identifier"}},
{"vkGetShaderModuleCreateInfoIdentifierEXT", {"VK_EXT_shader_module_identifier"}},
{"vkCreateOpticalFlowSessionNV", {"VK_NV_optical_flow"}},
{"vkDestroyOpticalFlowSessionNV", {"VK_NV_optical_flow"}},
{"vkBindOpticalFlowSessionImageNV", {"VK_NV_optical_flow"}},
{"vkCmdOpticalFlowExecuteNV", {"VK_NV_optical_flow"}},
{"vkCreateShadersEXT", {"VK_EXT_shader_object"}},
{"vkDestroyShaderEXT", {"VK_EXT_shader_object"}},
{"vkGetShaderBinaryDataEXT", {"VK_EXT_shader_object"}},
{"vkCmdBindShadersEXT", {"VK_EXT_shader_object"}},
{"vkGetFramebufferTilePropertiesQCOM", {"VK_QCOM_tile_properties"}},
{"vkGetDynamicRenderingTilePropertiesQCOM", {"VK_QCOM_tile_properties"}},
{"vkSetLatencySleepModeNV", {"VK_NV_low_latency2"}},
{"vkLatencySleepNV", {"VK_NV_low_latency2"}},
{"vkSetLatencyMarkerNV", {"VK_NV_low_latency2"}},
{"vkGetLatencyTimingsNV", {"VK_NV_low_latency2"}},
{"vkQueueNotifyOutOfBandNV", {"VK_NV_low_latency2"}},
{"vkCmdSetAttachmentFeedbackLoopEnableEXT", {"VK_EXT_attachment_feedback_loop_dynamic_state"}},
{"vkGetScreenBufferPropertiesQNX", {"VK_QNX_external_memory_screen_buffer"}},
{"vkCreateAccelerationStructureKHR", {"VK_KHR_acceleration_structure"}},
{"vkDestroyAccelerationStructureKHR", {"VK_KHR_acceleration_structure"}},
{"vkCmdBuildAccelerationStructuresKHR", {"VK_KHR_acceleration_structure"}},
{"vkCmdBuildAccelerationStructuresIndirectKHR", {"VK_KHR_acceleration_structure"}},
{"vkBuildAccelerationStructuresKHR", {"VK_KHR_acceleration_structure"}},
{"vkCopyAccelerationStructureKHR", {"VK_KHR_acceleration_structure"}},
{"vkCopyAccelerationStructureToMemoryKHR", {"VK_KHR_acceleration_structure"}},
{"vkCopyMemoryToAccelerationStructureKHR", {"VK_KHR_acceleration_structure"}},
{"vkWriteAccelerationStructuresPropertiesKHR", {"VK_KHR_acceleration_structure"}},
{"vkCmdCopyAccelerationStructureKHR", {"VK_KHR_acceleration_structure"}},
{"vkCmdCopyAccelerationStructureToMemoryKHR", {"VK_KHR_acceleration_structure"}},
{"vkCmdCopyMemoryToAccelerationStructureKHR", {"VK_KHR_acceleration_structure"}},
{"vkGetAccelerationStructureDeviceAddressKHR", {"VK_KHR_acceleration_structure"}},
{"vkCmdWriteAccelerationStructuresPropertiesKHR", {"VK_KHR_acceleration_structure"}},
{"vkGetDeviceAccelerationStructureCompatibilityKHR", {"VK_KHR_acceleration_structure"}},
{"vkGetAccelerationStructureBuildSizesKHR", {"VK_KHR_acceleration_structure"}},
{"vkCmdTraceRaysKHR", {"VK_KHR_ray_tracing_pipeline"}},
{"vkCreateRayTracingPipelinesKHR", {"VK_KHR_ray_tracing_pipeline"}},
{"vkGetRayTracingCaptureReplayShaderGroupHandlesKHR", {"VK_KHR_ray_tracing_pipeline"}},
{"vkCmdTraceRaysIndirectKHR", {"VK_KHR_ray_tracing_pipeline"}},
{"vkGetRayTracingShaderGroupStackSizeKHR", {"VK_KHR_ray_tracing_pipeline"}},
{"vkCmdSetRayTracingPipelineStackSizeKHR", {"VK_KHR_ray_tracing_pipeline"}},
{"vkCmdDrawMeshTasksEXT", {"VK_EXT_mesh_shader"}},
{"vkCmdDrawMeshTasksIndirectEXT", {"VK_EXT_mesh_shader"}},
{"vkCmdDrawMeshTasksIndirectCountEXT", {"VK_EXT_mesh_shader"}},
};
// Using the above code-generated map of APINames-to-parent extension names, this function will:
// o Determine if the API has an associated extension
// o If it does, determine if that extension name is present in the passed-in set of device or instance enabled_ext_names
// If the APIname has no parent extension, OR its parent extension name is IN one of the sets, return TRUE, else FALSE
bool ApiParentExtensionEnabled(const std::string api_name, const DeviceExtensions* device_extension_info) {
auto has_ext = api_extension_map.find(api_name);
// Is this API part of an extension or feature group?
if (has_ext != api_extension_map.end()) {
// Was the extension for this API enabled in the CreateDevice call?
for (const auto& ext : has_ext->second) {
auto info = device_extension_info->get_info(ext.c_str());
if (info.state) {
if (device_extension_info->*(info.state) == kEnabledByCreateinfo ||
device_extension_info->*(info.state) == kEnabledByInteraction) {
return true;
}
}
}
// Was the extension for this API enabled in the CreateInstance call?
auto instance_extension_info = static_cast<const InstanceExtensions*>(device_extension_info);
for (const auto& ext : has_ext->second) {
auto inst_info = instance_extension_info->get_info(ext.c_str());
if (inst_info.state) {
if (instance_extension_info->*(inst_info.state) == kEnabledByCreateinfo ||
instance_extension_info->*(inst_info.state) == kEnabledByInteraction) {
return true;
}
}
}
return false;
}
return true;
}