WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
71267
[chromium] Slow down commit and draw rate based on visibility and draw completion
https://bugs.webkit.org/show_bug.cgi?id=71267
Summary
[chromium] Slow down commit and draw rate based on visibility and draw comple...
Nat Duca
Reported
2011-10-31 23:40:30 PDT
[chromium] Slow down commit and draw rate based on visibility and draw completion
Attachments
Patch
(40.53 KB, patch)
2011-10-31 23:40 PDT
,
Nat Duca
no flags
Details
Formatted Diff
Diff
Without ImmediateState
(42.17 KB, patch)
2011-11-02 13:59 PDT
,
Nat Duca
jamesr
: review+
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Nat Duca
Comment 1
2011-10-31 23:40:54 PDT
Created
attachment 113133
[details]
Patch
Nat Duca
Comment 2
2011-11-01 00:34:42 PDT
This patch does three things: 1. Removes the setNeedsRedraw that CCThreadProxy used to force after commit [since that is now inside the scheduler] 2. Does not let a new commit begin until the previous commit makes it onscreen. 2. Does not draw when invisible [and because of #2, does not begin a new commit when invisible] Based on measurements, this should help stabilize frame rates and reduce overlap. This depends on changing the handling of setVisible(false) from triggering a commit to something more situation-specific.
James Robinson
Comment 3
2011-11-01 13:51:39 PDT
Comment on
attachment 113133
[details]
Patch Logic looks good but I'm not sure I understand the distinction between immediate state and member bools on CCSchedulerStateMachine. It feels a bit odd to push visible/not visible to the state machine on every nextAction() since it doesn't change very much - but I suspect there's some reason for the distinction other than frequency of change. Let's sync in person
James Robinson
Comment 4
2011-11-01 14:16:39 PDT
BTW this merge conflicts with your STREQ change
Nat Duca
Comment 5
2011-11-02 13:59:00 PDT
Created
attachment 113375
[details]
Without ImmediateState
James Robinson
Comment 6
2011-11-02 14:11:29 PDT
Comment on
attachment 113375
[details]
Without ImmediateState View in context:
https://bugs.webkit.org/attachment.cgi?id=113375&action=review
R=me, one comment for you to think about and do what you think is best.
> Source/WebCore/platform/graphics/chromium/cc/CCScheduler.cpp:102 > + // Adjust the state machine's visbility state to the proxy's visibility state > + m_stateMachine.setVisible(m_client->visible());
For your consideration: instead of pulling visible state from the client here, could the client push the visible state down when it changes to the scheduler? It's a little easier for me to reason about interactions when state tends to flow in one direction.
> Source/WebCore/platform/graphics/chromium/cc/CCSchedulerStateMachine.h:32 > +// The CCSched decides how to coordinates main thread activites
looks like you accidentally part of this comment
Nat Duca
Comment 7
2011-11-02 14:50:11 PDT
(In reply to
comment #6
)
> For your consideration: instead of pulling visible state from the client here, could the client push the visible state down when it changes to the scheduler? It's a little easier for me to reason about interactions when state tends to flow in one direction.
Great point. Done. :)
Nat Duca
Comment 8
2011-11-02 14:57:41 PDT
Committed
r99100
: <
http://trac.webkit.org/changeset/99100
>
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