From c27e412ff105324e9493b7bdf7d398676890f4e2 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Wed, 14 Jun 2023 02:14:40 +0200 Subject: [PATCH] vulkan: Use new upload method for texture uploads gsk_vulkan_image_new_from_texture() now uses the direct copy via gdk_texture_downloader_download_into(). --- gsk/vulkan/gskvulkanimage.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/gsk/vulkan/gskvulkanimage.c b/gsk/vulkan/gskvulkanimage.c index 4e5ab9fd7c..5ffaf0fde6 100644 --- a/gsk/vulkan/gskvulkanimage.c +++ b/gsk/vulkan/gskvulkanimage.c @@ -535,17 +535,15 @@ gsk_vulkan_image_new_from_texture (GskVulkanUploader *uploader, { GdkTextureDownloader *downloader; GskVulkanImage *result; - GBytes *bytes; - gsize stride; + GskVulkanImageMap map; downloader = gdk_texture_downloader_new (texture); - bytes = gdk_texture_downloader_download_bytes (downloader, &stride); - result = gsk_vulkan_image_new_from_data (uploader, - g_bytes_get_data (bytes, NULL), - gdk_texture_get_width (texture), - gdk_texture_get_height (texture), - stride); - g_bytes_unref (bytes); + result = gsk_vulkan_image_new_for_upload (uploader, + gdk_texture_get_width (texture), + gdk_texture_get_height (texture)); + gsk_vulkan_image_map_memory (result, uploader, &map); + gdk_texture_downloader_download_into (downloader, map.data, map.stride); + gsk_vulkan_image_unmap_memory (result, uploader, &map); gdk_texture_downloader_free (downloader); return result; } -- 2.30.2