summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiguel A. Vico2017-04-11 13:24:50 -0700
committerMiguel A. Vico2017-04-11 13:24:50 -0700
commita85e34ab34e6fe1e5c4b36126a4102de97ddeaa9 (patch)
tree4794a2e59ac77b10244993c772679d183e1c482e
parent0c13397cfb664feded35ae04f83dac78fb7f60bc (diff)
downloadaur-a85e34ab34e6fe1e5c4b36126a4102de97ddeaa9.tar.gz
Add modeset fix when vt-switching
-rw-r--r--.SRCINFO4
-rw-r--r--0008-compositor-drm-Release-current-next-fb-when-deactiva.patch53
-rw-r--r--PKGBUILD8
3 files changed, 61 insertions, 4 deletions
diff --git a/.SRCINFO b/.SRCINFO
index c532e25377a..6fc39fb1677 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = weston-eglstream
pkgdesc = Reference implementation of a Wayland compositor with EGLStream support
pkgver = 2.0.0
- pkgrel = 1
+ pkgrel = 2
url = https://wayland.freedesktop.org/
arch = i686
arch = x86_64
@@ -42,6 +42,7 @@ pkgbase = weston-eglstream
source = 0005-compositor-drm-Add-support-for-EGLDevice-EGLOutput.patch
source = 0006-simple-egl-Do-not-set-EGL-up-until-XDG-setup-is-comp.patch
source = 0007-Add-nvidia-release-notes-file.patch
+ source = 0008-compositor-drm-Release-current-next-fb-when-deactiva.patch
sha256sums = b4e446ac27f118196f1609dab89bb3cb3e81652d981414ad860e733b355365d8
sha256sums = c81d07f0a2b26e772faa02e4b088ff979206216652a4c30beb9aa24631d9d648
sha256sums = c32048c7b1e57c24ca7fa665c9e70bc3c12dec338aea3643b637bf8d30188335
@@ -50,6 +51,7 @@ pkgbase = weston-eglstream
sha256sums = 8087849a01853e5c69fad7c9821e2202fd78ffe904626fe2f9ff51e83816ed02
sha256sums = 3bb9b0a354aa07fb3eb89ad9b7e425b1ce980b1bd0b90166a41795a80acc78ca
sha256sums = 47fc9f44083096299e1502cf15c93d9f8670e1a4e4784870d7a843d4de09d502
+ sha256sums = ca6c3a6fef381c6c7dd05e6d1bfda97b221fd90fc78ebf7b7ade9cfad2b38b63
pkgname = weston-eglstream
diff --git a/0008-compositor-drm-Release-current-next-fb-when-deactiva.patch b/0008-compositor-drm-Release-current-next-fb-when-deactiva.patch
new file mode 100644
index 00000000000..612bd930026
--- /dev/null
+++ b/0008-compositor-drm-Release-current-next-fb-when-deactiva.patch
@@ -0,0 +1,53 @@
+From 812868a91f8c9c42167bf3bf2c66f6ec1f049c41 Mon Sep 17 00:00:00 2001
+From: "Miguel A. Vico" <mvicomoya@nvidia.com>
+Date: Tue, 4 Apr 2017 14:39:47 -0700
+Subject: [PATCH] compositor-drm: Release current & next fb when deactivating
+ the session
+X-NVConfidentiality: public
+
+With
+
+ commit 47224cc9312fef05c1a523ea0da0a1aae66f100d
+ Author: Daniel Stone <daniels@collabora.com>
+ Date: Sat Nov 5 08:04:07 2016 +0000
+
+ compositor-drm: Delete drm_backend_set_modes
+
+we stopped forcing a modeset when restoring the session. The motivation
+was that we would use a stale fb, so better to let the next repaint
+handle it.
+
+However, if drm_output::current != NULL, we won't issue a modeset upon
+repaint.
+
+This change releases both drm_output::current and drm_output::next when
+deactivating the current session. This ensures the very first repaint
+after restoring the session will issue a modeset.
+
+Signed-off-by: Miguel A Vico Moya <mvicomoya@nvidia.com>
+---
+ libweston/compositor-drm.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c
+index 0236d196..7283d0ff 100644
+--- a/libweston/compositor-drm.c
++++ b/libweston/compositor-drm.c
+@@ -3058,6 +3058,14 @@ session_notify(struct wl_listener *listener, void *data)
+ wl_list_for_each(output, &compositor->output_list, base.link) {
+ output->base.repaint_needed = 0;
+ drmModeSetCursor(b->drm.fd, output->crtc_id, 0, 0, 0);
++ if (output->current != NULL) {
++ drm_output_release_fb(output, output->current);
++ output->current = NULL;
++ }
++ if (output->next != NULL) {
++ drm_output_release_fb(output, output->next);
++ output->next = NULL;
++ }
+ }
+
+ output = container_of(compositor->output_list.next,
+--
+2.12.1
+
diff --git a/PKGBUILD b/PKGBUILD
index d4f8a8838db..55934f7572a 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,7 +5,7 @@
pkgname=weston-eglstream
pkgver=2.0.0
-pkgrel=1
+pkgrel=2
pkgdesc='Reference implementation of a Wayland compositor with EGLStream support'
arch=('i686' 'x86_64')
url='https://wayland.freedesktop.org/'
@@ -24,7 +24,8 @@ source=("https://wayland.freedesktop.org/releases/weston-$pkgver.tar.xz"
'0004-compositor-drm-Gracefully-handle-vblank-and-flip-inv.patch'
'0005-compositor-drm-Add-support-for-EGLDevice-EGLOutput.patch'
'0006-simple-egl-Do-not-set-EGL-up-until-XDG-setup-is-comp.patch'
- '0007-Add-nvidia-release-notes-file.patch')
+ '0007-Add-nvidia-release-notes-file.patch'
+ '0008-compositor-drm-Release-current-next-fb-when-deactiva.patch')
sha256sums=('b4e446ac27f118196f1609dab89bb3cb3e81652d981414ad860e733b355365d8'
'c81d07f0a2b26e772faa02e4b088ff979206216652a4c30beb9aa24631d9d648'
'c32048c7b1e57c24ca7fa665c9e70bc3c12dec338aea3643b637bf8d30188335'
@@ -32,7 +33,8 @@ sha256sums=('b4e446ac27f118196f1609dab89bb3cb3e81652d981414ad860e733b355365d8'
'db56a9f0d09441af58d530130e5f04f7066d11a32cdd99522e39a19ee4ee9f46'
'8087849a01853e5c69fad7c9821e2202fd78ffe904626fe2f9ff51e83816ed02'
'3bb9b0a354aa07fb3eb89ad9b7e425b1ce980b1bd0b90166a41795a80acc78ca'
- '47fc9f44083096299e1502cf15c93d9f8670e1a4e4784870d7a843d4de09d502')
+ '47fc9f44083096299e1502cf15c93d9f8670e1a4e4784870d7a843d4de09d502'
+ 'ca6c3a6fef381c6c7dd05e6d1bfda97b221fd90fc78ebf7b7ade9cfad2b38b63')
prepare() {
cd weston-$pkgver