New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 796602 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jan 2018
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 672962



Sign in to add a comment

[surface_dependency_tracker.cc(170)] Check failed: activated_surface->HasActiveFrame().

Project Member Reported by samans@chromium.org, Dec 20 2017

Issue description

Randomly encountered this yesterday while resizing a window.

[69479:69479:1219/143223.706583:FATAL:surface_dependency_tracker.cc(170)] Check failed: activated_surface->HasActiveFrame(). 
#0 0x7f803e2627bd base::debug::StackTrace::StackTrace()
#1 0x7f803e260bfc base::debug::StackTrace::StackTrace()
#2 0x7f803e2e7b9a logging::LogMessage::~LogMessage()
#3 0x7f8023b56841 viz::SurfaceDependencyTracker::IsSurfaceLate()
#4 0x7f8023b563db viz::SurfaceDependencyTracker::RequestSurfaceResolution()
#5 0x7f8023b6055c viz::SurfaceManager::RequestSurfaceResolution()
#6 0x7f8023b42ac5 viz::Surface::QueueFrame()
#7 0x7f8023adfa21 viz::CompositorFrameSinkSupport::SubmitCompositorFrame()
#8 0x7f80392e1ce2 content::DelegatedFrameHost::SubmitCompositorFrame()
#9 0x7f8038e3cdf7 content::RenderWidgetHostViewAura::SubmitCompositorFrame()
#10 0x7f8038e1ed1e content::RenderWidgetHostImpl::SubmitCompositorFrame()
#11 0x7f8037bb8321 viz::mojom::CompositorFrameSinkStubDispatch::Accept()
#12 0x7f8038e25e73 viz::mojom::CompositorFrameSinkStub<>::Accept()
#13 0x7f803c831c8f mojo::InterfaceEndpointClient::HandleValidatedMessage()
#14 0x7f803c830791 mojo::InterfaceEndpointClient::HandleIncomingMessageThunk::Accept()
#15 0x7f803c82ee00 mojo::FilterChain::Accept()
#16 0x7f803c834835 mojo::InterfaceEndpointClient::HandleIncomingMessage()
#17 0x7f803c84ad1b mojo::internal::MultiplexRouter::ProcessIncomingMessage()
#18 0x7f803c84a275 mojo::internal::MultiplexRouter::Accept()
#19 0x7f803c82ee00 mojo::FilterChain::Accept()
#20 0x7f803c822718 mojo::Connector::ReadSingleMessage()
#21 0x7f803c82375a mojo::Connector::ReadAllAvailableMessages()
#22 0x7f803c823522 mojo::Connector::OnHandleReadyInternal()
#23 0x7f803c82340b mojo::Connector::OnWatcherHandleReady()
#24 0x7f803c826b9f _ZN4base8internal13FunctorTraitsIMN4mojo9ConnectorEFvjEvE6InvokeIPS3_JjEEEvS5_OT_DpOT0_
#25 0x7f803c826aff _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKMN4mojo9ConnectorEFvjEJPS5_jEEEvOT_DpOT0_
#26 0x7f803c826a95 _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo9ConnectorEFvjEJNS0_17UnretainedWrapperIS4_EEEEEFvjEE7RunImplIRKS6_RKNSt3__15tupleIJS8_EEEJLm0EEEEvOT_OT0_NSF_16integer_sequenceImJXspT1_EEEEOj
#27 0x7f803c8269cb _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo9ConnectorEFvjEJNS0_17UnretainedWrapperIS4_EEEEEFvjEE3RunEPNS0_13BindStateBaseEj
#28 0x7f803c81d04e _ZNKR4base17RepeatingCallbackIFvjEE3RunEj
#29 0x7f803c825b8f mojo::SimpleWatcher::DiscardReadyState()
#30 0x7f803c825e04 _ZN4base8internal13FunctorTraitsIPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEvE6InvokeIJS6_jSA_EEEvSC_DpOT_
#31 0x7f803c825db0 _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEJS8_jSC_EEEvOT_DpOT0_
#32 0x7f803c825d50 _ZN4base8internal7InvokerINS0_9BindStateIPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEJS5_EEEFvjSB_EE7RunImplIRKSD_RKNSt3__15tupleIJS5_EEEJLm0EEEEvOT_OT0_NSK_16integer_sequenceImJXspT1_EEEEOjSB_
#33 0x7f803c825c86 _ZN4base8internal7InvokerINS0_9BindStateIPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEJS5_EEEFvjSB_EE3RunEPNS0_13BindStateBaseEjSB_
#34 0x7f803c7abcde _ZNKR4base17RepeatingCallbackIFvjRKN4mojo18HandleSignalsStateEEE3RunEjS4_
#35 0x7f803c7ab5e9 mojo::SimpleWatcher::OnHandleReady()
#36 0x7f803c7ac513 _ZN4base8internal13FunctorTraitsIMN4mojo13SimpleWatcherEFvijRKNS2_18HandleSignalsStateEEvE6InvokeIRKNS_7WeakPtrIS3_EEJRKiRKjS6_EEEvS8_OT_DpOT0_
#37 0x7f803c7ac455 _ZN4base8internal12InvokeHelperILb1EvE8MakeItSoIRKMN4mojo13SimpleWatcherEFvijRKNS4_18HandleSignalsStateEERKNS_7WeakPtrIS5_EEJRKiRKjS8_EEEvOT_OT0_DpOT1_
#38 0x7f803c7ac3b2 _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo13SimpleWatcherEFvijRKNS3_18HandleSignalsStateEEJNS_7WeakPtrIS4_EEijS5_EEEFvvEE7RunImplIRKS9_RKNSt3__15tupleIJSB_ijS5_EEEJLm0ELm1ELm2ELm3EEEEvOT_OT0_NSI_16integer_sequenceImJXspT1_EEEE
#39 0x7f803c7ac22c _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo13SimpleWatcherEFvijRKNS3_18HandleSignalsStateEEJNS_7WeakPtrIS4_EEijS5_EEEFvvEE3RunEPNS0_13BindStateBaseE
#40 0x7f803e20cf41 _ZNO4base12OnceCallbackIFvvEE3RunEv
#41 0x7f803e266f6a base::debug::TaskAnnotator::RunTask()
#42 0x7f803e303f89 base::internal::IncomingTaskQueue::RunTask()
#43 0x7f803e30cd4e base::MessageLoop::RunTask()
#44 0x7f803e30cfe8 base::MessageLoop::DeferOrRunPendingTask()
#45 0x7f803e30d330 base::MessageLoop::DoWork()
#46 0x7f803e310b56 base::MessagePumpGlib::Run()
#47 0x7f803e30c4e2 base::MessageLoop::Run()
#48 0x7f803e3b8470 base::RunLoop::Run()
#49 0x55759f65cd61 ChromeBrowserMainParts::MainMessageLoopRun()
#50 0x7f80383e9a46 content::BrowserMainLoop::RunMainMessageLoopParts()
#51 0x7f80383f2207 content::BrowserMainRunnerImpl::Run()
#52 0x7f80383dd45b content::BrowserMain()
#53 0x7f8039ff07c8 content::RunNamedProcessTypeMain()
#54 0x7f8039ff3372 content::ContentMainRunnerImpl::Run()
#55 0x7f8039fea7dd content::ContentServiceManagerMainDelegate::RunEmbedderProcess()
#56 0x7f803ea80785 service_manager::Main()
#57 0x7f8039fef61f content::ContentMain()
#58 0x55759dd1c23e ChromeMain
#59 0x55759dd1c152 main
#60 0x7f8024cf8f45 __libc_start_main
#61 0x55759dd1c02a _start

Received signal 6
#0 0x7f803e2627bd base::debug::StackTrace::StackTrace()
#1 0x7f803e260bfc base::debug::StackTrace::StackTrace()
#2 0x7f803e262185 base::debug::(anonymous namespace)::StackDumpSignalHandler()
#3 0x7f803e7b8330 <unknown>
#4 0x7f8024d0dc37 gsignal
#5 0x7f8024d11028 abort
#6 0x7f803e25dc86 base::debug::(anonymous namespace)::DebugBreak()
#7 0x7f803e25dc68 base::debug::BreakDebugger()
#8 0x7f803e2e87ba logging::LogMessage::~LogMessage()
#9 0x7f8023b56841 viz::SurfaceDependencyTracker::IsSurfaceLate()
#10 0x7f8023b563db viz::SurfaceDependencyTracker::RequestSurfaceResolution()
#11 0x7f8023b6055c viz::SurfaceManager::RequestSurfaceResolution()
#12 0x7f8023b42ac5 viz::Surface::QueueFrame()
#13 0x7f8023adfa21 viz::CompositorFrameSinkSupport::SubmitCompositorFrame()
#14 0x7f80392e1ce2 content::DelegatedFrameHost::SubmitCompositorFrame()
#15 0x7f8038e3cdf7 content::RenderWidgetHostViewAura::SubmitCompositorFrame()
#16 0x7f8038e1ed1e content::RenderWidgetHostImpl::SubmitCompositorFrame()
#17 0x7f8037bb8321 viz::mojom::CompositorFrameSinkStubDispatch::Accept()
#18 0x7f8038e25e73 viz::mojom::CompositorFrameSinkStub<>::Accept()
#19 0x7f803c831c8f mojo::InterfaceEndpointClient::HandleValidatedMessage()
#20 0x7f803c830791 mojo::InterfaceEndpointClient::HandleIncomingMessageThunk::Accept()
#21 0x7f803c82ee00 mojo::FilterChain::Accept()
#22 0x7f803c834835 mojo::InterfaceEndpointClient::HandleIncomingMessage()
#23 0x7f803c84ad1b mojo::internal::MultiplexRouter::ProcessIncomingMessage()
#24 0x7f803c84a275 mojo::internal::MultiplexRouter::Accept()
#25 0x7f803c82ee00 mojo::FilterChain::Accept()
#26 0x7f803c822718 mojo::Connector::ReadSingleMessage()
#27 0x7f803c82375a mojo::Connector::ReadAllAvailableMessages()
#28 0x7f803c823522 mojo::Connector::OnHandleReadyInternal()
#29 0x7f803c82340b mojo::Connector::OnWatcherHandleReady()
#30 0x7f803c826b9f _ZN4base8internal13FunctorTraitsIMN4mojo9ConnectorEFvjEvE6InvokeIPS3_JjEEEvS5_OT_DpOT0_
#31 0x7f803c826aff _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKMN4mojo9ConnectorEFvjEJPS5_jEEEvOT_DpOT0_
#32 0x7f803c826a95 _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo9ConnectorEFvjEJNS0_17UnretainedWrapperIS4_EEEEEFvjEE7RunImplIRKS6_RKNSt3__15tupleIJS8_EEEJLm0EEEEvOT_OT0_NSF_16integer_sequenceImJXspT1_EEEEOj
#33 0x7f803c8269cb _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo9ConnectorEFvjEJNS0_17UnretainedWrapperIS4_EEEEEFvjEE3RunEPNS0_13BindStateBaseEj
#34 0x7f803c81d04e _ZNKR4base17RepeatingCallbackIFvjEE3RunEj
#35 0x7f803c825b8f mojo::SimpleWatcher::DiscardReadyState()
#36 0x7f803c825e04 _ZN4base8internal13FunctorTraitsIPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEvE6InvokeIJS6_jSA_EEEvSC_DpOT_
#37 0x7f803c825db0 _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEJS8_jSC_EEEvOT_DpOT0_
#38 0x7f803c825d50 _ZN4base8internal7InvokerINS0_9BindStateIPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEJS5_EEEFvjSB_EE7RunImplIRKSD_RKNSt3__15tupleIJS5_EEEJLm0EEEEvOT_OT0_NSK_16integer_sequenceImJXspT1_EEEEOjSB_
#39 0x7f803c825c86 _ZN4base8internal7InvokerINS0_9BindStateIPFvRKNS_17RepeatingCallbackIFvjEEEjRKN4mojo18HandleSignalsStateEEJS5_EEEFvjSB_EE3RunEPNS0_13BindStateBaseEjSB_
#40 0x7f803c7abcde _ZNKR4base17RepeatingCallbackIFvjRKN4mojo18HandleSignalsStateEEE3RunEjS4_
#41 0x7f803c7ab5e9 mojo::SimpleWatcher::OnHandleReady()
#42 0x7f803c7ac513 _ZN4base8internal13FunctorTraitsIMN4mojo13SimpleWatcherEFvijRKNS2_18HandleSignalsStateEEvE6InvokeIRKNS_7WeakPtrIS3_EEJRKiRKjS6_EEEvS8_OT_DpOT0_
#43 0x7f803c7ac455 _ZN4base8internal12InvokeHelperILb1EvE8MakeItSoIRKMN4mojo13SimpleWatcherEFvijRKNS4_18HandleSignalsStateEERKNS_7WeakPtrIS5_EEJRKiRKjS8_EEEvOT_OT0_DpOT1_
#44 0x7f803c7ac3b2 _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo13SimpleWatcherEFvijRKNS3_18HandleSignalsStateEEJNS_7WeakPtrIS4_EEijS5_EEEFvvEE7RunImplIRKS9_RKNSt3__15tupleIJSB_ijS5_EEEJLm0ELm1ELm2ELm3EEEEvOT_OT0_NSI_16integer_sequenceImJXspT1_EEEE
#45 0x7f803c7ac22c _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo13SimpleWatcherEFvijRKNS3_18HandleSignalsStateEEJNS_7WeakPtrIS4_EEijS5_EEEFvvEE3RunEPNS0_13BindStateBaseE
#46 0x7f803e20cf41 _ZNO4base12OnceCallbackIFvvEE3RunEv
#47 0x7f803e266f6a base::debug::TaskAnnotator::RunTask()
#48 0x7f803e303f89 base::internal::IncomingTaskQueue::RunTask()
#49 0x7f803e30cd4e base::MessageLoop::RunTask()
#50 0x7f803e30cfe8 base::MessageLoop::DeferOrRunPendingTask()
#51 0x7f803e30d330 base::MessageLoop::DoWork()
#52 0x7f803e310b56 base::MessagePumpGlib::Run()
#53 0x7f803e30c4e2 base::MessageLoop::Run()
#54 0x7f803e3b8470 base::RunLoop::Run()
#55 0x55759f65cd61 ChromeBrowserMainParts::MainMessageLoopRun()
#56 0x7f80383e9a46 content::BrowserMainLoop::RunMainMessageLoopParts()
#57 0x7f80383f2207 content::BrowserMainRunnerImpl::Run()
#58 0x7f80383dd45b content::BrowserMain()
#59 0x7f8039ff07c8 content::RunNamedProcessTypeMain()
#60 0x7f8039ff3372 content::ContentMainRunnerImpl::Run()
#61 0x7f8039fea7dd content::ContentServiceManagerMainDelegate::RunEmbedderProcess()

 
Ahh this is likely related to frame eviction. One of the surfaces with missing dependencies has been evicted. However, SurfaceDiscarded wasn't called yet so I guess this is the case when a surface is marked for deletion but not yet deleted. Regardless, the fix is to simply skip over the surface, I guess. I'll do that when I get back in the new year.
Project Member

