summaryrefslogtreecommitdiff
path: root/dev-qt/qtgui
diff options
context:
space:
mode:
Diffstat (limited to 'dev-qt/qtgui')
-rw-r--r--dev-qt/qtgui/Manifest3
-rw-r--r--dev-qt/qtgui/files/qtgui-5.9.4-opengl.patch87
-rw-r--r--dev-qt/qtgui/qtgui-5.9.4-r3.ebuild (renamed from dev-qt/qtgui/qtgui-5.9.4.ebuild)6
3 files changed, 95 insertions, 1 deletions
diff --git a/dev-qt/qtgui/Manifest b/dev-qt/qtgui/Manifest
index 822226f1d0da..7f740f2c5e1b 100644
--- a/dev-qt/qtgui/Manifest
+++ b/dev-qt/qtgui/Manifest
@@ -4,6 +4,7 @@ AUX qtgui-4.8.5-qclipboard-delay.patch 1135 BLAKE2B 5972ab258ba5c60346f83a0c402e
AUX qtgui-5.7.1-qclipboard.patch 1791 BLAKE2B a7753b78631bab6774ab5bd20deba153ee44dd41202531824571ff0596f9b731958b125a75fe464d8039bc327e5588f53f70b3be4c5a4eb640bf77af554d5552 SHA512 c765e7f1cf2e10b4fa90b2c4e3a4a39c9001996d4837eb86c1d298531dd30fc1f6a215addfd1bec88526451d7b2ff3ba8a53a330776c94851e79b1964336759c
AUX qtgui-5.7.1-x32.patch 1161 BLAKE2B 5d475369d8a6312f0a2ab205b64739c9d7fd8b44132b10b00d29fb774ad837c45d6f50b4af776f7fa5fc2b19de9068922d1df5951084c5770e8a23f57b14f9c9 SHA512 61f6cc40c2897e17c0a71cb1d79bf8e6c69cbacf6409ae0d96f485584bd6a930484ecff709c208ca78335418e022c68151d096505f5db2179cb6c4c8b065c116
AUX qtgui-5.9.4-libinput-pixeldelta.patch 3597 BLAKE2B 88f54e4c832f132472aea296e8bcc4cf318456af48db3e260eed30b620acf98af0cfa2abd6d396a1396be678e133f5721cccbc79877d4f8934606aba6a0d6d39 SHA512 47aa0fb3971cd956d08fac4ace0b98b4034178d00c89db3fe31060d548acb8a075621dc2fb43ef0357dee79a927f82a7626e6cdf784b009028ae1435f68176d4
+AUX qtgui-5.9.4-opengl.patch 3586 BLAKE2B 56e5192b0455c8d6ccd307466fe9583c7ac8f3a6114bc3bfed62dad36aa7f72eb505452da4fd2af1ea3b2bb24241ac1716332064e5a97d0c97951ea92ddd55a6 SHA512 d77fbd4e44d32f70b9047f7ae4531684e7d142b659be03ead0bce0252635a6bd35eaa8cd5d0cbcca59a19ee740f809ca6ad950dd199805fa6a379e41fbb68582
AUX qtgui-5.9.4-qsimpledrag.patch 6887 BLAKE2B 9da87acfe69c1cb8b1dd92b05a7b919d01227d0aa1316adfe97261bd59a7e0eb3b1e6d9b0896cc2f6a6a64eac3f31f72039a3acc2767998a668656acc8d8ffc2 SHA512 8229b87a40287c3c6e74d5aec9bfc346a1e0f7002687ba661573566ff5f700c99819850fc97f07d3a36d63ba83348f2ab315f835e44abce22242b4d1f29e7c7b
DIST qt-everywhere-opensource-src-4.8.7.tar.gz 241075567 BLAKE2B 6e9b8870692c36e894dc401b65fa38961cf7d033cd712770c273fd45b3221720648087c53787eae7d455c417d64e09f716da48377837fb5f2b52b901d06b1cf3 SHA512 f9f81a2e7205e1fd05c8d923dc73244f29aa33f951fa6b7c5c8193449328b37084796b9b71ad0c317e4e6fd00017c10ea5d67b1b2032551cde00548522218125
DIST qtbase-opensource-src-5.7.1.tar.xz 44992616 BLAKE2B d845ff8316f6f91089e23b74c025ad8e6160eb7ba75017cba34c2ad2f7b475fc4e36d337b945935bc2850bd140d743b9a5e3d23399b6d3151b85109da9f56ba8 SHA512 0506a3a856f76e5ba182e3382a515282b6096f3900fbdc14cd5aec425105ab61922e0ada0361234387335ceb80b3c69e39cd34d75476c2946c4371e7b8c0827f
@@ -13,5 +14,5 @@ EBUILD qtgui-4.8.7.ebuild 5656 BLAKE2B 4f91f3c72d65000c97d04dbc443b0a1214486f0c4
EBUILD qtgui-5.7.1-r1.ebuild 3792 BLAKE2B 0a65c076358bcacde64a74df90e471d4fdde27308b88556c7dc66563f9ffaafae2cf2d073cfd6232a31a488f240f357960a9daa8989c203bc904b710b8d7555f SHA512 f8d57932f30b17ea72cdebe7aa268e022df15a29bc3c3e2789f8c68b54a29e89d8c9b9a489cd6d5492e88dbc6f35cd9872d02ce920ef7b8d17878bfbfee10a7e
EBUILD qtgui-5.9.4-r1.ebuild 3610 BLAKE2B 0b8403f242e97209bca6e2fad465b878d24be22e1616b5b30c01a15c6ff08de8843eaffdc7e3b3c74ab942c2b8a4e77ea833a529740801a3b878a39672ca53ab SHA512 03d925259cfee10866fecebf77db94f022c29e28321668c28ac7a29aad4eae444e30084ef8871161821f520f54dbec609f1298931ab57dda1b9a8a20222f8041
EBUILD qtgui-5.9.4-r2.ebuild 3670 BLAKE2B 5778249b6d54bddf3884a4a779d82051361f4ae09057296652068511a7332cb8e12e752ecd3ee5b31b7d667c9a3a64b36f77a84bd84cbe180473f45fb00dc851 SHA512 00468fc85218311e9995768bba0fd6eeebbfdc2b941ed41f829b9c26c31705cde9737cdce4652a57b8d65016ab8d581e6b6df0899d5b6072a9fec87ff47bfea8
-EBUILD qtgui-5.9.4.ebuild 3545 BLAKE2B fb542e056bdc514c590b44916fe4b0cd7abbe482e5c01a684414a75071bfada21aa1af2ebdda35ded51f9aac4ef065411ba9e7f5ddddb818980479ff4205076e SHA512 5a23e97f9b44365c28ebc73cfde6f2656c78a2b0fa18073f4107e2bec61b4147771cf8a87f59f29e8ae39385a389f92150b7881a54b6ceb9fb45b110b5221df0
+EBUILD qtgui-5.9.4-r3.ebuild 3717 BLAKE2B 2d1382e85d9cb95eb85d55f7bcbcfcdf3e8c073baeb8495dbdfdbe42ab8503d7d94e7fcb6fd071c673ee9c312f12a76c35a780517a70aec0b17dd84d0590395e SHA512 f370e7dfe883cd2bc0824c26b1d92af9e89c33451e7af804173cc49ef9a586c9f1d395bd9b2157b74066e0da7d0c6316dfa61463f28308890dac980a789312d1
MISC metadata.xml 1862 BLAKE2B 062b123eab07ca09b1b6d63a9ce814a921b523c1861552a4f12903ccc8f627cf78e240d322c52b3a404ff154822a9cb42f894da5bc74a924d89dd51a42576115 SHA512 cba45629873eba71f152885640e51ad324b0dbb702c45811b4a1785a0af3baa7ce39923dfd0dbf7748d604e9a053d6580defdad75ad5ae228d37424d9b54e530
diff --git a/dev-qt/qtgui/files/qtgui-5.9.4-opengl.patch b/dev-qt/qtgui/files/qtgui-5.9.4-opengl.patch
new file mode 100644
index 000000000000..2a447414c215
--- /dev/null
+++ b/dev-qt/qtgui/files/qtgui-5.9.4-opengl.patch
@@ -0,0 +1,87 @@
+From b63aeba4a88088c7de61c1664a510c02d38ade84 Mon Sep 17 00:00:00 2001
+From: Antonio Larrosa <alarrosa@suse.com>
+Date: Fri, 16 Feb 2018 13:18:42 +0100
+Subject: [PATCH] opengl: Bail if cached shader fails to load
+
+QOpenGLProgramBinaryCache::setProgramBinary() should check
+GL_LINK_STATUS after glProgramBinary(), but doesn't.
+
+In practice, this means that SDDM is a white screen, and KDE is just
+a gray task bar.
+
+So far, Qt tries to check this using its internal ::link() function.
+But in case the cached binary fails to load, Qt currently attempts to
+link the inexistent program, resulting in a zero-length, fixed
+pipeline shader.
+
+Checking this already in ::setProgramBinary() makes the call to
+::link() superfluous, so we remove that as well.
+
+Done-with: Max Staudt <mstaudt@suse.com>
+Done-with: Michal Srb <msrb@suse.com>
+Done-with: Fabian Vogt <fvogt@suse.de>
+Task-number: QTBUG-66420
+Change-Id: Iabb51d0eb2c0c16bde696efff623e57d15f28d82
+Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
+Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
+(cherry picked from commit fa091640134b3ff99a9eb92df8286d15203122bf)
+---
+ src/gui/opengl/qopenglprogrambinarycache.cpp | 20 ++++++++++++++++++--
+ src/gui/opengl/qopenglshaderprogram.cpp | 8 +-------
+ 2 files changed, 19 insertions(+), 9 deletions(-)
+
+diff --git a/src/gui/opengl/qopenglprogrambinarycache.cpp b/src/gui/opengl/qopenglprogrambinarycache.cpp
+index 06373e1..d16173d 100644
+--- a/src/gui/opengl/qopenglprogrambinarycache.cpp
++++ b/src/gui/opengl/qopenglprogrambinarycache.cpp
+@@ -161,10 +161,26 @@ bool QOpenGLProgramBinaryCache::setProgramBinary(uint programId, uint blobFormat
+ QOpenGLExtraFunctions *funcs = QOpenGLContext::currentContext()->extraFunctions();
+ while (funcs->glGetError() != GL_NO_ERROR) { }
+ funcs->glProgramBinary(programId, blobFormat, p, blobSize);
+- int err = funcs->glGetError();
++
++ GLenum err = funcs->glGetError();
++ if (err != GL_NO_ERROR) {
++ qCDebug(DBG_SHADER_CACHE, "Program binary failed to load for program %u, size %d, "
++ "format 0x%x, err = 0x%x",
++ programId, blobSize, blobFormat, err);
++ return false;
++ }
++ GLint linkStatus = 0;
++ funcs->glGetProgramiv(programId, GL_LINK_STATUS, &linkStatus);
++ if (linkStatus != GL_TRUE) {
++ qCDebug(DBG_SHADER_CACHE, "Program binary failed to load for program %u, size %d, "
++ "format 0x%x, linkStatus = 0x%x, err = 0x%x",
++ programId, blobSize, blobFormat, linkStatus, err);
++ return false;
++ }
++
+ qCDebug(DBG_SHADER_CACHE, "Program binary set for program %u, size %d, format 0x%x, err = 0x%x",
+ programId, blobSize, blobFormat, err);
+- return err == 0;
++ return true;
+ }
+
+ #ifdef Q_OS_UNIX
+diff --git a/src/gui/opengl/qopenglshaderprogram.cpp b/src/gui/opengl/qopenglshaderprogram.cpp
+index cc8af16..3b82bac 100644
+--- a/src/gui/opengl/qopenglshaderprogram.cpp
++++ b/src/gui/opengl/qopenglshaderprogram.cpp
+@@ -3824,13 +3824,7 @@ bool QOpenGLShaderProgramPrivate::linkBinary()
+ bool needsCompile = true;
+ if (binCache.load(cacheKey, q->programId())) {
+ qCDebug(DBG_SHADER_CACHE, "Program binary received from cache");
+- linkBinaryRecursion = true;
+- bool ok = q->link();
+- linkBinaryRecursion = false;
+- if (ok)
+- needsCompile = false;
+- else
+- qCDebug(DBG_SHADER_CACHE, "Link failed after glProgramBinary");
++ needsCompile = false;
+ }
+
+ bool needsSave = false;
+--
+2.7.4
+
diff --git a/dev-qt/qtgui/qtgui-5.9.4.ebuild b/dev-qt/qtgui/qtgui-5.9.4-r3.ebuild
index 16af003c8d1f..91c5ac088c3a 100644
--- a/dev-qt/qtgui/qtgui-5.9.4.ebuild
+++ b/dev-qt/qtgui/qtgui-5.9.4-r3.ebuild
@@ -71,6 +71,12 @@ PDEPEND="
ibus? ( app-i18n/ibus )
"
+PATCHES=(
+ "${FILESDIR}/${P}-qsimpledrag.patch" # QTBUG-66103
+ "${FILESDIR}/${P}-libinput-pixeldelta.patch" # QTBUG-59261
+ "${FILESDIR}/${P}-opengl.patch" # QTBUG-66420
+)
+
QT5_TARGET_SUBDIRS=(
src/gui
src/openglextensions