diff --git a/flow/embedded_views.cc b/flow/embedded_views.cc index 273006c8d5e1f06e135eb124d20da983e9fb8c6e..bf4ccaad319fbe91b4714e3bd4c479309824ae79 100644 --- a/flow/embedded_views.cc +++ b/flow/embedded_views.cc @@ -9,7 +9,7 @@ namespace flutter { void ExternalViewEmbedder::SubmitFrame( GrDirectContext* context, std::unique_ptr frame, - const std::shared_ptr& gpu_disable_sync_switch) { + const std::shared_ptr& gpu_disable_sync_switch) { frame->Submit(); }; diff --git a/flow/embedded_views.h b/flow/embedded_views.h index 1c7da1da2577023e148718170f3513de4732b185..8f8e22863616989b9dae91a978e305b23cf425f9 100644 --- a/flow/embedded_views.h +++ b/flow/embedded_views.h @@ -316,7 +316,7 @@ class ExternalViewEmbedder { virtual void SubmitFrame( GrDirectContext* context, std::unique_ptr frame, - const std::shared_ptr& gpu_disable_sync_switch); + const std::shared_ptr& gpu_disable_sync_switch); // This method provides the embedder a way to do additional tasks after // |SubmitFrame|. For example, merge task runners if `should_resubmit_frame` diff --git a/fml/synchronization/sync_switch.cc b/fml/synchronization/sync_switch.cc index 7ab90db9eb58d18341b8c544297134aea9bf33aa..57217031416701637a0d0133d75d9d4807849d8f 100644 --- a/fml/synchronization/sync_switch.cc +++ b/fml/synchronization/sync_switch.cc @@ -18,11 +18,9 @@ SyncSwitch::Handlers& SyncSwitch::Handlers::SetIfFalse( return *this; } -SyncSwitch::SyncSwitch() : SyncSwitch(false) {} - SyncSwitch::SyncSwitch(bool value) : value_(value) {} -void SyncSwitch::Execute(const SyncSwitch::Handlers& handlers) { +void SyncSwitch::Execute(const SyncSwitch::Handlers& handlers) const { std::scoped_lock guard(mutex_); if (value_) { handlers.true_handler(); diff --git a/fml/synchronization/sync_switch.h b/fml/synchronization/sync_switch.h index 4fd7bfdd49c187e5f4e7dea182cd73418d6336a4..08451c7476f896230fe3d7470fe8b6d0af27d334 100644 --- a/fml/synchronization/sync_switch.h +++ b/fml/synchronization/sync_switch.h @@ -32,13 +32,10 @@ class SyncSwitch { std::function false_handler = [] {}; }; - /// Create a |SyncSwitch| with the false value. - SyncSwitch(); - /// Create a |SyncSwitch| with the specified value. /// /// @param[in] value Default value for the |SyncSwitch|. - SyncSwitch(bool value); + explicit SyncSwitch(bool value = false); /// Diverge execution between true and false values of the SyncSwitch. /// @@ -46,7 +43,7 @@ class SyncSwitch { /// |SetSwitch| inside of the handlers will result in a self deadlock. /// /// @param[in] handlers Called for the correct value of the |SyncSwitch|. - void Execute(const Handlers& handlers); + void Execute(const Handlers& handlers) const; /// Set the value of the SyncSwitch. /// @@ -56,7 +53,7 @@ class SyncSwitch { void SetSwitch(bool value); private: - std::mutex mutex_; + mutable std::mutex mutex_; bool value_; FML_DISALLOW_COPY_AND_ASSIGN(SyncSwitch); diff --git a/lib/ui/io_manager.h b/lib/ui/io_manager.h index f799a841bfa4f8324632d01150b51aafcc481442..3118f35721442ca94e5c122b51270e01346b81e4 100644 --- a/lib/ui/io_manager.h +++ b/lib/ui/io_manager.h @@ -24,7 +24,8 @@ class IOManager { virtual fml::RefPtr GetSkiaUnrefQueue() const = 0; - virtual std::shared_ptr GetIsGpuDisabledSyncSwitch() = 0; + virtual std::shared_ptr + GetIsGpuDisabledSyncSwitch() = 0; }; } // namespace flutter diff --git a/lib/ui/painting/image_decoder_unittests.cc b/lib/ui/painting/image_decoder_unittests.cc index d9cdbfab5138004ec7721d64cac477ec2494b52c..bd3b840530266842deedad3ef9c8444a7aa2b4a4 100644 --- a/lib/ui/painting/image_decoder_unittests.cc +++ b/lib/ui/painting/image_decoder_unittests.cc @@ -71,7 +71,7 @@ class TestIOManager final : public IOManager { } // |IOManager| - std::shared_ptr GetIsGpuDisabledSyncSwitch() override { + std::shared_ptr GetIsGpuDisabledSyncSwitch() override { did_access_is_gpu_disabled_sync_switch_ = true; return is_gpu_disabled_sync_switch_; } diff --git a/shell/common/rasterizer.h b/shell/common/rasterizer.h index 9e2532f09b83ad7193754f2548242c83eb933203..925822400535ccc121369d1a14207be05ed39741 100644 --- a/shell/common/rasterizer.h +++ b/shell/common/rasterizer.h @@ -87,7 +87,7 @@ class Rasterizer final : public SnapshotDelegate { /// /// For example, on some platforms when the application is backgrounded it /// is critical that GPU operations are not processed. - virtual std::shared_ptr GetIsGpuDisabledSyncSwitch() + virtual std::shared_ptr GetIsGpuDisabledSyncSwitch() const = 0; }; diff --git a/shell/common/rasterizer_unittests.cc b/shell/common/rasterizer_unittests.cc index 3098a19256533c09c5d7e80c13b7bb267da4593e..96321df4eb1a357d3e56c87daf9330fe95d75d17 100644 --- a/shell/common/rasterizer_unittests.cc +++ b/shell/common/rasterizer_unittests.cc @@ -24,7 +24,7 @@ class MockDelegate : public Rasterizer::Delegate { MOCK_CONST_METHOD0(GetLatestFrameTargetTime, fml::TimePoint()); MOCK_CONST_METHOD0(GetTaskRunners, const TaskRunners&()); MOCK_CONST_METHOD0(GetIsGpuDisabledSyncSwitch, - std::shared_ptr()); + std::shared_ptr()); }; class MockSurface : public Surface { @@ -55,11 +55,11 @@ class MockExternalViewEmbedder : public ExternalViewEmbedder { fml::RefPtr raster_thread_merger)); MOCK_METHOD0(GetCurrentCanvases, std::vector()); MOCK_METHOD1(CompositeEmbeddedView, SkCanvas*(int view_id)); - MOCK_METHOD3( - SubmitFrame, - void(GrDirectContext* context, - std::unique_ptr frame, - const std::shared_ptr& gpu_disable_sync_switch)); + MOCK_METHOD3(SubmitFrame, + void(GrDirectContext* context, + std::unique_ptr frame, + const std::shared_ptr& + gpu_disable_sync_switch)); MOCK_METHOD2(EndFrame, void(bool should_resubmit_frame, fml::RefPtr raster_thread_merger)); diff --git a/shell/common/shell.cc b/shell/common/shell.cc index a7a41b05255fc100520f0f942ca20d910d2f55d7..e919c1b86a2f27f6a676c080de378d077bf5d9ab 100644 --- a/shell/common/shell.cc +++ b/shell/common/shell.cc @@ -1806,10 +1806,35 @@ bool Shell::ReloadSystemFonts() { return true; } -std::shared_ptr Shell::GetIsGpuDisabledSyncSwitch() const { +std::shared_ptr Shell::GetIsGpuDisabledSyncSwitch() + const { return is_gpu_disabled_sync_switch_; } +void Shell::SetGpuAvailability(GpuAvailability availability) { + switch (availability) { + case GpuAvailability::kAvailable: + is_gpu_disabled_sync_switch_->SetSwitch(false); + return; + case GpuAvailability::kFlushAndMakeUnavailable: { + fml::AutoResetWaitableEvent latch; + fml::TaskRunner::RunNowOrPostTask( + task_runners_.GetIOTaskRunner(), + [io_manager = io_manager_.get(), &latch]() { + io_manager->GetSkiaUnrefQueue()->Drain(); + latch.Signal(); + }); + latch.Wait(); + } + // FALLTHROUGH + case GpuAvailability::kUnavailable: + is_gpu_disabled_sync_switch_->SetSwitch(true); + return; + default: + FML_DCHECK(false); + } +} + void Shell::OnDisplayUpdates(DisplayUpdateType update_type, std::vector displays) { display_manager_->HandleDisplayUpdates(update_type, displays); diff --git a/shell/common/shell.h b/shell/common/shell.h index b8df154b7f7e7accad73b284181b8f870ba7b0d3..b830f61c36b164bfa2dc041096ea0cf39279a7b0 100644 --- a/shell/common/shell.h +++ b/shell/common/shell.h @@ -53,6 +53,18 @@ enum class DartErrorCode { UnknownError = 255 }; +/// Values for |Shell::SetGpuAvailability|. +enum class GpuAvailability { + /// Indicates that GPU operations should be permitted. + kAvailable = 0, + /// Indicates that the GPU is about to become unavailable, and to attempt to + /// flush any GPU related resources now. + kFlushAndMakeUnavailable = 1, + /// Indicates that the GPU is unavailable, and that no attempt should be made + /// to even flush GPU objects until it is available again. + kUnavailable = 2 +}; + //------------------------------------------------------------------------------ /// Perhaps the single most important class in the Flutter engine repository. /// When embedders create a Flutter application, they are referring to the @@ -324,8 +336,13 @@ class Shell final : public PlatformView::Delegate, bool EngineHasLivePorts() const; //---------------------------------------------------------------------------- - /// @brief Accessor for the disable GPU SyncSwitch - std::shared_ptr GetIsGpuDisabledSyncSwitch() const override; + /// @brief Accessor for the disable GPU SyncSwitch. + std::shared_ptr GetIsGpuDisabledSyncSwitch() + const override; + + //---------------------------------------------------------------------------- + /// @brief Marks the GPU as available or unavailable. + void SetGpuAvailability(GpuAvailability availability); //---------------------------------------------------------------------------- /// @brief Get a pointer to the Dart VM used by this running shell diff --git a/shell/common/shell_io_manager.cc b/shell/common/shell_io_manager.cc index c98e83c5f05c4b134008bd825b51b8c51f4bc146..e87ae2c15b5a07e5e498ef25e367f073a4b29920 100644 --- a/shell/common/shell_io_manager.cc +++ b/shell/common/shell_io_manager.cc @@ -53,7 +53,7 @@ sk_sp ShellIOManager::CreateCompatibleResourceLoadingContext( ShellIOManager::ShellIOManager( sk_sp resource_context, - std::shared_ptr is_gpu_disabled_sync_switch, + std::shared_ptr is_gpu_disabled_sync_switch, fml::RefPtr unref_queue_task_runner) : resource_context_(std::move(resource_context)), resource_context_weak_factory_( @@ -125,7 +125,8 @@ fml::WeakPtr ShellIOManager::GetWeakIOManager() const { } // |IOManager| -std::shared_ptr ShellIOManager::GetIsGpuDisabledSyncSwitch() { +std::shared_ptr +ShellIOManager::GetIsGpuDisabledSyncSwitch() { return is_gpu_disabled_sync_switch_; } diff --git a/shell/common/shell_io_manager.h b/shell/common/shell_io_manager.h index 0ab29325b8189c756ac0b7be8da9f65b1e1f86e4..a6b0b5f137ed71a4a2ce5ff7b8489f06704afd5f 100644 --- a/shell/common/shell_io_manager.h +++ b/shell/common/shell_io_manager.h @@ -24,9 +24,10 @@ class ShellIOManager final : public IOManager { GrBackend backend, sk_sp gl_interface); - ShellIOManager(sk_sp resource_context, - std::shared_ptr is_gpu_disabled_sync_switch, - fml::RefPtr unref_queue_task_runner); + ShellIOManager( + sk_sp resource_context, + std::shared_ptr is_gpu_disabled_sync_switch, + fml::RefPtr unref_queue_task_runner); ~ShellIOManager() override; @@ -53,7 +54,7 @@ class ShellIOManager final : public IOManager { fml::RefPtr GetSkiaUnrefQueue() const override; // |IOManager| - std::shared_ptr GetIsGpuDisabledSyncSwitch() override; + std::shared_ptr GetIsGpuDisabledSyncSwitch() override; sk_sp GetSharedResourceContext() const { return resource_context_; @@ -68,7 +69,7 @@ class ShellIOManager final : public IOManager { // Unref queue management. fml::RefPtr unref_queue_; - std::shared_ptr is_gpu_disabled_sync_switch_; + std::shared_ptr is_gpu_disabled_sync_switch_; fml::WeakPtrFactory weak_factory_; diff --git a/shell/common/shell_test_external_view_embedder.cc b/shell/common/shell_test_external_view_embedder.cc index 80e82102629c75b254707ae3ecdc3f815debab3d..300fc6a57328f3483d29cfd17091a9517eb7365c 100644 --- a/shell/common/shell_test_external_view_embedder.cc +++ b/shell/common/shell_test_external_view_embedder.cc @@ -64,7 +64,7 @@ SkCanvas* ShellTestExternalViewEmbedder::CompositeEmbeddedView(int view_id) { void ShellTestExternalViewEmbedder::SubmitFrame( GrDirectContext* context, std::unique_ptr frame, - const std::shared_ptr& gpu_disable_sync_switch) { + const std::shared_ptr& gpu_disable_sync_switch) { frame->Submit(); if (frame && frame->SkiaSurface()) { last_submitted_frame_size_ = SkISize::Make(frame->SkiaSurface()->width(), diff --git a/shell/common/shell_test_external_view_embedder.h b/shell/common/shell_test_external_view_embedder.h index 1782a035527a275769b2c71b45756e9da5816a9a..cd4d6c6ae4baff262b9a635d3c9e31e99cd2d77d 100644 --- a/shell/common/shell_test_external_view_embedder.h +++ b/shell/common/shell_test_external_view_embedder.h @@ -62,10 +62,10 @@ class ShellTestExternalViewEmbedder final : public ExternalViewEmbedder { SkCanvas* CompositeEmbeddedView(int view_id) override; // |ExternalViewEmbedder| - void SubmitFrame( - GrDirectContext* context, - std::unique_ptr frame, - const std::shared_ptr& gpu_disable_sync_switch) override; + void SubmitFrame(GrDirectContext* context, + std::unique_ptr frame, + const std::shared_ptr& + gpu_disable_sync_switch) override; // |ExternalViewEmbedder| void EndFrame( diff --git a/shell/platform/android/external_view_embedder/external_view_embedder.cc b/shell/platform/android/external_view_embedder/external_view_embedder.cc index b23ad1ea4fdd35f3540a99aecb97e90a4c007992..c22462c02c7adc94e4165338a7c565d3037acdc7 100644 --- a/shell/platform/android/external_view_embedder/external_view_embedder.cc +++ b/shell/platform/android/external_view_embedder/external_view_embedder.cc @@ -76,7 +76,7 @@ SkRect AndroidExternalViewEmbedder::GetViewRect(int view_id) const { void AndroidExternalViewEmbedder::SubmitFrame( GrDirectContext* context, std::unique_ptr frame, - const std::shared_ptr& gpu_disable_sync_switch) { + const std::shared_ptr& gpu_disable_sync_switch) { TRACE_EVENT0("flutter", "AndroidExternalViewEmbedder::SubmitFrame"); if (!FrameHasPlatformLayers()) { diff --git a/shell/platform/android/external_view_embedder/external_view_embedder.h b/shell/platform/android/external_view_embedder/external_view_embedder.h index 71d7e7c85c77570af26cfd6e45fbfebea6e1bb28..01b73ed04bac53b1961967b5d9b8230d2ebad6d5 100644 --- a/shell/platform/android/external_view_embedder/external_view_embedder.h +++ b/shell/platform/android/external_view_embedder/external_view_embedder.h @@ -46,10 +46,10 @@ class AndroidExternalViewEmbedder final : public ExternalViewEmbedder { std::vector GetCurrentCanvases() override; // |ExternalViewEmbedder| - void SubmitFrame( - GrDirectContext* context, - std::unique_ptr frame, - const std::shared_ptr& gpu_disable_sync_switch) override; + void SubmitFrame(GrDirectContext* context, + std::unique_ptr frame, + const std::shared_ptr& + gpu_disable_sync_switch) override; // |ExternalViewEmbedder| PostPrerollResult PostPrerollAction( diff --git a/shell/platform/darwin/ios/framework/Source/FlutterEngine.mm b/shell/platform/darwin/ios/framework/Source/FlutterEngine.mm index c4d7f6d65be2c86702a6f21f67ad0772798f3251..d5e3564ecffca168a80ce0dc34e93fd75a969288 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterEngine.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterEngine.mm @@ -521,6 +521,8 @@ static constexpr int kNumProfilerSamplesPerSec = 5; _publisher.reset([[FlutterObservatoryPublisher alloc] initWithEnableObservatoryPublication:doesObservatoryPublication]); [self maybeSetupPlatformViewChannels]; + _shell->SetGpuAvailability(_isGpuDisabled ? flutter::GpuAvailability::kUnavailable + : flutter::GpuAvailability::kAvailable); } + (BOOL)isProfilerEnabled { @@ -897,7 +899,8 @@ static void SetEntryPoint(flutter::Settings* settings, NSString* entrypoint, NSS - (void)setIsGpuDisabled:(BOOL)value { if (_shell) { - _shell->GetIsGpuDisabledSyncSwitch()->SetSwitch(value ? true : false); + _shell->SetGpuAvailability(value ? flutter::GpuAvailability::kUnavailable + : flutter::GpuAvailability::kAvailable); } _isGpuDisabled = value; } diff --git a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm index 3c6f5dc48fc48e3d39bd208f54f2ef3f3f155f9e..d2c8db6fe5ac89c8ffef697ad389eb6554e8ada9 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm @@ -466,7 +466,7 @@ bool FlutterPlatformViewsController::SubmitFrame( GrDirectContext* gr_context, std::shared_ptr ios_context, std::unique_ptr frame, - const std::shared_ptr& gpu_disable_sync_switch) { + const std::shared_ptr& gpu_disable_sync_switch) { bool result = false; gpu_disable_sync_switch->Execute( fml::SyncSwitch::Handlers().SetIfTrue([&] { result = false; }).SetIfFalse([&] { diff --git a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.h b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.h index 99d0606b6443d8be35cf57271adbbed009f35b7a..c195f870653c29b39c2a3091cd56ccd750eac9d9 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.h +++ b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.h @@ -174,7 +174,7 @@ class FlutterPlatformViewsController { bool SubmitFrame(GrDirectContext* gr_context, std::shared_ptr ios_context, std::unique_ptr frame, - const std::shared_ptr& gpu_disable_sync_switch); + const std::shared_ptr& gpu_disable_sync_switch); void OnMethodCall(FlutterMethodCall* call, FlutterResult& result); diff --git a/shell/platform/darwin/ios/ios_external_view_embedder.h b/shell/platform/darwin/ios/ios_external_view_embedder.h index 84d30416d27f036f99d3c69c94ff618557fe8579..b6ca3b6e6f948cea4208839791007f352ef8fda6 100644 --- a/shell/platform/darwin/ios/ios_external_view_embedder.h +++ b/shell/platform/darwin/ios/ios_external_view_embedder.h @@ -53,10 +53,10 @@ class IOSExternalViewEmbedder : public ExternalViewEmbedder { SkCanvas* CompositeEmbeddedView(int view_id) override; // |ExternalViewEmbedder| - void SubmitFrame( - GrDirectContext* context, - std::unique_ptr frame, - const std::shared_ptr& gpu_disable_sync_switch) override; + void SubmitFrame(GrDirectContext* context, + std::unique_ptr frame, + const std::shared_ptr& + gpu_disable_sync_switch) override; // |ExternalViewEmbedder| void EndFrame( diff --git a/shell/platform/darwin/ios/ios_external_view_embedder.mm b/shell/platform/darwin/ios/ios_external_view_embedder.mm index 9ea32d1b97fd5cc1f60ee24e09bba6a20c73836b..391044d7e90ab14819099593e7fc2c3b3ccbec8e 100644 --- a/shell/platform/darwin/ios/ios_external_view_embedder.mm +++ b/shell/platform/darwin/ios/ios_external_view_embedder.mm @@ -75,7 +75,7 @@ SkCanvas* IOSExternalViewEmbedder::CompositeEmbeddedView(int view_id) { void IOSExternalViewEmbedder::SubmitFrame( GrDirectContext* context, std::unique_ptr frame, - const std::shared_ptr& gpu_disable_sync_switch) { + const std::shared_ptr& gpu_disable_sync_switch) { TRACE_EVENT0("flutter", "IOSExternalViewEmbedder::SubmitFrame"); FML_CHECK(platform_views_controller_); platform_views_controller_->SubmitFrame(std::move(context), ios_context_, std::move(frame), diff --git a/shell/platform/embedder/embedder_external_view_embedder.cc b/shell/platform/embedder/embedder_external_view_embedder.cc index 3e1dd488240d86036c2b79fb18cdecca7f48ae33..1d816ab64e2749aa715f03b458ea221ddcd140d8 100644 --- a/shell/platform/embedder/embedder_external_view_embedder.cc +++ b/shell/platform/embedder/embedder_external_view_embedder.cc @@ -136,7 +136,7 @@ static FlutterBackingStoreConfig MakeBackingStoreConfig( void EmbedderExternalViewEmbedder::SubmitFrame( GrDirectContext* context, std::unique_ptr frame, - const std::shared_ptr& gpu_disable_sync_switch) { + const std::shared_ptr& gpu_disable_sync_switch) { auto [matched_render_targets, pending_keys] = render_target_cache_.GetExistingTargetsInCache(pending_views_); diff --git a/shell/platform/embedder/embedder_external_view_embedder.h b/shell/platform/embedder/embedder_external_view_embedder.h index 9796d92c64ea23fd2b9816e34c7481fd9ea31d3f..62b4540c92a2ccbf9b77f745c83bff9550ad6c19 100644 --- a/shell/platform/embedder/embedder_external_view_embedder.h +++ b/shell/platform/embedder/embedder_external_view_embedder.h @@ -97,10 +97,10 @@ class EmbedderExternalViewEmbedder final : public ExternalViewEmbedder { SkCanvas* CompositeEmbeddedView(int view_id) override; // |ExternalViewEmbedder| - void SubmitFrame( - GrDirectContext* context, - std::unique_ptr frame, - const std::shared_ptr& gpu_disable_sync_switch) override; + void SubmitFrame(GrDirectContext* context, + std::unique_ptr frame, + const std::shared_ptr& + gpu_disable_sync_switch) override; // |ExternalViewEmbedder| SkCanvas* GetRootCanvas() override; diff --git a/shell/platform/fuchsia/flutter/fuchsia_external_view_embedder.cc b/shell/platform/fuchsia/flutter/fuchsia_external_view_embedder.cc index 3de76eeef682a6c34dcf7b244882bb88f4ea85ff..8144da0c2d2151deb42d43382d7e09722206e53a 100644 --- a/shell/platform/fuchsia/flutter/fuchsia_external_view_embedder.cc +++ b/shell/platform/fuchsia/flutter/fuchsia_external_view_embedder.cc @@ -200,7 +200,7 @@ void FuchsiaExternalViewEmbedder::EndFrame( void FuchsiaExternalViewEmbedder::SubmitFrame( GrDirectContext* context, std::unique_ptr frame, - const std::shared_ptr& gpu_disable_sync_switch) { + const std::shared_ptr& gpu_disable_sync_switch) { TRACE_EVENT0("flutter", "FuchsiaExternalViewEmbedder::SubmitFrame"); std::vector> frame_surfaces; std::unordered_map frame_surface_indices; diff --git a/shell/platform/fuchsia/flutter/fuchsia_external_view_embedder.h b/shell/platform/fuchsia/flutter/fuchsia_external_view_embedder.h index d01b00345241862f3929774215209d8aefba6d30..531d936de6478dffe6fd072564aaa78815a73047 100644 --- a/shell/platform/fuchsia/flutter/fuchsia_external_view_embedder.h +++ b/shell/platform/fuchsia/flutter/fuchsia_external_view_embedder.h @@ -74,10 +74,10 @@ class FuchsiaExternalViewEmbedder final : public flutter::ExternalViewEmbedder { fml::RefPtr raster_thread_merger) override; // |ExternalViewEmbedder| - void SubmitFrame( - GrDirectContext* context, - std::unique_ptr frame, - const std::shared_ptr& gpu_disable_sync_switch) override; + void SubmitFrame(GrDirectContext* context, + std::unique_ptr frame, + const std::shared_ptr& + gpu_disable_sync_switch) override; // |ExternalViewEmbedder| void CancelFrame() override { Reset(); } diff --git a/shell/platform/fuchsia/flutter/platform_view_unittest.cc b/shell/platform/fuchsia/flutter/platform_view_unittest.cc index 608c133a2bd8c13d853c0e7e22d8dbe364332ef1..b4bc3464b450aea901cb89d1a70d617d622a1d9f 100644 --- a/shell/platform/fuchsia/flutter/platform_view_unittest.cc +++ b/shell/platform/fuchsia/flutter/platform_view_unittest.cc @@ -46,7 +46,7 @@ class MockExternalViewEmbedder : public flutter::ExternalViewEmbedder { fml::RefPtr raster_thread_merger) override {} void SubmitFrame(GrDirectContext* context, std::unique_ptr frame, - const std::shared_ptr& + const std::shared_ptr& gpu_disable_sync_switch) override { return; }