WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
149069
Should use CARenderServerRenderLayerWithTransform for snapshots on iOS
https://bugs.webkit.org/show_bug.cgi?id=149069
Summary
Should use CARenderServerRenderLayerWithTransform for snapshots on iOS
Beth Dakin
Reported
2015-09-11 11:49:07 PDT
We should use CARenderServerRenderLayerWithTransform for snapshots on iOS. This will let us own the backing IOSurface, which will let us make them purgeable and share more code with Mac.
Attachments
Patch
(9.67 KB, patch)
2015-09-11 12:02 PDT
,
Beth Dakin
thorton
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Beth Dakin
Comment 1
2015-09-11 12:02:21 PDT
Created
attachment 261010
[details]
Patch
Tim Horton
Comment 2
2015-09-11 12:04:57 PDT
Comment on
attachment 261010
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=261010&action=review
> Source/WebKit2/ChangeLog:11 > + This will let us own the backing IOSurface, which will let us make them > + purgeable and share more code with Mac.
Except we're not going to make them purgeable for now and it's not clear that that is actually the plan so maybe we shouldn't mention that part :D
> Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1110 > + auto surface = WebCore::IOSurface::create(WebCore::expandedIntSize(snapshotSize), WebCore::ColorSpaceDeviceRGB);
We should do more perf testing here.
> Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1111 > + CARenderServerRenderLayerWithTransform(MACH_PORT_NULL, self.layer.context.contextId, reinterpret_cast<uint64_t>(self.layer), surface->surface(), 0, 0, &transform);
I wonder if we have to use some other function on older OSes, like _snapshotWhatever does? Probably.
> Source/WebKit2/UIProcess/mac/ViewSnapshotStore.h:-44 > -#if PLATFORM(MAC)
YAYYYYY
Tim Horton
Comment 3
2015-09-11 12:05:17 PDT
Also not sure I can really review this :D
Beth Dakin
Comment 4
2015-09-11 14:25:19 PDT
(In reply to
comment #2
)
> Comment on
attachment 261010
[details]
> Patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=261010&action=review
> > > Source/WebKit2/ChangeLog:11 > > + This will let us own the backing IOSurface, which will let us make them > > + purgeable and share more code with Mac. > > Except we're not going to make them purgeable for now and it's not clear > that that is actually the plan so maybe we shouldn't mention that part :D >
Fixed this!
> > Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1110 > > + auto surface = WebCore::IOSurface::create(WebCore::expandedIntSize(snapshotSize), WebCore::ColorSpaceDeviceRGB); > > We should do more perf testing here. >
Perf bot watcher has been alerted!
> > Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1111 > > + CARenderServerRenderLayerWithTransform(MACH_PORT_NULL, self.layer.context.contextId, reinterpret_cast<uint64_t>(self.layer), surface->surface(), 0, 0, &transform); > > I wonder if we have to use some other function on older OSes, like > _snapshotWhatever does? Probably. >
Tim and I considered this, and he changed his mind.
> > Source/WebKit2/UIProcess/mac/ViewSnapshotStore.h:-44 > > -#if PLATFORM(MAC) > > YAYYYYY
YAY. Thanks Tim!
http://trac.webkit.org/changeset/189628
Beth Dakin
Comment 5
2015-09-11 14:29:09 PDT
Build fix:
http://trac.webkit.org/changeset/189630
Beth Dakin
Comment 6
2015-09-11 15:34:15 PDT
Another build fix:
http://trac.webkit.org/changeset/189635
Beth Dakin
Comment 7
2015-09-11 16:06:52 PDT
More build fix:
http://trac.webkit.org/changeset/189637
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