vulkan: offscreens are used as color attachments
authorBenjamin Otte <otte@redhat.com>
Tue, 9 May 2023 20:25:22 +0000 (22:25 +0200)
committerBenjamin Otte <otte@redhat.com>
Sun, 4 Jun 2023 17:42:00 +0000 (19:42 +0200)
... so set the corresponding flag.

Also name the function "new_for_offscreen()" because thats what this
function is about, "texture" is ambiguous.

gsk/vulkan/gskvulkanimage.c
gsk/vulkan/gskvulkanimageprivate.h
gsk/vulkan/gskvulkanrenderpass.c

index 075e2501f40c8d3d344821d2d52710f7d98bfa44..b6b44ecc8c60a7ce9dafa408dfa7712639d8b4ce 100644 (file)
@@ -606,9 +606,9 @@ gsk_vulkan_image_new_for_atlas (GdkVulkanContext *context,
 }
 
 GskVulkanImage *
-gsk_vulkan_image_new_for_texture (GdkVulkanContext *context,
-                                  gsize             width,
-                                  gsize             height)
+gsk_vulkan_image_new_for_offscreen (GdkVulkanContext *context,
+                                    gsize             width,
+                                    gsize             height)
 {
   GskVulkanImage *self;
 
@@ -620,7 +620,7 @@ gsk_vulkan_image_new_for_texture (GdkVulkanContext *context,
                                VK_IMAGE_USAGE_SAMPLED_BIT |
                                VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
                                VK_IMAGE_LAYOUT_UNDEFINED,
-                               0,
+                               VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
                                VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT);
 
   gsk_vulkan_image_ensure_view (self, VK_FORMAT_B8G8R8A8_UNORM);
index fe82d749223fbe78da3c1aedcb42058745bc5d12..25c7cb36505880df4e14a8960dab4a652e668588 100644 (file)
@@ -49,7 +49,7 @@ GskVulkanImage *        gsk_vulkan_image_new_for_framebuffer            (GdkVulk
 GskVulkanImage *        gsk_vulkan_image_new_for_atlas                  (GdkVulkanContext       *context,
                                                                          gsize                   width,
                                                                          gsize                   height);
-GskVulkanImage *        gsk_vulkan_image_new_for_texture                (GdkVulkanContext       *context,
+GskVulkanImage *        gsk_vulkan_image_new_for_offscreen              (GdkVulkanContext       *context,
                                                                          gsize                   width,
                                                                          gsize                   height);
 
index 78c3911560e457d1584f8ad997b84a845b1b9ebc..5dc52f85ee90209e2617f32c53aa4ca21662180a 100644 (file)
@@ -1058,9 +1058,9 @@ gsk_vulkan_render_pass_get_node_as_texture (GskVulkanRenderPass   *self,
         view.size.width = ceil (view.size.width);
         view.size.height = ceil (view.size.height);
 
-        result = gsk_vulkan_image_new_for_texture (self->vulkan,
-                                                   view.size.width,
-                                                   view.size.height);
+        result = gsk_vulkan_image_new_for_offscreen (self->vulkan,
+                                                     view.size.width,
+                                                     view.size.height);
 
 #ifdef G_ENABLE_DEBUG
         {