summarylogtreecommitdiffstats
path: root/git-fixes.diff
diff options
context:
space:
mode:
Diffstat (limited to 'git-fixes.diff')
-rw-r--r--git-fixes.diff40
1 files changed, 40 insertions, 0 deletions
diff --git a/git-fixes.diff b/git-fixes.diff
index fc379fe7c48d..d3b5e17753e7 100644
--- a/git-fixes.diff
+++ b/git-fixes.diff
@@ -611,4 +611,44 @@ index 6b05f57..2c6d307 100644
--
cgit v0.10.2
+From e473b2bc016adacfe3fa47fdf6a8ce9f8cddff62 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel.daenzer@amd.com>
+Date: Fri, 25 Nov 2016 17:34:05 +0900
+Subject: present: Only call present_flip_notify if vblank->queued == FALSE
+
+We are no longer using the present_flip_queue list only for presents
+which have already been submitted to the driver for page flipping, but
+also for those which we are queueing up to be flipped later, marked
+with vblank->queued == TRUE. We were incorrectly calling
+present_flip_notify for such entries, failing the assertion in
+present_flip_notify (or presumably resulting in other undesirable
+behaviour with assertions disabled).
+
+Reproduction recipe: Run the JavaFX test case referenced by
+https://bugs.freedesktop.org/show_bug.cgi?id=98831#c6 and alt-tab out
+of it while it's fullscreen. May take a few attempts to hit the
+assertion failure.
+
+Fixes: bab0f450a719 ("present: Fix presentation of flips out of order")
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98854
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+
+diff --git a/present/present.c b/present/present.c
+index a7ca06e..ef89045 100644
+--- a/present/present.c
++++ b/present/present.c
+@@ -536,7 +536,10 @@ present_event_notify(uint64_t event_id, uint64_t ust, uint64_t msc)
+ }
+ xorg_list_for_each_entry(vblank, &present_flip_queue, event_queue) {
+ if (vblank->event_id == event_id) {
+- present_flip_notify(vblank, ust, msc);
++ if (vblank->queued)
++ present_execute(vblank, ust, msc);
++ else
++ present_flip_notify(vblank, ust, msc);
+ return;
+ }
+ }
+--
+cgit v0.10.2