There are (at least) two different cases leading to lower fps.
Motionmark seems to hit FinishedWaitingForTransaction() case rather often, but the testcase in the bug
hits the other case more often.
Details
- Reviewers
mstange bas - Commits
- rMOZILLACENTRAL6721a4116d17: Bug 1778575, try to run a pending vsync asap if the main thread is otherwise…
- Bugzilla Bug ID
- 1778575
Diff Detail
- Repository
- rMOZILLACENTRAL mozilla-central
- Lint
Lint Not Applicable - Unit
Tests Not Applicable - Build Status
Buildable 470682 Build 566433: arc lint + arc unit
Event Timeline
layout/base/nsRefreshDriver.cpp | ||
---|---|---|
697 | The idea here is just to push a normal priority task to the queue, and when it runs, trigger a refreshdriver tick if there aren't other tasks. This seems to be hit quite often. | |
2902 | This is effectively backing out bug 1371668, but because DidComposite is now using control priority (and JS shouldn't run at that point), we want to dispatch a new runnable which uses vsync priority. |
Bas reviewed bug 1371668, so might want to review this :)
Or mstange.
I couldn't see differences in motionmark numbers, but when profiling locally, the behavior was different, less idle time. And I manually verified the extra tick from nsRefreshDriver::FinishedWaitingForTransaction()
is hit rather often.
layout/base/nsRefreshDriver.cpp | ||
---|---|---|
2902 | Also, the old code, before bug 1371668, didn't use information about the latest missing vsync, but passed wrong /now/ time to the Tick. This is trying to pass more reasonable value. |
This revision requires a Testing Policy Project Tag to be set before landing. Please apply one of testing-approved, testing-exception-unchanged, testing-exception-ui, testing-exception-elsewhere, testing-exception-other. Tip: this Firefox add-on makes it easy!