Accepting request 564047 from KDE:Qt5
- Also work around crashes on wayland by disabling the GPU by default (boo#1060990): * disable-gpu-when-using-nouveau-boo-1005323.diff OBS-URL: https://build.opensuse.org/request/show/564047 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtwebengine?expand=0&rev=29
This commit is contained in:
parent
9bce4b8c38
commit
c1765aba79
@ -1,3 +1,12 @@
|
|||||||
|
From: Antonio Larrosa <alarrosa@suse.com>
|
||||||
|
Subject: Disable GPU when using nouveau or running on wayland
|
||||||
|
References: boo#1005323, boo#1060990
|
||||||
|
|
||||||
|
Qt WebEngine uses multi-threaded OpenGL, which nouveau does not support.
|
||||||
|
It also crashes when running on wayland, the cause is not yet known.
|
||||||
|
Work around these issues by not doing GPU-accelerated rendering in such
|
||||||
|
cases.
|
||||||
|
|
||||||
Index: qtwebengine-everywhere-src-5.10.0/src/core/web_engine_context.cpp
|
Index: qtwebengine-everywhere-src-5.10.0/src/core/web_engine_context.cpp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- qtwebengine-everywhere-src-5.10.0.orig/src/core/web_engine_context.cpp
|
--- qtwebengine-everywhere-src-5.10.0.orig/src/core/web_engine_context.cpp
|
||||||
@ -50,12 +59,21 @@ Index: qtwebengine-everywhere-src-5.10.0/src/core/web_engine_context.cpp
|
|||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
namespace QtWebEngineCore {
|
namespace QtWebEngineCore {
|
||||||
@@ -378,6 +412,17 @@ WebEngineContext::WebEngineContext()
|
@@ -379,6 +413,27 @@ WebEngineContext::WebEngineContext()
|
||||||
|
|
||||||
const char *glType = 0;
|
const char *glType = 0;
|
||||||
#ifndef QT_NO_OPENGL
|
#ifndef QT_NO_OPENGL
|
||||||
|
|
||||||
+ bool disableGpu = qEnvironmentVariableIsSet("QT_WEBENGINE_DISABLE_GPU");
|
+ bool disableGpu = qEnvironmentVariableIsSet("QT_WEBENGINE_DISABLE_GPU");
|
||||||
+
|
+
|
||||||
|
+ if (!qEnvironmentVariableIsSet("QT_WEBENGINE_DISABLE_WAYLAND_WORKAROUND") && platform.startsWith("wayland", Qt::CaseInsensitive))
|
||||||
|
+ {
|
||||||
|
+ qWarning() << "Running on wayland. Qt WebEngine will disable usage of the GPU.\n"
|
||||||
|
+ "Note: you can set the QT_WEBENGINE_DISABLE_WAYLAND_WORKAROUND\n"
|
||||||
|
+ "environment variable before running this application, but this is \n"
|
||||||
|
+ "not recommended since this usually causes applications to crash.";
|
||||||
|
+ disableGpu = true;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
+ if (!qEnvironmentVariableIsSet("QT_WEBENGINE_DISABLE_NOUVEAU_WORKAROUND") && openGLVendor() == QStringLiteral("nouveau"))
|
+ if (!qEnvironmentVariableIsSet("QT_WEBENGINE_DISABLE_NOUVEAU_WORKAROUND") && openGLVendor() == QStringLiteral("nouveau"))
|
||||||
+ {
|
+ {
|
||||||
+ qWarning() << "Nouveau openGL driver detected. Qt WebEngine will disable usage of the GPU.\n"
|
+ qWarning() << "Nouveau openGL driver detected. Qt WebEngine will disable usage of the GPU.\n"
|
||||||
@ -65,10 +83,11 @@ Index: qtwebengine-everywhere-src-5.10.0/src/core/web_engine_context.cpp
|
|||||||
+ "Nouveau openGL drivers don't support multithreaded rendering";
|
+ "Nouveau openGL drivers don't support multithreaded rendering";
|
||||||
+ disableGpu = true;
|
+ disableGpu = true;
|
||||||
+ }
|
+ }
|
||||||
|
+
|
||||||
bool tryGL =
|
bool tryGL =
|
||||||
!usingANGLE()
|
!usingANGLE()
|
||||||
@@ -389,7 +434,7 @@ WebEngineContext::WebEngineContext()
|
&& (!usingSoftwareDynamicGL()
|
||||||
|
@@ -389,7 +444,7 @@ WebEngineContext::WebEngineContext()
|
||||||
|| enableWebGLSoftwareRendering
|
|| enableWebGLSoftwareRendering
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jan 12 19:10:53 UTC 2018 - fabian@ritter-vogt.de
|
||||||
|
|
||||||
|
- Also work around crashes on wayland by disabling the GPU by default (boo#1060990):
|
||||||
|
* disable-gpu-when-using-nouveau-boo-1005323.diff
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Dec 8 23:14:38 UTC 2017 - christophe@krop.fr
|
Fri Dec 8 23:14:38 UTC 2017 - christophe@krop.fr
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ Source: https://download.qt.io/official_releases/qt/5.10/%{real_version}
|
|||||||
Source1: baselibs.conf
|
Source1: baselibs.conf
|
||||||
# PATCH-FIX-UPSTREAM armv6-ffmpeg-no-thumb.patch - Fix ffmpeg configuration for armv6
|
# PATCH-FIX-UPSTREAM armv6-ffmpeg-no-thumb.patch - Fix ffmpeg configuration for armv6
|
||||||
Patch1: armv6-ffmpeg-no-thumb.patch
|
Patch1: armv6-ffmpeg-no-thumb.patch
|
||||||
# PATCH-FIX-UPSTREAM disable-gpu-when-using-nouveau-boo-1005323.diff -- Detect nouveau opengl drivers and disable gpu usage to work around nouveau crashing
|
# PATCH-FIX-UPSTREAM disable-gpu-when-using-nouveau-boo-1005323.diff
|
||||||
Patch2: disable-gpu-when-using-nouveau-boo-1005323.diff
|
Patch2: disable-gpu-when-using-nouveau-boo-1005323.diff
|
||||||
# PATCH-FIX-UPSTREAM harmony-fix.diff -- Show the patent-free LCD rendering. Without this patch, only grayscale rendering is used. (for freetype-2.8.1) boo#1061344
|
# PATCH-FIX-UPSTREAM harmony-fix.diff -- Show the patent-free LCD rendering. Without this patch, only grayscale rendering is used. (for freetype-2.8.1) boo#1061344
|
||||||
Patch5: harmony-fix.diff
|
Patch5: harmony-fix.diff
|
||||||
|
Loading…
Reference in New Issue
Block a user