From: Georges Basile Stavracas Neto Date: Fri, 14 Apr 2023 19:27:42 +0000 (-0300) Subject: gsk/vulkan/render: Download image before reset X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~1^2~405^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=94b1a7837848e25f6e58af5e57bff71c6bcc2296;p=gtk4.git gsk/vulkan/render: Download image before reset gsk_vulkan_render_download_target() currently resets the uploader objects before downloading the image that it produces. This is problematic because there might be unreleased buffers and images in the command queue. In particular, this can make validation layers complain about the glyph atlas - of all things! - upload buffer being released while still being used by the command queue. Fix that by resetting the uploader after downloading the image. --- diff --git a/gsk/vulkan/gskvulkanrender.c b/gsk/vulkan/gskvulkanrender.c index 586678c2e4..20ee28a218 100644 --- a/gsk/vulkan/gskvulkanrender.c +++ b/gsk/vulkan/gskvulkanrender.c @@ -647,9 +647,12 @@ gsk_vulkan_render_draw (GskVulkanRender *self) GdkTexture * gsk_vulkan_render_download_target (GskVulkanRender *self) { + GdkTexture *texture; + + texture = gsk_vulkan_image_download (self->target, self->uploader); gsk_vulkan_uploader_reset (self->uploader); - return gsk_vulkan_image_download (self->target, self->uploader); + return texture; } static void