Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 10 Apr 2026 14:23:46 +0000
From:      Hiroki Tagato <tagattie@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 49e62cc39f54 - main - x11-wm/hyprland: Fix a few seconds of freeze when window is closing
Message-ID:  <69d907f2.3f100.4e48a956@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by tagattie:

URL: https://cgit.FreeBSD.org/ports/commit/?id=49e62cc39f5429fa5ef6ad0785b3da7230bf03f0

commit 49e62cc39f5429fa5ef6ad0785b3da7230bf03f0
Author:     Hiroki Tagato <tagattie@FreeBSD.org>
AuthorDate: 2026-04-10 14:21:48 +0000
Commit:     Hiroki Tagato <tagattie@FreeBSD.org>
CommitDate: 2026-04-10 14:23:37 +0000

    x11-wm/hyprland: Fix a few seconds of freeze when window is closing
    
    Reported by:    K. Solowoniuk (via private email)
---
 x11-wm/hyprland/Makefile                               |  1 +
 x11-wm/hyprland/files/patch-src_render_Framebuffer.cpp | 14 ++++++++++++++
 x11-wm/hyprland/files/patch-src_render_OpenGL.cpp      | 16 ++++++++++++++++
 3 files changed, 31 insertions(+)

diff --git a/x11-wm/hyprland/Makefile b/x11-wm/hyprland/Makefile
index ddaa2bf6a4d9..68d4f1b87035 100644
--- a/x11-wm/hyprland/Makefile
+++ b/x11-wm/hyprland/Makefile
@@ -1,6 +1,7 @@
 PORTNAME=	hyprland
 DISTVERSIONPREFIX=	v
 DISTVERSION=	0.54.3
+PORTREVISION=	1
 CATEGORIES=	x11-wm wayland
 MASTER_SITES=	https://github.com/hyprwm/Hyprland/releases/download/${DISTVERSIONFULL}/
 DISTNAME=	source-${DISTVERSIONFULL}
diff --git a/x11-wm/hyprland/files/patch-src_render_Framebuffer.cpp b/x11-wm/hyprland/files/patch-src_render_Framebuffer.cpp
new file mode 100644
index 000000000000..5cbe97c69b60
--- /dev/null
+++ b/x11-wm/hyprland/files/patch-src_render_Framebuffer.cpp
@@ -0,0 +1,14 @@
+--- src/render/Framebuffer.cpp.orig	2026-04-10 13:44:26 UTC
++++ src/render/Framebuffer.cpp
+@@ -136,5 +136,11 @@ void CFramebuffer::invalidate(const std::vector<GLenum
+     if (!isAllocated())
+         return;
+ 
++    GLint restoreFB = 0;
++    glGetIntegerv(GL_FRAMEBUFFER_BINDING, &restoreFB);
++
++    glBindFramebuffer(GL_FRAMEBUFFER, m_fb);
+     glInvalidateFramebuffer(GL_FRAMEBUFFER, attachments.size(), attachments.data());
++
++    glBindFramebuffer(GL_FRAMEBUFFER, restoreFB);
+ }
diff --git a/x11-wm/hyprland/files/patch-src_render_OpenGL.cpp b/x11-wm/hyprland/files/patch-src_render_OpenGL.cpp
new file mode 100644
index 000000000000..97fce13abb32
--- /dev/null
+++ b/x11-wm/hyprland/files/patch-src_render_OpenGL.cpp
@@ -0,0 +1,16 @@
+--- src/render/OpenGL.cpp.orig	2026-03-27 18:19:38 UTC
++++ src/render/OpenGL.cpp
+@@ -813,13 +813,9 @@ void CHyprOpenGLImpl::end() {
+     }
+ 
+     // invalidate our render FBs to signal to the driver we don't need them anymore
+-    m_renderData.pCurrentMonData->mirrorFB.bind();
+     m_renderData.pCurrentMonData->mirrorFB.invalidate({GL_STENCIL_ATTACHMENT, GL_COLOR_ATTACHMENT0});
+-    m_renderData.pCurrentMonData->mirrorSwapFB.bind();
+     m_renderData.pCurrentMonData->mirrorSwapFB.invalidate({GL_STENCIL_ATTACHMENT, GL_COLOR_ATTACHMENT0});
+-    m_renderData.pCurrentMonData->offloadFB.bind();
+     m_renderData.pCurrentMonData->offloadFB.invalidate({GL_STENCIL_ATTACHMENT, GL_COLOR_ATTACHMENT0});
+-    m_renderData.pCurrentMonData->offMainFB.bind();
+     m_renderData.pCurrentMonData->offMainFB.invalidate({GL_STENCIL_ATTACHMENT, GL_COLOR_ATTACHMENT0});
+ 
+     // reset our data


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69d907f2.3f100.4e48a956>