diff options
author | Alyssa Ross <hi@alyssa.is> | 2020-03-26 17:17:48 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2020-03-26 17:36:07 +0000 |
commit | 70e58881128ed8170821840138ab08fc5cdd3c11 (patch) | |
tree | 1bf0d3d977878df5b58493ea02b2e6c79df3ba22 /pkgs/applications/networking/browsers/chromium | |
parent | a9847c36e6aa003998c1ef5518e5710658ca5770 (diff) | |
parent | 90dcc3360327e250536eeeca7fe9d887c9f7a817 (diff) | |
download | nixpkgs-70e58881128ed8170821840138ab08fc5cdd3c11.tar nixpkgs-70e58881128ed8170821840138ab08fc5cdd3c11.tar.gz nixpkgs-70e58881128ed8170821840138ab08fc5cdd3c11.tar.bz2 nixpkgs-70e58881128ed8170821840138ab08fc5cdd3c11.tar.lz nixpkgs-70e58881128ed8170821840138ab08fc5cdd3c11.tar.xz nixpkgs-70e58881128ed8170821840138ab08fc5cdd3c11.tar.zst nixpkgs-70e58881128ed8170821840138ab08fc5cdd3c11.zip |
Merge remote-tracking branch 'nixpkgs/master' into master
Diffstat (limited to 'pkgs/applications/networking/browsers/chromium')
7 files changed, 120 insertions, 26 deletions
diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix index ec69f3d233f..edbf97e8963 100644 --- a/pkgs/applications/networking/browsers/chromium/browser.nix +++ b/pkgs/applications/networking/browsers/chromium/browser.nix @@ -18,6 +18,16 @@ mkChromiumDerivation (base: rec { cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/" cp -v "$buildPath/chrome" "$libExecPath/$packageName" + # Swiftshader + # See https://stackoverflow.com/a/4264351/263061 for the find invocation. + if [ -n "$(find "$buildPath/swiftshader/" -maxdepth 1 -name '*.so' -print -quit)" ]; then + echo "Swiftshader files found; installing" + mkdir -p "$libExecPath/swiftshader" + cp -v "$buildPath/swiftshader/"*.so "$libExecPath/swiftshader/" + else + echo "Swiftshader files not found" + fi + mkdir -p "$sandbox/bin" cp -v "$buildPath/chrome_sandbox" "$sandbox/bin/${sandboxExecutableName}" diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index 31e69916196..83c492e1e65 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -137,6 +137,8 @@ let ./patches/no-build-timestamps.patch ./patches/widevine-79.patch ./patches/dont-use-ANGLE-by-default.patch + # fix race condition in the interaction with pulseaudio + ./patches/webrtc-pulse.patch # Unfortunately, chromium regularly breaks on major updates and # then needs various patches backported in order to be compiled with GCC. # Good sources for such patches and other hints: @@ -240,7 +242,6 @@ let is_clang = stdenv.cc.isClang; clang_use_chrome_plugins = false; blink_symbol_level = 0; - enable_swiftshader = false; fieldtrial_testing_like_official_build = true; # Google API keys, see: diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index c3522e17379..8968a10bed0 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -1,4 +1,4 @@ -{ newScope, config, stdenv, llvmPackages_9 +{ newScope, config, stdenv, llvmPackages_9, llvmPackages_10 , makeWrapper, ed , glib, gtk3, gnome3, gsettings-desktop-schemas , libva ? null @@ -19,8 +19,10 @@ }: let - stdenv = llvmPackages_9.stdenv; - llvmPackages = llvmPackages_9; + llvmPackages = if channel == "dev" + then llvmPackages_10 + else llvmPackages_9; + stdenv = llvmPackages.stdenv; callPackage = newScope chromium; diff --git a/pkgs/applications/networking/browsers/chromium/patches/vaapi-fix.patch b/pkgs/applications/networking/browsers/chromium/patches/vaapi-fix.patch index db9d6082756..b5372d1a255 100644 --- a/pkgs/applications/networking/browsers/chromium/patches/vaapi-fix.patch +++ b/pkgs/applications/networking/browsers/chromium/patches/vaapi-fix.patch @@ -1,6 +1,6 @@ --- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc +++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc -@@ -635,6 +635,7 @@ +@@ -641,6 +641,7 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers( // |vpp_vaapi_wrapper_| for VaapiPicture to DownloadFromSurface() the VA's // internal decoded frame. if (buffer_allocation_mode_ != BufferAllocationMode::kNone && @@ -8,24 +8,22 @@ !vpp_vaapi_wrapper_) { vpp_vaapi_wrapper_ = VaapiWrapper::Create( VaapiWrapper::kVideoProcess, VAProfileNone, -@@ -650,7 +651,8 @@ - // only used as a copy destination. Therefore, the VaapiWrapper used and - // owned by |picture| is |vpp_vaapi_wrapper_|. +@@ -665,7 +666,8 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers( + PictureBuffer buffer = buffers[i]; + buffer.set_size(requested_pic_size_); std::unique_ptr<VaapiPicture> picture = vaapi_picture_factory_->Create( - (buffer_allocation_mode_ == BufferAllocationMode::kNone) + ((buffer_allocation_mode_ == BufferAllocationMode::kNone) || + (buffer_allocation_mode_ == BufferAllocationMode::kWrapVdpau)) ? vaapi_wrapper_ : vpp_vaapi_wrapper_, - make_context_current_cb_, bind_image_cb_, buffers[i]); -@@ -1077,6 +1079,14 @@ + make_context_current_cb_, bind_image_cb_, buffer); +@@ -1093,6 +1095,12 @@ VaapiVideoDecodeAccelerator::GetSupportedProfiles() { VaapiVideoDecodeAccelerator::BufferAllocationMode VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() { + // NVIDIA blobs use VDPAU -+ if (base::StartsWith(VaapiWrapper::GetVendorStringForTesting(), -+ "Splitted-Desktop Systems VDPAU", -+ base::CompareCase::SENSITIVE)) { ++ if (VaapiWrapper::GetImplementationType() == VAImplementation::kNVIDIAVDPAU) { + LOG(INFO) << "VA-API driver on VDPAU backend"; + return BufferAllocationMode::kWrapVdpau; + } @@ -33,7 +31,7 @@ // TODO(crbug.com/912295): Enable a better BufferAllocationMode for IMPORT // |output_mode_| as well. if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT) -@@ -1089,7 +1099,7 @@ +@@ -1105,7 +1113,7 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() { // depends on the bitstream and sometimes it's not enough to cover the amount // of frames needed by the client pipeline (see b/133733739). // TODO(crbug.com/911754): Enable for VP9 Profile 2. @@ -44,7 +42,7 @@ // an extra allocation for both |client_| and |decoder_|, see --- a/media/gpu/vaapi/vaapi_video_decode_accelerator.h +++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.h -@@ -204,6 +204,7 @@ +@@ -204,6 +204,7 @@ class MEDIA_GPU_EXPORT VaapiVideoDecodeAccelerator // Using |client_|s provided PictureBuffers and as many internally // allocated. kNormal, @@ -52,3 +50,25 @@ }; // Decides the concrete buffer allocation mode, depending on the hardware +--- a/media/gpu/vaapi/vaapi_wrapper.cc ++++ b/media/gpu/vaapi/vaapi_wrapper.cc +@@ -131,6 +131,9 @@ media::VAImplementation VendorStringToImplementationType( + } else if (base::StartsWith(va_vendor_string, "Intel iHD driver", + base::CompareCase::SENSITIVE)) { + return media::VAImplementation::kIntelIHD; ++ } else if (base::StartsWith(va_vendor_string, "Splitted-Desktop Systems VDPAU", ++ base::CompareCase::SENSITIVE)) { ++ return media::VAImplementation::kNVIDIAVDPAU; + } + return media::VAImplementation::kOther; + } +--- a/media/gpu/vaapi/vaapi_wrapper.h ++++ b/media/gpu/vaapi/vaapi_wrapper.h +@@ -79,6 +79,7 @@ enum class VAImplementation { + kIntelIHD, + kOther, + kInvalid, ++ kNVIDIAVDPAU, + }; + + // This class handles VA-API calls and ensures proper locking of VA-API calls diff --git a/pkgs/applications/networking/browsers/chromium/patches/webrtc-pulse.patch b/pkgs/applications/networking/browsers/chromium/patches/webrtc-pulse.patch new file mode 100644 index 00000000000..cf24e270419 --- /dev/null +++ b/pkgs/applications/networking/browsers/chromium/patches/webrtc-pulse.patch @@ -0,0 +1,61 @@ +From 704dc99bd05a94eb61202e6127df94ddfd571e85 Mon Sep 17 00:00:00 2001 +From: Dale Curtis <dalecurtis@chromium.org> +Date: Mon, 02 Mar 2020 22:12:22 +0000 +Subject: [PATCH] Hold PulseAudio mainloop lock while querying input device info. + +a22cc23955cb3d58b7525c5103314226b3ce0137 moved this section out of +UpdateNativeAudioHardwareInfo(), but forgot to bring the lock along. + +R=guidou + +Bug: 1043040 +Change-Id: I5b17a2cf0ad55d61c0811db1dae7045af4a91370 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2083814 +Commit-Queue: Dale Curtis <dalecurtis@chromium.org> +Commit-Queue: Guido Urdaneta <guidou@chromium.org> +Reviewed-by: Guido Urdaneta <guidou@chromium.org> +Auto-Submit: Dale Curtis <dalecurtis@chromium.org> +Cr-Commit-Position: refs/heads/master@{#746115} +--- + +diff --git a/media/audio/pulse/audio_manager_pulse.cc b/media/audio/pulse/audio_manager_pulse.cc +index 90e9317..829846f 100644 +--- a/media/audio/pulse/audio_manager_pulse.cc ++++ b/media/audio/pulse/audio_manager_pulse.cc +@@ -104,22 +104,27 @@ + + AudioParameters AudioManagerPulse::GetInputStreamParameters( + const std::string& device_id) { +- int user_buffer_size = GetUserBufferSize(); +- int buffer_size = +- user_buffer_size ? user_buffer_size : kDefaultInputBufferSize; +- + UpdateNativeAudioHardwareInfo(); +- auto* operation = pa_context_get_source_info_by_name( +- input_context_, default_source_name_.c_str(), DefaultSourceInfoCallback, +- this); +- WaitForOperationCompletion(input_mainloop_, operation, input_context_); ++ ++ { ++ AutoPulseLock auto_lock(input_mainloop_); ++ auto* operation = pa_context_get_source_info_by_name( ++ input_context_, default_source_name_.c_str(), DefaultSourceInfoCallback, ++ this); ++ WaitForOperationCompletion(input_mainloop_, operation, input_context_); ++ } + + // We don't want to accidentally open a monitor device, so return invalid +- // parameters for those. ++ // parameters for those. Note: The value of |default_source_is_monitor_| ++ // depends on the the call to pa_context_get_source_info_by_name() above. + if (device_id == AudioDeviceDescription::kDefaultDeviceId && + default_source_is_monitor_) { + return AudioParameters(); + } ++ ++ const int user_buffer_size = GetUserBufferSize(); ++ const int buffer_size = ++ user_buffer_size ? user_buffer_size : kDefaultInputBufferSize; + return AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, + CHANNEL_LAYOUT_STEREO, + native_input_sample_rate_ ? native_input_sample_rate_ diff --git a/pkgs/applications/networking/browsers/chromium/plugins.nix b/pkgs/applications/networking/browsers/chromium/plugins.nix index e600d134e9c..434bd77b6d1 100644 --- a/pkgs/applications/networking/browsers/chromium/plugins.nix +++ b/pkgs/applications/networking/browsers/chromium/plugins.nix @@ -45,11 +45,11 @@ let flash = stdenv.mkDerivation rec { pname = "flashplayer-ppapi"; - version = "32.0.0.330"; + version = "32.0.0.344"; src = fetchzip { url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz"; - sha256 = "08gpx0fq0r1sz5smfdgv4fkfwq1hdijv4dw432d6jdz8lq09y1nk"; + sha256 = "05ijlgsby9zxx0qs6f3vav1z0p6xr1cg6idl4akxvfmsl6hn6hkq"; stripRoot = false; }; diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix index bfc4fd02840..0e939f2fd21 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.nix @@ -1,18 +1,18 @@ # This file is autogenerated from update.sh in the same directory. { beta = { - sha256 = "0vsykl3gaql8fp1h5007ljds8m8q2n6n34dsbcqqav2008zlks61"; - sha256bin64 = "1bmszzgmzv7hkczs6kcsa2r8vv6nhg39q1sv74695mr3j3j4bdp8"; - version = "81.0.4044.17"; + sha256 = "177hv5jkgpcbi6khk7j883rf3rzzkjmi8cqqpzckaiw7pcwsvyvd"; + sha256bin64 = "0sicz51d2l3gj70mfpyh5idwarjl19pba5lc6ahznxxqsrjfp80r"; + version = "81.0.4044.69"; }; dev = { - sha256 = "0vsykl3gaql8fp1h5007ljds8m8q2n6n34dsbcqqav2008zlks61"; - sha256bin64 = "0xx4h82w6jklwlk8p2a2qqk2a9vnf004hmgw69i8iwk6l1d9hxfb"; - version = "81.0.4044.17"; + sha256 = "0s0072rmg287iijh6wwm9i5a5fsh96qm6nhd13xwbxrvj6pldb7n"; + sha256bin64 = "0l5ljjz0s5x9727syq4gs5xshl9vs8apvw6xw8il0xy5qax32g85"; + version = "82.0.4083.0"; }; stable = { - sha256 = "10myihiyrgnm0ly41k4h8ayl3vv3cpshs3pshpqaba0l8i5r5b9f"; - sha256bin64 = "0pd4ygmyinaq22lmaqjqi1gs3svnb863mkhcf85dzm1354iz1g9k"; - version = "80.0.3987.106"; + sha256 = "07icl3hgg1wjkmz88lbpjf6ll4xyi64spki1nmsy6899jgkxvgjh"; + sha256bin64 = "0qgp6hv4qj04v6pzfx9ggjvcl1vi6ljjc3cpi4hfr67p4jab40ji"; + version = "80.0.3987.149"; }; } |