extra/chromium to 130.0.6723.58-1

This commit is contained in:
Kevin Mihelich 2024-10-17 00:40:05 +00:00
parent 15cc8506a1
commit 63d9b215ac
5 changed files with 16 additions and 154 deletions

View file

@ -1,6 +1,6 @@
pkgbase = chromium
pkgdesc = A web browser built for speed, simplicity, and security
pkgver = 129.0.6668.100
pkgver = 130.0.6723.58
pkgrel = 1
url = https://www.chromium.org/Home
arch = x86_64
@ -19,6 +19,11 @@ pkgbase = chromium
makedepends = qt6-base
makedepends = java-runtime-headless
makedepends = git
makedepends = python-httplib2
makedepends = python-pyparsing
makedepends = python-six
makedepends = npm
makedepends = rsync
depends = gtk3
depends = nss
depends = alsa-lib
@ -55,17 +60,13 @@ pkgbase = chromium
optdepends = kwallet: support for storing passwords in KWallet on Plasma
optdepends = upower: Battery Status API support
options = !lto
source = https://commondatastorage.googleapis.com/chromium-browser-official/chromium-129.0.6668.100.tar.xz
source = fetch-chromium-release
source = https://github.com/foutrelis/chromium-launcher/archive/v8/chromium-launcher-8.tar.gz
source = p010-Zero-Copy-for-VA-API-Decoding-for-Vulkan.patch
source = add-feature-to-allow-zero-copy-video-formats.patch
source = compiler-rt-adjust-paths.patch
source = increase-fortify-level.patch
source = use-oauth2-client-switches-as-default.patch
sha256sums = 281daed29a5cb546f6273130035d9980666d2232f356ad95fc06af3c90121bc2
sha256sums = b571d1593df8cbc0ee2fba9eb3597f5106ed740aaeaf853c310e776fff4c9d87
sha256sums = 213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a
sha256sums = 40db59162df2b7a2c0387bd620802f15424f637c09ba305b674fc09410ab21d1
sha256sums = 713dab4f8c26790c0e4a4c5ce6a9269e90446df5370cc14214a01a363f7afe39
sha256sums = b3de01b7df227478687d7517f61a777450dca765756002c80c4915f271e2d961
sha256sums = d634d2ce1fc63da7ac41f432b1e84c59b7cceabf19d510848a7cff40c8025342
sha256sums = a9b417b96daec33c9059065e15b3a92ae1bf4b59f89d353659b335d9e0379db6

View file

