RESOLVED FIXED244986
REGRESSION(251311@main-251315@main): [ iOS Debug wk2 ] compositing/hidpi-non-simple-compositing-layer-with-fractional-size-and-background.html is a near constant timeout
https://bugs.webkit.org/show_bug.cgi?id=244986
Summary REGRESSION(251311@main-251315@main): [ iOS Debug wk2 ] compositing/hidpi-non-...
Hercules Hjalmarsson
Reported 2022-09-09 09:37:45 PDT
compositing/hidpi-non-simple-compositing-layer-with-fractional-size-and-background.html Is a constant timeout on iOS Debug wk2 ToT and since in the range of 251311@main-251315@main, last passing on 251310@main. HISTORY: https://results.webkit.org/?suite=layout-tests&test=compositing/hidpi-non-simple-compositing-layer-with-fractional-size-and-background.html DIFF: NA
Attachments
Radar WebKit Bug Importer
Comment 1 2022-09-09 09:38:08 PDT
Hercules Hjalmarsson
Comment 2 2022-09-09 09:46:00 PDT
This issue can be bisected to 251311@main-251315@main using command: run-webkit-tests -f --exit-after-n-failures 1 --force --debug --child-processes=5 --ios-simulator --iterations=500 compositing/hidpi-non-simple-compositing-layer-with-fractional-size-and-background.html There are no builds to test on within the range starting from 251311@main - 251314@main. Hence, first fail is at 251315@main and last pass at 251310@main. I'm not sure which of the commits may have caused this issue since none of them appear to be directly related to this test.
Hercules Hjalmarsson
Comment 3 2022-09-09 10:39:26 PDT
(In reply to Hercules Hjalmarsson from comment #2) > This issue can be bisected to 251311@main-251315@main using command: > > run-webkit-tests -f --exit-after-n-failures 1 --force --debug > --child-processes=5 --ios-simulator --iterations=500 > compositing/hidpi-non-simple-compositing-layer-with-fractional-size-and- > background.html > > There are no builds to test on within the range starting from 251311@main - > 251314@main. Hence, first fail is at 251315@main and last pass at > 251310@main. > > I'm not sure which of the commits may have caused this issue since none of > them appear to be directly related to this test. It was pointed out that 251315@main does mention 'compositing layers' hence probably is the root cause of this timeout.
Tim Horton
Comment 4 2022-09-09 10:58:06 PDT
I bet it just made the test slow (since now it will be repainting 1200 layers :D). Should we mark it as slow, or reduce the number of layers? Simon might have an opinion.
Simon Fraser (smfr)
Comment 5 2022-09-09 11:01:50 PDT
Let's mark as SLOW
Simon Fraser (smfr)
Comment 6 2022-09-09 11:15:31 PDT
The actual paints don't take long. Most of the GPU process time is in: Sample Count, Samples %, Normalized CPU %, Symbol 12965, 89.3%, 3.5%, IPC::StreamServerConnection::dispatchStreamMessages(unsigned long) (in WebKit) 12402, 85.4%, 3.4%, IPC::StreamServerConnection::dispatchStreamMessage(IPC::Decoder&&, IPC::StreamMessageReceiver&) (in WebKit) 11831, 81.5%, 3.2%, WebKit::RemoteRenderingBackend::didReceiveStreamMessage(IPC::StreamServerConnection&, IPC::Decoder&) (in WebKit) 8143, 56.1%, 2.2%, void IPC::handleMessage<Messages::RemoteRenderingBackend::MarkSurfacesVolatile, WebKit::RemoteRenderingBackend, void (WebKit::RemoteRenderingBackend::*)(WTF::ObjectIdentifier<WebKit::MarkSurfacesAsVolatileRequestIdentifierType>, WTF::Vector<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&)>(IPC::Connection&, IPC::Decoder&, WebKit::RemoteRenderingBackend*, void (WebKit::RemoteRenderingBackend::*)(WTF::ObjectIdentifier<WebKit::MarkSurfacesAsVolatileRequestIdentifierType>, WTF::Vector<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&)) (in WebKit) 8138, 56.1%, 2.2%, void IPC::callMemberFunction<WebKit::RemoteRenderingBackend, void (WebKit::RemoteRenderingBackend::*)(WTF::ObjectIdentifier<WebKit::MarkSurfacesAsVolatileRequestIdentifierType>, WTF::Vector<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&), std::__1::tuple<WTF::ObjectIdentifier<WebKit::MarkSurfacesAsVolatileRequestIdentifierType>, WTF::Vector<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> >, std::__1::integer_sequence<unsigned long, 0ul, 1ul> >(std::__1::tuple<WTF::ObjectIdentifier<WebKit::MarkSurfacesAsVolatileRequestIdentifierType>, WTF::Vector<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> >&&, WebKit::RemoteRenderingBackend*, void (WebKit::RemoteRenderingBackend::*)(WTF::ObjectIdentifier<WebKit::MarkSurfacesAsVolatileRequestIdentifierType>, WTF::Vector<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&)) (in WebKit) 8138, 56.1%, 2.2%, void IPC::callMemberFunctionImpl<WebKit::RemoteRenderingBackend, void (WebKit::RemoteRenderingBackend::*)(WTF::ObjectIdentifier<WebKit::MarkSurfacesAsVolatileRequestIdentifierType>, WTF::Vector<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&), std::__1::tuple<WTF::ObjectIdentifier<WebKit::MarkSurfacesAsVolatileRequestIdentifierType>, WTF::Vector<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> >, 0ul, 1ul>(WebKit::RemoteRenderingBackend*, void (WebKit::RemoteRenderingBackend::*)(WTF::ObjectIdentifier<WebKit::MarkSurfacesAsVolatileRequestIdentifierType>, WTF::Vector<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&), std::__1::tuple<WTF::ObjectIdentifier<WebKit::MarkSurfacesAsVolatileRequestIdentifierType>, WTF::Vector<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> >&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul>) (in WebKit) 8138, 56.1%, 2.2%, WebKit::RemoteRenderingBackend::markSurfacesVolatile(WTF::ObjectIdentifier<WebKit::MarkSurfacesAsVolatileRequestIdentifierType>, WTF::Vector<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&) (in WebKit) 7390, 50.9%, 2.0%, WebKit::RemoteResourceCache::cachedImageBuffer(WebCore::ProcessQualified<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType> >) const (in WebKit) 7390, 50.9%, 2.0%, WebKit::QualifiedResourceHeap::getImageBuffer(WebCore::ProcessQualified<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType> >) const (in WebKit) 7390, 50.9%, 2.0%, WebCore::ImageBuffer* WebKit::QualifiedResourceHeap::get<WebCore::ImageBuffer>(WebCore::ProcessQualified<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType> >) const (in WebKit) 7341, 50.6%, 2.0%, WebKit::QualifiedResourceHeap::checkInvariants() const (in WebKit) 3863, 26.6%, 1.0%, WTF::HashTableConstIteratorAdapter<WTF::HashTable<WebCore::ProcessQualified<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType> >, WTF::KeyValuePair<WebCore::ProcessQualified<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType> >, std::__1::variant<std::__1::monostate, WTF::Ref<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer> >, WTF::Ref<WebCore::NativeImage, WTF::RawPtrTraits<WebCore::NativeImage> >, WTF::Ref<WebCore::Font, WTF::RawPtrTraits<WebCore::Font> >, WTF::Ref<WebCore::DecomposedGlyphs, WTF::RawPtrTraits<WebCore::DecomposedGlyphs> > > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WebCore::ProcessQualified<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType> >, std::__1::variant<std::__1::monostate, WTF::Ref<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer> >, WTF::Ref<WebCore::NativeImage, WTF::RawPtrTraits<WebCore::NativeImage> >, WTF::Ref<WebCore::Font, WTF::RawPtrTraits<WebCore::Font> >, WTF::Ref<WebCore::DecomposedGlyphs, WTF::RawPtrTraits<WebCore::DecomposedGlyphs> > > > >, WTF::DefaultHash<WebCore::ProcessQualified<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType> > >, WTF::HashMap<WebCore::ProcessQualified<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType> >, std::__1::variant<std::__1::monostate, WTF::Ref<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer> >, WTF::Ref<WebCore::NativeImage, WTF::RawPtrTraits<WebCore::NativeImage> >, WTF::Ref<WebCore::Font, WTF::RawPtrTraits<WebCore::Font> >, WTF::Ref<WebCore::DecomposedGlyphs, WTF::RawPtrTraits<WebCore::DecomposedGlyphs> > >, WTF::DefaultHash<WebCore::ProcessQualified<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType> > >, WTF::HashTraits<WebCore::ProcessQualified<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType> > >, WTF::HashTraits<std::__1::variant<std::__1::monostate, WTF::Ref<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer> >, WTF::Ref<WebCore::NativeImage, WTF::RawPtrTraits<WebCore::NativeImage> >, WTF::Ref<WebCore::Font, WTF::RawPtrTraits<WebCore::Font> >, WTF::Ref<WebCore::DecomposedGlyphs, WTF::RawPtrTraits<WebCore::DecomposedGlyphs> > > >, WTF::HashTableTraits>::KeyValuePairTraits, WTF::HashTraits<WebCore::ProcessQualified<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType> > > >, WTF::KeyValuePair<WebCore::ProcessQualified<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType> >, std::__1::variant<std::__1::monostate, WTF::Ref<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer> >, WTF::Ref<WebCore::NativeImage, WTF::RawPtrTraits<WebCore::NativeImage> >, WTF::Ref<WebCore::Font, WTF::RawPtrTraits<WebCore::Font> >, WTF::Ref<WebCore::DecomposedGlyphs, WTF::RawPtrTraits<WebCore::DecomposedGlyphs> > > > >::operator++() (in WebKit)
Simon Fraser (smfr)
Comment 7 2022-09-09 11:32:52 PDT
I think this is unique to debug builds because of `QualifiedResourceHeap::checkInvariants()`
Tim Horton
Comment 8 2022-09-09 12:41:40 PDT
Tim Horton
Comment 9 2022-09-09 12:53:27 PDT
EWS
Comment 10 2022-09-09 12:56:49 PDT
Committed 254320@main (f2df14c7c1bf): <https://commits.webkit.org/254320@main> Reviewed commits have been landed. Closing PR #4187 and removing active labels.
Simon Fraser (smfr)
Comment 11 2022-09-09 14:11:00 PDT
We mark layers volatile on a 200ms timer after every flush.
Note You need to log in before you can comment on or make changes to this bug.