Fix qtwayland patch

This commit is contained in:
jalr 2021-12-05 15:33:05 +00:00
parent 1dab9bb303
commit ea29d6fb63
2 changed files with 21 additions and 39 deletions

View file

@ -1,28 +1,27 @@
{ nixosConfig, pkgs, ... }:
# requires patched qt, see https://github.com/obsproject/obs-studio/issues/4295
let
patchedQt = pkgs.qt5.overrideScope' (
selfqt: superqt: {
qtwayland = (
(pkgs.qt5.qtwayland.overrideAttrs (o: o // {
patches = o.patches ++ [
./qtwayland-PATCH-Fix-surfaces-updating-without-a-frame-callback.patch
];
}))
);
}
);
in
{
programs.obs-studio = {
enable = nixosConfig.myConfig.gui.enable;
plugins = with pkgs; [
obs-studio-plugins.wlrobs
];
package = (pkgs.obs-studio.overrideAttrs (oldAttrs: rec {
qtbase = patchedQt.qtbase;
}));
# requires patched qt, see https://github.com/obsproject/obs-studio/issues/4295
package =
let
qtwayland = pkgs.qt5.qtwayland.overrideAttrs (o: o // {
patches = o.patches ++ [
./qtwayland-PATCH-Fix-surfaces-updating-without-a-frame-callback.patch
];
});
in
pkgs.runCommand "obs-studio-qt-fix-wrapped"
{
nativeBuildInputs = with pkgs; [ makeWrapper ];
} ''
makeWrapper ${pkgs.obs-studio}/bin/obs $out/bin/obs \
--prefix QT_PLUGIN_PATH : ${qtwayland} \
--prefix QML2_IMPORT_PATH : ${qtwayland}
'';
};
}

View file

@ -1,28 +1,11 @@
From e3879c175b73a68bdac41b396f4428ebb9437d5b Mon Sep 17 00:00:00 2001
From: Geoffrey Casper <gcasper42@gmail.com>
Date: Thu, 4 Mar 2021 14:07:44 -0500
Subject: [PATCH] [PATCH] Fix surfaces updating without a frame callback
Created by @gammafn
Shared by @progandy and @xPMo
---
src/client/qwaylandwindow.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
index 9b343702..29882b6e 100644
--- a/src/client/qwaylandwindow.cpp
+++ b/src/client/qwaylandwindow.cpp
@@ -1164,7 +1164,8 @@ void QWaylandWindow::requestUpdate()
void QWaylandWindow::handleUpdate()
{
qCDebug(lcWaylandBackingstore) << "handleUpdate" << QThread::currentThread();
- // TODO: Should sync subsurfaces avoid requesting frame callbacks?
@@ -1188,6 +1188,8 @@
return;
// TODO: Should sync subsurfaces avoid requesting frame callbacks?
+ if(mWaitingForFrameCallback)
+ return;
QReadLocker lock(&mSurfaceLock);
if (!mSurface)
return;
--
2.29.3