The nouveau drivers (especially for nv30 and nv40) do no gracefull deal with threaded calls into the driver. This is most problematic with apps using qtwebengine, like kmail for instance. There is no readily available fix for nouveau. For the mesa-13 series I had been applying an experimental patch to provide locking that was a quick hack by Ilia Mirkin, however it is a nasty hack and isn't the correct way to deal with it. The best approach currently (I'm aware of) is to disable GPU rendering within qtwebengine when the nouveau driver is detected. Fixing nouveau will require a significant overhaul of it's internal workings, and nobody appears to be directly addressing that for the moment. You can read more about it here: https://bugs.freedesktop.org/show_bug.cgi?id=91632 https://bugs.freedesktop.org/show_bug.cgi?id=98039 There is a patch floating around for qtwebengine:5.7, but it will need to be reworked to apply cleanly on top of gentoo source + patches. https://raw.githubusercontent.com/OpenMandrivaAssociation/qt5-qtwebengine/2e53a57ce5dd58f7ed06e715c9b0eeb7b2bd7718/disable-gpu-when-using-nouveau-boo-1005323.diff Reproducible: Always
Same problem :-(((
Be aware that aside from patching qtwebengine, you can manually work around this by setting the environment variable QT_XCB_FORCE_SOFTWARE_OPENGL=1. You don't have to set it globally, you can just set it for the processes causing problems.
*** Bug 616956 has been marked as a duplicate of this bug. ***
*** Bug 617094 has been marked as a duplicate of this bug. ***
(In reply to Reuben Martin from comment #2) > Be aware that aside from patching qtwebengine, you can manually work around > this by setting the environment variable QT_XCB_FORCE_SOFTWARE_OPENGL=1. > > You don't have to set it globally, you can just set it for the processes > causing problems. It doesn't work with grsec/PaX enabled.
*** Bug 629746 has been marked as a duplicate of this bug. ***
*** Bug 628844 has been marked as a duplicate of this bug. ***
(In reply to Reuben Martin from comment #2) > Be aware that aside from patching qtwebengine, you can manually work around > this by setting the environment variable QT_XCB_FORCE_SOFTWARE_OPENGL=1. > > You don't have to set it globally, you can just set it for the processes > causing problems. ahem, pardon a stupid question, but where am I expected to set this so it is applied automatically, not having to run the apps from terminal with this variable exported/prepended?
(In reply to kavol from comment #8) > (In reply to Reuben Martin from comment #2) > > Be aware that aside from patching qtwebengine, you can manually work around > > this by setting the environment variable QT_XCB_FORCE_SOFTWARE_OPENGL=1. > > > > You don't have to set it globally, you can just set it for the processes > > causing problems. > > ahem, pardon a stupid question, but where am I expected to set this so it is > applied automatically, not having to run the apps from terminal with this > variable exported/prepended? You can prepend the variable def to the executable defined within a .desktop file the same as you do in a terminal.
(In reply to Reuben Martin from comment #9) ... > You can prepend the variable def to the executable defined within a .desktop > file the same as you do in a terminal. thanks, but in that case I'd need to run it via that .desktop file, which isn't always sure and I'd have to do that in /usr/share/applications/ so it takes effect for all users but I guess that would collide/get overwritten by merging updates I was curious if there is some configfile to modify all that QT_* fancy stuff that gets set on session start, like some XDG_* vars can be found in /etc?
(In reply to kavol from comment #10) > I was curious if there is some configfile to modify all that QT_* fancy > stuff that gets set on session start, like some XDG_* vars can be found in > /etc? If you want to set it globally, you can create a file in /etc/env.d/ with the variable set in it (similar to other files you will find in that location). Make sure after creating the file to run "env-update". After that reboot, and any session started will have that variable set.
(In reply to Reuben Martin from comment #11) > If you want to set it globally, you can create a file in /etc/env.d/ with > the variable set in it (similar to other files you will find in that > location). Make sure after creating the file to run "env-update". After that > reboot, and any session started will have that variable set. that's what I did in the end, however this really applies *globally*, i.e. I get this set even when logging in via ssh etc. I was wondering what's the correct place to alter variables that are set when logging via displaymanager/starting up the desktop environment I just can't find right keywords for Google, or this just isn't well documented but StackExchange or so would be better place to ask probably, sorry for noise here, I didn't expect it to be that complicated and I hoped the answer might help others like me coming here via the crash thanks for all the info
*** Bug 638896 has been marked as a duplicate of this bug. ***
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/qt.git/commit/?id=938edc9a6b2179e4aabcf5ab340ebd64d90a77d1 commit 938edc9a6b2179e4aabcf5ab340ebd64d90a77d1 Author: Andreas Sturmlechner <asturm@gentoo.org> AuthorDate: 2018-06-18 21:05:49 +0000 Commit: Andreas Sturmlechner <asturm@gentoo.org> CommitDate: 2018-06-20 14:30:49 +0000 dev-qt/qtwebengine: Disable GPU when using nouveau One upstream backport, the other one kindly borrowed from opensuse (disable-gpu-when-using-nouveau-boo-1005323.diff). Bug: https://bugs.gentoo.org/609752 Package-Manager: Portage-2.3.40, Repoman-2.3.9 ...-5.11.1-eglGetProcAddress-fallback-lookup.patch | 68 +++++++++++++++ .../qtwebengine-5.11.1-nouveau-disable-gpu.patch | 98 ++++++++++++++++++++++ dev-qt/qtwebengine/qtwebengine-5.11.1.ebuild | 2 + 3 files changed, 168 insertions(+)
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/qt.git/commit/?id=0ded5d274d2424fc1dae4221cf1f843d4c47d7e1 commit 0ded5d274d2424fc1dae4221cf1f843d4c47d7e1 Author: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org> AuthorDate: 2018-06-21 03:55:08 +0000 Commit: Jimi Huotari <chiitoo@gentoo.org> CommitDate: 2018-06-21 09:11:07 +0000 dev-qt/qtwebengine: Apply new patches in 5.11.9999 and 5.9999. Patches included: - libxml2-disable-catalogs.patch - ffmpeg4.patch - nouveau-disable-gpu.patch Bug: https://bugs.gentoo.org/609752 Bug: https://bugs.gentoo.org/653078 dev-qt/qtwebengine/qtwebengine-5.11.9999.ebuild | 6 ++++++ dev-qt/qtwebengine/qtwebengine-5.9999.ebuild | 6 ++++++ 2 files changed, 12 insertions(+)
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d88e48c5c2b63f9ad50d86329e8cae481d99ff97 commit d88e48c5c2b63f9ad50d86329e8cae481d99ff97 Author: Andreas Sturmlechner <asturm@gentoo.org> AuthorDate: 2018-06-26 13:40:47 +0000 Commit: Andreas Sturmlechner <asturm@gentoo.org> CommitDate: 2018-06-27 19:00:20 +0000 dev-qt/qtwebengine: Disable GPU when using nouveau Kindly borrowed from opensuse (disable-gpu-when-using-nouveau-boo-1005323.diff). Bug: https://bugs.gentoo.org/609752 Bug: https://bugs.gentoo.org/609752 Package-Manager: Portage-2.3.40, Repoman-2.3.9 dev-qt/qtwebengine/qtwebengine-5.9.6-r1.ebuild | 1 + 1 file changed, 1 insertion(+) https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d88e48c5c2b63f9ad50d86329e8cae481d99ff97 commit d88e48c5c2b63f9ad50d86329e8cae481d99ff97 Author: Andreas Sturmlechner <asturm@gentoo.org> AuthorDate: 2018-06-26 13:40:47 +0000 Commit: Andreas Sturmlechner <asturm@gentoo.org> CommitDate: 2018-06-27 19:00:20 +0000 dev-qt/qtwebengine: Disable GPU when using nouveau Kindly borrowed from opensuse (disable-gpu-when-using-nouveau-boo-1005323.diff). Bug: https://bugs.gentoo.org/609752 Bug: https://bugs.gentoo.org/609752 Package-Manager: Portage-2.3.40, Repoman-2.3.9 dev-qt/qtwebengine/qtwebengine-5.9.6-r1.ebuild | 1 + 1 file changed, 1 insertion(+)
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dbd129895852cbeabe59b156a29f1f1d6d0eea2c commit dbd129895852cbeabe59b156a29f1f1d6d0eea2c Author: Andreas Sturmlechner <asturm@gentoo.org> AuthorDate: 2018-09-08 02:35:41 +0000 Commit: Andreas Sturmlechner <asturm@gentoo.org> CommitDate: 2018-09-08 07:21:01 +0000 dev-qt: Drop Qt 5.9.4 Closes: https://bugs.gentoo.org/609752 Closes: https://bugs.gentoo.org/652508 Package-Manager: Portage-2.3.49, Repoman-2.3.10 dev-qt/assistant/Manifest | 1 - dev-qt/assistant/assistant-5.9.4.ebuild | 55 ------- dev-qt/designer/Manifest | 1 - dev-qt/designer/designer-5.9.4.ebuild | 57 ------- dev-qt/linguist-tools/Manifest | 1 - dev-qt/linguist-tools/linguist-tools-5.9.4.ebuild | 35 ----- dev-qt/linguist/Manifest | 1 - dev-qt/linguist/linguist-5.9.4.ebuild | 48 ------ dev-qt/pixeltool/Manifest | 1 - dev-qt/pixeltool/pixeltool-5.9.4.ebuild | 25 --- dev-qt/qdbus/Manifest | 1 - dev-qt/qdbus/qdbus-5.9.4.ebuild | 25 --- dev-qt/qdbusviewer/Manifest | 1 - dev-qt/qdbusviewer/qdbusviewer-5.9.4.ebuild | 45 ------ dev-qt/qdoc/Manifest | 1 - dev-qt/qdoc/qdoc-5.9.4.ebuild | 31 ---- dev-qt/qt-docs/Manifest | 9 -- dev-qt/qt-docs/qt-docs-5.9.4_p201801220610.ebuild | 51 ------ dev-qt/qt3d/Manifest | 1 - dev-qt/qt3d/qt3d-5.9.4.ebuild | 32 ---- dev-qt/qtbluetooth/Manifest | 1 - dev-qt/qtbluetooth/qtbluetooth-5.9.4.ebuild | 33 ---- dev-qt/qtcharts/Manifest | 1 - dev-qt/qtcharts/qtcharts-5.9.4.ebuild | 29 ---- dev-qt/qtconcurrent/Manifest | 1 - dev-qt/qtconcurrent/qtconcurrent-5.9.4.ebuild | 23 --- dev-qt/qtcore/Manifest | 1 - dev-qt/qtcore/qtcore-5.9.4-r2.ebuild | 75 --------- dev-qt/qtdatavis3d/Manifest | 1 - dev-qt/qtdatavis3d/qtdatavis3d-5.9.4.ebuild | 31 ---- dev-qt/qtdbus/Manifest | 1 - dev-qt/qtdbus/qtdbus-5.9.4.ebuild | 43 ----- dev-qt/qtdeclarative/Manifest | 1 - dev-qt/qtdeclarative/qtdeclarative-5.9.4.ebuild | 56 ------- dev-qt/qtdiag/Manifest | 1 - dev-qt/qtdiag/qtdiag-5.9.4.ebuild | 36 ----- dev-qt/qtgraphicaleffects/Manifest | 1 - .../qtgraphicaleffects-5.9.4.ebuild | 21 --- dev-qt/qtgui/Manifest | 1 - .../files/qtgui-5.9.4-libinput-pixeldelta.patch | 68 -------- dev-qt/qtgui/files/qtgui-5.9.4-opengl.patch | 87 ---------- dev-qt/qtgui/files/qtgui-5.9.4-qsimpledrag.patch | 170 -------------------- dev-qt/qtgui/qtgui-5.9.4-r3.ebuild | 175 --------------------- dev-qt/qthelp/Manifest | 1 - dev-qt/qthelp/qthelp-5.9.4.ebuild | 30 ---- dev-qt/qtimageformats/Manifest | 1 - dev-qt/qtimageformats/qtimageformats-5.9.4.ebuild | 29 ---- dev-qt/qtlocation/Manifest | 1 - dev-qt/qtlocation/qtlocation-5.9.4.ebuild | 44 ------ dev-qt/qtmultimedia/Manifest | 1 - dev-qt/qtmultimedia/qtmultimedia-5.9.4-r1.ebuild | 69 -------- dev-qt/qtnetwork/Manifest | 1 - dev-qt/qtnetwork/qtnetwork-5.9.4.ebuild | 60 ------- dev-qt/qtnetworkauth/Manifest | 1 - dev-qt/qtnetworkauth/qtnetworkauth-5.9.4.ebuild | 20 --- dev-qt/qtopengl/Manifest | 1 - dev-qt/qtopengl/qtopengl-5.9.4.ebuild | 34 ---- dev-qt/qtpaths/Manifest | 1 - dev-qt/qtpaths/qtpaths-5.9.4.ebuild | 23 --- dev-qt/qtplugininfo/Manifest | 1 - dev-qt/qtplugininfo/qtplugininfo-5.9.4.ebuild | 23 --- dev-qt/qtpositioning/Manifest | 1 - dev-qt/qtpositioning/qtpositioning-5.9.4.ebuild | 37 ----- dev-qt/qtprintsupport/Manifest | 1 - dev-qt/qtprintsupport/qtprintsupport-5.9.4.ebuild | 42 ----- dev-qt/qtquickcontrols/Manifest | 1 - .../qtquickcontrols/qtquickcontrols-5.9.4.ebuild | 32 ---- dev-qt/qtquickcontrols2/Manifest | 1 - .../qtquickcontrols2/qtquickcontrols2-5.9.4.ebuild | 30 ---- dev-qt/qtscript/Manifest | 1 - dev-qt/qtscript/qtscript-5.9.4.ebuild | 36 ----- dev-qt/qtscxml/Manifest | 1 - dev-qt/qtscxml/qtscxml-5.9.4.ebuild | 19 --- dev-qt/qtsensors/Manifest | 1 - dev-qt/qtsensors/qtsensors-5.9.4.ebuild | 28 ---- dev-qt/qtserialbus/Manifest | 1 - dev-qt/qtserialbus/qtserialbus-5.9.4.ebuild | 20 --- dev-qt/qtserialport/Manifest | 1 - dev-qt/qtserialport/qtserialport-5.9.4.ebuild | 27 ---- dev-qt/qtspeech/Manifest | 1 - dev-qt/qtspeech/qtspeech-5.9.4.ebuild | 22 --- dev-qt/qtsql/Manifest | 1 - dev-qt/qtsql/files/qtsql-5.9.4-mariadb-10.2.patch | 35 ----- dev-qt/qtsql/qtsql-5.9.4-r1.ebuild | 62 -------- dev-qt/qtsvg/Manifest | 1 - dev-qt/qtsvg/qtsvg-5.9.4-r2.ebuild | 23 --- dev-qt/qttest/Manifest | 1 - dev-qt/qttest/qttest-5.9.4.ebuild | 33 ---- dev-qt/qttranslations/Manifest | 1 - dev-qt/qttranslations/qttranslations-5.9.4.ebuild | 19 --- dev-qt/qtvirtualkeyboard/Manifest | 1 - .../qtvirtualkeyboard-5.9.4.ebuild | 38 ----- dev-qt/qtwayland/Manifest | 1 - .../files/qtwayland-5.9.4-qquickwindow-crash.patch | 109 ------------- dev-qt/qtwayland/qtwayland-5.9.4-r1.ebuild | 41 ----- dev-qt/qtwebchannel/Manifest | 1 - dev-qt/qtwebchannel/qtwebchannel-5.9.4.ebuild | 26 --- dev-qt/qtwebengine/Manifest | 1 - .../files/qtwebengine-5.9.3-icu-60.1.patch | 16 -- dev-qt/qtwebengine/qtwebengine-5.9.4.ebuild | 127 --------------- dev-qt/qtwebsockets/Manifest | 1 - dev-qt/qtwebsockets/qtwebsockets-5.9.4.ebuild | 27 ---- dev-qt/qtwebview/Manifest | 1 - dev-qt/qtwebview/qtwebview-5.9.4.ebuild | 21 --- dev-qt/qtwidgets/Manifest | 1 - dev-qt/qtwidgets/qtwidgets-5.9.4-r1.ebuild | 57 ------- dev-qt/qtx11extras/Manifest | 1 - dev-qt/qtx11extras/qtx11extras-5.9.4.ebuild | 21 --- dev-qt/qtxml/Manifest | 1 - dev-qt/qtxml/qtxml-5.9.4.ebuild | 29 ---- dev-qt/qtxmlpatterns/Manifest | 1 - dev-qt/qtxmlpatterns/qtxmlpatterns-5.9.4.ebuild | 19 --- 112 files changed, 2640 deletions(-)