commit:     1fef823107b59e072d6d6f03b8ff261bc7830aff
Author:     Julien Roy <julien <AT> jroy <DOT> ca>
AuthorDate: Sat Mar  2 20:16:10 2024 +0000
Commit:     Yixun Lan <dlan <AT> gentoo <DOT> org>
CommitDate: Sun Mar  3 00:54:46 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1fef8231

gui-wm/hyprland: Add patch to fix compilation using 
gui-wm/hyprland[legacy-renderer]

Closes: https://bugs.gentoo.org/925912
Closes: https://github.com/gentoo/gentoo/pull/35604
Signed-off-by: Julien Roy <julien <AT> jroy.ca>
Signed-off-by: Yixun Lan <dlan <AT> gentoo.org>

 gui-wm/hyprland/files/legacy-renderer-fix.patch    | 33 ++++++++++++++++++++++
 ...-0.35.0-r1.ebuild => hyprland-0.35.0-r2.ebuild} |  4 +++
 ...and-0.36.0.ebuild => hyprland-0.36.0-r1.ebuild} |  4 +++
 3 files changed, 41 insertions(+)

diff --git a/gui-wm/hyprland/files/legacy-renderer-fix.patch 
b/gui-wm/hyprland/files/legacy-renderer-fix.patch
new file mode 100644
index 000000000000..a1ecbbd7ec5a
--- /dev/null
+++ b/gui-wm/hyprland/files/legacy-renderer-fix.patch
@@ -0,0 +1,33 @@
+# https://github.com/hyprwm/Hyprland/pull/4928
+# https://bugs.gentoo.org/925912
+diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp
+index 64f582f2..a6f2dc03 100644
+--- a/src/render/OpenGL.cpp
++++ b/src/render/OpenGL.cpp
+@@ -353,7 +353,11 @@ void CHyprOpenGLImpl::end() {
+     // check for gl errors
+     const GLenum ERR = glGetError();
+ 
++#ifdef GLES2
++    if (ERR == GL_CONTEXT_LOST_KHR) /* We don't have infra to recover from 
this */
++#else
+     if (ERR == GL_CONTEXT_LOST) /* We don't have infra to recover from this */
++#endif
+         RASSERT(false, "glGetError at Opengl::end() returned GL_CONTEXT_LOST. 
Cannot continue until proper GPU reset handling is implemented.");
+ }
+ 
+@@ -2057,7 +2061,13 @@ void 
CHyprOpenGLImpl::createBGTextureForMonitor(CMonitor* pMonitor) {
+     tex.m_vSize = IMAGESIZE * scale;
+ 
+     // copy the data to an OpenGL texture we have
+-    const GLint glIFormat = CAIROFORMAT == CAIRO_FORMAT_RGB96F ? GL_RGB32F : 
GL_RGBA;
++    const GLint glIFormat = CAIROFORMAT == CAIRO_FORMAT_RGB96F ?
++#ifdef GLES2
++        GL_RGB32F_EXT :
++#else
++        GL_RGB32F :
++#endif
++        GL_RGBA;
+     const GLint glFormat  = CAIROFORMAT == CAIRO_FORMAT_RGB96F ? GL_RGB : 
GL_RGBA;
+     const GLint glType    = CAIROFORMAT == CAIRO_FORMAT_RGB96F ? GL_FLOAT : 
GL_UNSIGNED_BYTE;
+ 

diff --git a/gui-wm/hyprland/hyprland-0.35.0-r1.ebuild 
b/gui-wm/hyprland/hyprland-0.35.0-r2.ebuild
similarity index 98%
rename from gui-wm/hyprland/hyprland-0.35.0-r1.ebuild
rename to gui-wm/hyprland/hyprland-0.35.0-r2.ebuild
index bd70e22a7247..81c8b1bbcb99 100644
--- a/gui-wm/hyprland/hyprland-0.35.0-r1.ebuild
+++ b/gui-wm/hyprland/hyprland-0.35.0-r2.ebuild
@@ -93,6 +93,10 @@ BDEPEND="
        virtual/pkgconfig
 "
 
+PATCHES=(
+       "${FILESDIR}/legacy-renderer-fix.patch"
+)
+
 pkg_setup() {
        [[ ${MERGE_TYPE} == binary ]] && return
 

diff --git a/gui-wm/hyprland/hyprland-0.36.0.ebuild 
b/gui-wm/hyprland/hyprland-0.36.0-r1.ebuild
similarity index 98%
rename from gui-wm/hyprland/hyprland-0.36.0.ebuild
rename to gui-wm/hyprland/hyprland-0.36.0-r1.ebuild
index cecf622b3be8..972fe7b33988 100644
--- a/gui-wm/hyprland/hyprland-0.36.0.ebuild
+++ b/gui-wm/hyprland/hyprland-0.36.0-r1.ebuild
@@ -94,6 +94,10 @@ BDEPEND="
        virtual/pkgconfig
 "
 
+PATCHES=(
+       "${FILESDIR}/legacy-renderer-fix.patch"
+)
+
 pkg_setup() {
        [[ ${MERGE_TYPE} == binary ]] && return
 

Reply via email to