Every single frame, we were calling the flush_damage handler in the
renderer.  For GLES2 with subimage, this wasn't too bad as we'd never
call glTexSubImage2D, but without it, we'd upload the entire frame
through glTexImage2D every time.

Signed-off-by: Daniel Stone <[email protected]>
---
 src/compositor.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/compositor.c b/src/compositor.c
index 2d5b263..6b0c004 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -905,7 +905,8 @@ static void
 surface_accumulate_damage(struct weston_surface *surface,
                          pixman_region32_t *opaque)
 {
-       if (surface->buffer && wl_buffer_is_shm(surface->buffer))
+       if (pixman_region32_not_empty(&surface->damage) &&
+           surface->buffer && wl_buffer_is_shm(surface->buffer))
                surface->compositor->renderer->flush_damage(surface);
 
        if (surface->transform.enabled) {
-- 
1.7.10.4

_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to