Bug 244986 - 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
Summary: REGRESSION(251311@main-251315@main): [ iOS Debug wk2 ] compositing/hidpi-non-...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Tim Horton
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2022-09-09 09:37 PDT by Hercules Hjalmarsson
Modified: 2022-09-09 14:11 PDT (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Hercules Hjalmarsson 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
Comment 1 Radar WebKit Bug Importer 2022-09-09 09:38:08 PDT
<rdar://problem/99748053>
Comment 2 Hercules Hjalmarsson 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.
Comment 3 Hercules Hjalmarsson 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.
Comment 4 Tim Horton 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.
Comment 5 Simon Fraser (smfr) 2022-09-09 11:01:50 PDT
Let's mark as SLOW
Comment 6 Simon Fraser (smfr) 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)
Comment 7 Simon Fraser (smfr) 2022-09-09 11:32:52 PDT
I think this is unique to debug builds because of `QualifiedResourceHeap::checkInvariants()`
Comment 8 Tim Horton 2022-09-09 12:41:40 PDT
Pull request: https://github.com/WebKit/WebKit/pull/4175
Comment 9 Tim Horton 2022-09-09 12:53:27 PDT
Pull request: https://github.com/WebKit/WebKit/pull/4187
Comment 10 EWS 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.
Comment 11 Simon Fraser (smfr) 2022-09-09 14:11:00 PDT
We mark layers volatile on a 200ms timer after every flush.