@ -15,7 +15,7 @@
highmem=1
pkgname=chromium
pkgver=129.0.6668.100
pkgver=130.0.6723.58
pkgrel=1
_launcher_ver=8
_manual_clone=0
@ -39,18 +39,14 @@ optdepends=('pipewire: WebRTC desktop sharing under Wayland'
options=('!lto') # Chromium adds its own flags for ThinLTO
source=(https://commondatastorage.googleapis.com/chromium-browser-official/chromium-$pkgver.tar.xz
https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver/chromium-launcher-$_launcher_ver.tar.gz
p010-Zero-Copy-for-VA-API-Decoding-for-Vulkan.patch
add-feature-to-allow-zero-copy-video-formats.patch
compiler-rt-adjust-paths.patch
increase-fortify-level.patch
use-oauth2-client-switches-as-default.patch
0001-widevine-support-for-arm.patch
0002-Run-blink-bindings-generation-single-threaded.patch
0003-Fix-eu-strip-build-for-newer-GCC.patch)
sha256sums=('281daed29a5cb546f6273130035d9980666d2232f356ad95fc06af3c90121bc2'
sha256sums=('720a1196410080056cd97a1f5ec34d68ba216a281d9b5157b7ea81ea018ec661'
'213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a'
'40db59162df2b7a2c0387bd620802f15424f637c09ba305b674fc09410ab21d1'
'713dab4f8c26790c0e4a4c5ce6a9269e90446df5370cc14214a01a363f7afe39'
'b3de01b7df227478687d7517f61a777450dca765756002c80c4915f271e2d961'
'd634d2ce1fc63da7ac41f432b1e84c59b7cceabf19d510848a7cff40c8025342'
'a9b417b96daec33c9059065e15b3a92ae1bf4b59f89d353659b335d9e0379db6'
@ -60,7 +56,7 @@ sha256sums=('281daed29a5cb546f6273130035d9980666d2232f356ad95fc06af3c90121bc2'
if (( _manual_clone )); then
source[0]=fetch-chromium-release
makedepends+=('python-httplib2' 'python-pyparsing' 'python-six')
makedepends+=('python-httplib2' 'python-pyparsing' 'python-six' 'npm' 'rsync')
fi
# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py
@ -142,8 +138,6 @@ prepare() {
patch -Np1 -i ../use-oauth2-client-switches-as-default.patch
# Upstream fixes
patch -Np1 -i ../p010-Zero-Copy-for-VA-API-Decoding-for-Vulkan.patch
patch -Np1 -i ../add-feature-to-allow-zero-copy-video-formats.patch
# Allow libclang_rt.builtins from compiler-rt >= 16 to be used
patch -Np1 -i ../compiler-rt-adjust-paths.patch

View file

@ -1,62 +0,0 @@
From fb42a91ffae45f6a7c1639ebf0f1622b7c346d1d Mon Sep 17 00:00:00 2001
From: Robert Mader <robert.mader@collabora.com>
Date: Thu, 5 Sep 2024 23:56:20 +0000
Subject: [PATCH] media: Add feature to allow zero-copy video formats with GL
on Linux
With EGL formats like NV12 can usually be imported directly from VA-API
and V4L2 decoders. Doing so can improve performance a lot - and in cases
where there is no PP to convert to RGB, not supporting it can break HW
decoding altogether.
Unfortunately allowing it unconditionally could cause regressions in
various scenarios - such as when using GLX or a driver that doesn't
support sampling NV12.
Thus introduce a feature - disabled by default for now - to make it easy
to enable these formats.
Note that on Wayland it might be required to disable overlay delegation
with `--disable-features=WaylandOverlayDelegation`.
Change-Id: I8ee396de5f6d4958278b0f0bd53bfa9a7007c8c7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5038617
Reviewed-by: Ted (Chromium) Meyer <tmathmeyer@chromium.org>
Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
Commit-Queue: Andres Calderon Jaramillo <andrescj@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1351792}
---
media/mojo/services/gpu_mojo_media_client_linux.cc | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/media/mojo/services/gpu_mojo_media_client_linux.cc b/media/mojo/services/gpu_mojo_media_client_linux.cc
index c592c2e4c2c2..cd86a3253e07 100644
--- a/media/mojo/services/gpu_mojo_media_client_linux.cc
+++ b/media/mojo/services/gpu_mojo_media_client_linux.cc
@@ -18,6 +18,10 @@ namespace media {
namespace {
+BASE_FEATURE(kVaapiVideoDecodeLinuxZeroCopyGL,
+ "VaapiVideoDecodeLinuxZeroCopyGL",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
VideoDecoderType GetPreferredLinuxDecoderImplementation() {
// VaapiVideoDecoder flag is required for VaapiVideoDecoder.
if (!base::FeatureList::IsEnabled(kVaapiVideoDecodeLinux)) {
@@ -50,8 +54,15 @@ std::vector<Fourcc> GetPreferredRenderableFourccs(
if (gpu_preferences.gr_context_type == gpu::GrContextType::kVulkan) {
renderable_fourccs.emplace_back(Fourcc::NV12);
renderable_fourccs.emplace_back(Fourcc::P010);
- }
+ } else
#endif // BUILDFLAG(ENABLE_VULKAN)
+ // Allow zero-copy formats with GL for testing or in controlled
+ // environments.
+ if (gpu_preferences.gr_context_type == gpu::GrContextType::kGL &&
+ base::FeatureList::IsEnabled(kVaapiVideoDecodeLinuxZeroCopyGL)) {
+ renderable_fourccs.emplace_back(Fourcc::NV12);
+ renderable_fourccs.emplace_back(Fourcc::P010);
+ }
// Support 1-copy argb textures.
//

View file

@ -24,7 +24,8 @@ EOF
git clone --depth=1 https://chromium.googlesource.com/chromium/tools/depot_tools
export PATH+=":$PWD/depot_tools" DEPOT_TOOLS_UPDATE=0
export VPYTHON_BYPASS='manually managed python not supported by chrome operations'
# system python fails to load six.moves module
#export VPYTHON_BYPASS='manually managed python not supported by chrome operations'
git clone -b $VERSION --depth=2 https://chromium.googlesource.com/chromium/src
gclient sync --no-history --nohooks
@ -37,8 +38,9 @@ src/build/util/lastchange.py \
-s src/third_party/dawn --revision src/gpu/webgpu/DAWN_VERSION
src/tools/update_pgo_profiles.py --target=linux update \
--gs-url-base=chromium-optimization-profiles/pgo_profiles
download_from_google_storage.py --no_resume --extract --no_auth \
--bucket chromium-nodejs -s src/third_party/node/node_modules.tar.gz.sha1
# https://gitlab.archlinux.org/archlinux/packaging/packages/electron32/-/issues/1
src/third_party/node/update_npm_deps
find src/third_party/jdk/current -type f -delete
mv src ../chromium-$VERSION

View file

@ -1,73 +0,0 @@
From 882f184c471fc8e5c59ead4e4c8eaf06dc7f89da Mon Sep 17 00:00:00 2001
From: Jianhui Dai <jianhui.j.dai@intel.com>
Date: Wed, 4 Sep 2024 01:28:15 +0000
Subject: [PATCH] vaapi_decoder/linux: P010 Zero-Copy for VA-API Video Decoding
for Vulkan
This CL adds P010 to the list of renderable formats for Vulkan, enabling
zero-copy video decoding via VA-API. By avoiding the unnecessary
conversion from P010 to NV12, this optimization preserves color depth
and improves overall performance.
Test on Ubuntu 22.04 for Alder Lake:
Linux Ozone-Wayland Vulkan:
`
chrome --ignore-gpu-blocklist --disable-gpu-driver-bug-workaround
--enable-features=Vulkan,VaapiIgnoreDriverChecks,DefaultANGLEVulkan,VulkanFromANGLE
--use-gl=angle --use-angle=vulkan --ozone-platform=wayland
`
Linux Ozone-X11 Vulkan:
`
chrome --ignore-gpu-blocklist --disable-gpu-driver-bug-workaround
--enable-features=Vulkan,VaapiIgnoreDriverChecks,DefaultANGLEVulkan,VulkanFromANGLE
--use-gl=angle --use-angle=vulkan --ozone-platform=x11
`
HEVC Main 10 10-bit test video:
https://developer.apple.com/videos/play/wwdc2024/10136/
Bug: 349428388
Change-Id: I4a5524d8224982e44a928467bb37a46b8404d402
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5831505
Reviewed-by: Ted (Chromium) Meyer <tmathmeyer@chromium.org>
Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
Commit-Queue: Jianhui J Dai <jianhui.j.dai@intel.com>
Cr-Commit-Position: refs/heads/main@{#1350537}
---
.../mojo/services/gpu_mojo_media_client_linux.cc | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/media/mojo/services/gpu_mojo_media_client_linux.cc b/media/mojo/services/gpu_mojo_media_client_linux.cc
index 6c8dcffca050..c592c2e4c2c2 100644
--- a/media/mojo/services/gpu_mojo_media_client_linux.cc
+++ b/media/mojo/services/gpu_mojo_media_client_linux.cc
@@ -45,20 +45,21 @@ VideoDecoderType GetPreferredLinuxDecoderImplementation() {
std::vector<Fourcc> GetPreferredRenderableFourccs(
const gpu::GpuPreferences& gpu_preferences) {
std::vector<Fourcc> renderable_fourccs;
- // TODO(crbug.com/349428388): For HEVC Main 10 and VP9 Profile2 10-bit video,
- // the current implementation requires additional VPP to convert the P010
- // format to a renderable format. This VPP happens on the Vulkan path
- // (P010 -> NV12) and OpenGL path (P010 -> AR24). While this VPP introduces a
- // loss of color depth, it should be optimized for zero-copy path in the
- // future.
#if BUILDFLAG(ENABLE_VULKAN)
- // Support for zero-copy NV12 textures preferentially.
+ // Support for zero-copy NV12/P010 textures preferentially.
if (gpu_preferences.gr_context_type == gpu::GrContextType::kVulkan) {
renderable_fourccs.emplace_back(Fourcc::NV12);
+ renderable_fourccs.emplace_back(Fourcc::P010);
}
#endif // BUILDFLAG(ENABLE_VULKAN)
// Support 1-copy argb textures.
+ //
+ // TODO(crbug.com/349428388): For VP9 Profile2 and HEVC Main 10 10-bit video,
+ // the current implementation requires additional VPP to convert the NV12/P010
+ // format to a renderable format AR24. While this VPP introduces a loss of
+ // color depth (P010 -> AR24), it should be optimized for zero-copy path in
+ // the future.
renderable_fourccs.emplace_back(Fourcc::AR24);
return renderable_fourccs;