vulkan/wsi/wayland: create swapchain using vk_zalloc()
authorLeandro Ribeiro <leandro.ribeiro@collabora.com>
Tue, 6 Jul 2021 19:00:12 +0000 (16:00 -0300)
committerMarge Bot <eric+marge@anholt.net>
Fri, 20 Aug 2021 18:51:36 +0000 (18:51 +0000)
In wsi_wl_surface_create_swapchain() we have a piece of code to init
some members of the chain to 0, in order to allow us to call
wsi_wl_swapchain_destroy() for cleanup.

Instead, we can use vk_zalloc() to allocate the chain, as it initializes
all members of the struct to zero. This help us to avoid problems when
people add new members to the struct and forget to initialize them.
Also, it makes the code look better.

Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12451>

src/vulkan/wsi/wsi_common_wayland.c

index 4ad33e46941068785e1d15a455142b0473054484..97dd7eec4bf272933bc72402bf3f4730d0731b87 100644 (file)
@@ -1132,8 +1132,7 @@ wsi_wl_surface_create_swapchain(VkIcdSurfaceBase *icd_surface,
    int num_images = pCreateInfo->minImageCount;
 
    size_t size = sizeof(*chain) + num_images * sizeof(chain->images[0]);
-   chain = vk_alloc(pAllocator, size, 8,
-                      VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
+   chain = vk_zalloc(pAllocator, size, 8, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
    if (chain == NULL)
       return VK_ERROR_OUT_OF_HOST_MEMORY;
 
@@ -1144,16 +1143,6 @@ wsi_wl_surface_create_swapchain(VkIcdSurfaceBase *icd_surface,
       return result;
    }
 
-   /* Mark a bunch of stuff as NULL.  This way we can just call
-    * destroy_swapchain for cleanup.
-    */
-   for (uint32_t i = 0; i < num_images; i++) {
-      chain->images[i].buffer = NULL;
-      chain->images[i].data_ptr = NULL;
-   }
-   chain->surface = NULL;
-   chain->frame = NULL;
-
    bool alpha = pCreateInfo->compositeAlpha ==
                       VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR;