commit:     fe13fd14d67a9ff1046b8ee8ecf065836b20300a
Author:     Johannes Huber <johu <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 11 20:50:52 2015 +0000
Commit:     Johannes Huber <johu <AT> gentoo <DOT> org>
CommitDate: Thu Jun 11 20:50:52 2015 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=fe13fd14

[kde-plasma/kwin] Upstream patch to fix gles2 support, bug #551448

Thanks to Dennis Schridde <devurandom <AT> gmx.net>.

Package-Manager: portage-2.2.20

 kde-plasma/kwin/files/kwin-5.3.1-gles2.patch | 47 ++++++++++++++++++++++++++++
 kde-plasma/kwin/kwin-5.3.49.9999.ebuild      |  2 ++
 2 files changed, 49 insertions(+)

diff --git a/kde-plasma/kwin/files/kwin-5.3.1-gles2.patch 
b/kde-plasma/kwin/files/kwin-5.3.1-gles2.patch
new file mode 100644
index 0000000..cf4d859
--- /dev/null
+++ b/kde-plasma/kwin/files/kwin-5.3.1-gles2.patch
@@ -0,0 +1,47 @@
+commit 713c6b25dce2fc60184ddc7b618b0b1195ab9870
+Author: Martin Gräßlin <mgraess...@kde.org>
+Date:   Fri May 8 08:53:34 2015 +0200
+
+    [kwinglutils] Init glVersion on gles
+    
+    The glVersion was not set at all for gles causing any code doing a
+    hasGLVersion check to fail which means that the compositor doesn't
+    start at all, because it has a hasGLVersion(2, 0) check.
+    
+    The complete ifdef is no longer needed. The used additional glGetStringi
+    is also available in gles 3.0, thus epoxy can handle it quite well
+    without a need for ifdef.
+    
+    Unfortunately the version string can be "strange" on GLES. On desktop
+    it looks like: "3.0 some driver foo", on GLES it could also be:
+    "OpenGL ES 3.0 some driver bar". Thus to make the logic work we are
+    first removing any leading "OpenGL ES " and hope that then the version
+    is encoded just like on GL.
+
+diff --git a/libkwineffects/kwinglutils.cpp b/libkwineffects/kwinglutils.cpp
+index 8830c44..fd2e217 100644
+--- a/libkwineffects/kwinglutils.cpp
++++ b/libkwineffects/kwinglutils.cpp
+@@ -106,11 +106,12 @@ void initGL(OpenGLPlatformInterface platformInterface)
+ {
+     // Get OpenGL version
+     QString glversionstring = QString::fromUtf8((const 
char*)glGetString(GL_VERSION));
++    if (glversionstring.startsWith(QLatin1String("OpenGL ES "))) {
++        glversionstring = glversionstring.mid(10);
++    }
+     QStringList glversioninfo = 
glversionstring.left(glversionstring.indexOf(QStringLiteral(" 
"))).split(QStringLiteral("."));
+     while (glversioninfo.count() < 3)
+         glversioninfo << QStringLiteral("0");
+-
+-#ifndef KWIN_HAVE_OPENGLES
+     glVersion = MAKE_GL_VERSION(glversioninfo[0].toInt(), 
glversioninfo[1].toInt(), glversioninfo[2].toInt());
+ 
+     // Get list of supported OpenGL extensions
+@@ -123,7 +124,6 @@ void initGL(OpenGLPlatformInterface platformInterface)
+             glExtensions << name;
+         }
+     } else
+-#endif
+         glExtensions = QByteArray((const 
char*)glGetString(GL_EXTENSIONS)).split(' ');
+ 
+     // handle OpenGL extensions functions

diff --git a/kde-plasma/kwin/kwin-5.3.49.9999.ebuild 
b/kde-plasma/kwin/kwin-5.3.49.9999.ebuild
index 524e9ac..ca541e2 100644
--- a/kde-plasma/kwin/kwin-5.3.49.9999.ebuild
+++ b/kde-plasma/kwin/kwin-5.3.49.9999.ebuild
@@ -73,6 +73,8 @@ DEPEND="${COMMON_DEPEND}
        test? ( x11-libs/xcb-util-wm )
 "
 
+PATCHES=( "${FILESDIR}/${PN}-5.3.1-gles2.patch" )
+
 src_configure() {
        local mycmakeargs=(
                $(cmake-utils_use_find_package wayland)

Reply via email to