[Webkit-unassigned] [Bug 236484] New: [GPU Process] RemoteImageBufferProxy should not sink itself to an Image or a NativeImage though its backend
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Feb 10 22:31:12 PST 2022
https://bugs.webkit.org/show_bug.cgi?id=236484
Bug ID: 236484
Summary: [GPU Process] RemoteImageBufferProxy should not sink
itself to an Image or a NativeImage though its backend
Product: WebKit
Version: WebKit Nightly Build
Hardware: Unspecified
OS: Unspecified
Status: NEW
Severity: Normal
Priority: P2
Component: Layout and Rendering
Assignee: webkit-unassigned at lists.webkit.org
Reporter: sabouhallawa at apple.com
CC: bfulgham at webkit.org, simon.fraser at apple.com,
zalan at apple.com
After r289518, this bug has surfaced because now the intermediate ImageBuffers have to match the underlying ImageBuffer of the GraphicsContext. This means we create RemoteImageBufferProxy and we exercise the rendering through GPUProcess more often.
The current implementation of sinkIntoNativeImage() and sinkIntoImage() has to go through the backend which is not right for RemoteImageBufferProxy. Accessing the IOSurface backend should only happen in GPUProcess. Otherwise we will hit this release assert:
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 WebKit 0x1d54e99a4 WTFCrashWithInfo(int, char const*, char const*, int)
1 WebKit 0x1d5b3940a WebKit::ImageBufferRemoteIOSurfaceBackend::copyImage(WebCore::BackingStoreCopy, WebCore::PreserveResolution) const
2 WebCore 0x1d78e195e WebCore::GradientImage::drawPattern(WebCore::GraphicsContext&, WebCore::FloatRect const&, WebCore::FloatRect const&, WebCore::AffineTransform const&, WebCore::FloatPoint const&, WebCore::FloatSize const&, WebCore::ImagePaintingOptions const&)
3 WebCore 0x1d78f533a WebCore::Image::drawTiled(WebCore::GraphicsContext&, WebCore::FloatRect const&, WebCore::FloatPoint const&, WebCore::FloatSize const&, WebCore::FloatSize const&, WebCore::ImagePaintingOptions const&)
4 WebCore 0x1d7b2a192 WebCore::RenderBoxModelObject::paintFillLayerExtended(WebCore::PaintInfo const&, WebCore::Color const&, WebCore::FillLayer const&, WebCore::LayoutRect const&, WebCore::BackgroundBleedAvoidance, WebCore::InlineIterator::InlineBoxIterator const&, WebCore::LayoutRect const&, WebCore::CompositeOperator, WebCore::RenderElement*, WebCore::BaseBackgroundColorUsage)
5 WebCore 0x1d7b1f72e WebCore::RenderBox::paintFillLayers(WebCore::PaintInfo const&, WebCore::Color const&, WebCore::FillLayer const&, WebCore::LayoutRect const&, WebCore::BackgroundBleedAvoidance, WebCore::CompositeOperator, WebCore::RenderElement*)
6 WebCore 0x1d7b23bc6 WebCore::RenderBox::paintBackground(WebCore::PaintInfo const&, WebCore::LayoutRect const&, WebCore::BackgroundBleedAvoidance)
7 WebCore 0x1d7b204c2 WebCore::RenderBox::paintBoxDecorations(WebCore::PaintInfo&, WebCore::LayoutPoint const&)
8 WebCore 0x1d7af0616 WebCore::RenderBlock::paintObject(WebCore::PaintInfo&, WebCore::LayoutPoint const&)
9 WebCore 0x1d7aef806 WebCore::RenderBlock::paint(WebCore::PaintInfo&, WebCore::LayoutPoint const&)
10 WebCore 0x1d7ba6aee WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext&, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::RenderLayer::PaintLayerFlag>)
11 WebCore 0x1d7ba706e WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext&, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::RenderLayer::PaintLayerFlag>)
12 WebCore 0x1d7ba706e WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext&, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::RenderLayer::PaintLayerFlag>)
13 WebCore 0x1d7ba706e WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext&, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::RenderLayer::PaintLayerFlag>)
14 WebCore 0x1d7bc48d2 WebCore::RenderLayerBacking::paintIntoLayer(WebCore::GraphicsLayer const*, WebCore::GraphicsContext&, WebCore::IntRect const&, WTF::OptionSet<WebCore::PaintBehavior>, WebCore::EventRegionContext*)::$_26::operator()(WebCore::RenderLayer&, WTF::OptionSet<WebCore::RenderLayer::PaintLayerFlag>) const
15 WebCore 0x1d7bc459e WebCore::RenderLayerBacking::paintIntoLayer(WebCore::GraphicsLayer const*, WebCore::GraphicsContext&, WebCore::IntRect const&, WTF::OptionSet<WebCore::PaintBehavior>, WebCore::EventRegionContext*)
16 WebCore 0x1d7bc4e9e WebCore::RenderLayerBacking::paintContents(WebCore::GraphicsLayer const*, WebCore::GraphicsContext&, WebCore::FloatRect const&, unsigned int)
17 WebCore 0x1d794f77a WebCore::GraphicsLayerCA::platformCALayerPaintContents(WebCore::PlatformCALayer*, WebCore::GraphicsContext&, WebCore::FloatRect const&, unsigned int)
18 WebCore 0x1d6a19626 WebCore::PlatformCALayer::drawLayerContents(WebCore::GraphicsContext&, WebCore::PlatformCALayer*, WTF::Vector<WebCore::FloatRect, 5ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc>&, unsigned int)
19 WebCore 0x1d7964426 WebCore::TileGrid::platformCALayerPaintContents(WebCore::PlatformCALayer*, WebCore::GraphicsContext&, WebCore::FloatRect const&, unsigned int)
20 WebKit 0x1d566f67a WebKit::RemoteLayerBackingStore::display()
21 WebKit 0x1d5bfc312 WebKit::PlatformCALayerRemote::recursiveBuildTransaction(WebKit::RemoteLayerTreeContext&, WebKit::RemoteLayerTreeTransaction&)
22 WebKit 0x1d5bfc406 WebKit::PlatformCALayerRemote::recursiveBuildTransaction(WebKit::RemoteLayerTreeContext&, WebKit::RemoteLayerTreeTransaction&)
23 WebKit 0x1d5bfc406 WebKit::PlatformCALayerRemote::recursiveBuildTransaction(WebKit::RemoteLayerTreeContext&, WebKit::RemoteLayerTreeTransaction&)
24 WebKit 0x1d5bfc406 WebKit::PlatformCALayerRemote::recursiveBuildTransaction(WebKit::RemoteLayerTreeContext&, WebKit::RemoteLayerTreeTransaction&)
25 WebKit 0x1d5bfc406 WebKit::PlatformCALayerRemote::recursiveBuildTransaction(WebKit::RemoteLayerTreeContext&, WebKit::RemoteLayerTreeTransaction&)
26 WebKit 0x1d59652fa WebKit::RemoteLayerTreeContext::buildTransaction(WebKit::RemoteLayerTreeTransaction&, WebCore::PlatformCALayer&)
27 WebKit 0x1d5594fae WebKit::RemoteLayerTreeDrawingArea::updateRendering()
28 WebCore 0x1d786b28e WTF::Detail::CallableWrapper<WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0, void>::call()
29 WebCore 0x1d78904ae WebCore::timerFired(__CFRunLoopTimer*, void*)
30 CoreFoundation 0x1c695e54c __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28 /Library/Caches/com.apple.xbs/Sources/CoreFoundation/CoreFoundation/RunLoop.subproj/CFRunLoop.c:1805
31 CoreFoundation 0x1c68e6fcc __CFRunLoopDoTimer + 1012 /Library/Caches/com.apple.xbs/Sources/CoreFoundation/CoreFoundation/RunLoop.subproj/CFRunLoop.c:2413
32 CoreFoundation 0x1c68e1bbc __CFRunLoopDoTimers + 300 /Library/Caches/com.apple.xbs/Sources/CoreFoundation/CoreFoundation/RunLoop.subproj/CFRunLoop.c:2573
33 CoreFoundation 0x1c68c11c4 __CFRunLoopRun + 1856 /Library/Caches/com.apple.xbs/Sources/CoreFoundation/CoreFoundation/RunLoop.subproj/CFRunLoop.c:3109
34 CoreFoundation 0x1c68d4278 CFRunLoopRunSpecific + 568 /Library/Caches/com.apple.xbs/Sources/CoreFoundation/CoreFoundation/RunLoop.subproj/CFRunLoop.c:3261
35 Foundation 0x1c7f26a1c -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 232 /Library/Caches/com.apple.xbs/Sources/Foundation/Foundation/Soil.subproj/NSRunLoop.m:373
36 Foundation 0x1c7f271e0 -[NSRunLoop(NSRunLoop) run] + 88 /Library/Caches/com.apple.xbs/Sources/Foundation/Foundation/Soil.subproj/NSRunLoop.m:398
37 libxpc.dylib 0x235aedcbc _xpc_objc_main + 508 /Library/Caches/com.apple.xbs/Sources/libxpc/src/main.m:246
38 libxpc.dylib 0x235aefe5c xpc_main + 152 /Library/Caches/com.apple.xbs/Sources/libxpc/src/init.c:1192
39 WebKit 0x1d566de5e WebKit::XPCServiceMain(int, char const**)
40 WebKit 0x1d5d5c7f6 WKXPCServiceMain
41 dyld 0x24b0fa694 start + 556 /Library/Caches/com.apple.xbs/Sources/dyld/dyld/dyldMain.cpp:1003
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20220211/e1d95cf6/attachment-0001.htm>
More information about the webkit-unassigned
mailing list