|
@@ -19,18 +19,19 @@ See discussions at:
|
|
* https://github.com/bromite/bromite/issues/445
|
|
* https://github.com/bromite/bromite/issues/445
|
|
* https://github.com/bromite/bromite/issues/814
|
|
* https://github.com/bromite/bromite/issues/814
|
|
---
|
|
---
|
|
- base/android/android_image_reader_compat.cc | 8 +++++-
|
|
|
|
- base/android/android_image_reader_compat.h | 4 +++
|
|
|
|
- gpu/config/gpu_driver_bug_list.json | 32 +++++++++++++++++++++
|
|
|
|
- gpu/config/gpu_finch_features.cc | 8 ++++++
|
|
|
|
|
|
+ base/android/android_image_reader_compat.cc | 8 +++++++-
|
|
|
|
+ base/android/android_image_reader_compat.h | 4 ++++
|
|
|
|
+ chrome/browser/flag-metadata.json | 2 +-
|
|
|
|
+ gpu/config/gpu_driver_bug_list.json | 16 ++++++++++++++++
|
|
|
|
+ gpu/config/gpu_finch_features.cc | 10 +++++++++-
|
|
gpu/config/gpu_finch_features.h | 1 +
|
|
gpu/config/gpu_finch_features.h | 1 +
|
|
- gpu/config/gpu_util.cc | 8 ++++++
|
|
|
|
|
|
+ gpu/config/gpu_util.cc | 8 ++++++++
|
|
gpu/config/gpu_workaround_list.txt | 1 +
|
|
gpu/config/gpu_workaround_list.txt | 1 +
|
|
- gpu/ipc/service/gpu_init.cc | 11 +++++++
|
|
|
|
- gpu/ipc/service/stream_texture_android.cc | 11 ++++++-
|
|
|
|
- media/base/media_switches.cc | 8 ++++++
|
|
|
|
|
|
+ gpu/ipc/service/gpu_init.cc | 5 +++++
|
|
|
|
+ gpu/ipc/service/stream_texture_android.cc | 11 ++++++++++-
|
|
|
|
+ media/base/media_switches.cc | 4 ++++
|
|
media/base/media_switches.h | 1 +
|
|
media/base/media_switches.h | 1 +
|
|
- 11 files changed, 91 insertions(+), 2 deletions(-)
|
|
|
|
|
|
+ 12 files changed, 67 insertions(+), 4 deletions(-)
|
|
|
|
|
|
diff --git a/base/android/android_image_reader_compat.cc b/base/android/android_image_reader_compat.cc
|
|
diff --git a/base/android/android_image_reader_compat.cc b/base/android/android_image_reader_compat.cc
|
|
--- a/base/android/android_image_reader_compat.cc
|
|
--- a/base/android/android_image_reader_compat.cc
|
|
@@ -79,10 +80,22 @@ diff --git a/base/android/android_image_reader_compat.h b/base/android/android_i
|
|
friend class base::NoDestructor<AndroidImageReader>;
|
|
friend class base::NoDestructor<AndroidImageReader>;
|
|
|
|
|
|
AndroidImageReader();
|
|
AndroidImageReader();
|
|
|
|
+diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
|
|
|
|
+--- a/chrome/browser/flag-metadata.json
|
|
|
|
++++ b/chrome/browser/flag-metadata.json
|
|
|
|
+@@ -1681,7 +1681,7 @@
|
|
|
|
+ {
|
|
|
|
+ "name": "enable-image-reader",
|
|
|
|
+ "owners": [ "vikassoni", "khushalsagar" ],
|
|
|
|
+- "expiry_milestone": 90
|
|
|
|
++ "expiry_milestone": -1
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "name": "enable-immersive-fullscreen-toolbar",
|
|
diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json
|
|
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
|
|
--- a/gpu/config/gpu_driver_bug_list.json
|
|
+++ b/gpu/config/gpu_driver_bug_list.json
|
|
+++ b/gpu/config/gpu_driver_bug_list.json
|
|
-@@ -3287,6 +3287,38 @@
|
|
|
|
|
|
+@@ -3287,6 +3287,22 @@
|
|
"dont_delete_source_texture_for_egl_image"
|
|
"dont_delete_source_texture_for_egl_image"
|
|
]
|
|
]
|
|
},
|
|
},
|
|
@@ -101,22 +114,6 @@ diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_lis
|
|
+ "features": [
|
|
+ "features": [
|
|
+ "disable_aimagereader"
|
|
+ "disable_aimagereader"
|
|
+ ]
|
|
+ ]
|
|
-+ },
|
|
|
|
-+ {
|
|
|
|
-+ "id":330,
|
|
|
|
-+ "cr_bugs": [1051705],
|
|
|
|
-+ "description": "Disable AImageReader on Qualcomm GPUs",
|
|
|
|
-+ "os": {
|
|
|
|
-+ "type": "android",
|
|
|
|
-+ "version": {
|
|
|
|
-+ "op": "<",
|
|
|
|
-+ "value": "10"
|
|
|
|
-+ }
|
|
|
|
-+ },
|
|
|
|
-+ "gl_vendor": "Qualcomm.*",
|
|
|
|
-+ "features": [
|
|
|
|
-+ "disable_aimagereader"
|
|
|
|
-+ ]
|
|
|
|
+ },
|
|
+ },
|
|
{
|
|
{
|
|
"id": 336,
|
|
"id": 336,
|
|
@@ -124,21 +121,30 @@ diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_lis
|
|
diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
|
|
diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
|
|
--- a/gpu/config/gpu_finch_features.cc
|
|
--- a/gpu/config/gpu_finch_features.cc
|
|
+++ b/gpu/config/gpu_finch_features.cc
|
|
+++ b/gpu/config/gpu_finch_features.cc
|
|
-@@ -13,6 +13,14 @@
|
|
|
|
|
|
+@@ -13,6 +13,10 @@
|
|
|
|
|
|
namespace features {
|
|
namespace features {
|
|
|
|
|
|
+// Use android AImageReader when playing videos with MediaPlayer.
|
|
+// Use android AImageReader when playing videos with MediaPlayer.
|
|
+const base::Feature kAImageReaderMediaPlayer{"AImageReaderMediaPlayer",
|
|
+const base::Feature kAImageReaderMediaPlayer{"AImageReaderMediaPlayer",
|
|
|
|
++ base::FEATURE_ENABLED_BY_DEFAULT};
|
|
|
|
++
|
|
|
|
+ #if defined(OS_ANDROID)
|
|
|
|
+ // Used to limit GL version to 2.0 for skia raster on Android.
|
|
|
|
+ const base::Feature kUseGles2ForOopR{"UseGles2ForOopR",
|
|
|
|
+@@ -26,7 +30,11 @@ const base::Feature kAndroidSurfaceControl{"AndroidSurfaceControl",
|
|
|
|
+
|
|
|
|
+ // Use AImageReader for MediaCodec and MediaPlyer on android.
|
|
|
|
+ const base::Feature kAImageReader{"AImageReader",
|
|
|
|
+- base::FEATURE_ENABLED_BY_DEFAULT};
|
|
+#ifdef ARCH_CPU_ARM64
|
|
+#ifdef ARCH_CPU_ARM64
|
|
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
|
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
|
+#else
|
|
+#else
|
|
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
|
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
|
+#endif
|
|
+#endif
|
|
-+
|
|
|
|
- #if defined(OS_ANDROID)
|
|
|
|
- // Used to limit GL version to 2.0 for skia raster on Android.
|
|
|
|
- const base::Feature kUseGles2ForOopR{"UseGles2ForOopR",
|
|
|
|
|
|
+ #endif
|
|
|
|
+
|
|
|
|
+ // Enable GPU Rasterization by default. This can still be overridden by
|
|
diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h
|
|
diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h
|
|
--- a/gpu/config/gpu_finch_features.h
|
|
--- a/gpu/config/gpu_finch_features.h
|
|
+++ b/gpu/config/gpu_finch_features.h
|
|
+++ b/gpu/config/gpu_finch_features.h
|
|
@@ -189,31 +195,18 @@ diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list
|
|
diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
|
|
diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
|
|
--- a/gpu/ipc/service/gpu_init.cc
|
|
--- a/gpu/ipc/service/gpu_init.cc
|
|
+++ b/gpu/ipc/service/gpu_init.cc
|
|
+++ b/gpu/ipc/service/gpu_init.cc
|
|
-@@ -727,6 +727,12 @@ void GpuInit::InitializeInProcess(base::CommandLine* command_line,
|
|
|
|
- AdjustInfoToSwiftShader();
|
|
|
|
|
|
+@@ -467,6 +467,11 @@ 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();
|
|
|
|
-+ }
|
|
|
|
-+#endif
|
|
|
|
- #if defined(USE_OZONE)
|
|
|
|
- if (features::IsUsingOzonePlatform()) {
|
|
|
|
- const std::vector<gfx::BufferFormat>
|
|
|
|
-@@ -746,6 +752,11 @@ void GpuInit::InitializeInProcess(base::CommandLine* command_line,
|
|
|
|
- gl::DirectCompositionSurfaceWin::DisableDecodeSwapChain();
|
|
|
|
- #endif
|
|
|
|
-
|
|
|
|
+ // Disable AImageReader if the workaround is enabled.
|
|
+ // Disable AImageReader if the workaround is enabled.
|
|
+ if (gpu_feature_info_.IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) {
|
|
+ if (gpu_feature_info_.IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) {
|
|
+ base::android::AndroidImageReader::DisableSupport();
|
|
+ base::android::AndroidImageReader::DisableSupport();
|
|
+ }
|
|
+ }
|
|
+
|
|
+
|
|
- UMA_HISTOGRAM_ENUMERATION("GPU.GLImplementation", gl::GetGLImplementation());
|
|
|
|
- }
|
|
|
|
- #endif // OS_ANDROID
|
|
|
|
|
|
+ if (gpu_feature_info_.status_values[GPU_FEATURE_TYPE_VULKAN] !=
|
|
|
|
+ kGpuFeatureStatusEnabled ||
|
|
|
|
+ !InitializeVulkan()) {
|
|
diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_texture_android.cc
|
|
diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_texture_android.cc
|
|
--- a/gpu/ipc/service/stream_texture_android.cc
|
|
--- a/gpu/ipc/service/stream_texture_android.cc
|
|
+++ b/gpu/ipc/service/stream_texture_android.cc
|
|
+++ b/gpu/ipc/service/stream_texture_android.cc
|
|
@@ -245,17 +238,13 @@ diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_
|
|
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
|
|
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
|
|
--- a/media/base/media_switches.cc
|
|
--- a/media/base/media_switches.cc
|
|
+++ b/media/base/media_switches.cc
|
|
+++ b/media/base/media_switches.cc
|
|
-@@ -566,6 +566,14 @@ const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning",
|
|
|
|
|
|
+@@ -566,6 +566,10 @@ const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning",
|
|
const base::Feature kMediaDrmPreprovisioningAtStartup{
|
|
const base::Feature kMediaDrmPreprovisioningAtStartup{
|
|
"MediaDrmPreprovisioningAtStartup", base::FEATURE_ENABLED_BY_DEFAULT};
|
|
"MediaDrmPreprovisioningAtStartup", base::FEATURE_ENABLED_BY_DEFAULT};
|
|
|
|
|
|
+// Enables the Android Image Reader path for Video decoding(for AVDA and MCVD)
|
|
+// Enables the Android Image Reader path for Video decoding(for AVDA and MCVD)
|
|
+const base::Feature kAImageReaderVideoOutput{"AImageReaderVideoOutput",
|
|
+const base::Feature kAImageReaderVideoOutput{"AImageReaderVideoOutput",
|
|
-+#ifdef ARCH_CPU_ARM64
|
|
|
|
-+ base::FEATURE_DISABLED_BY_DEFAULT};
|
|
|
|
-+#else
|
|
|
|
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
|
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
|
-+#endif
|
|
|
|
+
|
|
+
|
|
// Prevents using SurfaceLayer for videos. This is meant to be used by embedders
|
|
// Prevents using SurfaceLayer for videos. This is meant to be used by embedders
|
|
// that cannot support SurfaceLayer at the moment.
|
|
// that cannot support SurfaceLayer at the moment.
|