[Mesa-dev] [PATCH 1/1] vulkan/wsi: Destroy swapchain images after terminating FIFO queues

Lionel Landwerlin lionel.g.landwerlin at intel.com
Fri Jun 8 09:38:08 UTC 2018


Sorry for missing that.

Fixes: e73d136a023080 ("vulkan/wsi/x11: Implement FIFO mode.")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>

On 01/06/18 12:16, Cameron Kumar wrote:
> The queue_manager thread can access the images from x11_present_to_x11,
> hence this reorder prevents dereferencing of dangling pointers.
>
> Cc: "18.1" <mesa-stable at lists.freedesktop.org>
> ---
>   src/vulkan/wsi/wsi_common_x11.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/src/vulkan/wsi/wsi_common_x11.c b/src/vulkan/wsi/wsi_common_x11.c
> index 1bfbc7c300..20d7cf5a2c 100644
> --- a/src/vulkan/wsi/wsi_common_x11.c
> +++ b/src/vulkan/wsi/wsi_common_x11.c
> @@ -1235,9 +1235,6 @@ x11_swapchain_destroy(struct wsi_swapchain *anv_chain,
>      struct x11_swapchain *chain = (struct x11_swapchain *)anv_chain;
>      xcb_void_cookie_t cookie;
>   
> -   for (uint32_t i = 0; i < chain->base.image_count; i++)
> -      x11_image_finish(chain, pAllocator, &chain->images[i]);
> -
>      if (chain->threaded) {
>         chain->status = VK_ERROR_OUT_OF_DATE_KHR;
>         /* Push a UINT32_MAX to wake up the manager */
> @@ -1247,6 +1244,9 @@ x11_swapchain_destroy(struct wsi_swapchain *anv_chain,
>         wsi_queue_destroy(&chain->present_queue);
>      }
>   
> +   for (uint32_t i = 0; i < chain->base.image_count; i++)
> +      x11_image_finish(chain, pAllocator, &chain->images[i]);
> +
>      xcb_unregister_for_special_event(chain->conn, chain->special_event);
>      cookie = xcb_present_select_input_checked(chain->conn, chain->event_id,
>                                                chain->window,




More information about the mesa-dev mailing list