Comment 2 by bugdroid1@chromium.org, Jan 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/14b27fbb3889161127418a5e593ae2edd70fa790

commit 14b27fbb3889161127418a5e593ae2edd70fa790
Author: Fady Samuel <fsamuel@chromium.org>
Date: Wed Jan 03 01:14:23 2018

Surface sync: Late arriving CF should not activate if dependent CF dropped

A late arriving CompositorFrame should not activate if the dependent CF has
been dropped. This can happen if a CompositorFrame is marked for destruction
and then pulled out of the destruction queue ("surface resurrection").

This CL ensures that when a surface is reset, a SurfaceDiscarded notification
is sent to the SurfaceDependencyTracker followed by SurfaceCreated to mimic
creating a new surface.

Bug:  796602 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: I226b23bedbb1855c0da8fada8341c09a2f4fd318
Reviewed-on: https://chromium-review.googlesource.com/847427
Commit-Queue: Fady Samuel <fsamuel@chromium.org>
Reviewed-by: Saman Sami <samans@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526561}
[modify] https://crrev.com/14b27fbb3889161127418a5e593ae2edd70fa790/components/viz/service/frame_sinks/surface_synchronization_unittest.cc
[modify] https://crrev.com/14b27fbb3889161127418a5e593ae2edd70fa790/components/viz/service/surfaces/surface_manager.cc
[modify] https://crrev.com/14b27fbb3889161127418a5e593ae2edd70fa790/components/viz/service/surfaces/surface_manager.h

