Bug 134879 - [iOS] Throttle painting using a UI-process-side CADisplayLink
Summary: [iOS] Throttle painting using a UI-process-side CADisplayLink
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit2 (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Tim Horton
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2014-07-13 19:30 PDT by Tim Horton
Modified: 2014-07-14 11:12 PDT (History)
2 users (show)

See Also:


Attachments
patch (7.40 KB, patch)
2014-07-13 21:58 PDT, Tim Horton
simon.fraser: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Tim Horton 2014-07-13 19:30:07 PDT
Just waiting for CA to "commit" in the UI process isn't enough, because we still aren't throttled to 60fps, because the UI process runloop is just happily looping away.

Let's use a CADisplayLink and actually throttle the didUpdate reply to 60fps, thus throttling painting (often only barely makes 60fps anyway) and requestAnimationFrame (much more problematic).

<rdar://problem/17641699>
Comment 1 Tim Horton 2014-07-13 21:58:19 PDT
Created attachment 234840 [details]
patch
Comment 2 Simon Fraser (smfr) 2014-07-14 10:22:15 PDT
Comment on attachment 234840 [details]
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=234840&action=review

> Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:67
> +        _displayLink.paused = true;

YES
Comment 3 Tim Horton 2014-07-14 11:12:29 PDT
http://trac.webkit.org/changeset/171068