vulkan-wsi-layer/wsi
Rosen Zhelev d74a006c7b wsi: Fix swapchain teardown causing hangs
The swapchain teardown waits for pending images incorrectly. The
regression caused the wait to complete before pending images were
processed as well as a hang when all images are acquired by the
application or pending presentation. In this case the swapchain
teardown would hang waiting on the last image presented by a compositor
that would never be released.

Fixing this exposes additional hangs when swapchain images update the
free semaphore after being marked as free. There are also potential
hangs if multiple threads are waiting for all pending images or
acquiring an image at the same time. These issues are addressed by
serializing those actions with a mutex.

Change-Id: I266c93a61333d59823f404ea6ba19fb343f46a13
Signed-off-by: Rosen Zhelev <rosen.zhelev@arm.com>
2021-10-05 17:09:09 +00:00
..
headless Add support for some Vulkan 1.1 structs 2021-09-23 15:35:51 +01:00
wayland Add support for some Vulkan 1.1 structs 2021-09-23 15:35:51 +01:00
surface.hpp Implement objects associated with VkSurface 2021-08-17 16:42:21 +01:00
surface_properties.hpp Add ring buffer utility 2021-08-26 13:42:23 +01:00
swapchain_base.cpp wsi: Fix swapchain teardown causing hangs 2021-10-05 17:09:09 +00:00
swapchain_base.hpp wsi: Fix swapchain teardown causing hangs 2021-10-05 17:09:09 +00:00
synchronization.cpp Use explicit synchronization for Wayland surfaces 2021-09-14 10:52:28 +01:00
synchronization.hpp Use explicit synchronization for Wayland surfaces 2021-09-14 10:52:28 +01:00
wsi_factory.cpp Implement objects associated with VkSurface 2021-08-17 16:42:21 +01:00
wsi_factory.hpp Implement objects associated with VkSurface 2021-08-17 16:42:21 +01:00