I am reverting this CL as it breaks a number of tests on Win7 (dbg):

SurfaceReferencesTest.NewSurfaceFromFrameSink
SurfaceReferencesTest.TryAddReferenceSameReferenceTwice
SurfaceReferencesTest.AddSurfaceThenRootReference
SurfaceReferencesTest.AddRemoveReference
SurfaceReferencesTest.InvalidateHasNoEffectOnSurfaceReferences
SurfaceReferencesTest.AddReference
SurfaceReferencesTest.TempReferencesWithClientCrash
SurfaceReferencesTest.LiveSurfaceStillReachable

https://ci.chromium.org/buildbot/chromium.win/Win7%20Tests%20(dbg)(1)/65545

https://logs.chromium.org/v/?s=chromium%2Fbb%2Fchromium.win%2FWin7_Tests__dbg__1_%2F65545%2F%2B%2Frecipes%2Fsteps%2Fviz_unittests%2F0%2Flogs%2FSurfaceReferencesTest.NewSurfaceFromFrameSink%2F0

[ RUN      ] SurfaceReferencesTest.NewSurfaceFromFrameSink
c:\b\c\win_toolchain\vs_files\1180cb75833ea365097e279efb2d5d7a42dee4b0\win_sdk\bin\..\..\vc\tools\msvc\14.11.25503\include\vector(80) : Assertion failed: vector iterator not incrementable
Received fatal exception EXCEPTION_BREAKPOINT
Backtrace:
	base::TestSuite::SuppressErrorDialogs [0x0102E82D+381]
	invalid_parameter [0x7458E551+161]
	std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<viz::SurfaceId> > >::operator++ [0x08BAD42E+174]
	viz::SurfaceManager::~SurfaceManager [0x08CF62D9+265]
	viz::FrameSinkManagerImpl::~FrameSinkManagerImpl [0x08C54B2C+620]
	viz::FrameSinkManagerImpl::`scalar deleting destructor' [0x08C3E6E5+37]
	viz::FrameSinkManagerImpl::`vector deleting destructor' [0x08C3E6A7+39]
	std::default_delete<viz::FrameSinkManagerImpl>::operator() [0x008CD97A+58]
	std::unique_ptr<viz::FrameSinkManagerImpl,std::default_delete<viz::FrameSinkManagerImpl> >::reset [0x008CE587+87]
	viz::test::SurfaceReferencesTest::TearDown [0x008CB276+198]
	testing::internal::HandleExceptionsInMethodIfSupported<testing::Test,void> [0x009FA209+105]
	testing::Test::Run [0x009FA152+242]
	testing::TestInfo::Run [0x009FAEEA+250]
	testing::TestCase::Run [0x009FBC6B+267]
	testing::internal::UnitTestImpl::RunAllTests [0x00A04199+857]
	testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,bool> [0x00A03DEE+110]
	testing::UnitTest::Run [0x00A03BE4+324]
	RUN_ALL_TESTS [0x0102E4EF+15]
