c50e5ba7a5
Cherry-pick from http://192.168.110.45/sdk/buildroot/-/commit/ed70e2b79cbc7a504792899e2cd3577777fd54bd
34 lines
1.5 KiB
Diff
34 lines
1.5 KiB
Diff
From 66118837ec11358ea86373c343c147e9659c19b8 Mon Sep 17 00:00:00 2001
|
|
From: Brendan King <Brendan.King@imgtec.com>
|
|
Date: Wed, 8 Nov 2017 15:15:20 +0000
|
|
Subject: [PATCH 21/50] egl/wayland: post maximum damage when blitting
|
|
|
|
When blitting, as part of the "is_different_gpu" case when swapping
|
|
buffers, the blit is done using the full surface dimensions, ignoring
|
|
the damage region. This results in corruption of the non damaged region
|
|
on screen. Workaround this by posting maximum damage when blitting.
|
|
|
|
A better fix would be to limit the blit to the damaged region, at least
|
|
when the number of damage rectangles is 1.
|
|
---
|
|
src/egl/drivers/dri2/platform_wayland.c | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c
|
|
index 6eb2c7cbdf6..b76c63f1439 100644
|
|
--- a/src/egl/drivers/dri2/platform_wayland.c
|
|
+++ b/src/egl/drivers/dri2/platform_wayland.c
|
|
@@ -1121,7 +1121,8 @@ dri2_wl_swap_buffers_with_damage(_EGLDisplay *disp,
|
|
/* If the compositor doesn't support damage_buffer, we deliberately
|
|
* ignore the damage region and post maximum damage, due to
|
|
* https://bugs.freedesktop.org/78190 */
|
|
- if (!n_rects || !try_damage_buffer(dri2_surf, rects, n_rects))
|
|
+ if (dri2_dpy->is_different_gpu ||
|
|
+ !n_rects || !try_damage_buffer(dri2_surf, rects, n_rects))
|
|
wl_surface_damage(dri2_surf->wl_surface_wrapper,
|
|
0, 0, INT32_MAX, INT32_MAX);
|
|
|
|
--
|
|
2.17.1
|
|
|