Closed Bug 825556 Opened 7 years ago Closed 7 years ago

RequestContentRepaint frequency should be possible to limit with some timeout

Categories

(Core :: Graphics, defect)

x86_64
Linux
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla20

People

(Reporter: romaxa, Assigned: romaxa)

Details

Attachments

(1 file)

I'm trying to reuse AsyncPanZoom controller for embedded browser, and it works fine on desktop, but on device (N9/Meego/Maemo) scrolling is very slow.

I have checked what is cause the problem and it looks like we do request  Content repaint on every TouchMove, Fling event... 
Without tweaking thread priorities, child thread (which is painting layers content) getting most of CPU time and moving UI thread priority out of the scope, so FPS rate drops from 60 to 35-40...
I found in controller two variables PAN_REPAINT_INTERVAL,FLING_REPAINT_INTERVAL which are not used at all...
Suggesting here to add handling for these prefs.
Assignee: nobody → romaxa
Attachment #696671 - Flags: review?(bugzilla)
Have you tested this?
If this actually helps, I'd rather backout the patch in bug 787445.
Backout of that patch helps a bit for kinetic scroll fps jumps to 45-55... but still not enough.
Static TouchMove still slow, I wonder also why do we need to repaint content in PANNING state?
We have content enough pre-rendered for non kinetic scrolling, we do request paint on TouchStart/TouchEnd, between that we should just scroll around with simple layers composition.
(In reply to Doug Sherk (:drs) (:dRdR) from comment #3)
> If this actually helps, I'd rather backout the patch in bug 787445.

That logic was "backed out" and restored in a different form in bug 799401.
Comment on attachment 696671 [details] [diff] [review]
Limit RepaintRequest by pref interval

Review of attachment 696671 [details] [diff] [review]:
-----------------------------------------------------------------

Great!
Attachment #696671 - Flags: review?(bugzilla) → review+
Oh, note that I'd like to put the repaint intervals behind a pref eventually.
I guess we should initialize mPreviousPaintStartTime as well, I got strange assert Assertion failure: !aOther.IsNull() 
                (Cannot compute with aOther null value), at ../../../dist/include/mozilla/TimeStamp.h:212
without that. will add that to the push, if nobody has any issues with that.
https://hg.mozilla.org/mozilla-central/rev/bd3b4d20072a
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla20
You need to log in before you can comment on or make changes to this bug.