[PATCH] Do not release buffer when it is going to be used again.

Axel Davy axel.davy at ens.fr
Wed Nov 6 11:47:50 PST 2013


Solve a bug for some fullscreen clients which wouldn't show up.

Signed-off-by: Axel Davy <axel.davy at ens.fr>
---
 src/compositor-drm.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index 4f015d1..6a2500b 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -711,7 +711,8 @@ vblank_handler(int fd, unsigned int frame, unsigned int sec, unsigned int usec,
 
 	output->vblank_pending = 0;
 
-	drm_output_release_fb(output, s->current);
+	if (s->current != s->next)
+                drm_output_release_fb(output, s->current);
 	s->current = s->next;
 	s->next = NULL;
 
@@ -735,7 +736,8 @@ page_flip_handler(int fd, unsigned int frame,
 	 * we just want to page flip to the current buffer to get an accurate
 	 * timestamp */
 	if (output->page_flip_pending) {
-		drm_output_release_fb(output, output->current);
+		if (output->current != output->next) 
+                        drm_output_release_fb(output, output->current);
 		output->current = output->next;
 		output->next = NULL;
 	}
-- 
1.8.1.2



More information about the wayland-devel mailing list