Mesa (10.0): egl/wayland: Damage INT32_MAX x INT32_MAX region for eglSwapBuffers

Ian Romanick idr at kemper.freedesktop.org
Tue Dec 10 01:42:57 UTC 2013


Module: Mesa
Branch: 10.0
Commit: d0f606ffbde369aae3acf8c943ef38002ae14e62
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d0f606ffbde369aae3acf8c943ef38002ae14e62

Author: Kristian Høgsberg <krh at bitplanet.net>
Date:   Wed Dec  4 16:13:35 2013 -0800

egl/wayland: Damage INT32_MAX x INT32_MAX region for eglSwapBuffers

If we're not using EGL_EXT_swap_buffers_with_damage, we have to
damage the full extent.  EGL operates on buffer coordinates, but
wl_surface.damage takes surface coordinates.  EGL doesn't know the
buffer transformation (rotated or scaled) and can't post accurate
damage in surface coordinates.  The damage event however is clipped to
the surface extents so we can just damage the maximum rectangle.

In case of EGL_EXT_swap_buffers_with_damage, the application knows
the buffer transform and is expected to pass in rectangles in
surface space.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70250
Cc: "10.0" mesa-stable at lists.freedesktop.org
Tested-by: U. Artie Eoff <ullysses.a.eoff at intel.com>
(cherry picked from commit bce64c6c83122b1f4a684cc7890c7a61d2f9ffd7)

---

 src/egl/drivers/dri2/platform_wayland.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c
index f9065bb..3c301b6 100644
--- a/src/egl/drivers/dri2/platform_wayland.c
+++ b/src/egl/drivers/dri2/platform_wayland.c
@@ -598,8 +598,8 @@ dri2_swap_buffers_with_damage(_EGLDriver *drv,
    dri2_surf->dy = 0;
 
    if (n_rects == 0) {
-      wl_surface_damage(dri2_surf->wl_win->surface, 0, 0,
-                        dri2_surf->base.Width, dri2_surf->base.Height);
+      wl_surface_damage(dri2_surf->wl_win->surface,
+                        0, 0, INT32_MAX, INT32_MAX);
    } else {
       for (i = 0; i < n_rects; i++) {
          const int *rect = &rects[i * 4];




More information about the mesa-commit mailing list