New issue
Advanced search Search tips

Issue 843787 link

Starred by 3 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

PictureLayerImpl::CalculateTileSize() is called while we don't have a valid LayerTreeFrameSink

Project Member Reported by danakj@chromium.org, May 16 2018

Issue description

This makes it query things like max_texture_size, and use_gpu_rasterization(), which depend on on the incoming new LayerTreeFrameSink, so it could do the wrong thing.

62781:62782:0516/173802.917416:1404283210981:FATAL:layer_tree_host_impl.h(455)] Check failed: has_valid_layer_tree_frame_sink_. 
#0 0x7f443a8bfafc base::debug::StackTrace::StackTrace()
#1 0x7f443a800aeb logging::LogMessage::~LogMessage()
#2 0x7f443bd24568 cc::LayerTreeImpl::max_texture_size()
#3 0x7f443bc5b470 cc::PictureLayerImpl::CalculateTileSize()
#4 0x7f443bcc1ac8 cc::PictureLayerTiling::PictureLayerTiling()
#5 0x7f443bcc7a7c cc::PictureLayerTilingSet::CopyTilingsAndPropertiesFromPendingTwin()
#6 0x7f443bcc7d9c cc::PictureLayerTilingSet::UpdateTilingsToCurrentRasterSourceForActivation()
#7 0x7f443bc5701d cc::PictureLayerImpl::UpdateRasterSource()
#8 0x7f443bc5686f cc::PictureLayerImpl::PushPropertiesTo()
#9 0x7f443bd5a562 cc::TreeSynchronizer::PushLayerProperties()
#10 0x7f443bd103e0 cc::LayerTreeHostImpl::ActivateSyncTree()
#11 0x000000cae309 cc::LayerTreeHostImplForTesting::ActivateSyncTree()
#12 0x7f443bd4c531 cc::ProxyImpl::ScheduledActionActivateSyncTree()
#13 0x7f443bca211b cc::Scheduler::ProcessScheduledActions()
#14 0x7f443bca2bda cc::Scheduler::NotifyReadyToCommit()
#15 0x7f443bd48bb0 cc::ProxyImpl::NotifyReadyToCommitOnImpl()
#16 0x7f443a7e0f90 base::debug::TaskAnnotator::RunTask()

On TOT this looks like it should be possible to crash as well.

MaximumContentsScale() is also problematic, also called from PictureLayerImpl::UpdateRasterSource().
 

Comment 1 by danakj@chromium.org, May 16 2018

Ideally we could DCHECK(has_valid_layer_tree_frame_sink_) in LTHI::max_texture_size() but this fails.

Also in LTHI::layer_tree_frame_sink() but tests check it when its null-but-not-valid a bunch.

Comment 2 by danakj@chromium.org, May 16 2018

The above failure is from cc_unittests LayerTreeHostContextTestLostContextAndEvictTextures.LoseBeforeEvict_MultiThread, it's not the only test to trigger it.
Components: Internals>Compositing
Is anyone working on this ? I can take it up, if it helps.

Sign in to add a comment