extra/chromium to 129.0.6668.42-1

This commit is contained in:
Kevin Mihelich 2024-09-15 13:56:41 +00:00
parent 2fa59bd785
commit 0abc078b18
8 changed files with 158 additions and 62 deletions

View file

@ -1,6 +1,6 @@
pkgbase = chromium
pkgdesc = A web browser built for speed, simplicity, and security
pkgver = 128.0.6613.137
pkgver = 129.0.6668.42
pkgrel = 1
url = https://www.chromium.org/Home
arch = x86_64
@ -55,15 +55,17 @@ 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-128.0.6613.137.tar.xz
source = https://commondatastorage.googleapis.com/chromium-browser-official/chromium-129.0.6668.42.tar.xz
source = https://github.com/foutrelis/chromium-launcher/archive/v8/chromium-launcher-8.tar.gz
source = allow-ANGLEImplementation-kVulkan.patch
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 = e1d39c170dfdc2627a7b003e11d77f04a578b8e1cfe41e714cdaa345c91f4943
sha256sums = 1523ad6aaed42a0f507737718a17e76f884b2226d96e21780c2fda9457e4cac2
sha256sums = 213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a
sha256sums = 1a5bc75a90abad153c8eb6dbdce138132a5f11190b0a40c925958a72d706b2aa
sha256sums = 40db59162df2b7a2c0387bd620802f15424f637c09ba305b674fc09410ab21d1
sha256sums = 713dab4f8c26790c0e4a4c5ce6a9269e90446df5370cc14214a01a363f7afe39
sha256sums = b3de01b7df227478687d7517f61a777450dca765756002c80c4915f271e2d961
sha256sums = d634d2ce1fc63da7ac41f432b1e84c59b7cceabf19d510848a7cff40c8025342
sha256sums = a9b417b96daec33c9059065e15b3a92ae1bf4b59f89d353659b335d9e0379db6

View file

@ -1,4 +1,4 @@
From 6b48d76f7866b5a681646959ffe44365186df95c Mon Sep 17 00:00:00 2001
From 51bf74f717d74ab647b674a1a48595a122d4d787 Mon Sep 17 00:00:00 2001
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Thu, 18 Feb 2021 19:35:58 -0700
Subject: [PATCH 1/3] widevine support for arm

View file

