diff options
author | networkException <ungoogled-github-actions.arch@nwex.de> | 2024-09-21 15:00:54 +0000 |
---|---|---|
committer | networkException <ungoogled-github-actions.arch@nwex.de> | 2024-09-21 15:00:54 +0000 |
commit | 3bfa54e8f8dd2470d1816c15044e2b6d1633a378 (patch) | |
tree | f500e03ac2bf4131c937dd0349830475493bc6b0 | |
parent | 3f6a487460745b0a3d3a7b1c5ebe67f31331c554 (diff) | |
download | ungoogled-chromium-3bfa54e8f8dd2470d1816c15044e2b6d1633a378.tar.gz ungoogled-chromium-3bfa54e8f8dd2470d1816c15044e2b6d1633a378.tar.bz2 ungoogled-chromium-3bfa54e8f8dd2470d1816c15044e2b6d1633a378.zip |
Upgrade to 129.0.6668.58-1
-rw-r--r-- | .SRCINFO | 22 | ||||
-rw-r--r-- | PKGBUILD | 23 | ||||
-rw-r--r-- | add-feature-to-allow-zero-copy-video-formats.patch | 62 | ||||
-rw-r--r-- | p010-Zero-Copy-for-VA-API-Decoding-for-Vulkan.patch | 73 |
4 files changed, 160 insertions, 20 deletions
@@ -1,6 +1,6 @@ pkgbase = ungoogled-chromium pkgdesc = A lightweight approach to removing Google web service dependency - pkgver = 128.0.6613.137 + pkgver = 129.0.6668.58 pkgrel = 1 url = https://github.com/ungoogled-software/ungoogled-chromium arch = x86_64 @@ -37,7 +37,7 @@ pkgbase = ungoogled-chromium depends = hicolor-icon-theme depends = fontconfig depends = brotli - depends = libjpeg + depends = libjpeg-turbo depends = icu depends = flac depends = libxml2 @@ -54,15 +54,14 @@ pkgbase = ungoogled-chromium optdepends = org.freedesktop.secrets: password storage backend on GNOME / Xfce optdepends = kwallet: support for storing passwords in KWallet on Plasma optdepends = upower: Battery Status API support - provides = chromium=128.0.6613.137 - provides = chromedriver=128.0.6613.137 + provides = chromium=129.0.6668.58 + provides = chromedriver=129.0.6668.58 conflicts = chromium conflicts = chromedriver options = !lto - source = https://commondatastorage.googleapis.com/chromium-browser-official/chromium-128.0.6613.137.tar.xz - source = ungoogled-chromium-128.0.6613.137-1.tar.gz::https://github.com/ungoogled-software/ungoogled-chromium/archive/128.0.6613.137-1.tar.gz + source = https://commondatastorage.googleapis.com/chromium-browser-official/chromium-129.0.6668.58.tar.xz + source = ungoogled-chromium-129.0.6668.58-1.tar.gz::https://github.com/ungoogled-software/ungoogled-chromium/archive/129.0.6668.58-1.tar.gz source = https://github.com/foutrelis/chromium-launcher/archive/v8/chromium-launcher-8.tar.gz - source = allow-ANGLEImplementation-kVulkan.patch source = compiler-rt-adjust-paths.patch source = increase-fortify-level.patch source = use-oauth2-client-switches-as-default.patch @@ -71,10 +70,11 @@ pkgbase = ungoogled-chromium source = 0001-ozone-wayland-implement-text_input_manager_v3.patch source = 0001-ozone-wayland-implement-text_input_manager-fixes.patch source = 0001-vaapi-flag-ozone-wayland.patch - sha256sums = e1d39c170dfdc2627a7b003e11d77f04a578b8e1cfe41e714cdaa345c91f4943 - sha256sums = 94e2f80f72b1c0f791c826c734a676cd0cb60ebaaf2a8a4941a8475a15f5508d + source = p010-Zero-Copy-for-VA-API-Decoding-for-Vulkan.patch + source = add-feature-to-allow-zero-copy-video-formats.patch + sha256sums = eaf850183d32627ce0cde9f3d3f853bc11c217ef7f41540303214ed47803d96d + sha256sums = a52872325dcf1121acbabec781edfabe068a50a9080e81e69b249dd6301f2eac sha256sums = 213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a - sha256sums = 1a5bc75a90abad153c8eb6dbdce138132a5f11190b0a40c925958a72d706b2aa sha256sums = b3de01b7df227478687d7517f61a777450dca765756002c80c4915f271e2d961 sha256sums = d634d2ce1fc63da7ac41f432b1e84c59b7cceabf19d510848a7cff40c8025342 sha256sums = a9b417b96daec33c9059065e15b3a92ae1bf4b59f89d353659b335d9e0379db6 @@ -83,5 +83,7 @@ pkgbase = ungoogled-chromium sha256sums = d9974ddb50777be428fd0fa1e01ffe4b587065ba6adefea33678e1b3e25d1285 sha256sums = a2da75d0c20529f2d635050e0662941c0820264ea9371eb900b9d90b5968fa6a sha256sums = 9a5594293616e1390462af1f50276ee29fd6075ffab0e3f944f6346cb2eb8aec + sha256sums = 40db59162df2b7a2c0387bd620802f15424f637c09ba305b674fc09410ab21d1 + sha256sums = 713dab4f8c26790c0e4a4c5ce6a9269e90446df5370cc14214a01a363f7afe39 pkgname = ungoogled-chromium @@ -9,13 +9,13 @@ # Contributor: Daniel J Griffiths <ghost1227@archlinux.us> pkgname=ungoogled-chromium -pkgver=128.0.6613.137 +pkgver=129.0.6668.58 pkgrel=1 _launcher_ver=8 _system_clang=1 # ungoogled chromium variables _uc_usr=ungoogled-software -_uc_ver=128.0.6613.137-1 +_uc_ver=129.0.6668.58-1 pkgdesc="A lightweight approach to removing Google web service dependency" arch=('x86_64') url="https://github.com/ungoogled-software/ungoogled-chromium" @@ -38,7 +38,6 @@ options=('!lto') # Chromium adds its own flags for ThinLTO source=(https://commondatastorage.googleapis.com/chromium-browser-official/chromium-$pkgver.tar.xz $pkgname-$_uc_ver.tar.gz::https://github.com/$_uc_usr/ungoogled-chromium/archive/$_uc_ver.tar.gz https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver/chromium-launcher-$_launcher_ver.tar.gz - allow-ANGLEImplementation-kVulkan.patch compiler-rt-adjust-paths.patch increase-fortify-level.patch use-oauth2-client-switches-as-default.patch @@ -46,11 +45,12 @@ source=(https://commondatastorage.googleapis.com/chromium-browser-official/chrom 0001-enable-linux-unstable-deb-target.patch 0001-ozone-wayland-implement-text_input_manager_v3.patch 0001-ozone-wayland-implement-text_input_manager-fixes.patch - 0001-vaapi-flag-ozone-wayland.patch) -sha256sums=('e1d39c170dfdc2627a7b003e11d77f04a578b8e1cfe41e714cdaa345c91f4943' - '94e2f80f72b1c0f791c826c734a676cd0cb60ebaaf2a8a4941a8475a15f5508d' + 0001-vaapi-flag-ozone-wayland.patch + p010-Zero-Copy-for-VA-API-Decoding-for-Vulkan.patch + add-feature-to-allow-zero-copy-video-formats.patch) +sha256sums=('eaf850183d32627ce0cde9f3d3f853bc11c217ef7f41540303214ed47803d96d' + 'a52872325dcf1121acbabec781edfabe068a50a9080e81e69b249dd6301f2eac' '213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a' - '1a5bc75a90abad153c8eb6dbdce138132a5f11190b0a40c925958a72d706b2aa' 'b3de01b7df227478687d7517f61a777450dca765756002c80c4915f271e2d961' 'd634d2ce1fc63da7ac41f432b1e84c59b7cceabf19d510848a7cff40c8025342' 'a9b417b96daec33c9059065e15b3a92ae1bf4b59f89d353659b335d9e0379db6' @@ -58,7 +58,9 @@ sha256sums=('e1d39c170dfdc2627a7b003e11d77f04a578b8e1cfe41e714cdaa345c91f4943' '2a44756404e13c97d000cc0d859604d6848163998ea2f838b3b9bb2c840967e3' 'd9974ddb50777be428fd0fa1e01ffe4b587065ba6adefea33678e1b3e25d1285' 'a2da75d0c20529f2d635050e0662941c0820264ea9371eb900b9d90b5968fa6a' - '9a5594293616e1390462af1f50276ee29fd6075ffab0e3f944f6346cb2eb8aec') + '9a5594293616e1390462af1f50276ee29fd6075ffab0e3f944f6346cb2eb8aec' + '40db59162df2b7a2c0387bd620802f15424f637c09ba305b674fc09410ab21d1' + '713dab4f8c26790c0e4a4c5ce6a9269e90446df5370cc14214a01a363f7afe39') # Possible replacements are listed in build/linux/unbundle/replace_gn_files.py # Keys are the names in the above script; values are the dependencies in Arch @@ -75,7 +77,7 @@ declare -gA _system_libs=( #[libaom]=aom #[libavif]=libavif # needs -DAVIF_ENABLE_EXPERIMENTAL_GAIN_MAP=ON [libdrm]= - [libjpeg]=libjpeg + [libjpeg]=libjpeg-turbo [libpng]=libpng #[libvpx]=libvpx [libwebp]=libwebp @@ -112,7 +114,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 diff --git a/add-feature-to-allow-zero-copy-video-formats.patch b/add-feature-to-allow-zero-copy-video-formats.patch new file mode 100644 index 0000000..dd4ab91 --- /dev/null +++ b/add-feature-to-allow-zero-copy-video-formats.patch @@ -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. + // diff --git a/p010-Zero-Copy-for-VA-API-Decoding-for-Vulkan.patch b/p010-Zero-Copy-for-VA-API-Decoding-for-Vulkan.patch new file mode 100644 index 0000000..66df840 --- /dev/null +++ b/p010-Zero-Copy-for-VA-API-Decoding-for-Vulkan.patch @@ -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; |