summaryrefslogtreecommitdiff
path: root/hw/xwayland/xwayland-present.h
diff options
context:
space:
mode:
authorMichel Dänzer <mdaenzer@redhat.com>2021-12-24 19:06:47 +0100
committerMichel Dänzer <michel@daenzer.net>2021-12-24 19:06:47 +0100
commit288ec0e046c4cb975367f5ad043b76666c30fe9b (patch)
treecce2ff30a7d95a3eebb8551311228c729738a241 /hw/xwayland/xwayland-present.h
parent38291fa86c00e1d3ee37612c9215b0c15da89051 (diff)
downloadxserver-288ec0e046c4cb975367f5ad043b76666c30fe9b.tar.gz
xwayland/present: Run fallback timer callback after more than a second
If the Wayland compositor doesn't send a pending frame event, e.g. because the Wayland surface isn't visible anywhere, it could happen that the timer kept getting pushed back and never fired. This resulted in an enormous list of pending vblank events, which could take minutes to process when the frame event finally arrived. Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1110 Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> Tested-by: Jaap Buurman <jaapbuurman@gmail.com>
Diffstat (limited to 'hw/xwayland/xwayland-present.h')
-rw-r--r--hw/xwayland/xwayland-present.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/hw/xwayland/xwayland-present.h b/hw/xwayland/xwayland-present.h
index d3eff73f4..5d880e822 100644
--- a/hw/xwayland/xwayland-present.h
+++ b/hw/xwayland/xwayland-present.h
@@ -41,6 +41,8 @@ struct xwl_present_window {
uint64_t ust;
OsTimerPtr frame_timer;
+ /* Timestamp when the current timer was first armed */
+ CARD32 timer_armed;
struct wl_callback *sync_callback;