[gtk+] wayland: Only attach the buffer if there was damage



commit 38b1f15f1257003fffd69f6017caefa57f56a24e
Author: Jonas Ã…dahl <jadahl gmail com>
Date:   Tue Feb 16 13:05:25 2016 +0800

    wayland: Only attach the buffer if there was damage
    
    There is no point in attaching and then committing the same buffer if
    there was no damage. This will also make us do less unnecessary backfill
    read backs, for the cases where we paint with an empty paint region.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=762120

 gdk/wayland/gdkwindow-wayland.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
index bafeb71..87bdc93 100644
--- a/gdk/wayland/gdkwindow-wayland.c
+++ b/gdk/wayland/gdkwindow-wayland.c
@@ -782,7 +782,8 @@ gdk_window_impl_wayland_end_paint (GdkWindow *window)
   cairo_rectangle_int_t rect;
   int i, n;
 
-  if (!window->current_paint.use_gl)
+  if (!window->current_paint.use_gl &&
+      !cairo_region_is_empty (window->current_paint.region))
     {
       gdk_wayland_window_attach_image (window);
 
@@ -809,8 +810,9 @@ gdk_window_impl_wayland_end_paint (GdkWindow *window)
         {
           cairo_region_get_rectangle (window->current_paint.region, i, &rect);
           wl_surface_damage (impl->display_server.wl_surface, rect.x, rect.y, rect.width, rect.height);
-          impl->pending_commit = TRUE;
         }
+
+      impl->pending_commit = TRUE;
     }
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]