diff options
author | Miguel A. Vico | 2019-06-21 17:50:34 -0700 |
---|---|---|
committer | Miguel A. Vico | 2019-06-21 17:51:46 -0700 |
commit | 9243abbccc41948a34da7d34af7cf3a478c11a79 (patch) | |
tree | a4c10e1dc94cacf8d4c8f25999f2aac9354eddc3 /0010-compositor-drm-Cleanup-scanout-plane-state-upon-head.patch | |
parent | 6270174bd71c83185112d299fbc842293b7ffb2c (diff) | |
download | aur-9243abbccc41948a34da7d34af7cf3a478c11a79.tar.gz |
Include recent fixes
Diffstat (limited to '0010-compositor-drm-Cleanup-scanout-plane-state-upon-head.patch')
-rw-r--r-- | 0010-compositor-drm-Cleanup-scanout-plane-state-upon-head.patch | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/0010-compositor-drm-Cleanup-scanout-plane-state-upon-head.patch b/0010-compositor-drm-Cleanup-scanout-plane-state-upon-head.patch new file mode 100644 index 000000000000..7d4d3d064182 --- /dev/null +++ b/0010-compositor-drm-Cleanup-scanout-plane-state-upon-head.patch @@ -0,0 +1,39 @@ +From 0868ca341affb984bfcd86cf578bb9734367dae7 Mon Sep 17 00:00:00 2001 +From: "Miguel A. Vico" <mvicomoya@nvidia.com> +Date: Fri, 21 Jun 2019 13:51:11 -0700 +Subject: [PATCH 10/10] compositor-drm: Cleanup scanout plane state upon head + detach +X-NVConfidentiality: public + +When using EGLStreams and a head is detached, the scanout plane buffers +will be destroyed upon output destruction as the stream is torn down. +That needs to be reflected in the drm structures that keep track of all +this. + +This change ensures the scanout plane state is freed appropriately upon +output destruction when using EGLStreams as well as GBM. + +Signed-off-by: Miguel A Vico Moya <mvicomoya@nvidia.com> +--- + libweston/compositor-drm.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c +index 100b3050..17f2e103 100644 +--- a/libweston/compositor-drm.c ++++ b/libweston/compositor-drm.c +@@ -5232,8 +5232,9 @@ drm_output_fini_egl(struct drm_output *output) + /* Destroying the GBM surface will destroy all our GBM buffers, + * regardless of refcount. Ensure we destroy them here. */ + if (!b->shutting_down && +- output->scanout_plane->state_cur->fb && +- output->scanout_plane->state_cur->fb->type == BUFFER_GBM_SURFACE) { ++ ((output->scanout_plane->state_cur->fb && ++ output->scanout_plane->state_cur->fb->type == BUFFER_GBM_SURFACE) || ++ b->use_egldevice)) { + drm_plane_state_free(output->scanout_plane->state_cur, true); + output->scanout_plane->state_cur = + drm_plane_state_alloc(NULL, output->scanout_plane); +-- +2.21.0 + |