diff options
Diffstat (limited to 'dev-qt/qtgui')
-rw-r--r-- | dev-qt/qtgui/Manifest | 3 | ||||
-rw-r--r-- | dev-qt/qtgui/files/qtgui-5.9.4-opengl.patch | 87 | ||||
-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 |