diff --git a/README.md b/README.md index f605511..de8db33 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,7 @@ implements the following extensions: * VK_KHR_present_id2 * VK_KHR_swapchain_mutable_format (For Headless and Wayland only) * VK_KHR_present_wait2 + * VK_KHR_swapchain_maintenance1 ## Building diff --git a/layer/VkLayer_window_system_integration.json b/layer/VkLayer_window_system_integration.json index 788dbaf..b90a8d9 100644 --- a/layer/VkLayer_window_system_integration.json +++ b/layer/VkLayer_window_system_integration.json @@ -47,6 +47,13 @@ "vkReleaseSwapchainImagesEXT" ] }, + { + "name": "VK_KHR_swapchain_maintenance1", + "spec_version": "1", + "entrypoints": [ + "vkReleaseSwapchainImagesKHR" + ] + }, { "name": "VK_EXT_present_timing", "spec_version": "1", diff --git a/layer/layer.cpp b/layer/layer.cpp index 0e5b304..bd4f381 100644 --- a/layer/layer.cpp +++ b/layer/layer.cpp @@ -670,6 +670,15 @@ wsi_layer_vkGetDeviceProcAddr(VkDevice device, const char *funcName) VWL_API_POS GET_PROC_ADDR(vkReleaseSwapchainImagesEXT); } + /* VK_KHR_swapchain_maintenance1 */ + if (device_data.is_device_extension_enabled(VK_KHR_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME)) + { + if (!strcmp(funcName, "vkReleaseSwapchainImagesKHR")) + { + return (PFN_vkVoidFunction)&wsi_layer_vkReleaseSwapchainImagesEXT; + } + } + /* VK_KHR_present_wait */ if (device_data.is_device_extension_enabled(VK_KHR_PRESENT_WAIT_EXTENSION_NAME)) { diff --git a/layer/private_data.hpp b/layer/private_data.hpp index ed845b2..e525e35 100644 --- a/layer/private_data.hpp +++ b/layer/private_data.hpp @@ -469,8 +469,9 @@ private: GetBufferMemoryRequirements2) \ EP(GetImageSparseMemoryRequirements2KHR, VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME, VK_API_VERSION_1_1, \ false, GetImageSparseMemoryRequirements2) \ - /* VK_EXT_swapchain_maintenance1 */ \ - EP(ReleaseSwapchainImagesEXT, VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME, VK_API_VERSION_1_1, false, ) \ + /* VK_KHR_swapchain_maintenance1 */ \ + EP(ReleaseSwapchainImagesEXT, VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME, API_VERSION_MAX, false, \ + ReleaseSwapchainImagesKHR) \ /* VK_EXT_calibrated_timestamps */ \ EP(GetCalibratedTimestampsEXT, VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME, API_VERSION_MAX, false, ) \ /* VK_KHR_calibrated_timestamps */ \ diff --git a/layer/swapchain_maintenance_api.cpp b/layer/swapchain_maintenance_api.cpp index c9aba82..af868dd 100644 --- a/layer/swapchain_maintenance_api.cpp +++ b/layer/swapchain_maintenance_api.cpp @@ -55,4 +55,4 @@ wsi_layer_vkReleaseSwapchainImagesEXT(VkDevice device, const VkReleaseSwapchainI sc->release_images(pReleaseInfo->imageIndexCount, pReleaseInfo->pImageIndices); return VK_SUCCESS; -} \ No newline at end of file +} diff --git a/layer/swapchain_maintenance_api.hpp b/layer/swapchain_maintenance_api.hpp index 0890ad5..858d79d 100644 --- a/layer/swapchain_maintenance_api.hpp +++ b/layer/swapchain_maintenance_api.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Arm Limited. + * Copyright (c) 2024-2025 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -35,4 +35,4 @@ VWL_VKAPI_CALL(VkResult) wsi_layer_vkReleaseSwapchainImagesEXT(VkDevice device, - const VkReleaseSwapchainImagesInfoEXT *pReleaseInfo) VWL_API_POST; \ No newline at end of file + const VkReleaseSwapchainImagesInfoEXT *pReleaseInfo) VWL_API_POST;