diff --git a/src/lib/app/mainapplication.cpp b/src/lib/app/mainapplication.cpp
index d126537d4..dcf27cc37 100644
--- a/src/lib/app/mainapplication.cpp
+++ b/src/lib/app/mainapplication.cpp
@@ -148,9 +148,9 @@ MainApplication::MainApplication(int &argc, char** argv)
}
#endif
- QByteArray flags = qgetenv("QTWEBENGINE_CHROMIUM_FLAGS");
- flags.append(" --enable-features=WebRTCPipeWireCapturer");
- qputenv("QTWEBENGINE_CHROMIUM_FLAGS", flags);
+ QByteArray chromium_flags = qgetenv("QTWEBENGINE_CHROMIUM_FLAGS");
+ chromium_flags.append(" --enable-features=WebRTCPipeWireCapturer");
+ qputenv("QTWEBENGINE_CHROMIUM_FLAGS", chromium_flags);
QUrl startUrl;
QString startProfile;
@@ -287,6 +287,10 @@ MainApplication::MainApplication(int &argc, char** argv)
profileManager.initCurrentProfile(startProfile);
Settings::createSettings(DataPaths::currentProfilePath() + QLatin1String("/settings.ini"));
+ if (Settings::globalSettings()->value("Web-Browser-Settings/hardwareAccel", false).toBool()) {
+ chromium_flags.append(" --enable-oop-rasterization --enable-gpu-rasterization --enable-native-gpu-memory-buffers --use-gl=desktop");
+ qputenv("QTWEBENGINE_CHROMIUM_FLAGS", chromium_flags);
+ }
NetworkManager::registerSchemes();
diff --git a/src/lib/preferences/preferences.cpp b/src/lib/preferences/preferences.cpp
index c37683f1a..627f3dfbb 100644
--- a/src/lib/preferences/preferences.cpp
+++ b/src/lib/preferences/preferences.cpp
@@ -291,6 +291,7 @@ Preferences::Preferences(BrowserWindow* window)
ui->intPDFViewer->setChecked(settings.value("intPDFViewer", false).toBool());
ui->intPDFViewer->setEnabled(ui->allowPlugins->isChecked());
ui->screenCaptureEnabled->setChecked(settings.value("screenCaptureEnabled", false).toBool());
+ ui->hardwareAccel->setChecked(settings.value("hardwareAccel", false).toBool());
const auto levels = WebView::zoomLevels();
for (int level : levels) {
@@ -967,7 +968,7 @@ void Preferences::saveSettings()
settings.setValue("DNSPrefetch", ui->dnsPrefetch->isChecked());
settings.setValue("intPDFViewer", ui->intPDFViewer->isChecked());
settings.setValue("screenCaptureEnabled", ui->screenCaptureEnabled->isChecked());
-
+ settings.setValue("hardwareAccel", ui->hardwareAccel->isChecked());
#ifdef Q_OS_WIN
settings.setValue("CheckDefaultBrowser", ui->checkDefaultBrowser->isChecked());
#endif
diff --git a/src/lib/preferences/preferences.ui b/src/lib/preferences/preferences.ui
index b02e84bf0..36c73aded 100644
--- a/src/lib/preferences/preferences.ui
+++ b/src/lib/preferences/preferences.ui
@@ -1096,6 +1096,13 @@
+ -
+
+
+ Use hardware acceleration (requires restart)
+
+
+
-