From 4fd012bae7c5060dd44dc242d2c47adc454df613 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20Schr=C3=B6ter?= Date: Sun, 12 Nov 2023 18:54:09 +0100 Subject: [PATCH 1/2] tor-browser: add support for GPU acceleration Support GPU acceleration for WebRender & VA-API. --- .../browsers/tor-browser/default.nix | 91 ++++++++++++------- 1 file changed, 59 insertions(+), 32 deletions(-) diff --git a/pkgs/applications/networking/browsers/tor-browser/default.nix b/pkgs/applications/networking/browsers/tor-browser/default.nix index caa4b6e39a59..6b155977a3b8 100644 --- a/pkgs/applications/networking/browsers/tor-browser/default.nix +++ b/pkgs/applications/networking/browsers/tor-browser/default.nix @@ -2,12 +2,9 @@ , fetchurl , makeDesktopItem , writeText +, autoPatchelfHook , callPackage -# Common run-time dependencies -, zlib - -# libxul run-time dependencies , atk , cairo , dbus @@ -22,14 +19,32 @@ , libXext , libXrender , libXt +, libXtst +, mesa , pango +, pciutils +, zlib + +, libnotifySupport ? stdenv.isLinux +, libnotify + +, waylandSupport ? stdenv.isLinux +, libxkbcommon +, libdrm , audioSupport ? mediaSupport -, pulseaudioSupport ? mediaSupport + +, pipewireSupport ? audioSupport +, pipewire + +, pulseaudioSupport ? audioSupport , libpulseaudio , apulse , alsa-lib +, libvaSupport ? mediaSupport +, libva + # Media support (implies audio support) , mediaSupport ? true , ffmpeg @@ -58,33 +73,37 @@ lib.warnIf (useHardenedMalloc != null) "tor-browser: useHardenedMalloc is deprecated and enabling it can cause issues" (let - libPath = lib.makeLibraryPath libPkgs; - - libPkgs = [ - alsa-lib - atk - cairo - dbus - dbus-glib - fontconfig - freetype - gdk-pixbuf - glib - gtk3 - libxcb - libX11 - libXext - libXrender - libXt - pango - stdenv.cc.cc - stdenv.cc.libc - zlib - ] - ++ lib.optionals pulseaudioSupport [ libpulseaudio ] - ++ lib.optionals mediaSupport [ - ffmpeg - ]; + libPath = lib.makeLibraryPath ( + [ + alsa-lib + atk + cairo + dbus + dbus-glib + fontconfig + freetype + gdk-pixbuf + glib + gtk3 + libxcb + libX11 + libXext + libXrender + libXt + libXtst + mesa # for libgbm + pango + pciutils + stdenv.cc.cc + stdenv.cc.libc + zlib + ] ++ lib.optionals libnotifySupport [ libnotify ] + ++ lib.optionals waylandSupport [ libxkbcommon libdrm ] + ++ lib.optionals pipewireSupport [ pipewire ] + ++ lib.optionals pulseaudioSupport [ libpulseaudio ] + ++ lib.optionals libvaSupport [ libva ] + ++ lib.optionals mediaSupport [ ffmpeg ] + ); version = "13.0.1"; @@ -129,6 +148,14 @@ stdenv.mkDerivation rec { src = sources.${stdenv.hostPlatform.system} or (throw "unsupported system: ${stdenv.hostPlatform.system}"); + nativeBuildInputs = [ autoPatchelfHook ]; + buildInputs = [ + gtk3 + alsa-lib + dbus-glib + libXtst + ]; + preferLocalBuild = true; allowSubstitutes = false; From 039308e97946cae07cb8ed361ad2e21bfbeb6975 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20Schr=C3=B6ter?= Date: Sun, 12 Nov 2023 18:57:19 +0100 Subject: [PATCH 2/2] mullvad-browser: add support for GPU acceleration Support GPU acceleration for WebRender & VA-API. --- .../browsers/mullvad-browser/default.nix | 35 ++++++++++++++----- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/pkgs/applications/networking/browsers/mullvad-browser/default.nix b/pkgs/applications/networking/browsers/mullvad-browser/default.nix index 28f8358feb5c..20d01a4bba15 100644 --- a/pkgs/applications/networking/browsers/mullvad-browser/default.nix +++ b/pkgs/applications/networking/browsers/mullvad-browser/default.nix @@ -6,12 +6,9 @@ , makeWrapper , writeText , wrapGAppsHook +, autoPatchelfHook , callPackage -# Common run-time dependencies -, zlib - -# libxul run-time dependencies , atk , cairo , dbus @@ -30,19 +27,30 @@ , mesa , pango , pciutils +, zlib , libnotifySupport ? stdenv.isLinux , libnotify +, waylandSupport ? stdenv.isLinux +, libxkbcommon +, libdrm + +, mediaSupport ? true +, ffmpeg + , audioSupport ? mediaSupport -, pulseaudioSupport ? mediaSupport + +, pipewireSupport ? audioSupport +, pipewire + +, pulseaudioSupport ? audioSupport , libpulseaudio , apulse , alsa-lib -# Media support (implies audio support) -, mediaSupport ? true -, ffmpeg +, libvaSupport ? mediaSupport +, libva # Extra preferences , extraPrefs ? "" @@ -74,7 +82,10 @@ let stdenv.cc.libc zlib ] ++ lib.optionals libnotifySupport [ libnotify ] + ++ lib.optionals waylandSupport [ libxkbcommon libdrm ] + ++ lib.optionals pipewireSupport [ pipewire ] ++ lib.optionals pulseaudioSupport [ libpulseaudio ] + ++ lib.optionals libvaSupport [ libva ] ++ lib.optionals mediaSupport [ ffmpeg ] ); @@ -113,7 +124,13 @@ stdenv.mkDerivation rec { src = sources.${stdenv.hostPlatform.system} or (throw "unsupported system: ${stdenv.hostPlatform.system}"); - nativeBuildInputs = [ copyDesktopItems makeWrapper wrapGAppsHook ]; + nativeBuildInputs = [ copyDesktopItems makeWrapper wrapGAppsHook autoPatchelfHook ]; + buildInputs = [ + gtk3 + alsa-lib + dbus-glib + libXtst + ]; preferLocalBuild = true; allowSubstitutes = false;