Roles/kde: add kwin and plasma-workspace patches
This commit is contained in:
parent
b6bd1ec321
commit
77edacc9d4
4 changed files with 958 additions and 0 deletions
41
roles/kde/patches/kwin-pr6985.patch
Normal file
41
roles/kde/patches/kwin-pr6985.patch
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
From 45a5d8844b36404334301f5da6e75f1a345e0c80 Mon Sep 17 00:00:00 2001
|
||||
From: Xaver Hugl <xaver.hugl@gmail.com>
|
||||
Date: Fri, 10 Jan 2025 13:45:30 +0000
|
||||
Subject: [PATCH] plugins/screencast: call ItemRenderer::begin/endFrame
|
||||
|
||||
The OpenGL renderer references the explicit sync release points for client buffers
|
||||
during rendering, and releases them in endFrame. If endFrame never gets called though
|
||||
(for example because we're doing direct scanout) then the release points never get
|
||||
signaled, and the client very quickly runs out of buffers to use and freezes.
|
||||
|
||||
BUG: 495287
|
||||
|
||||
|
||||
(cherry picked from commit b1031ea63eaa8c9bf5c70157d1b6bf8eb0f5a74a)
|
||||
|
||||
Co-authored-by: Xaver Hugl <xaver.hugl@gmail.com>
|
||||
---
|
||||
src/plugins/screencast/windowscreencastsource.cpp | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/plugins/screencast/windowscreencastsource.cpp b/src/plugins/screencast/windowscreencastsource.cpp
|
||||
index 24ef92aad7b..b396eed46f9 100644
|
||||
--- a/src/plugins/screencast/windowscreencastsource.cpp
|
||||
+++ b/src/plugins/screencast/windowscreencastsource.cpp
|
||||
@@ -75,11 +75,11 @@ void WindowScreenCastSource::render(GLFramebuffer *target)
|
||||
RenderTarget renderTarget(target);
|
||||
RenderViewport viewport(m_window->clientGeometry(), 1, renderTarget);
|
||||
|
||||
- GLFramebuffer::pushFramebuffer(target);
|
||||
+ Compositor::self()->scene()->renderer()->beginFrame(renderTarget, viewport);
|
||||
glClearColor(0.0, 0.0, 0.0, 0.0);
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
Compositor::self()->scene()->renderer()->renderItem(renderTarget, viewport, m_window->windowItem(), Scene::PAINT_WINDOW_TRANSFORMED, infiniteRegion(), WindowPaintData{});
|
||||
- GLFramebuffer::popFramebuffer();
|
||||
+ Compositor::self()->scene()->renderer()->endFrame();
|
||||
}
|
||||
|
||||
std::chrono::nanoseconds WindowScreenCastSource::clock() const
|
||||
--
|
||||
GitLab
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue