summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorsL1pKn072018-02-24 19:32:51 +0100
committersL1pKn072018-02-24 19:33:06 +0100
commitfb09ead5133c0b28cb607d9b87c6c8a0b23b4108 (patch)
tree569e866a9858d5920bb5db3ed5f36a61f988b8ee
parent8670e9e1691649f1424759b7b258572bdc6165ef (diff)
downloadaur-fb09ead5133c0b28cb607d9b87c6c8a0b23b4108.tar.gz
Update to 66.0.3350.0
- VAAPI patch disable again (ca't apply) - Enable Vulkan!! - clean patches
-rw-r--r--.SRCINFO17
-rw-r--r--.gitignore6
-rw-r--r--PKGBUILD82
-rw-r--r--chromium-exclude_unwind_tables_r3.patch (renamed from chromium-exclude_unwind_tables_r2.patch.patch)4
-rw-r--r--chromium-intel-vaapi_r16.diff.patch673
5 files changed, 55 insertions, 727 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 8568d165caed..fe013b2aaf87 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,8 +1,8 @@
# Generated by mksrcinfo v8
-# Sat Jan 20 20:04:19 UTC 2018
+# Sat Feb 24 18:28:02 UTC 2018
pkgbase = chromium-dev
pkgdesc = The open-source project behind Google Chrome (Dev Channel)
- pkgver = 65.0.3322.3
+ pkgver = 66.0.3350.0
pkgrel = 1
url = http://www.chromium.org
install = chromium-dev.install
@@ -38,6 +38,7 @@ pkgbase = chromium-dev
depends = ffmpeg
depends = gtk3
depends = openh264
+ depends = vulkan-icd-loader
optdepends = pepper-flash: PPAPI Flash Player
optdepends = chromium-widevine-dev: Widevine plugin (eg: Netflix) (Dev Channel)
optdepends = kdialog: Needed for file dialogs in KF5
@@ -48,22 +49,22 @@ pkgbase = chromium-dev
optdepends = libva-mesa-driver: HW video acceleration for Nouveau, R600 and RadeonSI users
optdepends = libva-intel-driver: HW video acceleration for Intel G45 and HD users
options = !strip
- source = https://commondatastorage.googleapis.com/chromium-browser-official/chromium-65.0.3322.3.tar.xz
+ source = https://commondatastorage.googleapis.com/chromium-browser-official/chromium-66.0.3350.0.tar.xz
source = git+https://github.com/foutrelis/chromium-launcher.git
source = chromium-dev.svg
source = https://raw.githubusercontent.com/gentoo/gentoo/master/www-client/chromium/files/chromium-FORTIFY_SOURCE-r2.patch
source = https://raw.githubusercontent.com/gentoo/gentoo/master/www-client/chromium/files/chromium-clang-r2.patch
- source = chromium-intel-vaapi_r16.diff.patch
+ source = chromium-intel-vaapi_r16.diff.base64::https://chromium-review.googlesource.com/changes/532294/revisions/16/patch?download
source = chromium-widevine-r1.patch
- source = chromium-exclude_unwind_tables_r2.patch.patch
- sha256sums = b43070ce9edee64667022ae4eabf8929f3e713f9eead3ba092545a45b7667913
+ source = chromium-exclude_unwind_tables_r3.patch
+ sha256sums = 553129cbf651f0d94bf0200f46c0359f2abd2aebf435723ebf667bb5062b6ffa
sha256sums = SKIP
sha256sums = dd2b5c4191e468972b5ea8ddb4fa2e2fa3c2c94c79fc06645d0efc0e63ce7ee1
sha256sums = fa3f703d599051135c5be24b81dfcb23190bb282db73121337ac76bc9638e8a5
sha256sums = 4495e8b29dae242c79ffe4beefc5171eb3c7aacb7e9aebfd2d4d69b9d8c958d3
- sha256sums = c32d71237cf9dca71c35ec54431749c837eb3a7b7dae2fb3fc88beafefa1ca97
+ sha256sums = 83d1ba905ff8ad41ada7d87963cf7b5e1c3a7ece5690e595dfb762ac30695637
sha256sums = 0d537830944814fe0854f834b5dc41dc5fc2428f77b2ad61d4a5e76b0fe99880
- sha256sums = 9478f1ec1a3c53425306cf41c2d0555c215a4f106955d9d6adfff38044530ce8
+ sha256sums = 603d05a0099302ea0797888ac499053a44c11f136ef9e2c471be52c62f6e499c
pkgname = chromium-dev
diff --git a/.gitignore b/.gitignore
index f9d1ffc250d7..371ed59e8ba5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,8 +5,4 @@
!chromium-dev.install
!chromium-dev.svg
!chromium-widevine-r1.patch
-!chromium-intel-vaapi_r16.diff.patch
-!chromium-exclude_unwind_tables_r2.patch.patch
-!pkg
-!src
-
+!chromium-exclude_unwind_tables_r3.patch
diff --git a/PKGBUILD b/PKGBUILD
index e6da9a4953e6..3d7249e46f5c 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -18,7 +18,7 @@ _use_wayland=0 # Build Wayland NOTE: extremely experimental and don't work at
## -- Package and components information -- ##
##############################################
pkgname=chromium-dev
-pkgver=65.0.3322.3
+pkgver=66.0.3350.0
pkgrel=1
pkgdesc="The open-source project behind Google Chrome (Dev Channel)"
arch=('x86_64')
@@ -43,6 +43,7 @@ depends=(
# 'icu' # https://crbug.com/678661
'gtk3'
'openh264'
+ 'vulkan-icd-loader'
)
makedepends=(
'libexif'
@@ -81,12 +82,11 @@ source=( #"https://gsdview.appspot.com/chromium-browser-official/chromium-${pkgv
'https://raw.githubusercontent.com/gentoo/gentoo/master/www-client/chromium/files/chromium-FORTIFY_SOURCE-r2.patch'
'https://raw.githubusercontent.com/gentoo/gentoo/master/www-client/chromium/files/chromium-clang-r2.patch'
# Misc Patches
-# 'chromium-intel-vaapi_r15.diff.base64::https://chromium-review.googlesource.com/changes/532294/revisions/15/patch?download'
- 'chromium-intel-vaapi_r16.diff.patch'
+ 'chromium-intel-vaapi_r16.diff.base64::https://chromium-review.googlesource.com/changes/532294/revisions/16/patch?download'
# Patch from crbug (chromium bugtracker) or Arch chromium package
'chromium-widevine-r1.patch'
# 'chromium-exclude_unwind_tables.patch.base64::https://chromium-review.googlesource.com/changes/712575/revisions/1/patch?download' # https://bugs.archlinux.org/task/55914
- 'chromium-exclude_unwind_tables_r2.patch.patch'
+ 'chromium-exclude_unwind_tables_r3.patch'
)
sha256sums=( #"$(curl -sL https://gsdview.appspot.com/chromium-browser-official/chromium-${pkgver}.tar.xz.hashes | grep sha256 | cut -d ' ' -f3)"
"$(curl -sL https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${pkgver}.tar.xz.hashes | grep sha256 | cut -d ' ' -f3)"
@@ -96,19 +96,15 @@ sha256sums=( #"$(curl -sL https://gsdview.appspot.com/chromium-browser-official/
'fa3f703d599051135c5be24b81dfcb23190bb282db73121337ac76bc9638e8a5'
'4495e8b29dae242c79ffe4beefc5171eb3c7aacb7e9aebfd2d4d69b9d8c958d3'
# Misc Patches
-# 'cb4933db92b669696201b2866ec9b4942466a849b94b13463d8331284d09a2d1'
- 'c32d71237cf9dca71c35ec54431749c837eb3a7b7dae2fb3fc88beafefa1ca97'
+ '83d1ba905ff8ad41ada7d87963cf7b5e1c3a7ece5690e595dfb762ac30695637'
# Patch from crbug (chromium bugtracker) or Arch chromium package
'0d537830944814fe0854f834b5dc41dc5fc2428f77b2ad61d4a5e76b0fe99880'
# 'd4a99239701256edb37ef3a5504fa87ca2219349834cbf59b9fe42bf7ac496d8'
- '9478f1ec1a3c53425306cf41c2d0555c215a4f106955d9d6adfff38044530ce8'
+ '603d05a0099302ea0797888ac499053a44c11f136ef9e2c471be52c62f6e499c'
)
options=('!strip')
install=chromium-dev.install
-# only for test purpose
-#BUILDDIR=$(pwd)
-
################################################
## -- Don't touch anything below this line -- ##
################################################
@@ -122,10 +118,8 @@ _google_default_client_id="413772536636.apps.googleusercontent.com"
_google_default_client_secret="0ZChLK6AxeA3Isu96MkwqDR4"
# Build NaCL
-# VULKAN!! # https://crbug.com/582558 NOTE: disabled by default
_build_nacl=1
_nacl=true
-_vulkan=0
makedepends+=('ncurses5-compat-libs')
# Need you use ccache?.
@@ -151,6 +145,9 @@ _keeplibs=(
'base/third_party/valgrind'
'base/third_party/xdg_mime'
'base/third_party/xdg_user_dirs'
+ 'buildtools/third_party/libc++'
+ 'buildtools/third_party/libc++abi'
+ 'buildtools/third_party/libunwind'
'chrome/third_party/mozilla_security_manager'
'courgette/third_party'
'native_client/src/third_party/dlmalloc'
@@ -165,6 +162,10 @@ _keeplibs=(
'third_party/angle/src/third_party/compiler'
'third_party/angle/src/third_party/libXNVCtrl'
'third_party/angle/src/third_party/trace_event'
+ 'third_party/angle/third_party/glslang'
+ 'third_party/angle/third_party/spirv-headers'
+ 'third_party/angle/third_party/spirv-tools'
+ 'third_party/angle/third_party/vulkan-validation-layers'
'third_party/blink'
'third_party/boringssl'
'third_party/boringssl/src/third_party/fiat'
@@ -220,6 +221,7 @@ _keeplibs=(
'third_party/libwebm'
'third_party/libxml/chromium'
'third_party/libyuv'
+ 'third_party/llvm'
'third_party/lss'
'third_party/lzma_sdk'
'third_party/markupsafe'
@@ -234,13 +236,14 @@ _keeplibs=(
'third_party/pdfium'
'third_party/pdfium/third_party/agg23'
'third_party/pdfium/third_party/base'
- 'third_party/pdfium/third_party/build'
'third_party/pdfium/third_party/bigint'
+ 'third_party/pdfium/third_party/eu-strip'
'third_party/pdfium/third_party/freetype'
'third_party/pdfium/third_party/lcms'
'third_party/pdfium/third_party/libopenjpeg20'
'third_party/pdfium/third_party/libpng16'
'third_party/pdfium/third_party/libtiff'
+ 'third_party/pdfium/third_party/skia_shared'
'third_party/ply'
'third_party/polymer'
'third_party/protobuf'
@@ -261,6 +264,7 @@ _keeplibs=(
'third_party/swiftshader/third_party/llvm-subzero'
'third_party/swiftshader/third_party/subzero'
'third_party/tcmalloc'
+ 'third_party/unrar'
'third_party/usrsctp'
'third_party/vulkan-validation-layers'
'third_party/vulkan'
@@ -270,6 +274,7 @@ _keeplibs=(
'third_party/widevine'
'third_party/woff2'
'third_party/zlib/google'
+
'url/third_party/mozilla'
'v8/src/third_party/valgrind'
'v8/src/third_party/utf8-decoder'
@@ -309,6 +314,7 @@ _flags=(
'use_custom_libcxx=false'
'use_lld=false' # https://bugs.gentoo.org/641556
'use_jumbo_build=false' # https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
+ 'enable_vulkan=true'
)
if [ "$_wayland" = "1" ]; then
@@ -319,9 +325,7 @@ if [ "$_wayland" = "1" ]; then
'enable_vulkan_wayland_client=true'
)
fi
-if [ "$_vulkan" = "1" ]; then
- _flags+=('enable_vulkan=true')
-fi
+
# Enable VAAPI, see https://chromium-review.googlesource.com/532294
_flags+=('use_vaapi=true')
@@ -419,6 +423,7 @@ prepare() {
# Done this time :D
# Misc Patches:
+ sed '11i#include <cstring>' -i third_party/webrtc/api/audio/audio_frame.cc
# https://crbug.com/710701
_chrome_build_hash=$(curl -s "https://chromium.googlesource.com/chromium/src.git/+/${pkgver}?format=TEXT" | base64 -d | grep -Po '^parent \K[0-9a-f]{40}$')
@@ -428,15 +433,12 @@ prepare() {
fi
echo "LASTCHANGE=$_chrome_build_hash-" > build/util/LASTCHANGE
- if [ "${_vulkan}" = "1" ]; then
- export VULKAN_SDK="/usr"
- sed 's|base/||' -i cc/output/vulkan_renderer.h
- sed 's|/x86_64-linux-gnu||' -i gpu/vulkan/BUILD.gn
- fi
+ # Setup vulkan
+ export VULKAN_SDK="/usr"
+ sed 's|/x86_64-linux-gnu||' -i gpu/vulkan/BUILD.gn
# Apply VAAPI patch
- # base64 -d "${srcdir}/chromium-intel-vaapi_r15.diff.base64" | patch -p1 -i -
- #patch -p1 -i "${srcdir}/chromium-intel-vaapi_r16.diff.patch"
+ #base64 -d "${srcdir}/chromium-intel-vaapi_r16.diff.base64" | patch -p1 -i -
# Patch from crbug (chromium bugtracker) or Arch chromium package
@@ -446,7 +448,7 @@ prepare() {
# https://bugs.archlinux.org/task/55914
#base64 -d "${srcdir}/chromium-exclude_unwind_tables.patch.base64" | patch -p1 -i -
- patch -p1 -i "${srcdir}/chromium-exclude_unwind_tables_r2.patch.patch"
+ patch -p1 -i "${srcdir}/chromium-exclude_unwind_tables_r3.patch"
# Setup nodejs dependency
mkdir -p third_party/node/linux/node-linux-x64/bin/
@@ -480,9 +482,19 @@ prepare() {
if [ "${_build_nacl}" = "1" ]; then
msg2 "Setup NaCl/PNaCl SDK: Download and install NaCl/PNaCl toolchains"
python2 build/download_nacl_toolchains.py --packages nacl_x86_newlib,pnacl_newlib,pnacl_translator sync --extract
- # Download clang from google. need for build NaCl. also is used by build the project in x86_64 systems when use clang
- python2 tools/clang/scripts/update.py
fi
+}
+
+build() {
+
+ msg2 "Build the Launcher"
+ make -C chromium-launcher \
+ CHROMIUM_SUFFIX="-dev"
+
+ cd "chromium-${pkgver}"
+
+ # Download clang from google. need for build NaCl. also is used by build the project in x86_64 systems when use clang
+ python2 tools/clang/scripts/update.py --without-android #--force-local-build --use-system-cmake --if-needed --gcc-toolchain=/usr --skip-checkout
# Setup compilers.
if [ "${_use_ccache}" = "1" ]; then
@@ -527,15 +539,6 @@ prepare() {
export NM=nm
export CC="${_ccache} ${_c_compiler} ${_ccache_flags}"
export CXX="${_ccache} ${_cpp_compiler} ${_ccache_flags}"
-}
-
-build() {
-
- msg2 "Build the Launcher"
- make -C "chromium-launcher" \
- CHROMIUM_SUFFIX="-dev" \
-
- cd "chromium-${pkgver}"
msg2 "Starting building Chromium..."
# Configure the builder.
@@ -548,7 +551,7 @@ build() {
package() {
# Install launcher.
- make -C "chromium-launcher" \
+ make -C chromium-launcher \
PREFIX=/usr \
CHROMIUM_SUFFIX="-dev" \
DESTDIR="${pkgdir}" \
@@ -603,17 +606,18 @@ package() {
'chrome_200_percent.pak'
'headless_lib.pak'
'keyboard_resources.pak'
- 'mus_app_resources_100.pak'
- 'mus_app_resources_200.pak'
- 'mus_app_resources_strings.pak'
'resources.pak'
'views_mus_resources.pak'
)
for i in "${_resources[@]}"; do
install -Dm644 "${i}" "${pkgdir}/usr/lib/chromium-dev/${i}"
done
+
find resources -type f -name "*" -exec install -Dm644 '{}' "${pkgdir}/usr/lib/chromium-dev/{}" \;
+ install -Dm644 MEIPreload/manifest.json "${pkgdir}/usr/lib/chromium-dev/MEIPreload/manifest.json"
+ install -Dm644 MEIPreload/preloaded_data.pb "${pkgdir}/usr/lib/chromium-dev/MEIPreload/preloaded_data.pb"
+
# Install .desktop and manpages
process_template "${srcdir}/chromium-${pkgver}/chrome/app/resources/manpage.1.in" chromium-dev.1
install -Dm644 chromium-dev.1 "${pkgdir}/usr/share/man/man1/chromium-dev.1"
diff --git a/chromium-exclude_unwind_tables_r2.patch.patch b/chromium-exclude_unwind_tables_r3.patch
index 1961f15e412d..305549d1f548 100644
--- a/chromium-exclude_unwind_tables_r2.patch.patch
+++ b/chromium-exclude_unwind_tables_r3.patch
@@ -4,8 +4,8 @@ index ad40fd9..50e19a4 100644
+++ b/build/config/compiler/compiler.gni
@@ -68,19 +68,19 @@
- # Whether or not we should use position independent code.
- use_pic = true
+ # x86{,_64}.
+ using_mismatched_sample_profile = current_cpu != "x64" && current_cpu != "x86"
+
+ # Exclude unwind tables for official builds as unwinding can be done from
+ # stack dumps produced by Crashpad at a later time "offline" in the crash
diff --git a/chromium-intel-vaapi_r16.diff.patch b/chromium-intel-vaapi_r16.diff.patch
deleted file mode 100644
index e3e935decda3..000000000000
--- a/chromium-intel-vaapi_r16.diff.patch
+++ /dev/null
@@ -1,673 +0,0 @@
-From 7f29b44224439377592be2b75da0b86d82d8ad6d Mon Sep 17 00:00:00 2001
-From: Daniel Charles <daniel.charles@intel.com>
-Date: Wed, 18 Oct 2017 17:27:42 -0700
-Subject: [PATCH] Enable VAVDA, VAVEA and VAJDA on linux with VAAPI only
-
-This patch contains all the changes necessary to use VA-API along with
-vaapi-driver to run all media use cases supported with hardware acceleration.
-
-It is intended to remain as experimental accessible from chrome://flags on linux.
-It requires libva/intel-vaapi-driver to be installed on the system path where
-chrome is executed. Other drivers could be tested if available. Flags are
-kept independent for linux, where this feature has to be enabled before
-actually using it. This should not change how other OSes use the flags
-already, the new flags will show at the buttom on the section of unavailable
-experiments
-
-The changes cover a range of compiler pre-processor flags to enable the stack.
-It moves the presandbox operations to the vaapi_wrapper class as the hook function
-is available there. vaInit will open driver on the correct installed folder.
-
-chrome flags consolidtation into only two flags for linux. Mjpeg and accelerated
-video are used. The other flags are kept for ChromeOS and other OSes.
-
-Developer testing was made on skylake hardware, ChromeOS and Ubuntu.
-
-BUG=NONE
-TEST="subjective testing with VAVDA,VAVEA and VAJDA, autotest for encoder"
-TEST="and decoder hardware accelerated"
-TEST="have libva/intel-vaapi-driver installed and not installed in the system"
-TEST="repeat on different hardware families"
-R=posciak@chromium.org
-R=kcwu@chromium.org
-
-Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
-Change-Id: Ifbbf5c9e5221a8b5733fc6d4d0cf984a1f103171
-Signed-off-by: Daniel Charles <daniel.charles@intel.com>
----
-
-diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
-index 3555293..4c3115f 100644
---- a/chrome/browser/about_flags.cc
-+++ b/chrome/browser/about_flags.cc
-@@ -1246,12 +1246,14 @@
- flag_descriptions::kUiPartialSwapDescription, kOsAll,
- SINGLE_DISABLE_VALUE_TYPE(switches::kUIDisablePartialSwap)},
- #if BUILDFLAG(ENABLE_WEBRTC)
-+#if !defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID)
- {"disable-webrtc-hw-decoding", flag_descriptions::kWebrtcHwDecodingName,
- flag_descriptions::kWebrtcHwDecodingDescription, kOsAndroid | kOsCrOS,
- SINGLE_DISABLE_VALUE_TYPE(switches::kDisableWebRtcHWDecoding)},
- {"disable-webrtc-hw-encoding", flag_descriptions::kWebrtcHwEncodingName,
- flag_descriptions::kWebrtcHwEncodingDescription, kOsAndroid | kOsCrOS,
- SINGLE_DISABLE_VALUE_TYPE(switches::kDisableWebRtcHWEncoding)},
-+#endif
- {"enable-webrtc-hw-h264-encoding",
- flag_descriptions::kWebrtcHwH264EncodingName,
- flag_descriptions::kWebrtcHwH264EncodingDescription, kOsAndroid | kOsCrOS,
-@@ -1557,6 +1559,13 @@
- flag_descriptions::kSpuriousPowerButtonLidAngleChangeDescription, kOsCrOS,
- MULTI_VALUE_TYPE(kSpuriousPowerButtonLidAngleChangeChoices)},
- #endif // OS_CHROMEOS
-+#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID)
-+ {
-+ "enable-accelerated-video", flag_descriptions::kAcceleratedVideoName,
-+ flag_descriptions::kAcceleratedVideoDescription, kOsLinux,
-+ SINGLE_VALUE_TYPE(switches::kEnableAcceleratedVideo),
-+ },
-+#else
- {
- "disable-accelerated-video-decode",
- flag_descriptions::kAcceleratedVideoDecodeName,
-@@ -1564,6 +1573,7 @@
- kOsMac | kOsWin | kOsCrOS | kOsAndroid,
- SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
- },
-+#endif
- {"mojo-video-encode-accelerator",
- flag_descriptions::kMojoVideoEncodeAcceleratorName,
- flag_descriptions::kMojoVideoEncodeAcceleratorDescription,
-@@ -2229,12 +2239,17 @@
- FEATURE_VALUE_TYPE(features::kWebVrVsyncAlign)},
- #endif // OS_ANDROID
- #endif // ENABLE_VR
--#if defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID)
-+ {"enable-accelerated-mjpeg-decode",
-+ flag_descriptions::kAcceleratedMjpegDecodeName,
-+ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsLinux,
-+ SINGLE_VALUE_TYPE(switches::kEnableAcceleratedMjpegDecode)},
-+#elif defined(OS_CHROMEOS)
- {"disable-accelerated-mjpeg-decode",
- flag_descriptions::kAcceleratedMjpegDecodeName,
- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
- SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
--#endif // OS_CHROMEOS
-+#endif
- {"v8-cache-options", flag_descriptions::kV8CacheOptionsName,
- flag_descriptions::kV8CacheOptionsDescription, kOsAll,
- MULTI_VALUE_TYPE(kV8CacheOptionsChoices)},
-diff --git a/chrome/browser/chromeos/login/chrome_restart_request.cc b/chrome/browser/chromeos/login/chrome_restart_request.cc
-index 3815e79..d5d3712 100644
---- a/chrome/browser/chromeos/login/chrome_restart_request.cc
-+++ b/chrome/browser/chromeos/login/chrome_restart_request.cc
-@@ -19,6 +19,7 @@
- #include "base/sys_info.h"
- #include "base/timer/timer.h"
- #include "base/values.h"
-+#include "build/build_config.h"
- #include "cc/base/switches.h"
- #include "chrome/browser/browser_process.h"
- #include "chrome/browser/chromeos/boot_times_recorder.h"
-@@ -79,8 +80,13 @@
- ::switches::kDisable2dCanvasImageChromium,
- ::switches::kDisableAccelerated2dCanvas,
- ::switches::kDisableAcceleratedJpegDecoding,
-+#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID)
-+ ::switches::kEnableAcceleratedMjpegDecode,
-+ ::switches::kEnableAcceleratedVideo,
-+#else
- ::switches::kDisableAcceleratedMjpegDecode,
- ::switches::kDisableAcceleratedVideoDecode,
-+#endif
- ::switches::kDisableBlinkFeatures,
- ::switches::kDisableCastStreamingHWEncoding,
- ::switches::kDisableDistanceFieldText,
-@@ -166,7 +172,7 @@
- ::switches::kDisableWebGLImageChromium,
- ::switches::kEnableWebGLImageChromium,
- ::switches::kEnableWebVR,
--#if BUILDFLAG(ENABLE_WEBRTC)
-+#if BUILDFLAG(ENABLE_WEBRTC) && (defined(OS_CHROMEOS) || defined(OS_ANDROID))
- ::switches::kDisableWebRtcHWDecoding,
- ::switches::kDisableWebRtcHWEncoding,
- #endif
-diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
-index 74e6bc7..ab184a5 100644
---- a/chrome/browser/flag_descriptions.cc
-+++ b/chrome/browser/flag_descriptions.cc
-@@ -14,6 +14,13 @@
- "Enables the use of the GPU to perform 2d canvas rendering instead of "
- "using software rendering.";
-
-+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+const char kAcceleratedVideoName[] = "Hardware-accelerated video";
-+const char kAcceleratedVideoDescription[] =
-+ "Hardware-accelerated video where VA-API driver is installed on the"
-+ "system.";
-+#endif
-+
- const char kAcceleratedVideoDecodeName[] = "Hardware-accelerated video decode";
- const char kAcceleratedVideoDecodeDescription[] =
- "Hardware-accelerated video decode where available.";
-@@ -1478,6 +1485,7 @@
- const char kWebrtcEchoCanceller3Description[] =
- "Experimental WebRTC echo canceller (AEC3).";
-
-+#if !defined(OS_LINUX) || !defined(OS_CHROMEOS)
- const char kWebrtcHwDecodingName[] = "WebRTC hardware video decoding";
- const char kWebrtcHwDecodingDescription[] =
- "Support in WebRTC for decoding video streams using platform hardware.";
-@@ -1485,6 +1493,7 @@
- const char kWebrtcHwEncodingName[] = "WebRTC hardware video encoding";
- const char kWebrtcHwEncodingDescription[] =
- "Support in WebRTC for encoding video streams using platform hardware.";
-+#endif
-
- const char kWebrtcHwH264EncodingName[] = "WebRTC hardware h264 video encoding";
- const char kWebrtcHwH264EncodingDescription[] =
-@@ -2283,14 +2292,16 @@
-
- // Chrome OS -------------------------------------------------------------------
-
--#if defined(OS_CHROMEOS)
-+#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
-
- const char kAcceleratedMjpegDecodeName[] =
- "Hardware-accelerated mjpeg decode for captured frame";
- const char kAcceleratedMjpegDecodeDescription[] =
- "Enable hardware-accelerated mjpeg decode for captured frame where "
- "available.";
-+#endif
-
-+#if defined(OS_CHROMEOS)
- const char kAllowTouchpadThreeFingerClickName[] = "Touchpad three-finger-click";
- const char kAllowTouchpadThreeFingerClickDescription[] =
- "Enables touchpad three-finger-click as middle button.";
-diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
-index 54a4950..5ace5e0 100644
---- a/chrome/browser/flag_descriptions.h
-+++ b/chrome/browser/flag_descriptions.h
-@@ -37,6 +37,10 @@
- extern const char kAccelerated2dCanvasName[];
- extern const char kAccelerated2dCanvasDescription[];
-
-+#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID)
-+extern const char kAcceleratedVideoName[];
-+extern const char kAcceleratedVideoDescription[];
-+#endif
- extern const char kAcceleratedVideoDecodeName[];
- extern const char kAcceleratedVideoDecodeDescription[];
-
-@@ -1401,13 +1405,17 @@
-
- #endif // defined(OS_MACOSX)
-
--// Chrome OS ------------------------------------------------------------------
--
--#if defined(OS_CHROMEOS)
-+#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
-
- extern const char kAcceleratedMjpegDecodeName[];
- extern const char kAcceleratedMjpegDecodeDescription[];
-
-+#endif
-+
-+// Chrome OS ------------------------------------------------------------------
-+
-+#if defined(OS_CHROMEOS)
-+
- extern const char kAllowTouchpadThreeFingerClickName[];
- extern const char kAllowTouchpadThreeFingerClickDescription[];
-
-diff --git a/content/browser/gpu/compositor_util.cc b/content/browser/gpu/compositor_util.cc
-index 122282d..bc102a3 100644
---- a/content/browser/gpu/compositor_util.cc
-+++ b/content/browser/gpu/compositor_util.cc
-@@ -105,7 +105,11 @@
- true},
- {"video_decode",
- manager->GetFeatureStatus(gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE),
-+#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID)
-+ !command_line.HasSwitch(switches::kEnableAcceleratedVideo),
-+#else
- command_line.HasSwitch(switches::kDisableAcceleratedVideoDecode),
-+#endif
- "Accelerated video decode has been disabled, either via blacklist,"
- " about:flags or the command line.",
- true},
-diff --git a/content/browser/gpu/gpu_data_manager_impl_private.cc b/content/browser/gpu/gpu_data_manager_impl_private.cc
-index 51aa672..963da85 100644
---- a/content/browser/gpu/gpu_data_manager_impl_private.cc
-+++ b/content/browser/gpu/gpu_data_manager_impl_private.cc
-@@ -717,7 +717,11 @@
- DCHECK(command_line);
-
- if (ShouldDisableAcceleratedVideoDecode(command_line))
-+#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID)
-+ command_line->AppendSwitch(switches::kEnableAcceleratedVideo);
-+#else
- command_line->AppendSwitch(switches::kDisableAcceleratedVideoDecode);
-+#endif
-
- #if defined(USE_AURA)
- if (!CanUseGpuBrowserCompositor())
-@@ -826,7 +834,12 @@
- const base::CommandLine* command_line =
- base::CommandLine::ForCurrentProcess();
- if (!ShouldDisableAcceleratedVideoDecode(command_line) &&
-- !command_line->HasSwitch(switches::kDisableAcceleratedVideoDecode)) {
-+#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID)
-+ command_line->HasSwitch(switches::kEnableAcceleratedVideo)
-+#else
-+ !command_line->HasSwitch(switches::kDisableAcceleratedVideoDecode)
-+#endif
-+ ) {
- prefs->pepper_accelerated_video_decode_enabled = true;
- }
- }
-@@ -1016,7 +1029,13 @@
-
- bool GpuDataManagerImplPrivate::ShouldDisableAcceleratedVideoDecode(
- const base::CommandLine* command_line) const {
-- if (command_line->HasSwitch(switches::kDisableAcceleratedVideoDecode)) {
-+ if (
-+#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID)
-+ !command_line->HasSwitch(switches::kEnableAcceleratedVideo)
-+#else
-+ command_line->HasSwitch(switches::kDisableAcceleratedVideoDecode)
-+#endif
-+ ) {
- // It was already disabled on the command line.
- return false;
- }
-diff --git a/content/browser/gpu/gpu_process_host.cc b/content/browser/gpu/gpu_process_host.cc
-index 95d4dff..9b26d3f 100644
---- a/content/browser/gpu/gpu_process_host.cc
-+++ b/content/browser/gpu/gpu_process_host.cc
-@@ -120,7 +124,7 @@
- switches::kDisableLogging,
- switches::kDisableSeccompFilterSandbox,
- switches::kDisableShaderNameHashing,
--#if BUILDFLAG(ENABLE_WEBRTC)
-+#if BUILDFLAG(ENABLE_WEBRTC) && !defined(OS_LINUX)
- switches::kDisableWebRtcHWEncoding,
- #endif
- #if defined(OS_WIN)
-diff --git a/content/browser/renderer_host/media/video_capture_browsertest.cc b/content/browser/renderer_host/media/video_capture_browsertest.cc
-index 8ca0ad0..8c489d0 100644
---- a/content/browser/renderer_host/media/video_capture_browsertest.cc
-+++ b/content/browser/renderer_host/media/video_capture_browsertest.cc
-@@ -155,8 +155,13 @@
- base::CommandLine::ForCurrentProcess()->AppendSwitch(
- switches::kUseFakeJpegDecodeAccelerator);
- } else {
-+#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID)
-+ base::CommandLine::ForCurrentProcess()->AppendSwitch(
-+ switches::kEnableAcceleratedMjpegDecode);
-+#else
- base::CommandLine::ForCurrentProcess()->AppendSwitch(
- switches::kDisableAcceleratedMjpegDecode);
-+#endif
- }
- if (params_.use_mojo_service) {
- base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
-diff --git a/content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc b/content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc
-index 34afec23..ad77490 100644
---- a/content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc
-+++ b/content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc
-@@ -56,15 +56,21 @@
- bool is_platform_supported =
- base::CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kUseFakeJpegDecodeAccelerator);
--#if defined(OS_CHROMEOS)
-- // Non-ChromeOS platforms do not support HW JPEG decode now. Do not establish
-- // gpu channel to avoid introducing overhead.
-+#if !defined(OS_ANDROID) && defined(OS_LINUX)
-+ // Non-ChromeOS or Non-Linux platforms do not support HW JPEG decode now. Do
-+ // not establish gpu channel to avoid introducing overhead.
- is_platform_supported = true;
- #endif
-
- if (!is_platform_supported ||
-+#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID)
-+ !base::CommandLine::ForCurrentProcess()->HasSwitch(
-+ switches::kEnableAcceleratedMjpegDecode)
-+#else
- base::CommandLine::ForCurrentProcess()->HasSwitch(
-- switches::kDisableAcceleratedMjpegDecode)) {
-+ switches::kDisableAcceleratedMjpegDecode)
-+#endif
-+ ) {
- decoder_status_ = FAILED;
- RecordInitDecodeUMA_Locked();
- return;
-diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
-index fbe4d21..1be295e 100644
---- a/content/browser/renderer_host/render_process_host_impl.cc
-+++ b/content/browser/renderer_host/render_process_host_impl.cc
-@@ -2506,7 +2506,11 @@
- switches::kDefaultTileHeight,
- switches::kDisable2dCanvasImageChromium,
- switches::kDisableAcceleratedJpegDecoding,
-+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+ switches::kEnableAcceleratedVideo,
-+#else
- switches::kDisableAcceleratedVideoDecode,
-+#endif
- switches::kDisableBackgroundTimerThrottling,
- switches::kDisableBreakpad,
- switches::kDisableBrowserSideNavigation,
-@@ -2660,8 +2664,10 @@
- switches::kDisableMojoRenderer,
- #endif
- #if BUILDFLAG(ENABLE_WEBRTC)
-+#if !defined(OS_LINUX) || defined(OS_CHROMEOS)
- switches::kDisableWebRtcHWDecoding,
- switches::kDisableWebRtcHWEncoding,
-+#endif
- switches::kEnableWebRtcSrtpAesGcm,
- switches::kEnableWebRtcSrtpEncryptedHeaders,
- switches::kEnableWebRtcStunOrigin,
-diff --git a/content/browser/webrtc/webrtc_media_recorder_browsertest.cc b/content/browser/webrtc/webrtc_media_recorder_browsertest.cc
-index 3d815a2..2c96048 100644
---- a/content/browser/webrtc/webrtc_media_recorder_browsertest.cc
-+++ b/content/browser/webrtc/webrtc_media_recorder_browsertest.cc
-@@ -58,7 +58,12 @@
- return;
- // This flag is also used for encoding, https://crbug.com/616640.
- base::CommandLine::ForCurrentProcess()->AppendSwitch(
-- switches::kDisableAcceleratedVideoDecode);
-+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+ switches::kEnableAcceleratedVideo
-+#else
-+ switches::kDisableAcceleratedVideoDecode
-+#endif
-+ );
- }
-
- private:
-diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn
-index a5424bb..b68b802 100644
---- a/content/gpu/BUILD.gn
-+++ b/content/gpu/BUILD.gn
-@@ -45,7 +45,6 @@
- ]
-
- configs += [ "//content:content_implementation" ]
--
- deps = [
- "//base",
- "//base/third_party/dynamic_annotations",
-@@ -114,4 +113,8 @@
- if (enable_vulkan) {
- deps += [ "//gpu/vulkan" ]
- }
-+
-+ if (is_desktop_linux) {
-+ public_configs = [ "//media/gpu:libva_config" ]
-+ }
- }
-diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc
-index 556cf00..730f4ae 100644
---- a/content/gpu/gpu_main.cc
-+++ b/content/gpu/gpu_main.cc
-@@ -254,7 +254,7 @@
- // Initializes StatisticsRecorder which tracks UMA histograms.
- base::StatisticsRecorder::Initialize();
-
--#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX)
- // Set thread priority before sandbox initialization.
- base::PlatformThread::SetCurrentThreadPriority(base::ThreadPriority::DISPLAY);
- #endif
-@@ -283,7 +283,7 @@
- GetContentClient()->SetGpuInfo(gpu_init->gpu_info());
-
- base::ThreadPriority io_thread_priority = base::ThreadPriority::NORMAL;
--#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX)
- io_thread_priority = base::ThreadPriority::DISPLAY;
- #endif
-
-diff --git a/content/public/browser/gpu_utils.cc b/content/public/browser/gpu_utils.cc
-index 6aafb06..d4ddd8d 100644
---- a/content/public/browser/gpu_utils.cc
-+++ b/content/public/browser/gpu_utils.cc
-@@ -7,6 +7,7 @@
- #include "base/command_line.h"
- #include "base/single_thread_task_runner.h"
- #include "base/strings/string_number_conversions.h"
-+#include "build/build_config.h"
- #include "content/browser/gpu/gpu_process_host.h"
- #include "content/public/common/content_features.h"
- #include "content/public/common/content_switches.h"
-@@ -57,12 +58,19 @@
- gpu_preferences.ui_prioritize_in_gpu_process =
- command_line->HasSwitch(switches::kUIPrioritizeInGpuProcess);
- gpu_preferences.disable_accelerated_video_decode =
-+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+ !command_line->HasSwitch(switches::kEnableAcceleratedVideo);
-+#else
- command_line->HasSwitch(switches::kDisableAcceleratedVideoDecode);
--#if defined(OS_CHROMEOS)
-+#endif
-+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+ gpu_preferences.disable_vaapi_accelerated_video_encode =
-+ !command_line->HasSwitch(switches::kEnableAcceleratedVideo);
-+#elif defined(OS_CHROMEOS)
- gpu_preferences.disable_vaapi_accelerated_video_encode =
- command_line->HasSwitch(switches::kDisableVaapiAcceleratedVideoEncode);
- #endif
--#if BUILDFLAG(ENABLE_WEBRTC)
-+#if BUILDFLAG(ENABLE_WEBRTC) && (!defined(OS_LINUX) || defined(OS_CHROMEOS))
- gpu_preferences.disable_web_rtc_hw_encoding =
- command_line->HasSwitch(switches::kDisableWebRtcHWEncoding);
- #endif
-diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc
-index 4e699d1..3a7a2b7 100644
---- a/content/public/common/content_switches.cc
-+++ b/content/public/common/content_switches.cc
-@@ -89,12 +89,21 @@
-
- // Disable gpu-accelerated 2d canvas.
- const char kDisableAccelerated2dCanvas[] = "disable-accelerated-2d-canvas";
--
-+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+// Enable hardware accelerated mjpeg decode on linux
-+const char kEnableAcceleratedMjpegDecode[] = "enable-accelerated-mjpeg-decode";
-+#else
- // Disable hardware acceleration of mjpeg decode for captured frame, where
- // available.
- const char kDisableAcceleratedMjpegDecode[] =
- "disable-accelerated-mjpeg-decode";
-+#endif
-
-+#if defined(OS_LINUX)
-+// Enables hardware acceleration of video for Linux only. VA-API driver
-+// is required to be present on the system installation.
-+const char kEnableAcceleratedVideo[] = "enable-accelerated-video";
-+#endif
- // Disables hardware acceleration of video decode, where available.
- const char kDisableAcceleratedVideoDecode[] =
- "disable-accelerated-video-decode";
-@@ -932,11 +941,13 @@
- // ignores this switch on its stable and beta channels.
- const char kDisableWebRtcEncryption[] = "disable-webrtc-encryption";
-
-+#if defined(OS_CHROMEOS)
- // Disables HW decode acceleration for WebRTC.
- const char kDisableWebRtcHWDecoding[] = "disable-webrtc-hw-decoding";
-
- // Disables HW encode acceleration for WebRTC.
- const char kDisableWebRtcHWEncoding[] = "disable-webrtc-hw-encoding";
-+#endif
-
- // Enables negotiation of GCM cipher suites from RFC 7714 for SRTP in WebRTC.
- // See https://tools.ietf.org/html/rfc7714 for further information.
-diff --git a/content/public/common/content_switches.h b/content/public/common/content_switches.h
-index 2704924..67d00bb 100644
---- a/content/public/common/content_switches.h
-+++ b/content/public/common/content_switches.h
-@@ -35,7 +35,11 @@
- CONTENT_EXPORT extern const char kDisable3DAPIs[];
- CONTENT_EXPORT extern const char kDisableAccelerated2dCanvas[];
- CONTENT_EXPORT extern const char kDisableAcceleratedJpegDecoding[];
-+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+CONTENT_EXPORT extern const char kEnableAcceleratedMjpegDecode[];
-+#else
- CONTENT_EXPORT extern const char kDisableAcceleratedMjpegDecode[];
-+#endif
- CONTENT_EXPORT extern const char kDisableAcceleratedVideoDecode[];
- CONTENT_EXPORT extern const char kDisableAudioSupportForDesktopShare[];
- extern const char kDisableBackingStoreLimit[];
-@@ -109,6 +113,9 @@
- CONTENT_EXPORT extern const char kDomAutomationController[];
- extern const char kDisable2dCanvasClipAntialiasing[];
- CONTENT_EXPORT extern const char kDumpBlinkRuntimeCallStats[];
-+#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID)
-+CONTENT_EXPORT extern const char kEnableAcceleratedVideo[];
-+#endif
- CONTENT_EXPORT extern const char kEnableAggressiveDOMStorageFlushing[];
- CONTENT_EXPORT extern const char kEnableAutomation[];
- CONTENT_EXPORT extern const char kEnablePreferCompositingToLCDText[];
-@@ -256,8 +263,10 @@
-
- #if BUILDFLAG(ENABLE_WEBRTC)
- CONTENT_EXPORT extern const char kDisableWebRtcEncryption[];
-+#if defined(OS_CHROMEOS)
- CONTENT_EXPORT extern const char kDisableWebRtcHWDecoding[];
- CONTENT_EXPORT extern const char kDisableWebRtcHWEncoding[];
-+#endif
- CONTENT_EXPORT extern const char kEnableWebRtcSrtpAesGcm[];
- CONTENT_EXPORT extern const char kEnableWebRtcSrtpEncryptedHeaders[];
- CONTENT_EXPORT extern const char kEnableWebRtcStunOrigin[];
-diff --git a/content/renderer/media/webrtc/peer_connection_dependency_factory.cc b/content/renderer/media/webrtc/peer_connection_dependency_factory.cc
-index 017056c..825bdce 100644
---- a/content/renderer/media/webrtc/peer_connection_dependency_factory.cc
-+++ b/content/renderer/media/webrtc/peer_connection_dependency_factory.cc
-@@ -239,10 +239,19 @@
-
- const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
- if (gpu_factories && gpu_factories->IsGpuVideoAcceleratorEnabled()) {
-+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+ if (cmd_line->HasSwitch(switches::kEnableAcceleratedVideo))
-+#else
- if (!cmd_line->HasSwitch(switches::kDisableWebRtcHWDecoding))
-+#endif
- decoder_factory.reset(new RTCVideoDecoderFactory(gpu_factories));
-
-- if (!cmd_line->HasSwitch(switches::kDisableWebRtcHWEncoding)) {
-+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+ if (cmd_line->HasSwitch(switches::kEnableAcceleratedVideo))
-+#else
-+ if (!cmd_line->HasSwitch(switches::kDisableWebRtcHWEncoding))
-+#endif
-+ {
- encoder_factory.reset(new RTCVideoEncoderFactory(gpu_factories));
- }
- }
-diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
-index dc01117..2f9ee03 100644
---- a/content/renderer/render_thread_impl.cc
-+++ b/content/renderer/render_thread_impl.cc
-@@ -1456,7 +1456,11 @@
- scoped_refptr<base::SingleThreadTaskRunner> media_task_runner =
- GetMediaThreadTaskRunner();
- const bool enable_video_accelerator =
-+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+ cmd_line->HasSwitch(switches::kEnableAcceleratedVideo);
-+#else
- !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode);
-+#endif
- const bool enable_gpu_memory_buffer_video_frames =
- #if defined(OS_MACOSX) || defined(OS_LINUX)
- !cmd_line->HasSwitch(switches::kDisableGpuMemoryBufferVideoFrames) &&
-diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json
-index 1289a55..22e11e5 100644
---- a/gpu/config/software_rendering_list.json
-+++ b/gpu/config/software_rendering_list.json
-@@ -374,17 +374,6 @@
- ]
- },
- {
-- "id": 48,
-- "description": "Accelerated video decode is unavailable on Linux",
-- "cr_bugs": [137247],
-- "os": {
-- "type": "linux"
-- },
-- "features": [
-- "accelerated_video_decode"
-- ]
-- },
-- {
- "id": 50,
- "description": "Disable VMware software renderer on older Mesa",
- "cr_bugs": [145531, 332596, 571899, 629434],
-diff --git a/media/filters/BUILD.gn b/media/filters/BUILD.gn
-index 490722c..1cda2fb 100644
---- a/media/filters/BUILD.gn
-+++ b/media/filters/BUILD.gn
-@@ -189,7 +189,7 @@
- deps += [ "//media/base/android" ]
- }
-
-- if (current_cpu != "arm" && is_chromeos) {
-+ if (current_cpu != "arm" && (is_chromeos || is_desktop_linux)) {
- sources += [
- "h264_bitstream_buffer.cc",
- "h264_bitstream_buffer.h",
-diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
-index 729c6fa..4878251 100644
---- a/media/gpu/BUILD.gn
-+++ b/media/gpu/BUILD.gn
-@@ -24,6 +24,14 @@
- import("//build/config/mac/mac_sdk.gni")
- }
-
-+if (is_desktop_linux && use_vaapi) {
-+ import("//build/config/linux/pkg_config.gni")
-+
-+ pkg_config("libva_config") {
-+ packages = [ "libva" ]
-+ }
-+}
-+
- if (use_vaapi) {
- action("libva_generate_stubs") {
- extra_header = "va_stub_header.fragment"
-@@ -334,6 +342,9 @@
- "vaapi_drm_picture.h",
- ]
- }
-+ if (is_desktop_linux) {
-+ public_configs = [ ":libva_config" ]
-+ }
- }
-
- if (is_win) {
-diff --git a/media/gpu/gpu_video_decode_accelerator_factory.cc b/media/gpu/gpu_video_decode_accelerator_factory.cc
-index 2cee490..de02414 100644
---- a/media/gpu/gpu_video_decode_accelerator_factory.cc
-+++ b/media/gpu/gpu_video_decode_accelerator_factory.cc
-@@ -87,6 +87,7 @@
- // profile (instead of calculating a superset).
- // TODO(posciak,henryhsu): improve this so that we choose a superset of
- // resolutions and other supported profile parameters.
-+ DVLOG(1) << "Get Supported profiles";
- #if defined(OS_WIN)
- capabilities.supported_profiles =
- DXVAVideoDecodeAccelerator::GetSupportedProfiles(gpu_preferences,
-diff --git a/media/gpu/vaapi_wrapper.cc b/media/gpu/vaapi_wrapper.cc
-index 1e72893..6495642 100644
---- a/media/gpu/vaapi_wrapper.cc
-+++ b/media/gpu/vaapi_wrapper.cc
-@@ -1117,6 +1117,7 @@
- if (drm_file.IsValid())
- GetDisplayState()->SetDrmFd(drm_file.GetPlatformFile());
- #endif
-+ GetProfileInfos(); // dlopen all necessary libraries
- }
-
- // static