From 3f273eb01bb0bfcd04282c81a125df0d46a9b0af Mon Sep 17 00:00:00 2001 From: Yiwei Zhang Date: Tue, 1 Jul 2025 18:50:01 -0700 Subject: [PATCH] hk: adopt wsi_common_get_memory Acked-by: Alyssa Rosenzweig Part-of: --- src/asahi/vulkan/hk_image.c | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/src/asahi/vulkan/hk_image.c b/src/asahi/vulkan/hk_image.c index 556fef37a72..04b78884b25 100644 --- a/src/asahi/vulkan/hk_image.c +++ b/src/asahi/vulkan/hk_image.c @@ -1360,28 +1360,17 @@ hk_BindImageMemory2(VkDevice device, uint32_t bindInfoCount, /* Ignore this struct on Android, we cannot access swapchain structures * there. */ #ifdef HK_USE_WSI_PLATFORM - const VkBindImageMemorySwapchainInfoKHR *swapchain_info = - vk_find_struct_const(pBindInfos[i].pNext, - BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR); - - if (swapchain_info && swapchain_info->swapchain != VK_NULL_HANDLE) { - VkImage _wsi_image = wsi_common_get_image(swapchain_info->swapchain, - swapchain_info->imageIndex); - VK_FROM_HANDLE(hk_image, wsi_img, _wsi_image); - - assert(image->plane_count == 1); - assert(wsi_img->plane_count == 1); - - struct hk_image_plane *plane = &image->planes[0]; - struct hk_image_plane *swapchain_plane = &wsi_img->planes[0]; - - /* Copy memory binding information from swapchain image to the current - * image's plane. */ - plane->addr = swapchain_plane->addr; - continue; + if (!mem) { + const VkBindImageMemorySwapchainInfoKHR *swapchain_info = + vk_find_struct_const(pBindInfos[i].pNext, + BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR); + assert(swapchain_info && swapchain_info->swapchain != VK_NULL_HANDLE); + mem = hk_device_memory_from_handle(wsi_common_get_memory( + swapchain_info->swapchain, swapchain_info->imageIndex)); } #endif + assert(mem); uint64_t offset_B = pBindInfos[i].memoryOffset; if (image->disjoint) { const VkBindImagePlaneMemoryInfo *plane_info = vk_find_struct_const(