Project Member

Comment 4 by bugdroid1@chromium.org, Jan 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f3969c1b50a0c7336fb9e1faa38025f8282c733e

commit f3969c1b50a0c7336fb9e1faa38025f8282c733e
Author: Dominic Battré <battre@chromium.org>
Date: Wed Jan 03 08:22:57 2018

Revert "Surface sync: Late arriving CF should not activate if dependent CF dropped"

This reverts commit 14b27fbb3889161127418a5e593ae2edd70fa790.

Reason for revert: Breaks several unittests, see bug for details.

Original change's description:
> Surface sync: Late arriving CF should not activate if dependent CF dropped
> 
> A late arriving CompositorFrame should not activate if the dependent CF has
> been dropped. This can happen if a CompositorFrame is marked for destruction
> and then pulled out of the destruction queue ("surface resurrection").
> 
> This CL ensures that when a surface is reset, a SurfaceDiscarded notification
> is sent to the SurfaceDependencyTracker followed by SurfaceCreated to mimic
> creating a new surface.
> 
> Bug:  796602 
> Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel
> Change-Id: I226b23bedbb1855c0da8fada8341c09a2f4fd318
> Reviewed-on: https://chromium-review.googlesource.com/847427
> Commit-Queue: Fady Samuel <fsamuel@chromium.org>
> Reviewed-by: Saman Sami <samans@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#526561}

