mesa/src/vulkan/wsi
Derek Foreman 2e49448a43 vulkan/wsi/wayland: Move timing calculations to the swapchain
When we create a new swapchain to replace the one currently presenting on
a surface, we need to reset all these timing variables. Otherwise we can
lose track of corrections that were made for the old swapchain when we
delete undelivered presentation feedback results.

Also, we use these variables when queuing a presentation, but we also use
them in the dispatch code that can be called by WaitForPresent from another
thread. We need to protect these variables against concurrent usage.

This is all much easier to do when they're stored as part of the swapchain
instead of the surface, so just move them there and adjust the locking.

Signed-off-by: Derek Foreman <derek.foreman@collabora.com>
Fixes: c26ab1aee1 ("vulkan/wsi/wayland: Pace frames with commit-timing-v1")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32121>
2024-11-22 15:50:35 +00:00
..
meson.build vulkan/wsi/wayland: Pace frames with commit-timing-v1 2024-11-07 00:03:23 +00:00
wsi_common.c vulkan/wsi/wayland: Pace frames with commit-timing-v1 2024-11-07 00:03:23 +00:00
wsi_common.h vulkan/wsi/wayland: Pace frames with commit-timing-v1 2024-11-07 00:03:23 +00:00
wsi_common_display.c meson: require dri3 modifiers 2024-09-06 17:34:17 +00:00
wsi_common_display.h vulkan/wsi/display: Wrap wsi_display_fence in a vk_sync 2021-11-16 10:54:27 -06:00
wsi_common_drm.c vulkan/wsi: Refactor can_present_on_device 2024-08-12 16:00:37 +00:00
wsi_common_drm.h vk/wsi: C++-proof wsi_common_drm.h 2023-03-24 15:49:25 +00:00
wsi_common_headless.c treewide: Cleanup unused structs 2024-05-11 17:30:59 +00:00
wsi_common_metal.c wsi: Fix Metal WSI CAMetalDrawable leak 2024-09-18 22:55:28 +00:00
wsi_common_metal_layer.h wsi: Fix Metal WSI CAMetalDrawable leak 2024-09-18 22:55:28 +00:00
wsi_common_metal_layer.m wsi: Fix Metal WSI CAMetalDrawable leak 2024-09-18 22:55:28 +00:00
wsi_common_private.h vulkan/wsi/wayland: Pace frames with commit-timing-v1 2024-11-07 00:03:23 +00:00
wsi_common_queue.h vulkan/wsi/queue: Use mtx_t and u_cnd_monotonic 2024-07-08 22:09:06 +00:00
wsi_common_wayland.c vulkan/wsi/wayland: Move timing calculations to the swapchain 2024-11-22 15:50:35 +00:00
wsi_common_win32.cpp vulkan/wsi: Support alpha swapchains on win32 2024-11-13 04:26:46 +00:00
wsi_common_x11.c meson: require dri3 modifiers 2024-09-06 17:34:17 +00:00