From 346ccc5005d03449fec9121b2e0448f9f3b8c0e2 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Fri, 8 Feb 2019 13:39:05 +0000 Subject: [PATCH] extra/chromium to 72.0.3626.96-3 --- extra/chromium/PKGBUILD | 12 +- ...ium-drirc-disable-10bpc-color-configs.conf | 15 +++ ...nable-mojo-video-decoders-by-default.patch | 104 ++++++++++++++++++ extra/chromium/chromium-vaapi.patch | 56 ---------- 4 files changed, 129 insertions(+), 58 deletions(-) create mode 100644 extra/chromium/chromium-drirc-disable-10bpc-color-configs.conf create mode 100644 extra/chromium/chromium-enable-mojo-video-decoders-by-default.patch diff --git a/extra/chromium/PKGBUILD b/extra/chromium/PKGBUILD index 2d9028703..a3b6aaa25 100644 --- a/extra/chromium/PKGBUILD +++ b/extra/chromium/PKGBUILD @@ -17,7 +17,7 @@ highmem=1 pkgname=chromium pkgver=72.0.3626.96 -pkgrel=2 +pkgrel=3 _launcher_ver=6 pkgdesc="A web browser built for speed, simplicity, and security" arch=('x86_64') @@ -34,20 +34,24 @@ optdepends=('kdialog: needed for file dialogs in KDE' install=chromium.install source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz + chromium-drirc-disable-10bpc-color-configs.conf chromium-system-icu.patch chromium-webrtc-missing-header.patch chromium-vaapi.patch chromium-vaapi-relax-the-version-check-for-VA-API.patch + chromium-enable-mojo-video-decoders-by-default.patch chromium-vaapi-fix-the-VA_CHECK_VERSION.patch chromium-widevine.patch chromium-skia-harmony.patch 0001-crashpad-include-limits.patch) sha256sums=('b2daf52aac4d9eba0ab9f034db6f2411ad6930dd02544c4b583e3a6e49dcaa3b' '04917e3cd4307d8e31bfb0027a5dce6d086edb10ff8a716024fbb8bb0c7dccf1' + 'babda4f5c1179825797496898d77334ac067149cac03d797ab27ac69671a7feb' 'e2d284311f49c529ea45083438a768db390bde52949995534034d2a814beab89' '63cbed7d7af327c17878a2066c303f106ff08636372721845131f7ff13d87b44' - '561151f381db44908ab5649f3579049e4cbce04cbed76e32d767b156bf83944d' + 'e87ede45edf39ac19e56ac1ae49c9d1f5f5130e5838bcbb4c3d4fb16e55575c0' '07fcf5d25114c7335582f117090b5e0bd148aca69044d4fe25c66b4c52dcd2a6' + '669a9ad4773d182a06ee729008a60aeadddae92f1a0077b3811e11f292c8d4ff' '0bd750255163bfb1bedaf97c1cdb313f42bd9e6e52243c6e68494b6e0ffb84bf' 'd081f2ef8793544685aad35dea75a7e6264a2cb987ff3541e6377f4a3650a28b' '5887f78b55c4ecbbcba5930f3f0bb7bc0117c2a41c2f761805fcf7f46f1ca2b3' @@ -114,6 +118,7 @@ prepare() { # Enable VAAPI on Linux patch -Np1 -i ../chromium-vaapi.patch patch -Np1 -i ../chromium-vaapi-relax-the-version-check-for-VA-API.patch + patch -Np1 -i ../chromium-enable-mojo-video-decoders-by-default.patch patch -Np1 -i ../chromium-vaapi-fix-the-VA_CHECK_VERSION.patch # Load Widevine CDM if available @@ -229,6 +234,9 @@ package() { install -Dm4755 out/Release/chrome_sandbox "$pkgdir/usr/lib/chromium/chrome-sandbox" ln -s /usr/lib/chromium/chromedriver "$pkgdir/usr/bin/chromedriver" + install -Dm644 ../chromium-drirc-disable-10bpc-color-configs.conf \ + "$pkgdir/usr/share/drirc.d/10-$pkgname.conf" + install -Dm644 chrome/installer/linux/common/desktop.template \ "$pkgdir/usr/share/applications/chromium.desktop" install -Dm644 chrome/app/resources/manpage.1.in \ diff --git a/extra/chromium/chromium-drirc-disable-10bpc-color-configs.conf b/extra/chromium/chromium-drirc-disable-10bpc-color-configs.conf new file mode 100644 index 000000000..ef836b322 --- /dev/null +++ b/extra/chromium/chromium-drirc-disable-10bpc-color-configs.conf @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/extra/chromium/chromium-enable-mojo-video-decoders-by-default.patch b/extra/chromium/chromium-enable-mojo-video-decoders-by-default.patch new file mode 100644 index 000000000..9f8ba89e6 --- /dev/null +++ b/extra/chromium/chromium-enable-mojo-video-decoders-by-default.patch @@ -0,0 +1,104 @@ +From 31225b9c5f3f685d65f742dc129241c30c32157c Mon Sep 17 00:00:00 2001 +From: Julien Isorce +Date: Sat, 15 Dec 2018 01:02:18 +0000 +Subject: [PATCH] Enable mojo video decoders by default on Linux desktop if + use_vaapi is true + +Already the case for ChromeOS, Mac and Win. And run the service +in the GPU process too. Except that here the gn arg use_vaapi +has to be true as well. + +Note that this CL does not change the following: + - the gn arg 'use_vaapi' is still false by default on Linux, + see media/gpu/args.gni + - 'accelerated_video_decode' is still black listed on Linux, + see entry 48 in gpu/config/software_rendering_list.json + - it is still not possible to enable hw video decode from + about:flags, see chrome/browser/about_flags.cc + +Also note that with this CL the ffmpeg and libvpx video decoders +are still selected thanks to media::DecoderSelector::SelectDecoder +in case vaapi fails to initialize. + +Also see https://chromium-review.googlesource.com/c/chromium/src/+/1225275/ +which was very similar but for ChromeOS. + +Tested on Linux desktop with gn args: + - use_vaapi = true (default is false) + ./out/release/chrome --ignore-gpu-blacklist --use-gl=desktop url_to_vp9_video + ./out/release/chrome --ignore-gpu-blacklist --use-gl=egl url_to_vp9_video + -> MojoVideoDecoder was in use and VaapiVideoDecodeAccelerator runing in the + GPU process, through MojoVideoDecoderService + + +Bug: 522298 +Change-Id: Ia19f9f3edc0af488a477a16001b7de4f4818b3b2 +Reviewed-on: https://chromium-review.googlesource.com/c/1370717 +Reviewed-by: Dan Sanders +Commit-Queue: Julien Isorce +Cr-Commit-Position: refs/heads/master@{#616901} +--- + media/media_options.gni | 9 ++++++--- + media/mojo/services/gpu_mojo_media_client.cc | 5 +++-- + 2 files changed, 9 insertions(+), 5 deletions(-) + +diff --git a/media/media_options.gni b/media/media_options.gni +index 46eaa58181..6e338f651b 100644 +--- a/media/media_options.gni ++++ b/media/media_options.gni +@@ -5,6 +5,7 @@ + import("//build/config/chrome_build.gni") + import("//build/config/chromecast_build.gni") + import("//build/config/features.gni") ++import("//media/gpu/args.gni") + import("//testing/libfuzzer/fuzzer_test.gni") + + # Do not expand this list without double-checking with OWNERS, this is a list of +@@ -129,8 +130,9 @@ declare_args() { + # |mojo_media_services|). When enabled, selected mojo paths will be enabled in + # the media pipeline and corresponding services will hosted in the selected + # remote process (e.g. "utility" process, see |mojo_media_host|). +- enable_mojo_media = is_android || is_chromecast || is_chromeos || is_mac || +- is_win || enable_library_cdms ++ enable_mojo_media = ++ is_android || is_chromecast || is_chromeos || is_mac || is_win || ++ enable_library_cdms || (is_desktop_linux && use_vaapi) + + # Enable the TestMojoMediaClient to be used in mojo MediaService. This is for + # testing only and will override the default platform MojoMediaClient, if any. +@@ -200,7 +202,8 @@ if (enable_mojo_media) { + ] + _default_mojo_media_host = "gpu" + } +- } else if (is_chromeos || is_mac || is_win) { ++ } else if (is_chromeos || is_mac || is_win || ++ (is_desktop_linux && use_vaapi)) { + _default_mojo_media_services = [ "video_decoder" ] + _default_mojo_media_host = "gpu" + } +diff --git a/media/mojo/services/gpu_mojo_media_client.cc b/media/mojo/services/gpu_mojo_media_client.cc +index 75f5e611c7..f056e1b315 100644 +--- a/media/mojo/services/gpu_mojo_media_client.cc ++++ b/media/mojo/services/gpu_mojo_media_client.cc +@@ -54,7 +54,7 @@ namespace media { + namespace { + + #if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_MACOSX) || \ +- defined(OS_WIN) ++ defined(OS_WIN) || defined(OS_LINUX) + gpu::CommandBufferStub* GetCommandBufferStub( + base::WeakPtr media_gpu_channel_manager, + base::UnguessableToken channel_token, +@@ -148,7 +148,8 @@ std::unique_ptr GpuMojoMediaClient::CreateVideoDecoder( + android_overlay_factory_cb_, std::move(request_overlay_info_cb), + std::make_unique(gpu_task_runner_, + std::move(get_stub_cb))); +-#elif defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN) ++#elif defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN) || \ ++ defined(OS_LINUX) + std::unique_ptr vda_video_decoder = VdaVideoDecoder::Create( + task_runner, gpu_task_runner_, media_log->Clone(), target_color_space, + gpu_preferences_, gpu_workarounds_, +-- +2.20.1 + diff --git a/extra/chromium/chromium-vaapi.patch b/extra/chromium/chromium-vaapi.patch index 3ee3a0d78..da7b355c4 100644 --- a/extra/chromium/chromium-vaapi.patch +++ b/extra/chromium/chromium-vaapi.patch @@ -112,61 +112,5 @@ index 65f37b3f1..ae8a1718f 100644 "features": [ "accelerated_video_decode" ] -diff --git a/media/media_options.gni b/media/media_options.gni -index 46eaa5818..6e338f651 100644 ---- a/media/media_options.gni -+++ b/media/media_options.gni -@@ -5,6 +5,7 @@ - import("//build/config/chrome_build.gni") - import("//build/config/chromecast_build.gni") - import("//build/config/features.gni") -+import("//media/gpu/args.gni") - import("//testing/libfuzzer/fuzzer_test.gni") - - # Do not expand this list without double-checking with OWNERS, this is a list of -@@ -129,8 +130,9 @@ declare_args() { - # |mojo_media_services|). When enabled, selected mojo paths will be enabled in - # the media pipeline and corresponding services will hosted in the selected - # remote process (e.g. "utility" process, see |mojo_media_host|). -- enable_mojo_media = is_android || is_chromecast || is_chromeos || is_mac || -- is_win || enable_library_cdms -+ enable_mojo_media = -+ is_android || is_chromecast || is_chromeos || is_mac || is_win || -+ enable_library_cdms || (is_desktop_linux && use_vaapi) - - # Enable the TestMojoMediaClient to be used in mojo MediaService. This is for - # testing only and will override the default platform MojoMediaClient, if any. -@@ -200,7 +202,8 @@ if (enable_mojo_media) { - ] - _default_mojo_media_host = "gpu" - } -- } else if (is_chromeos || is_mac || is_win) { -+ } else if (is_chromeos || is_mac || is_win || -+ (is_desktop_linux && use_vaapi)) { - _default_mojo_media_services = [ "video_decoder" ] - _default_mojo_media_host = "gpu" - } -diff --git a/media/mojo/services/gpu_mojo_media_client.cc b/media/mojo/services/gpu_mojo_media_client.cc -index 75f5e611c..09a8fef92 100644 ---- a/media/mojo/services/gpu_mojo_media_client.cc -+++ b/media/mojo/services/gpu_mojo_media_client.cc -@@ -54,7 +54,7 @@ namespace media { - namespace { - - #if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_MACOSX) || \ -- defined(OS_WIN) -+ defined(OS_WIN) || defined(OS_LINUX) - gpu::CommandBufferStub* GetCommandBufferStub( - base::WeakPtr media_gpu_channel_manager, - base::UnguessableToken channel_token, -@@ -148,7 +148,7 @@ std::unique_ptr GpuMojoMediaClient::CreateVideoDecoder( - android_overlay_factory_cb_, std::move(request_overlay_info_cb), - std::make_unique(gpu_task_runner_, - std::move(get_stub_cb))); --#elif defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN) -+#elif defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) - std::unique_ptr vda_video_decoder = VdaVideoDecoder::Create( - task_runner, gpu_task_runner_, media_log->Clone(), target_color_space, - gpu_preferences_, gpu_workarounds_, -- 2.20.1