@ -1,4 +1,4 @@
From 56d856d30a5bb8e56d0b28325f3d8ad78aa7eae2 Mon Sep 17 00:00:00 2001
From 9caf7e9ecac8b8a457e81c4f51e2abe5fb0b3e70 Mon Sep 17 00:00:00 2001
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Tue, 2 Feb 2021 13:58:59 -0700
Subject: [PATCH 2/3] Run blink bindings generation single threaded
@ -9,10 +9,10 @@ When not single threaded this process will eat all the RAM.
1 file changed, 1 insertion(+)
diff --git a/third_party/blink/renderer/bindings/BUILD.gn b/third_party/blink/renderer/bindings/BUILD.gn
index b1c8a6458c7c7..0a2fc40a384db 100644
index 732e344bb97b2..cce7bb433156f 100644
--- a/third_party/blink/renderer/bindings/BUILD.gn
+++ b/third_party/blink/renderer/bindings/BUILD.gn
@@ -163,6 +163,7 @@ template("generate_bindings") {
@@ -166,6 +166,7 @@ template("generate_bindings") {
outputs = invoker.outputs
args = [

View file

@ -1,4 +1,4 @@
From a7894053235761ee41ac1f16cea5667de7103e37 Mon Sep 17 00:00:00 2001
From 3249e23ea9e28f674892a2b8b4e64dcb568e996a Mon Sep 17 00:00:00 2001
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Wed, 21 Jul 2021 21:37:31 -0600
Subject: [PATCH 3/3] Fix eu-strip build for newer GCC

View file

@ -15,7 +15,7 @@
highmem=1
pkgname=chromium
pkgver=128.0.6613.137
pkgver=129.0.6668.42
pkgrel=1
_launcher_ver=8
_manual_clone=0
@ -39,22 +39,24 @@ 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
allow-ANGLEImplementation-kVulkan.patch
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=('e1d39c170dfdc2627a7b003e11d77f04a578b8e1cfe41e714cdaa345c91f4943'
sha256sums=('1523ad6aaed42a0f507737718a17e76f884b2226d96e21780c2fda9457e4cac2'
'213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a'
'1a5bc75a90abad153c8eb6dbdce138132a5f11190b0a40c925958a72d706b2aa'
'40db59162df2b7a2c0387bd620802f15424f637c09ba305b674fc09410ab21d1'
'713dab4f8c26790c0e4a4c5ce6a9269e90446df5370cc14214a01a363f7afe39'
'b3de01b7df227478687d7517f61a777450dca765756002c80c4915f271e2d961'
'd634d2ce1fc63da7ac41f432b1e84c59b7cceabf19d510848a7cff40c8025342'
'a9b417b96daec33c9059065e15b3a92ae1bf4b59f89d353659b335d9e0379db6'
'28618102510072556746324583a2a2d98eacc0cff4c5ba79eca807713d993c39'
'2a93b02d6cac6be6ce7de2f17dc4f2ee9e2b44822ad221536a22a1266f2261f6'
'1e6fda49c714b7e09d9e9e53f7a26c0a96504e0351a269832c6a8e1fb5dcab2f')
'4246da8a2d0bd689b6c8a6ce3042e72ec72497ea64ad47ceb92334afa34a27f1'
'123dbf9cc82085242ee4a9bdaf6354257ea8eba993fb45fcb7f407a176c29abd'
'13e866a9f22a90fde979cc11b15b45fca7f00c78ebb55b41610415c24790bc85')
if (( _manual_clone )); then
source[0]=fetch-chromium-release
@ -140,7 +142,8 @@ prepare() {
patch -Np1 -i ../use-oauth2-client-switches-as-default.patch
# Upstream fixes
patch -Np1 -i ../allow-ANGLEImplementation-kVulkan.patch
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

@ -0,0 +1,62 @@
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

@ -1,44 +0,0 @@
From 1d408de1538427653f776b5e5e646503d0d0f0c5 Mon Sep 17 00:00:00 2001
From: Ho Cheung <hocheung@chromium.org>
Date: Fri, 2 Aug 2024 00:10:43 +0000
Subject: [PATCH] Reland "[ozone+wayland] Allow ANGLEImplementation::kVulkan
when ozone platform is Wayland"
This reverts commit 49aad997bfc37ab236c4cb593ebc2306960a43f5.
Reason: This CL has caused failed tests in at
least two tryjobs of Lacros FYI and Linux Tests
(dbg).
These failed tests seem to be related to the
Vulkan field trial. Now the Vulkan field trial has
been disabled and the related failed tests have
also been suppressed.
Based on the above, all blockers have been
removed, and we can try to merge this CL again.
Bug: 334275637,40722838,41392107
Change-Id: I5fcafff1d3dad431a64c9b429c807c996f6a0d74
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5740783
Reviewed-by: Kramer Ge <fangzhoug@chromium.org>
Commit-Queue: Ho Cheung <hocheung@chromium.org>
Reviewed-by: Nick Yamane <nickdiego@igalia.com>
Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1336353}
---
ui/ozone/platform/wayland/gpu/wayland_surface_factory.cc | 1 +
1 file changed, 1 insertion(+)
diff --git a/ui/ozone/platform/wayland/gpu/wayland_surface_factory.cc b/ui/ozone/platform/wayland/gpu/wayland_surface_factory.cc
index 051e26171012..dcb947ae88f4 100644
--- a/ui/ozone/platform/wayland/gpu/wayland_surface_factory.cc
+++ b/ui/ozone/platform/wayland/gpu/wayland_surface_factory.cc
@@ -213,6 +213,7 @@ WaylandSurfaceFactory::GetAllowedGLImplementations() {
impls.emplace_back(gl::ANGLEImplementation::kOpenGL);
impls.emplace_back(gl::ANGLEImplementation::kOpenGLES);
impls.emplace_back(gl::ANGLEImplementation::kSwiftShader);
+ impls.emplace_back(gl::ANGLEImplementation::kVulkan);
}
return impls;
}

View file

@ -0,0 +1,73 @@
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;