WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
279957
[GTK][WPE][Skia] CPU rendering: DisplayList destructed on wrong thread
https://bugs.webkit.org/show_bug.cgi?id=279957
Summary
[GTK][WPE][Skia] CPU rendering: DisplayList destructed on wrong thread
Nikolas Zimmermann
Reported
2024-09-19 00:18:38 PDT
The DisplayList recording in CoordinatedGraphicsLayerSkia happens on the main thread, and we currently try to destruct it in the worker thread -- that fires an assertion in assert-enabled builds - fix that.
Attachments
Add attachment
proposed patch, testcase, etc.
Nikolas Zimmermann
Comment 1
2024-09-19 00:19:56 PDT
Pull request:
https://github.com/WebKit/WebKit/pull/33886
Nikolas Zimmermann
Comment 2
2024-09-19 00:35:11 PDT
ToT currently asserts this way in assert-enabled builds: m_isOwnedByMainThread == isMainThread() /host/home/nzimmermann/Software/GitRepositories/WebKit/WebKitBuild/WPE/Release/WTF/Headers/wtf/RefCounted.h(124) : void WTF::RefCountedBase::applyRefDerefThreadingCheck() const 1 0x7b00d379ca11 WTF::RefCountedBase::derefAllowingPartiallyDestroyedBase() const 2 0x7b00d3c80539 WTF::HashTable<WTF::ObjectIdentifierGeneric<WebCore::RenderingResourceIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits<unsigned long>, unsigned long, (WTF::SupportsObjectIdentifierNullState)1>, WTF::KeyValuePair<WTF::ObjectIdentifierGeneric<WebCore::RenderingResourceIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits<unsigned long>, unsigned long, (WTF::SupportsObjectIdentifierNullState)1>, std::variant<std::monostate, WTF::Ref<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer>, WTF::DefaultRefDerefTraits<WebCore::ImageBuffer> >, WTF::Ref<WebCore::RenderingResource, WTF::RawPtrTraits<WebCore::RenderingResource>, WTF::DefaultRefDerefTraits<WebCore::RenderingResource> >, WTF::Ref<WebCore::Font, WTF::RawPtrTraits<WebCore::Font>, WTF::DefaultRefDerefTraits<WebCore::Font> >, WTF::Ref<WebCore::FontCustomPlatformData, WTF::RawPtrTraits<WebCore::FontCustomPlatformData>, WTF::DefaultRefDerefTraits<WebCore::FontCustomPlatformData> > > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::ObjectIdentifierGeneric<WebCore::RenderingResourceIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits<unsigned long>, unsigned long, (WTF::SupportsObjectIdentifierNullState)1>, std::variant<std::monostate, WTF::Ref<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer>, WTF::DefaultRefDerefTraits<WebCore::ImageBuffer> >, WTF::Ref<WebCore::RenderingResource, WTF::RawPtrTraits<WebCore::RenderingResource>, WTF::DefaultRefDerefTraits<WebCore::RenderingResource> >, WTF::Ref<WebCore::Font, WTF::RawPtrTraits<WebCore::Font>, WTF::DefaultRefDerefTraits<WebCore::Font> >, WTF::Ref<WebCore::FontCustomPlatformData, WTF::RawPtrTraits<WebCore::FontCustomPlatformData>, WTF::DefaultRefDerefTraits<WebCore::FontCustomPlatformData> > > > >, WTF::DefaultHash<WTF::ObjectIdentifierGeneric<WebCore::RenderingResourceIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits<unsigned long>, unsigned long, (WTF::SupportsObjectIdentifierNullState)1> >, WTF::HashMap<WTF::ObjectIdentifierGeneric<WebCore::RenderingResourceIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits<unsigned long>, unsigned long, (WTF::SupportsObjectIdentifierNullState)1>, std::variant<std::monostate, WTF::Ref<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer>, WTF::DefaultRefDerefTraits<WebCore::ImageBuffer> >, WTF::Ref<WebCore::RenderingResource, WTF::RawPtrTraits<WebCore::RenderingResource>, WTF::DefaultRefDerefTraits<WebCore::RenderingResource> >, WTF::Ref<WebCore::Font, WTF::RawPtrTraits<WebCore::Font>, WTF::DefaultRefDerefTraits<WebCore::Font> >, WTF::Ref<WebCore::FontCustomPlatformData, WTF::RawPtrTraits<WebCore::FontCustomPlatformData>, WTF::DefaultRefDerefTraits<WebCore::FontCustomPlatformData> > >, WTF::DefaultHash<WTF::ObjectIdentifierGeneric<WebCore::RenderingResourceIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits<unsigned long>, unsigned long, (WTF::SupportsObjectIdentifierNullState)1> >, WTF::HashTraits<WTF::ObjectIdentifierGeneric<WebCore::RenderingResourceIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits<unsigned long>, unsigned long, (WTF::SupportsObjectIdentifierNullState)1> >, WTF::HashTraits<std::variant<std::monostate, WTF::Ref<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer>, WTF::DefaultRefDerefTraits<WebCore::ImageBuffer> >, WTF::Ref<WebCore::RenderingResource, WTF::RawPtrTraits<WebCore::RenderingResource>, WTF::DefaultRefDerefTraits<WebCore::RenderingResource> >, WTF::Ref<WebCore::Font, WTF::RawPtrTraits<WebCore::Font>, WTF::DefaultRefDerefTraits<WebCore::Font> >, WTF::Ref<WebCore::FontCustomPlatformData, WTF::RawPtrTraits<WebCore::FontCustomPlatformData>, WTF::DefaultRefDerefTraits<WebCore::FontCustomPlatformData> > > >, WTF::HashTableTraits>::KeyValuePairTraits, WTF::HashTraits<WTF::ObjectIdentifierGeneric<WebCore::RenderingResourceIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits<unsigned long>, unsigned long, (WTF::SupportsObjectIdentifierNullState)1> > >::deallocateTable(WTF::KeyValuePair<WTF::ObjectIdentifierGeneric<WebCore::RenderingResourceIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits<unsigned long>, unsigned long, (WTF::SupportsObjectIdentifierNullState)1>, std::variant<std::monostate, WTF::Ref<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer>, WTF::DefaultRefDerefTraits<WebCore::ImageBuffer> >, WTF::Ref<WebCore::RenderingResource, WTF::RawPtrTraits<WebCore::RenderingResource>, WTF::DefaultRefDerefTraits<WebCore::RenderingResource> >, WTF::Ref<WebCore::Font, WTF::RawPtrTraits<WebCore::Font>, WTF::DefaultRefDerefTraits<WebCore::Font> >, WTF::Ref<WebCore::FontCustomPlatformData, WTF::RawPtrTraits<WebCore::FontCustomPlatformData>, WTF::DefaultRefDerefTraits<WebCore::FontCustomPlatformData> > > >*) 3 0x7b00d646c087 WTF::Detail::CallableWrapper<WebCore::CoordinatedGraphicsLayer::paintTile(WebCore::IntRect const&, WebCore::IntRect const&, float)::{lambda()#1}, void>::~CallableWrapper() 4 0x7b00d63355fe WTF::WorkerPool::Worker::work() 5 0x7b00d626a617 WTF::Detail::CallableWrapper<WTF::AutomaticThread::start(WTF::AbstractLocker const&)::{lambda()#1}, void>::call() 6 0x7b00d62fa0b8 WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) 7 0x7b00d638208d WTF::wtfThreadEntryPoint(void*) 8 0x7b00cf48aa94 start_thread 9 0x7b00cf517c3c clone3
EWS
Comment 3
2024-09-19 03:18:51 PDT
Committed
283908@main
(925ebc7f5e3e): <
https://commits.webkit.org/283908@main
> Reviewed commits have been landed. Closing PR #33886 and removing active labels.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug