summaryrefslogtreecommitdiff
path: root/recipes-graphics/wayland/files/0003-Add-glFinish-to-DRM-backend-to-avoid-tearing.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-graphics/wayland/files/0003-Add-glFinish-to-DRM-backend-to-avoid-tearing.patch')
-rw-r--r--recipes-graphics/wayland/files/0003-Add-glFinish-to-DRM-backend-to-avoid-tearing.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/recipes-graphics/wayland/files/0003-Add-glFinish-to-DRM-backend-to-avoid-tearing.patch b/recipes-graphics/wayland/files/0003-Add-glFinish-to-DRM-backend-to-avoid-tearing.patch
new file mode 100644
index 0000000..c7426a4
--- /dev/null
+++ b/recipes-graphics/wayland/files/0003-Add-glFinish-to-DRM-backend-to-avoid-tearing.patch
@@ -0,0 +1,48 @@
+From 412880dfeb9951f9e807ed36e293805bc97beb32 Mon Sep 17 00:00:00 2001
+From: Alexandre Courbot <acourbot@nvidia.com>
+Date: Thu, 24 Sep 2015 13:19:02 +0900
+Subject: [PATCH 3/6] Add glFinish to DRM backend to avoid tearing
+
+---
+ Makefile.am | 3 ++-
+ src/compositor-drm.c | 2 ++
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 00b74e5..071d540 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -281,8 +281,9 @@ drm_backend_la_LIBADD = \
+ $(COMPOSITOR_LIBS) \
+ $(DRM_COMPOSITOR_LIBS) \
+ $(INPUT_BACKEND_LIBS) \
+- libshared.la \
+ $(CLOCK_GETTIME_LIBS) \
++ $(SIMPLE_EGL_CLIENT_LIBS) \
++ libshared.la -lrt \
+ libsession-helper.la
+ drm_backend_la_CFLAGS = \
+ $(COMPOSITOR_CFLAGS) \
+diff --git a/src/compositor-drm.c b/src/compositor-drm.c
+index 90cae10..17ba640 100644
+--- a/src/compositor-drm.c
++++ b/src/compositor-drm.c
+@@ -715,6 +715,7 @@ drm_output_repaint(struct weston_output *output_base,
+ output_base->set_dpms(output_base, WESTON_DPMS_ON);
+ }
+
++ glFinish();
+ if (drmModePageFlip(backend->drm.fd, output->crtc_id,
+ output->next->fb_id,
+ DRM_MODE_PAGE_FLIP_EVENT, output) < 0) {
+@@ -838,6 +839,7 @@ drm_output_start_repaint_loop(struct weston_output *output_base)
+ */
+ fb_id = output->current->fb_id;
+
++ glFinish();
+ if (drmModePageFlip(backend->drm.fd, output->crtc_id, fb_id,
+ DRM_MODE_PAGE_FLIP_EVENT, output) < 0) {
+ weston_log("queueing pageflip failed: %m\n");
+--
+2.9.3
+