Pārlūkot izejas kodu

vulkan/wsi: Destroy swapchain images after terminating FIFO queues

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@lists.freedesktop.org>
Fixes: e73d136a02 ("vulkan/wsi/x11: Implement FIFO mode.")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
tags/18.2-branchpoint
Cameron Kumar pirms 7 gadiem
vecāks
revīzija
cb03803253
1 mainītis faili ar 3 papildinājumiem un 3 dzēšanām
  1. 3
    3
      src/vulkan/wsi/wsi_common_x11.c

+ 3
- 3
src/vulkan/wsi/wsi_common_x11.c Parādīt failu

@@ -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,

Notiek ielāde…
Atcelt
Saglabāt