From 01c54fd6299db54c088c0a6f50eb0979569553c3 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Tue, 10 Feb 2015 12:31:31 -0500 Subject: [PATCH] replace present patch description with one used upstream. --- ...lip-work-when-the-flip-window-is-des.patch | 40 ++++--------------- 1 file changed, 7 insertions(+), 33 deletions(-) diff --git a/0001-present-make-unflip-work-when-the-flip-window-is-des.patch b/0001-present-make-unflip-work-when-the-flip-window-is-des.patch index ca919a8..77e143c 100644 --- a/0001-present-make-unflip-work-when-the-flip-window-is-des.patch +++ b/0001-present-make-unflip-work-when-the-flip-window-is-des.patch @@ -1,41 +1,15 @@ From df3b03e05b5c826584fc75466f404b53844edcf4 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Thu, 5 Feb 2015 14:11:40 -0500 -Subject: [PATCH] present: make unflip work when the flip window is destroyed - or clipped +Subject: [PATCH] present: Copy unflip contents back to the Screen Pixmap -Present allows a window to redirect itself to a client provided buffer. +As we unflip after the flip Window no longer passes the pixel ownership +test for the full Screen Pixmap, we can no longer utilize that Window to +copy the contents back to the backing pixmap. To first flip means that +the Window was originally backed by the Screen Pixmap and wholly covered +the Pixmap, thus we need to copy the last frame contents to the Screen +Pixmap when the flip chain is complete. -If that buffer is about to be invalidated, the window needs to direct -itself back to its original buffer (some part of the root window/front -buffer), and update that storage to have a current contents (a process -called "unflipping"). - -The present_unflip finds the original buffer by way of the drawable -associated with the window presented to. If the window is already -destroyed, then it get dissociated from its drawable, and the copy -operation used to update the original buffer fails. - -When the compositor exits its buffers become invalidated and the -composite overlay window gets destroyed at the same time. This leads -to a temporary flash of the root window as it looked at the time -the X server was started. - -The present_unflip function performs the copy using the clip list of -the window presented to. If the window is clipped, the copy operation -used to update the original buffer will be clipped as well. - -When VT switching away the X server sets the clip to 0, so that -applications get fully reexposed the next time the VT is active. - -When VT switching the present_unflip function is called. This leads -to a temporary flash of the root window as it looked at the time -the X server was started. - -This commit changes present_flip to update the front buffer directly, -rather than by way of the drawable associated with the window presented -to. At the same time, doing this means avoiding the clip list -associated with the window. --- present/present.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)