summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'kde-plasma/kwin/files/kwin-5.3.1-gles2.patch')
-rw-r--r--kde-plasma/kwin/files/kwin-5.3.1-gles2.patch47
1 files changed, 47 insertions, 0 deletions
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 000000000000..cf4d859fe4ef
--- /dev/null
+++ b/kde-plasma/kwin/files/kwin-5.3.1-gles2.patch
@@ -0,0 +1,47 @@
+commit 713c6b25dce2fc60184ddc7b618b0b1195ab9870
+Author: Martin Gräßlin <mgraesslin@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