diff --git a/layer/layer.cpp b/layer/layer.cpp index 3b59760..4878a11 100644 --- a/layer/layer.cpp +++ b/layer/layer.cpp @@ -523,6 +523,7 @@ wsi_layer_vkGetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice, VWL_VKAPI_CALL(PFN_vkVoidFunction) wsi_layer_vkGetDeviceProcAddr(VkDevice device, const char *funcName) VWL_API_POST { + uint64_t api_version = layer::device_private_data::get(device).instance_data.api_version; if (layer::device_private_data::get(device).is_device_extension_enabled(VK_KHR_SWAPCHAIN_EXTENSION_NAME)) { GET_PROC_ADDR(vkCreateSwapchainKHR); @@ -553,6 +554,13 @@ wsi_layer_vkGetDeviceProcAddr(VkDevice device, const char *funcName) VWL_API_POS GET_PROC_ADDR(vkCreateImage); GET_PROC_ADDR(vkBindImageMemory2); + if (!strcmp(funcName, "vkBindImageMemory2KHR") && + layer::device_private_data::get(device).disp.get_user_enabled_entrypoint(device, api_version, funcName) != + nullptr) + { + return (PFN_vkVoidFunction)&wsi_layer_vkBindImageMemory2; + } + /* VK_EXT_swapchain_maintenance1 */ if (layer::device_private_data::get(device).is_device_extension_enabled( VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME)) diff --git a/wsi/wsi_factory.cpp b/wsi/wsi_factory.cpp index fb7ec43..8fdc93b 100644 --- a/wsi/wsi_factory.cpp +++ b/wsi/wsi_factory.cpp @@ -171,6 +171,7 @@ VkResult add_device_extensions_required_by_layer(VkPhysicalDevice phys_dev, #if ENABLE_INSTRUMENTATION VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME, #endif + VK_KHR_BIND_MEMORY_2_EXTENSION_NAME, }; for (auto extension : optional_extensions)