WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
218928
Initial implementation of DOM rendering via the GPU process
https://bugs.webkit.org/show_bug.cgi?id=218928
Summary
Initial implementation of DOM rendering via the GPU process
Tim Horton
Reported
2020-11-13 16:30:55 PST
Initial implementation of DOM rendering via the GPU process
Attachments
Patch
(56.49 KB, patch)
2020-11-13 16:34 PST
,
Tim Horton
no flags
Details
Formatted Diff
Diff
Patch
(56.57 KB, patch)
2020-11-14 22:35 PST
,
Tim Horton
no flags
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Tim Horton
Comment 1
2020-11-13 16:34:12 PST
Created
attachment 414106
[details]
Patch
Simon Fraser (smfr)
Comment 2
2020-11-13 16:53:04 PST
Comment on
attachment 414106
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=414106&action=review
> Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:183 > + m_frontBuffer.imageBuffer = m_layer->context()->ensureRemoteRenderingBackendProxy().createImageBuffer(backingStoreSize(), m_acceleratesDrawing ? WebCore::RenderingMode::Accelerated : WebCore::RenderingMode::Unaccelerated, 1, WebCore::ColorSpace::SRGB, pixelFormat());
This feels a bit weird. Maybe RemoteLayerBackingStore needs a delegate.
> Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:321 > + // FIXME: This method has a weird name. This is "submit work". > + m_frontBuffer.imageBuffer->flushDrawingContextAndCommit();
Yes
> Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:362 > + auto bitmap = ShareableBitmap::create(WTF::get<ShareableBitmap::Handle>(*m_bufferHandle)); > + layer.contents = (__bridge id)bitmap->makeCGImageCopy().get();
Hmm, could someone write into the sharable bitmap while the layer owns it? Or is the "copy" really a copy?
Tim Horton
Comment 3
2020-11-14 22:35:13 PST
Created
attachment 414155
[details]
Patch
Tim Horton
Comment 4
2020-11-14 23:16:22 PST
(In reply to Simon Fraser (smfr) from
comment #2
)
> Comment on
attachment 414106
[details]
> Patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=414106&action=review
> > > Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:183 > > + m_frontBuffer.imageBuffer = m_layer->context()->ensureRemoteRenderingBackendProxy().createImageBuffer(backingStoreSize(), m_acceleratesDrawing ? WebCore::RenderingMode::Accelerated : WebCore::RenderingMode::Unaccelerated, 1, WebCore::ColorSpace::SRGB, pixelFormat()); > > This feels a bit weird. Maybe RemoteLayerBackingStore needs a delegate.
A little weird, but RemoteLayerTreeContext is kind of RLBS's "delegate", in a sense. (Other things that it uses RemoteLayerTreeContext for include "hey I was created", and "I'm about to paint", both of which are veryyyy delegatey.
> > Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:321 > > + // FIXME: This method has a weird name. This is "submit work". > > + m_frontBuffer.imageBuffer->flushDrawingContextAndCommit(); > > Yes > > > Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:362 > > + auto bitmap = ShareableBitmap::create(WTF::get<ShareableBitmap::Handle>(*m_bufferHandle)); > > + layer.contents = (__bridge id)bitmap->makeCGImageCopy().get(); > > Hmm, could someone write into the sharable bitmap while the layer owns it? > Or is the "copy" really a copy?
It's not a real copy (I have no idea why it's called that). "Someone" could, for sure, but we won't. The same is true of the IOSurfaces, though??
EWS
Comment 5
2020-11-15 01:31:18 PST
Committed
r269824
: <
https://trac.webkit.org/changeset/269824
> All reviewed patches have been landed. Closing bug and clearing flags on
attachment 414155
[details]
.
Radar WebKit Bug Importer
Comment 6
2020-11-15 01:32:25 PST
<
rdar://problem/71410310
>
Sam Weinig
Comment 7
2020-11-15 10:21:11 PST
Comment on
attachment 414155
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=414155&action=review
> Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:43 > +class ThreadSafeRemoteImageBufferFlusher : public WebCore::ThreadSafeImageBufferFlusher {
Can this be final?
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