From 8087c172b8373ffb15efe8f79905a3174d29c118 Mon Sep 17 00:00:00 2001 From: Antoine Damhet Date: Wed, 19 Aug 2020 09:53:02 +0200 Subject: [PATCH] update patches from pull request Signed-off-by: Antoine Damhet --- .SRCINFO | 38 ++++++++------ 0001-deps-glad-Add-EGL.patch | 4 +- ...engl-Rename-gl-x11.c-to-gl-x11-glx.c.patch | 4 +- ...-libobs-opengl-Factor-out-GLX-winsys.patch | 4 +- ...-opengl-Introduce-the-X11-EGL-winsys.patch | 4 +- ...-deps-glad-Make-X11-required-as-well.patch | 4 +- ...Install-qtbase5-private-dev-on-Linux.patch | 21 ++++++-- ...e-X11-specific-code-to-obs-nix-x11.c.patch | 4 +- ...oduce-the-concept-of-a-Unix-platform.patch | 4 +- ...-UI-Set-the-Unix-platform-on-startup.patch | 4 +- ...ure-Fail-to-load-when-running-on-EGL.patch | 4 +- 0011-libobs-Add-a-Wayland-platform.patch | 4 +- ...y-to-use-the-platform-display-if-ava.patch | 4 +- 0013-libobs-Add-a-Wayland-platform.patch | 30 +++++++++++ ...gl-Introduce-an-EGL-Wayland-renderer.patch | 4 +- ...etrieve-Wayland-surface-from-QWindow.patch | 4 +- ...-obs_display-when-becoming-invisible.patch | 52 +++++++++++++++++++ PKGBUILD | 38 ++++++++------ 18 files changed, 168 insertions(+), 63 deletions(-) create mode 100644 0013-libobs-Add-a-Wayland-platform.patch rename 0013-libobs-opengl-Introduce-an-EGL-Wayland-renderer.patch => 0014-libobs-opengl-Introduce-an-EGL-Wayland-renderer.patch (99%) rename 0014-UI-Retrieve-Wayland-surface-from-QWindow.patch => 0015-UI-Retrieve-Wayland-surface-from-QWindow.patch (95%) create mode 100644 0016-UI-Destroy-obs_display-when-becoming-invisible.patch diff --git a/.SRCINFO b/.SRCINFO index 7c5599c..bfd89bd 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,7 +1,7 @@ pkgbase = obs-studio-wayland pkgdesc = Free, open source software for live streaming and recording (with wayland patches) pkgver = 25.0.8 - pkgrel = 1 + pkgrel = 2 url = https://obsproject.com arch = x86_64 license = GPL2 @@ -47,24 +47,28 @@ pkgbase = obs-studio-wayland source = 0010-linux-capture-Fail-to-load-when-running-on-EGL.patch source = 0011-libobs-Add-a-Wayland-platform.patch source = 0012-libobs-opengl-Try-to-use-the-platform-display-if-ava.patch - source = 0013-libobs-opengl-Introduce-an-EGL-Wayland-renderer.patch - source = 0014-UI-Retrieve-Wayland-surface-from-QWindow.patch + source = 0013-libobs-Add-a-Wayland-platform.patch + source = 0014-libobs-opengl-Introduce-an-EGL-Wayland-renderer.patch + source = 0015-UI-Retrieve-Wayland-surface-from-QWindow.patch + source = 0016-UI-Destroy-obs_display-when-becoming-invisible.patch sha512sums = a97c03dc218a4e03e48f6a7dc82b4a59ebeee2039f17be66bb847681ce9ff3d25e6e015be4af78fe44739f6fad5089b6e683d7657c2e4fde8e547df9a2594a08 sha512sums = 1ff0e088eed61554268009f3d8c5a23c0888bfbe860d6cb288ddf348108446c152fd87e2cb8f54613a88378d8474550632c90f924005d5e0343bf1a801339ccc - sha512sums = bfe2b0e6da69ffdca95229eb4015515148fdda909355add1d2dec71cf97e9fdabdfc832c74f455a890846708f28d5bcbec64589e853904d539a438b2dcbd7a18 - sha512sums = 5221b6a7a46f99c58cde1c5406f83d50def2d5b3a2e97be7db759d94d74a5be46da092209e6a4122a6de4b704632c3f013535f80b570349b029ea4124151c4f6 - sha512sums = c9a0660c95bd18a02620fb0b870032563669544e7a721e4d91dafb8aebb96d1735414a9e37ed56355fc5afeb8f437a434b4fd5f147c9658cc6974e8e8bab4463 - sha512sums = 0b404ff252f94bcdd957d43db26c54c6b47de5a8f810f4febdb0aa5b873c48f23ef2817361e5ce9c09a189e770978cfca24767167604434ece771d759e7c4270 - sha512sums = 47f5bffb469ece2b961000cd2d8656b82cba8ac0fa09fa7703c662e0cee2e48744d5b8aa93a4b4508436ea5edfe3038fa7aa88a3b43466f88c7504e6a8ba51ed - sha512sums = d15c21968a3024888ce4c8e884d861f147358e95a42c1de557251a4c2fccbdddf9cf5a285deedbf73cffbd25fdaad44dd972cb10bf9a5b23a0049b239e75961f - sha512sums = c1f94ccd836c51ff83735df614bf6d3e2c310c599685e700ae5726ace20434edd04ef0c9be0a8c0f4c458dd164ad1ac817fd32bcbeeefb0107a6ce4cbce9cb08 - sha512sums = 6ce870404a6d2bfbb25935a6da59a07447307f8592dd1dc1aaebba2b9f959633565ba4cdc7d50ee3c4e5b4c169397298daa5804c3060fc780dba52099f687393 - sha512sums = 6374229b662949e2989eb372a922fda872d2a08e817690b2262f99dc8a02261a75aeeacfc40da2b68a04228b38cda4aeaca4212068e8605b7532662dc459abb4 - sha512sums = 16dfa319e9e18ef8e946b9723e27d1ea1f56e4de8656d8112571bc87aa7ade8dbda4293f064c2477cdaf92c60fca4484b2c7ac322835bf402657275933f6ab52 - sha512sums = c81a421475293d3d5c64a744c10a925dc26975a6dfd46e1b3b2a92931da43c311d0a153548889b4e9831bee61ab8b0f5fc504ad3f0ed7f0628f93287e12ad3d3 - sha512sums = ea36fee6228d582f5f3b886a3de61ad8b139691c3bf30e24a7b20f1eab2f9e43b0dfbf6f254dcef00e2bfbf6826f223a957d3e78524ebd864c64433529e40441 - sha512sums = a93f186ed24ee979a4297aa063c435ae541f5f1958b86373f6534a2dd85e2178d6f151f115200c987b5e1d999ebd94d6ce0597ef1e7b3588bcb161c53dd4878e - sha512sums = c4e6a23edf080076c27599e02909a068b11094848f733297496e7ea0061df56be4becdb58449ec7a05ff2a659fa4c0f75f4006cb204578477308d24d764fba41 + sha512sums = 6329e08da95e345509001ab6b9e8b73a227d0e63a8d39a3ef9b7d0197940ea9589d39b4aa92cdcc9f21cc4b9110a97f8e80891a12b4b24dff6d23395379abf5c + sha512sums = b05346b83587d2fe3fbc676a14aca961f05fa58c6912f82fed9e15a4b9fcacce297921003b41980c57ba09c4623d50c905a7c50961c2269a9709fcb67a088002 + sha512sums = 6f38fd7f6f5a29d05b6dd824af1de6072ebd692c96940ba74e5d1799e21754230010fd70cd2f1ce830a0701d25b07cfbae8cbe49f89ba085cd2dec6796a7790d + sha512sums = 14979eef47ab1d6e88ab77c35ab00a5e8297d1ed332bb397b8d3906e68c6ffa0b4e0761ef0dfff0221c7e22f5fb709e5bb11b87e046116bb3996df270e3b7b43 + sha512sums = db6a8d54e86f58f1adecb0f09ab5660ae0d06f4aa8bd0ea2e61da601ae82fd53a3b4c6db96d5827709e700843b70cc5a72851c0d429e3ec05bef250ed48445a0 + sha512sums = f0374c85bd93928a32d60a9516c90c1b2e3537b84f949066110897f05224a568dd57f2cd9d141b0cfa8e89672b081dac3c64304523fcf37f0c018ca78ad71625 + sha512sums = dcdca90cfd701aad02ba12dee9a6482ca9066ff817e6e24bb3d0d6dfbbc48e8e98eb02517983802c66cade34c0d347aec817fe98da8baa7f5fff9187201e9a00 + sha512sums = 64e4adef34a1074410245120d828871c128ee8254d77378cd7b74fe0182abaffdbff6669990a75464335b33d83641893b73e618c7322e1fe3186a748eab07e79 + sha512sums = 64ca66913ade6b28815aa06383089e1c9aaa7a2b50cd425be8876d0a95338615be844a362a55c02541681d51f1921cb0820554f49fe21786649076ca16f6f64b + sha512sums = a917037dc63bfdd8d2d04b2d3f625eb9c8ec26868ca2eeef23d78f3442c8233252d86285b771e1c1428408508aedff4407aec5bdc9ef233fda995483fdab4202 + sha512sums = 013adb73a718f5df05a055de0e5fa17701dc645d8e7025ff1192d99a405dd6a0923fcfdbbad37777ff993545aadf9d4d29bae7191c6505f9f929273d5b374ee2 + sha512sums = 34710dbf905e6af2d7af3feab9f55c867dcbac6afa0ab6a12f7c458b974ba71e14ef797e9db613d3248c046dee1c1dce8559ceeaf1d95d1215368032e642731d + sha512sums = e131c7a65ce0e848f0b91bfd4b3db750bc0bddce64a9ff49d97082ddafb9ddab92f43ea19a2c92b054e85df0f018f43ff5dc8cf81671520079e4e4681d5ac230 + sha512sums = cefa4f5032a06e9341ccdabef022d755c8869b391a33ed5c4bd927672f967d5287d4c017cb7b2d37c163c9f387ca94d5846327461a9ba3b44478ed67a60d6a9f + sha512sums = e406d3f16f17b35ce463120eefd2bea3797fa83304ea27628b9a671704451c4a275d6844b0f007997e3a6edc39557442c6eb9eb8b6dc2a50e07341e3b0621e1f + sha512sums = 6c1cd77e63f760aabb9186edb906092bb9f6a7b2e7bd32deff4af33b5f35e95abe7ff874b6a17112d3da098f970f706c0a05f239fc75b65e60f4c68ae544eacf pkgname = obs-studio-wayland diff --git a/0001-deps-glad-Add-EGL.patch b/0001-deps-glad-Add-EGL.patch index 2a2c7bd..76d75d6 100644 --- a/0001-deps-glad-Add-EGL.patch +++ b/0001-deps-glad-Add-EGL.patch @@ -1,7 +1,7 @@ -From b91db14ec87f4f1a2fba7d6cb89c4e6d07a0472f Mon Sep 17 00:00:00 2001 +From af3a31e5dc24a37ecd34ac87ec662289a942a42e Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Mon, 9 Mar 2020 13:10:16 -0300 -Subject: [PATCH 01/15] deps-glad: Add EGL +Subject: [PATCH 01/16] deps-glad: Add EGL The code is generated by https://glad.dav1d.de/ --- diff --git a/0002-libobs-opengl-Rename-gl-x11.c-to-gl-x11-glx.c.patch b/0002-libobs-opengl-Rename-gl-x11.c-to-gl-x11-glx.c.patch index f73cc33..9509e25 100644 --- a/0002-libobs-opengl-Rename-gl-x11.c-to-gl-x11-glx.c.patch +++ b/0002-libobs-opengl-Rename-gl-x11.c-to-gl-x11-glx.c.patch @@ -1,7 +1,7 @@ -From 49e7a26b3aa5523662e68401554a1474fa8baf86 Mon Sep 17 00:00:00 2001 +From 6a15695f885d372909c3eeadd091abd640fca937 Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Mon, 9 Mar 2020 13:19:31 -0300 -Subject: [PATCH 02/15] libobs-opengl: Rename gl-x11.c to gl-x11-glx.c +Subject: [PATCH 02/16] libobs-opengl: Rename gl-x11.c to gl-x11-glx.c This is in preparation for the future abstraction layer (gl-x11-*) and also to match the actual name of the windowing system. When diff --git a/0003-libobs-opengl-Factor-out-GLX-winsys.patch b/0003-libobs-opengl-Factor-out-GLX-winsys.patch index ae99c34..cd29cc7 100644 --- a/0003-libobs-opengl-Factor-out-GLX-winsys.patch +++ b/0003-libobs-opengl-Factor-out-GLX-winsys.patch @@ -1,7 +1,7 @@ -From dc135a39d088ead4c603f95b1483c7076da4cea4 Mon Sep 17 00:00:00 2001 +From 4cc969bdb0abcfb5a4737b2f4159ee9c0be7d4cc Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Mon, 9 Mar 2020 16:46:37 -0300 -Subject: [PATCH 03/15] libobs-opengl: Factor out GLX winsys +Subject: [PATCH 03/16] libobs-opengl: Factor out GLX winsys Move the GLX-related code to gl-x11-glx, and introduce gl-nix as a winsys-agnostic abstraction layer. gl-nix serves as the runtime diff --git a/0004-libobs-opengl-Introduce-the-X11-EGL-winsys.patch b/0004-libobs-opengl-Introduce-the-X11-EGL-winsys.patch index 1dad1ee..760ce47 100644 --- a/0004-libobs-opengl-Introduce-the-X11-EGL-winsys.patch +++ b/0004-libobs-opengl-Introduce-the-X11-EGL-winsys.patch @@ -1,7 +1,7 @@ -From 3016893fbe071ce95c20ea24844713a068862c29 Mon Sep 17 00:00:00 2001 +From ecff9e62ac3a52a198e6d5fd71c40abe3826799e Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Mon, 9 Mar 2020 17:35:49 -0300 -Subject: [PATCH 04/15] libobs-opengl: Introduce the X11/EGL winsys +Subject: [PATCH 04/16] libobs-opengl: Introduce the X11/EGL winsys Introduce the EGL/X11 winsys, and use it when the OBS_USE_EGL environment variable is defined. This variable is only temporary, for future commits diff --git a/0005-deps-glad-Make-X11-required-as-well.patch b/0005-deps-glad-Make-X11-required-as-well.patch index f971e8c..c658aa8 100644 --- a/0005-deps-glad-Make-X11-required-as-well.patch +++ b/0005-deps-glad-Make-X11-required-as-well.patch @@ -1,7 +1,7 @@ -From 6b71db73fb1aef30ad06e576d2b2377052ed9f56 Mon Sep 17 00:00:00 2001 +From 8191cd88f8273430e2976d774ac9189d17661f73 Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Sat, 11 Apr 2020 23:49:05 -0300 -Subject: [PATCH 05/15] deps/glad: Make X11 required as well +Subject: [PATCH 05/16] deps/glad: Make X11 required as well To keep consistency with the EGL line --- diff --git a/0006-ci-Install-qtbase5-private-dev-on-Linux.patch b/0006-ci-Install-qtbase5-private-dev-on-Linux.patch index 804e48b..9a1a199 100644 --- a/0006-ci-Install-qtbase5-private-dev-on-Linux.patch +++ b/0006-ci-Install-qtbase5-private-dev-on-Linux.patch @@ -1,12 +1,27 @@ -From e3eeda73e23c9b6a22562583eb9b7bf5c8a481df Mon Sep 17 00:00:00 2001 +From f31796d19f4a4fdedc99f360ccf5d9c5c0f92cf5 Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Fri, 6 Mar 2020 16:22:01 -0300 -Subject: [PATCH 06/15] ci: Install qtbase5-private-dev on Linux +Subject: [PATCH 06/16] ci: Install qtbase5-private-dev on Linux +List this dependency both under CI/install-dependencies-linux.sh, and +.github/workflows/main.yml. --- + .github/workflows/main.yml | 1 + CI/install-dependencies-linux.sh | 1 + - 1 file changed, 1 insertion(+) + 2 files changed, 2 insertions(+) +diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml +index 47c47101..008c3ee9 100644 +--- a/.github/workflows/main.yml ++++ b/.github/workflows/main.yml +@@ -176,6 +176,7 @@ jobs: + pkg-config \ + python3-dev \ + qtbase5-dev \ ++ qtbase5-private-dev \ + libqt5svg5-dev \ + swig + - name: 'Install prerequisite: Chromium Embedded Framework' diff --git a/CI/install-dependencies-linux.sh b/CI/install-dependencies-linux.sh index 0d92fbf9..478f953a 100755 --- a/CI/install-dependencies-linux.sh diff --git a/0007-libobs-nix-Move-X11-specific-code-to-obs-nix-x11.c.patch b/0007-libobs-nix-Move-X11-specific-code-to-obs-nix-x11.c.patch index 47c412c..9ece5ad 100644 --- a/0007-libobs-nix-Move-X11-specific-code-to-obs-nix-x11.c.patch +++ b/0007-libobs-nix-Move-X11-specific-code-to-obs-nix-x11.c.patch @@ -1,7 +1,7 @@ -From 93ecb043ff029fe430c59d2654a9f3fc590747ec Mon Sep 17 00:00:00 2001 +From c84f1b751554d6a1cd15f5db4a611a2cb8f95842 Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Fri, 6 Mar 2020 17:24:33 -0300 -Subject: [PATCH 07/15] libobs/nix: Move X11-specific code to obs-nix-x11.c +Subject: [PATCH 07/16] libobs/nix: Move X11-specific code to obs-nix-x11.c Currently, obs-nix.c is highly tied to the X11 display server. It includes X11 headers directly, and make use diff --git a/0008-libobs-Introduce-the-concept-of-a-Unix-platform.patch b/0008-libobs-Introduce-the-concept-of-a-Unix-platform.patch index 30152b5..8365db6 100644 --- a/0008-libobs-Introduce-the-concept-of-a-Unix-platform.patch +++ b/0008-libobs-Introduce-the-concept-of-a-Unix-platform.patch @@ -1,7 +1,7 @@ -From 2fe20c5488edf35c0507728d253b373bc1b842ab Mon Sep 17 00:00:00 2001 +From 32f86b37c78454ad51ac427ccc772b7a62fa89c8 Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Fri, 6 Mar 2020 17:50:41 -0300 -Subject: [PATCH 08/15] libobs: Introduce the concept of a Unix platform +Subject: [PATCH 08/16] libobs: Introduce the concept of a Unix platform This is a Unix-specific code. The only available platforms at this point are the X11/GLX and X11/EGL platforms. diff --git a/0009-UI-Set-the-Unix-platform-on-startup.patch b/0009-UI-Set-the-Unix-platform-on-startup.patch index d18eccb..c980d56 100644 --- a/0009-UI-Set-the-Unix-platform-on-startup.patch +++ b/0009-UI-Set-the-Unix-platform-on-startup.patch @@ -1,7 +1,7 @@ -From 25d37ebfbe7d9aa583bd8bd9655892c2d73f13dc Mon Sep 17 00:00:00 2001 +From 79ec8d09ce00ae6645604a3fd7562832c2400790 Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Tue, 7 Apr 2020 23:17:02 -0300 -Subject: [PATCH 09/15] UI: Set the Unix platform on startup +Subject: [PATCH 09/16] UI: Set the Unix platform on startup Move the OBS_USE_EGL environment variable check to obs-app.cpp, and set the OBS platform to be either OBS_NIX_PLATFORM_X11_GLX diff --git a/0010-linux-capture-Fail-to-load-when-running-on-EGL.patch b/0010-linux-capture-Fail-to-load-when-running-on-EGL.patch index 2576277..292d128 100644 --- a/0010-linux-capture-Fail-to-load-when-running-on-EGL.patch +++ b/0010-linux-capture-Fail-to-load-when-running-on-EGL.patch @@ -1,7 +1,7 @@ -From d07e62894d3aa78430a2ee543443a81c70153067 Mon Sep 17 00:00:00 2001 +From 7abd7a9ed53f36a0aa9ba45c32cb7824bc6558ac Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Wed, 8 Apr 2020 23:58:43 -0300 -Subject: [PATCH 10/15] linux-capture: Fail to load when running on EGL +Subject: [PATCH 10/16] linux-capture: Fail to load when running on EGL Right now, linux-capture hard-depends on GLX. Disable it when running under EGL. diff --git a/0011-libobs-Add-a-Wayland-platform.patch b/0011-libobs-Add-a-Wayland-platform.patch index d95c85d..312184d 100644 --- a/0011-libobs-Add-a-Wayland-platform.patch +++ b/0011-libobs-Add-a-Wayland-platform.patch @@ -1,7 +1,7 @@ -From de53eda26763e1aa7ec82803fd231c0cf9c0a6c4 Mon Sep 17 00:00:00 2001 +From 5c5cf8e4dfd6b2930a25c5772a5679d39c75fc0d Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Fri, 6 Mar 2020 18:53:42 -0300 -Subject: [PATCH 11/15] libobs: Add a Wayland platform +Subject: [PATCH 11/16] libobs: Add a Wayland platform Introduce the OBS_NIX_PLATFORM_WAYLAND enum value, and try to detect it when OBS Studio runs by looking into the platform name. diff --git a/0012-libobs-opengl-Try-to-use-the-platform-display-if-ava.patch b/0012-libobs-opengl-Try-to-use-the-platform-display-if-ava.patch index 8f138ca..da63e8e 100644 --- a/0012-libobs-opengl-Try-to-use-the-platform-display-if-ava.patch +++ b/0012-libobs-opengl-Try-to-use-the-platform-display-if-ava.patch @@ -1,7 +1,7 @@ -From 5bf0de83d59b4147e91feceba2ec957522d83736 Mon Sep 17 00:00:00 2001 +From e8a11258a45892d6aebb08de3302e771df25bc6f Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Sat, 11 Apr 2020 23:32:16 -0300 -Subject: [PATCH 12/15] libobs-opengl: Try to use the platform display if +Subject: [PATCH 12/16] libobs-opengl: Try to use the platform display if available We need to ensure we're running all X11 code on the same display. diff --git a/0013-libobs-Add-a-Wayland-platform.patch b/0013-libobs-Add-a-Wayland-platform.patch new file mode 100644 index 0000000..759940d --- /dev/null +++ b/0013-libobs-Add-a-Wayland-platform.patch @@ -0,0 +1,30 @@ +From a0535494becd877747261ff18b545a4d77c980ff Mon Sep 17 00:00:00 2001 +From: Georges Basile Stavracas Neto +Date: Fri, 6 Mar 2020 18:53:42 -0300 +Subject: [PATCH 13/16] libobs: Add a Wayland platform + +Introduce the OBS_NIX_PLATFORM_WAYLAND enum value, and try to detect +it when OBS Studio runs by looking into the platform name. +--- + UI/CMakeLists.txt | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/UI/CMakeLists.txt b/UI/CMakeLists.txt +index 171efa2b..70d6da79 100644 +--- a/UI/CMakeLists.txt ++++ b/UI/CMakeLists.txt +@@ -408,6 +408,11 @@ if (ENABLE_WAYLAND) + include_directories(${Qt5Gui_PRIVATE_INCLUDE_DIRS}) + endif() + ++if (ENABLE_WAYLAND) ++ find_package(Qt5Gui) ++ include_directories(${Qt5Gui_PRIVATE_INCLUDE_DIRS}) ++endif() ++ + define_graphic_modules(obs) + + install_obs_core(obs) +-- +2.28.0 + diff --git a/0013-libobs-opengl-Introduce-an-EGL-Wayland-renderer.patch b/0014-libobs-opengl-Introduce-an-EGL-Wayland-renderer.patch similarity index 99% rename from 0013-libobs-opengl-Introduce-an-EGL-Wayland-renderer.patch rename to 0014-libobs-opengl-Introduce-an-EGL-Wayland-renderer.patch index 26ac490..d360c44 100644 --- a/0013-libobs-opengl-Introduce-an-EGL-Wayland-renderer.patch +++ b/0014-libobs-opengl-Introduce-an-EGL-Wayland-renderer.patch @@ -1,7 +1,7 @@ -From 7fd9f95fee70ec8d604797db4a0de77e58c6e32d Mon Sep 17 00:00:00 2001 +From 35be3fc4cc65ca86329cf1156e1256249096606b Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Mon, 9 Mar 2020 21:09:11 -0300 -Subject: [PATCH 13/15] libobs-opengl: Introduce an EGL/Wayland renderer +Subject: [PATCH 14/16] libobs-opengl: Introduce an EGL/Wayland renderer Introduce a new Wayland/EGL renderer. --- diff --git a/0014-UI-Retrieve-Wayland-surface-from-QWindow.patch b/0015-UI-Retrieve-Wayland-surface-from-QWindow.patch similarity index 95% rename from 0014-UI-Retrieve-Wayland-surface-from-QWindow.patch rename to 0015-UI-Retrieve-Wayland-surface-from-QWindow.patch index b46f02f..8e91bd4 100644 --- a/0014-UI-Retrieve-Wayland-surface-from-QWindow.patch +++ b/0015-UI-Retrieve-Wayland-surface-from-QWindow.patch @@ -1,7 +1,7 @@ -From ded1e2a0201d3160ff1b427bab104870f29d516b Mon Sep 17 00:00:00 2001 +From 9a69ae56d2204501b45cf7b5471279e7d61e65ba Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Mon, 9 Mar 2020 21:23:37 -0300 -Subject: [PATCH 14/15] UI: Retrieve Wayland surface from QWindow +Subject: [PATCH 15/16] UI: Retrieve Wayland surface from QWindow On Wayland, we want to query the window's underlying platform for the Wayland surface, instead of foolishly diff --git a/0016-UI-Destroy-obs_display-when-becoming-invisible.patch b/0016-UI-Destroy-obs_display-when-becoming-invisible.patch new file mode 100644 index 0000000..e45a6da --- /dev/null +++ b/0016-UI-Destroy-obs_display-when-becoming-invisible.patch @@ -0,0 +1,52 @@ +From 7e2e627ebf4d9f52afebb7dcda95429f68362f32 Mon Sep 17 00:00:00 2001 +From: Georges Basile Stavracas Neto +Date: Tue, 18 Aug 2020 19:38:29 -0300 +Subject: [PATCH 16/16] UI: Destroy obs_display when becoming invisible + +When a window is made invisible, then visible again, the +obs_display is reused. Turns out, QT destroys the wl_surface +associated with the previewer on Wayland. However, the EGL +surface created on top of this wl_surface is not, and any +attempt to attach a new buffer to it will crash OBS. + +Destroy the obs_display when becoming invisible, and when +running as a Wayland client. +--- + UI/qt-display.cpp | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git a/UI/qt-display.cpp b/UI/qt-display.cpp +index 685ee6f9..fc83e0e0 100644 +--- a/UI/qt-display.cpp ++++ b/UI/qt-display.cpp +@@ -6,6 +6,12 @@ + #include + #include + ++#include ++ ++#ifdef ENABLE_WAYLAND ++#include ++#endif ++ + static inline long long color_to_int(const QColor &color) + { + auto shift = [&](unsigned val, int shift) { +@@ -33,8 +39,13 @@ OBSQTDisplay::OBSQTDisplay(QWidget *parent, Qt::WindowFlags flags) + setAttribute(Qt::WA_NativeWindow); + + auto windowVisible = [this](bool visible) { +- if (!visible) ++ if (!visible) { ++#ifdef ENABLE_WAYLAND ++ if (obs_get_nix_platform() == OBS_NIX_PLATFORM_WAYLAND) ++ display = nullptr; ++#endif + return; ++ } + + if (!display) { + CreateDisplay(); +-- +2.28.0 + diff --git a/PKGBUILD b/PKGBUILD index e865b91..13d815e 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -7,7 +7,7 @@ pkgname=$_pkgname-wayland provides=("$_pkgname") conflicts=("$_pkgname") pkgver=25.0.8 -pkgrel=1 +pkgrel=2 pkgdesc="Free, open source software for live streaming and recording (with wayland patches)" arch=('x86_64') url="https://obsproject.com" @@ -38,25 +38,29 @@ source=( 0010-linux-capture-Fail-to-load-when-running-on-EGL.patch 0011-libobs-Add-a-Wayland-platform.patch 0012-libobs-opengl-Try-to-use-the-platform-display-if-ava.patch - 0013-libobs-opengl-Introduce-an-EGL-Wayland-renderer.patch - 0014-UI-Retrieve-Wayland-surface-from-QWindow.patch + 0013-libobs-Add-a-Wayland-platform.patch + 0014-libobs-opengl-Introduce-an-EGL-Wayland-renderer.patch + 0015-UI-Retrieve-Wayland-surface-from-QWindow.patch + 0016-UI-Destroy-obs_display-when-becoming-invisible.patch ) sha512sums=('a97c03dc218a4e03e48f6a7dc82b4a59ebeee2039f17be66bb847681ce9ff3d25e6e015be4af78fe44739f6fad5089b6e683d7657c2e4fde8e547df9a2594a08' '1ff0e088eed61554268009f3d8c5a23c0888bfbe860d6cb288ddf348108446c152fd87e2cb8f54613a88378d8474550632c90f924005d5e0343bf1a801339ccc' - 'bfe2b0e6da69ffdca95229eb4015515148fdda909355add1d2dec71cf97e9fdabdfc832c74f455a890846708f28d5bcbec64589e853904d539a438b2dcbd7a18' - '5221b6a7a46f99c58cde1c5406f83d50def2d5b3a2e97be7db759d94d74a5be46da092209e6a4122a6de4b704632c3f013535f80b570349b029ea4124151c4f6' - 'c9a0660c95bd18a02620fb0b870032563669544e7a721e4d91dafb8aebb96d1735414a9e37ed56355fc5afeb8f437a434b4fd5f147c9658cc6974e8e8bab4463' - '0b404ff252f94bcdd957d43db26c54c6b47de5a8f810f4febdb0aa5b873c48f23ef2817361e5ce9c09a189e770978cfca24767167604434ece771d759e7c4270' - '47f5bffb469ece2b961000cd2d8656b82cba8ac0fa09fa7703c662e0cee2e48744d5b8aa93a4b4508436ea5edfe3038fa7aa88a3b43466f88c7504e6a8ba51ed' - 'd15c21968a3024888ce4c8e884d861f147358e95a42c1de557251a4c2fccbdddf9cf5a285deedbf73cffbd25fdaad44dd972cb10bf9a5b23a0049b239e75961f' - 'c1f94ccd836c51ff83735df614bf6d3e2c310c599685e700ae5726ace20434edd04ef0c9be0a8c0f4c458dd164ad1ac817fd32bcbeeefb0107a6ce4cbce9cb08' - '6ce870404a6d2bfbb25935a6da59a07447307f8592dd1dc1aaebba2b9f959633565ba4cdc7d50ee3c4e5b4c169397298daa5804c3060fc780dba52099f687393' - '6374229b662949e2989eb372a922fda872d2a08e817690b2262f99dc8a02261a75aeeacfc40da2b68a04228b38cda4aeaca4212068e8605b7532662dc459abb4' - '16dfa319e9e18ef8e946b9723e27d1ea1f56e4de8656d8112571bc87aa7ade8dbda4293f064c2477cdaf92c60fca4484b2c7ac322835bf402657275933f6ab52' - 'c81a421475293d3d5c64a744c10a925dc26975a6dfd46e1b3b2a92931da43c311d0a153548889b4e9831bee61ab8b0f5fc504ad3f0ed7f0628f93287e12ad3d3' - 'ea36fee6228d582f5f3b886a3de61ad8b139691c3bf30e24a7b20f1eab2f9e43b0dfbf6f254dcef00e2bfbf6826f223a957d3e78524ebd864c64433529e40441' - 'a93f186ed24ee979a4297aa063c435ae541f5f1958b86373f6534a2dd85e2178d6f151f115200c987b5e1d999ebd94d6ce0597ef1e7b3588bcb161c53dd4878e' - 'c4e6a23edf080076c27599e02909a068b11094848f733297496e7ea0061df56be4becdb58449ec7a05ff2a659fa4c0f75f4006cb204578477308d24d764fba41') + '6329e08da95e345509001ab6b9e8b73a227d0e63a8d39a3ef9b7d0197940ea9589d39b4aa92cdcc9f21cc4b9110a97f8e80891a12b4b24dff6d23395379abf5c' + 'b05346b83587d2fe3fbc676a14aca961f05fa58c6912f82fed9e15a4b9fcacce297921003b41980c57ba09c4623d50c905a7c50961c2269a9709fcb67a088002' + '6f38fd7f6f5a29d05b6dd824af1de6072ebd692c96940ba74e5d1799e21754230010fd70cd2f1ce830a0701d25b07cfbae8cbe49f89ba085cd2dec6796a7790d' + '14979eef47ab1d6e88ab77c35ab00a5e8297d1ed332bb397b8d3906e68c6ffa0b4e0761ef0dfff0221c7e22f5fb709e5bb11b87e046116bb3996df270e3b7b43' + 'db6a8d54e86f58f1adecb0f09ab5660ae0d06f4aa8bd0ea2e61da601ae82fd53a3b4c6db96d5827709e700843b70cc5a72851c0d429e3ec05bef250ed48445a0' + 'f0374c85bd93928a32d60a9516c90c1b2e3537b84f949066110897f05224a568dd57f2cd9d141b0cfa8e89672b081dac3c64304523fcf37f0c018ca78ad71625' + 'dcdca90cfd701aad02ba12dee9a6482ca9066ff817e6e24bb3d0d6dfbbc48e8e98eb02517983802c66cade34c0d347aec817fe98da8baa7f5fff9187201e9a00' + '64e4adef34a1074410245120d828871c128ee8254d77378cd7b74fe0182abaffdbff6669990a75464335b33d83641893b73e618c7322e1fe3186a748eab07e79' + '64ca66913ade6b28815aa06383089e1c9aaa7a2b50cd425be8876d0a95338615be844a362a55c02541681d51f1921cb0820554f49fe21786649076ca16f6f64b' + 'a917037dc63bfdd8d2d04b2d3f625eb9c8ec26868ca2eeef23d78f3442c8233252d86285b771e1c1428408508aedff4407aec5bdc9ef233fda995483fdab4202' + '013adb73a718f5df05a055de0e5fa17701dc645d8e7025ff1192d99a405dd6a0923fcfdbbad37777ff993545aadf9d4d29bae7191c6505f9f929273d5b374ee2' + '34710dbf905e6af2d7af3feab9f55c867dcbac6afa0ab6a12f7c458b974ba71e14ef797e9db613d3248c046dee1c1dce8559ceeaf1d95d1215368032e642731d' + 'e131c7a65ce0e848f0b91bfd4b3db750bc0bddce64a9ff49d97082ddafb9ddab92f43ea19a2c92b054e85df0f018f43ff5dc8cf81671520079e4e4681d5ac230' + 'cefa4f5032a06e9341ccdabef022d755c8869b391a33ed5c4bd927672f967d5287d4c017cb7b2d37c163c9f387ca94d5846327461a9ba3b44478ed67a60d6a9f' + 'e406d3f16f17b35ce463120eefd2bea3797fa83304ea27628b9a671704451c4a275d6844b0f007997e3a6edc39557442c6eb9eb8b6dc2a50e07341e3b0621e1f' + '6c1cd77e63f760aabb9186edb906092bb9f6a7b2e7bd32deff4af33b5f35e95abe7ff874b6a17112d3da098f970f706c0a05f239fc75b65e60f4c68ae544eacf') prepare() { cd $_pkgname-$pkgver