Selaa lähdekoodia

Merge pull request #491 from bromite/v80/AImageReader-bugfix

Bugfix for AImageReader crash on Android10/arm64
Carl 5 vuotta sitten
vanhempi
commit
1cc0dfb1ff

+ 1 - 1
build/bromite_patches_list.txt

@@ -115,7 +115,7 @@ Disable-search-ready-omnibox-by-default.patch
 disable-AdsBlockedInfoBar.patch
 Bromite-AdBlockUpdaterService.patch
 Add-option-to-configure-the-ad-blocker-filters-URL.patch
-Revert-Merge-to-M78-Enable-AImageReader-by-default.patch
+Restore-GPU-bug-blacklist-for-AImageReader-on-ARM-CPUs.patch
 Replace-DoH-probe-domain-with-RIPE-domain.patch
 Increase-number-of-autocomplete-matches-from-5-to-10.patch
 Disable-HEAD-requests-for-single-word-Omnibar-searches.patch

+ 33 - 0
build/patches/Restore-GPU-bug-blacklist-for-AImageReader-on-ARM-CPUs.patch

@@ -0,0 +1,33 @@
+From: csagan5 <32685696+csagan5@users.noreply.github.com>
+Date: Sat, 15 Feb 2020 08:20:40 +0100
+Subject: Restore GPU bug blacklist for AImageReader on ARM CPUs
+
+---
+ gpu/config/gpu_driver_bug_list.json | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json
+--- a/gpu/config/gpu_driver_bug_list.json
++++ b/gpu/config/gpu_driver_bug_list.json
+@@ -2891,6 +2891,18 @@
+         "reset_base_mipmap_level_before_texstorage"
+       ]
+     },
++    {
++      "id":275,
++      "cr_bugs": [838725],
++      "description": "Disable AImageReader on ARM GPUs as its buggy.",
++      "os": {
++        "type": "android"
++      },
++      "gl_vendor": "ARM.*",
++      "features": [
++        "disable_aimagereader"
++      ]
++    },
+     {
+       "id": 277,
+       "description": "Direct composition path is buggy on certain AMD devices/drivers",
+-- 
+2.17.1
+

+ 0 - 85
build/patches/Revert-Merge-to-M78-Enable-AImageReader-by-default.patch

@@ -1,85 +0,0 @@
-From: csagan5 <32685696+csagan5@users.noreply.github.com>
-Date: Mon, 14 Oct 2019 20:27:33 +0200
-Subject: Revert "[Merge to M78] Enable AImageReader by default."
-
-This reverts commit 60c3d4531b180b911767fb3ea7c3553d7f408c25.
-
-Automatically disable hardware acceleration for Android Q on arm64
----
- chrome/browser/android/chrome_startup_flags.cc | 2 ++
- gpu/config/gpu_finch_features.cc               | 2 +-
- gpu/ipc/service/gpu_init.cc                    | 8 ++------
- media/base/media_switches.cc                   | 2 +-
- 4 files changed, 6 insertions(+), 8 deletions(-)
-
-diff --git a/chrome/browser/android/chrome_startup_flags.cc b/chrome/browser/android/chrome_startup_flags.cc
---- a/chrome/browser/android/chrome_startup_flags.cc
-+++ b/chrome/browser/android/chrome_startup_flags.cc
-@@ -6,6 +6,7 @@
- 
- #include "chrome/browser/android/chrome_startup_flags.h"
- 
-+#include "base/android/build_info.h"
- #include "base/android/jni_android.h"
- #include "base/android/jni_string.h"
- #include "base/android/scoped_java_ref.h"
-@@ -16,6 +17,7 @@
- #include "chrome/common/chrome_switches.h"
- #include "components/browser_sync/browser_sync_switches.h"
- #include "components/dom_distiller/core/dom_distiller_switches.h"
-+#include "content/public/common/content_switches.h"
- #include "media/base/media_switches.h"
- 
- namespace {
-diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
---- a/gpu/config/gpu_finch_features.cc
-+++ b/gpu/config/gpu_finch_features.cc
-@@ -31,7 +31,7 @@ bool FieldIsInBlacklist(const char* current_value, std::string blacklist_str) {
- #if defined(OS_ANDROID)
- // Use android AImageReader when playing videos with MediaPlayer.
- const base::Feature kAImageReaderMediaPlayer{"AImageReaderMediaPlayer",
--                                             base::FEATURE_ENABLED_BY_DEFAULT};
-+                                             base::FEATURE_DISABLED_BY_DEFAULT};
- 
- // Use android SurfaceControl API for managing display compositor's buffer queue
- // and using overlays on Android.
-diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
---- a/gpu/ipc/service/gpu_init.cc
-+++ b/gpu/ipc/service/gpu_init.cc
-@@ -491,9 +491,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
- 
- #if defined(OS_ANDROID)
-   // Disable AImageReader if the workaround is enabled.
--  if (gpu_feature_info_.IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) {
--    base::android::AndroidImageReader::DisableSupport();
--  }
-+  base::android::AndroidImageReader::DisableSupport();
- #endif
- #if defined(USE_OZONE)
-   gpu_feature_info_.supported_buffer_formats_for_allocation_and_texturing =
-@@ -522,9 +520,7 @@ void GpuInit::InitializeInProcess(base::CommandLine* command_line,
-   default_offscreen_surface_ = gl::init::CreateOffscreenGLSurface(gfx::Size());
- 
-   // Disable AImageReader if the workaround is enabled.
--  if (gpu_feature_info_.IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) {
--    base::android::AndroidImageReader::DisableSupport();
--  }
-+  base::android::AndroidImageReader::DisableSupport();
- 
-   UMA_HISTOGRAM_ENUMERATION("GPU.GLImplementation", gl::GetGLImplementation());
- }
-diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
---- a/media/base/media_switches.cc
-+++ b/media/base/media_switches.cc
-@@ -487,7 +487,7 @@ const base::Feature kMediaDrmPreprovisioningAtStartup{
- 
- // Enables the Android Image Reader path for Video decoding(for AVDA and MCVD)
- const base::Feature kAImageReaderVideoOutput{"AImageReaderVideoOutput",
--                                             base::FEATURE_ENABLED_BY_DEFAULT};
-+                                             base::FEATURE_DISABLED_BY_DEFAULT};
- 
- // Prevents using SurfaceLayer for videos. This is meant to be used by embedders
- // that cannot support SurfaceLayer at the moment.
--- 
-2.17.1
-