| #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; |
| } |