123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- From: csagan5 <32685696+csagan5@users.noreply.github.com>
- Date: Tue, 5 May 2020 07:22:20 +0200
- Subject: Revert "gpu/android: Remove setup for disabling AImageReader."
- This reverts commit dcd5a39518246eb999f1cc63bf1ec95d93fd5b2f.
- ---
- base/android/android_image_reader_compat.cc | 8 +++++++-
- base/android/android_image_reader_compat.h | 4 ++++
- gpu/config/gpu_util.cc | 8 ++++++++
- gpu/config/gpu_workaround_list.txt | 1 +
- gpu/ipc/service/gpu_init.cc | 11 +++++++++++
- 5 files changed, 31 insertions(+), 1 deletion(-)
- 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
- +++ b/base/android/android_image_reader_compat.cc
- @@ -22,6 +22,8 @@
- namespace base {
- namespace android {
-
- +bool AndroidImageReader::disable_support_ = false;
- +
- AndroidImageReader& AndroidImageReader::GetInstance() {
- // C++11 static local variable initialization is
- // thread-safe.
- @@ -29,8 +31,12 @@ AndroidImageReader& AndroidImageReader::GetInstance() {
- return *instance;
- }
-
- +void AndroidImageReader::DisableSupport() {
- + disable_support_ = true;
- +}
- +
- bool AndroidImageReader::IsSupported() {
- - return is_supported_;
- + return !disable_support_ && is_supported_;
- }
-
- AndroidImageReader::AndroidImageReader() {
- diff --git a/base/android/android_image_reader_compat.h b/base/android/android_image_reader_compat.h
- --- a/base/android/android_image_reader_compat.h
- +++ b/base/android/android_image_reader_compat.h
- @@ -22,6 +22,9 @@ class BASE_EXPORT AndroidImageReader {
- // Thread safe GetInstance.
- static AndroidImageReader& GetInstance();
-
- + // Disable image reader support.
- + static void DisableSupport();
- +
- // Check if the image reader usage is supported. This function returns TRUE
- // if android version is >=OREO, image reader support is not disabled and all
- // the required functions are loaded.
- @@ -64,6 +67,7 @@ class BASE_EXPORT AndroidImageReader {
- AndroidImageReader();
- bool LoadFunctions();
-
- + static bool disable_support_;
- bool is_supported_;
- pAImage_delete AImage_delete_;
- pAImage_deleteAsync AImage_deleteAsync_;
- diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
- --- a/gpu/config/gpu_util.cc
- +++ b/gpu/config/gpu_util.cc
- @@ -108,6 +108,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus(
- #if !defined(OS_ANDROID)
- return kGpuFeatureStatusDisabled;
- #else
- + if (blacklisted_features.count(GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL))
- + return kGpuFeatureStatusBlacklisted;
- +
- if (!gpu_preferences.enable_android_surface_control)
- return kGpuFeatureStatusDisabled;
-
- @@ -349,6 +352,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) {
- gpu_feature_info->status_values[GPU_FEATURE_TYPE_ACCELERATED_WEBGL2] =
- kGpuFeatureStatusBlacklisted;
- }
- +
- + if (gpu_feature_info->IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) {
- + gpu_feature_info->status_values[GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL] =
- + kGpuFeatureStatusBlacklisted;
- + }
- }
-
- // Estimates roughly user total disk space by counting in the drives where
- diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list.txt
- --- a/gpu/config/gpu_workaround_list.txt
- +++ b/gpu/config/gpu_workaround_list.txt
- @@ -13,6 +13,7 @@ decode_encode_srgb_for_generatemipmap
- depth_stencil_renderbuffer_resize_emulation
- disable_2d_canvas_auto_flush
- disable_accelerated_vpx_decode
- +disable_aimagereader
- disable_async_readpixels
- disable_av_sample_buffer_display_layer
- disable_blend_equation_advanced
- 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
- @@ -524,6 +524,12 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
- ui::OzonePlatform::GetInstance()->AfterSandboxEntry();
- #endif
-
- +#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)
- gpu_feature_info_.supported_buffer_formats_for_allocation_and_texturing =
- std::move(supported_buffer_formats_for_texturing);
- @@ -550,6 +556,11 @@ 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();
- + }
- +
- UMA_HISTOGRAM_ENUMERATION("GPU.GLImplementation", gl::GetGLImplementation());
- }
- #else
- --
- 2.17.1
|