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
This commit is contained in:
Jonas Ådahl 2016-02-16 13:05:25 +08:00 committed by Ray Strode
parent 64c9ec14fe
commit 38b1f15f12

View File

@ -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;
}
}