TBR=fsamuel@chromium.org,samans@chromium.org

Change-Id: Ie14cb8b08b6189941f650a6a4dc5540396498913
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  796602 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/848792
Reviewed-by: Dominic Battré <battre@chromium.org>
Commit-Queue: Dominic Battré <battre@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526649}
[modify] https://crrev.com/f3969c1b50a0c7336fb9e1faa38025f8282c733e/components/viz/service/frame_sinks/surface_synchronization_unittest.cc
[modify] https://crrev.com/f3969c1b50a0c7336fb9e1faa38025f8282c733e/components/viz/service/surfaces/surface_manager.cc
[modify] https://crrev.com/f3969c1b50a0c7336fb9e1faa38025f8282c733e/components/viz/service/surfaces/surface_manager.h

Project Member

Comment 5 by bugdroid1@chromium.org, Jan 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e3eb21e24dbe0530356003fd9f9a8a94fb91d00b

commit e3eb21e24dbe0530356003fd9f9a8a94fb91d00b
Author: Fady Samuel <fsamuel@chromium.org>
Date: Wed Jan 03 14:54:48 2018

RELAND Surface sync: Late arriving CF should not activate if dependent CF dropped

A late arriving CompositorFrame should not activate if the dependent CF has
been dropped. This can happen if a CompositorFrame is marked for destruction
and then pulled out of the destruction queue ("surface resurrection").

This CL ensures that when a surface is reset, a SurfaceDiscarded notification
is sent to the SurfaceDependencyTracker followed by SurfaceCreated to mimic
creating a new surface.

Bug:  796602 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: I20d1e96526db6464f9a095d59ea9633f81ddd615
TBR: samans@chromium.org
Reviewed-on: https://chromium-review.googlesource.com/848633
Commit-Queue: Fady Samuel <fsamuel@chromium.org>
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526692}
[modify] https://crrev.com/e3eb21e24dbe0530356003fd9f9a8a94fb91d00b/components/viz/service/frame_sinks/surface_synchronization_unittest.cc
[modify] https://crrev.com/e3eb21e24dbe0530356003fd9f9a8a94fb91d00b/components/viz/service/surfaces/surface_manager.cc
[modify] https://crrev.com/e3eb21e24dbe0530356003fd9f9a8a94fb91d00b/components/viz/service/surfaces/surface_manager.h

Blocking: 672962
Status: Fixed (was: Assigned)

Sign in to add a comment