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) + + +