commit 7f157b719eb1efe171667970d483db694c6f95bd
Author: Akarshan Biswas <akarshanbiswas(a)fedoraproject.org>
Date: Wed Jul 17 11:16:14 2019 +0530
Update to 75.0.3770.142
Removed Nvidia GPU video decode blacklist
Add a patch to fix a bug around RenderProcessHost to avoid crash
...VPP-on-Linux-Add-some-info-logs-and-fix-v.patch | 41 ++++++++++++-----
bindcrashfix.patch | 52 ++++++++++++++++++++++
chromium-vaapi.spec | 13 ++++--
enable-vaapi.patch | 42 +++++++++--------
sources | 2 +-
5 files changed, 116 insertions(+), 34 deletions(-)
---
diff --git a/Do-not-use-VPP-on-Linux-Add-some-info-logs-and-fix-v.patch
b/Do-not-use-VPP-on-Linux-Add-some-info-logs-and-fix-v.patch
index 82450a0..b298a78 100644
--- a/Do-not-use-VPP-on-Linux-Add-some-info-logs-and-fix-v.patch
+++ b/Do-not-use-VPP-on-Linux-Add-some-info-logs-and-fix-v.patch
@@ -1,13 +1,13 @@
-From 757f4ca3fbeee9bb5ef88d3dc5ff6b241541c6b9 Mon Sep 17 00:00:00 2001
+From fe61d25580bd22d68b20323e7cd684dcba0cd3f4 Mon Sep 17 00:00:00 2001
From: Akarshan Biswas <akarshanbiswas(a)fedoraproject.org>
-Date: Fri, 28 Jun 2019 14:27:33 +0530
-Subject: [PATCH] Do not use VPP on Linux; Add some info logs and fix vaapi DRM
+Date: Tue, 9 Jul 2019 18:39:54 +0530
+Subject: [PATCH] Disable VAProfileNone on Linux and fix vaapi drm
---
.../gpu_video_decode_accelerator_factory.cc | 2 ++
- .../vaapi/vaapi_video_decode_accelerator.cc | 16 +++++++++++++
+ .../vaapi/vaapi_video_decode_accelerator.cc | 21 ++++++++++++++++
media/gpu/vaapi/vaapi_wrapper.cc | 24 +++++++++++++++----
- 3 files changed, 37 insertions(+), 5 deletions(-)
+ 3 files changed, 42 insertions(+), 5 deletions(-)
diff --git a/media/gpu/gpu_video_decode_accelerator_factory.cc
b/media/gpu/gpu_video_decode_accelerator_factory.cc
index dc9ff3fb3..53189759c 100644
@@ -23,10 +23,29 @@ index dc9ff3fb3..53189759c 100644
return nullptr;
diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-index 3c1316dca..1e7fac393 100644
+index 3c1316dca..a5fa64b5a 100644
--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-@@ -627,6 +627,13 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers(
+@@ -64,6 +64,9 @@ void ReportToUMA(VAVDADecoderFailure failure) {
+ VAVDA_DECODER_FAILURES_MAX + 1);
+ }
+
++// Move this thing to chromeos only as build can fail if treat warnings as errors been
set to true
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
++
+ // Returns true if the CPU is an Intel Gemini Lake or later (including Kaby
+ // Lake) Cpu platform id's are referenced from the following file in kernel
+ // source arch/x86/include/asm/intel-family.h
+@@ -77,6 +80,8 @@ bool IsGeminiLakeOrLater() {
+ return is_geminilake_or_later;
+ }
+
++#endif
++
+ } // namespace
+
+ #define RETURN_AND_NOTIFY_ON_FAILURE(result, log, error_code, ret) \
+@@ -627,6 +632,13 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers(
const unsigned int va_format = GetVaFormatForVideoCodecProfile(profile_);
std::vector<VASurfaceID> va_surface_ids;
@@ -40,7 +59,7 @@ index 3c1316dca..1e7fac393 100644
// If we aren't in BufferAllocationMode::kNone, we have to allocate a
// |vpp_vaapi_wrapper_| for VaapiPicture to DownloadFromSurface() the VA's
// internal decoded frame.
-@@ -640,6 +647,7 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers(
+@@ -640,6 +652,7 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers(
NotifyError(PLATFORM_FAILURE);
}
}
@@ -48,7 +67,7 @@ index 3c1316dca..1e7fac393 100644
for (size_t i = 0; i < buffers.size(); ++i) {
DCHECK(requested_pic_size_ == buffers[i].size());
-@@ -648,9 +656,13 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers(
+@@ -648,9 +661,13 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers(
// only used as a copy destination. Therefore, the VaapiWrapper used and
// owned by |picture| is |vpp_vaapi_wrapper_|.
std::unique_ptr<VaapiPicture> picture = vaapi_picture_factory_->Create(
@@ -62,7 +81,7 @@ index 3c1316dca..1e7fac393 100644
make_context_current_cb_, bind_image_cb_, buffers[i]);
RETURN_AND_NOTIFY_ON_FAILURE(picture, "Failed creating a VaapiPicture",
PLATFORM_FAILURE, );
-@@ -1063,6 +1075,9 @@ VaapiVideoDecodeAccelerator::GetSupportedProfiles() {
+@@ -1063,6 +1080,9 @@ VaapiVideoDecodeAccelerator::GetSupportedProfiles() {
VaapiVideoDecodeAccelerator::BufferAllocationMode
VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
@@ -72,7 +91,7 @@ index 3c1316dca..1e7fac393 100644
//
TODO(crbug.com/912295): Enable a better BufferAllocationMode for IMPORT
// |output_mode_| as well.
if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
-@@ -1095,6 +1110,7 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
+@@ -1095,6 +1115,7 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
return BufferAllocationMode::kReduced;
return BufferAllocationMode::kSuperReduced;
diff --git a/bindcrashfix.patch b/bindcrashfix.patch
new file mode 100644
index 0000000..5cc9755
--- /dev/null
+++ b/bindcrashfix.patch
@@ -0,0 +1,52 @@
+From 00281713519dbd84b90d2996a009bf3a7e294435 Mon Sep 17 00:00:00 2001
+From: Alex Clarke <alexclarke(a)chromium.org>
+Date: Wed, 24 Apr 2019 13:15:09 +0000
+Subject: [PATCH] BindProcessNode to take a render process host id
+
+It's dangerous to post a task with a RenderProcessHost pointer because
+the RenderProcessHost can go away before the task is run.
+
+Bug: 863341
+Change-Id: I9a5e3ae068dd42ea5a68d6e4afcf77d7486eeac4
+Reviewed-on:
https://chromium-review.googlesource.com/c/chromium/src/+/1581580
+Auto-Submit: Alex Clarke <alexclarke(a)chromium.org>
+Commit-Queue: Sigurður Ásgeirsson <siggi(a)chromium.org>
+Reviewed-by: Sigurður Ásgeirsson <siggi(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#653553}
+---
+
+diff --git
a/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc
b/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc
+index 519d355..e0a2801 100644
+---
a/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc
++++
b/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc
+@@ -12,13 +12,19 @@
+ #include "chrome/browser/performance_manager/graph/process_node_impl.h"
+ #include "chrome/browser/performance_manager/performance_manager.h"
+ #include "chrome/browser/performance_manager/render_process_user_data.h"
++#include "content/public/browser/render_process_host.h"
+ #include
"services/resource_coordinator/public/mojom/coordination_unit.mojom.h"
+
+ namespace {
+
+ void BindProcessNode(
+- content::RenderProcessHost* render_process_host,
++ int render_process_host_id,
+ resource_coordinator::mojom::ProcessCoordinationUnitRequest request) {
++ content::RenderProcessHost* render_process_host =
++ content::RenderProcessHost::FromID(render_process_host_id);
++ if (!render_process_host)
++ return;
++
+ performance_manager::RenderProcessUserData* user_data =
+ performance_manager::RenderProcessUserData::GetForRenderProcessHost(
+ render_process_host);
+@@ -47,8 +53,7 @@
+ blink::AssociatedInterfaceRegistry* associated_registry,
+ content::RenderProcessHost* render_process_host) {
+ registry->AddInterface(
+- base::BindRepeating(&BindProcessNode,
+- base::Unretained(render_process_host)),
++ base::BindRepeating(&BindProcessNode, render_process_host->GetID()),
+ base::SequencedTaskRunnerHandle::Get());
+
+ // Ideally this would strictly be a "CreateForRenderProcess", but when a
diff --git a/chromium-vaapi.spec b/chromium-vaapi.spec
index 15c2158..dc9fa0f 100644
--- a/chromium-vaapi.spec
+++ b/chromium-vaapi.spec
@@ -55,8 +55,8 @@
%global ozone 0
##############################Package Definitions######################################
Name: chromium-vaapi
-Version: 75.0.3770.100
-Release: 2%{?dist}
+Version: 75.0.3770.142
+Release: 1%{?dist}
Summary: A Chromium web browser with video decoding acceleration
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL
and (MPLv1.1 or GPLv2 or LGPLv2)
URL:
https://www.chromium.org/Home
@@ -200,6 +200,8 @@ Patch70: chromium-angle-gcc9.patch
Patch71: chromium-gcc9-r654570.patch
Patch72: chromium-gcc9-r666279.patch
Patch73: chromium-gcc9-r666714.patch
+# Add a patch from upstream to fix a bug on RenderProcesshost
+Patch74: bindcrashfix.patch
%description
chromium-vaapi is an open-source web browser, powered by WebKit (Blink)
@@ -227,6 +229,7 @@ chromium-vaapi is an open-source web browser, powered by WebKit
(Blink)
%patch71 -p1 -b .gcc2
%patch72 -p1 -b .gcc3
%patch73 -p1 -b .gcc4
+%patch74 -p1 -b .render
#Let's change the default shebang of python files.
@@ -534,7 +537,6 @@ gn_args=(
# 'clang_base_path = "/usr"'
# use_lld=false
# clang_use_chrome_plugins=false
-# Switched back to GCC, clang itself is broken
gn_args+=(
is_clang=false
)
@@ -663,6 +665,11 @@ appstream-util validate-relax --nonet
"%{buildroot}%{_metainfodir}/%{name}.appda
%{chromiumdir}/locales/*.pak
#########################################changelogs#################################################
%changelog
+* Wed Jul 17 2019 Akarshan Biswas <akarshanbiswas(a)fedoraproject.org> -
75.0.3770.142-1
+- Update to 75.0.3770.142
+- Removed Nvidia GPU video decode blacklist
+- Add a patch to fix a bug around RenderProcessHost to avoid crash
+
* Wed Jul 03 2019 Akarshan Biswas <akarshanbiswas(a)fedoraproject.org> -
75.0.3770.100-2
- Fix vaapi regression on few intel devices, disabled vaapi post processing for Nvidia
diff --git a/enable-vaapi.patch b/enable-vaapi.patch
index 87e804a..f2c4255 100644
--- a/enable-vaapi.patch
+++ b/enable-vaapi.patch
@@ -1,14 +1,14 @@
-From a70dbb7c6380e90eee255c124ebdc92242ea3db5 Mon Sep 17 00:00:00 2001
-From: Akarshan Biswas <akarshan.biswas(a)gmail.com>
-Date: Thu, 24 Jan 2019 12:45:29 +0530
-Subject: [PATCH] Enable mojo with VDA2 on Linux
+From e3da54fcc5fbd601bb448a61d69fa064199b28bb Mon Sep 17 00:00:00 2001
+From: Akarshan Biswas <akarshanbiswas(a)fedoraproject.org>
+Date: Tue, 9 Jul 2019 19:03:09 +0530
+Subject: [PATCH] Enable vaapi on Linux
---
chrome/browser/about_flags.cc | 8 ++++----
chrome/browser/flag_descriptions.cc | 10 ++++++++--
chrome/browser/flag_descriptions.h | 10 ++++++++--
- gpu/config/software_rendering_list.json | 3 ++-
- 4 files changed, 22 insertions(+), 9 deletions(-)
+ gpu/config/software_rendering_list.json | 11 -----------
+ 4 files changed, 20 insertions(+), 19 deletions(-)
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 1f0fc06e1..c47080f2c 100644
@@ -94,23 +94,27 @@ index c8e596e47..f91cc2388 100644
extern const char kAppServiceAshDescription[];
diff --git a/gpu/config/software_rendering_list.json
b/gpu/config/software_rendering_list.json
-index d4c3b4364..e4e935767 100644
+index d4c3b4364..935fdeb86 100644
--- a/gpu/config/software_rendering_list.json
+++ b/gpu/config/software_rendering_list.json
-@@ -371,11 +371,12 @@
+@@ -369,17 +369,6 @@
+ "all"
+ ]
},
- {
- "id": 48,
+- {
+- "id": 48,
- "description": "Accelerated video decode is unavailable on
Linux",
-+ "description": "Accelerated VA-API video decode is not supported on
NVIDIA platforms",
- "cr_bugs": [137247],
- "os": {
- "type": "linux"
- },
-+ "vendor_id": "0x10de",
- "features": [
- "accelerated_video_decode"
- ]
+- "cr_bugs": [137247],
+- "os": {
+- "type": "linux"
+- },
+- "features": [
+- "accelerated_video_decode"
+- ]
+- },
+ {
+ "id": 50,
+ "description": "Disable VMware software renderer on older
Mesa",
--
2.21.0
diff --git a/sources b/sources
index d3fa504..09474de 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-89e08b5a7f6f7ad006ce8eeec858a4d8 chromium-75.0.3770.100.tar.xz
+3a304113cfc941e0d36093005e5f2c2c chromium-75.0.3770.142.tar.xz