Closed Bug 1140723 Opened 9 years ago Closed 9 years ago

Enable vsync compositor on Windows

Categories

(Core :: Graphics, defect, P2)

x86_64
All
defect

Tracking

()

RESOLVED FIXED
mozilla39
Tracking Status
firefox39 --- fixed

People

(Reporter: mchang, Assigned: mchang)

References

()

Details

Attachments

(1 file)

+++ This bug was initially created as a clone of Bug #1137905 +++

Turn on the vsync compositor on Windows 7+ platforms.
Depends on: 1141361
Attachment #8576987 - Flags: review?(bugmail.mozilla)
Attachment #8576987 - Flags: review?(bugmail.mozilla) → review+
Depends on: 1143190
Any reason why "gfx.vsync.refreshdriver" will be left as "false" on Windows and all other platforms?
(In reply to Virtual_ManPL [:Virtual] from comment #3)
> Any reason why "gfx.vsync.refreshdriver" will be left as "false" on Windows
> and all other platforms?

I want to enable one preference at a time to make sure everything is stable. We're having known problems with enabling the refresh driver on b2g as well.
Explanation fail. The test throttles the refresh driver so that the compositor doesn't get ahead. After the compositor finishes compositing, it sends a message back to the refresh driver so that the refresh driver can tick again. This is the DidComposite message. 

With the software timer compositor, we ticked the refresh driver at an odd time but after 1 composite interval. When the compositor gets the layer transaction, it thinks it it's late since it didn't Composite for a while, so it composites right away. After the composite, it sends a DidComposite message, which ticks the refresh driver again. With silk, we have to wait until the next vsync to composite, which then sends the DidComposite message.
(In reply to Mason Chang [:mchang] from comment #5)
> ... whereas with silk, we wait until the next vsync. 

Do the numbers reflect this with regression < 17ms ? (not later than the next vsync).

If this only due to the test setup and unlikely to happen under normal/heavy scenarios to users, then it's probably OK IMO, but if this happens to represent a scenario where users could notice the delay in rendering, then it might need some consideration.

Can you assess this?
(In reply to Avi Halachmi (:avih) from comment #7)
> (In reply to Mason Chang [:mchang] from comment #5)
> > ... whereas with silk, we wait until the next vsync. 
> 
> Do the numbers reflect this with regression < 17ms ? (not later than the
> next vsync).
> 
> If this only due to the test setup and unlikely to happen under normal/heavy
> scenarios to users, then it's probably OK IMO, but if this happens to
> represent a scenario where users could notice the delay in rendering, then
> it might need some consideration.
> 
> Can you assess this?

In this case, the regression is ~15ms from a runtime of ~730ms to 745 ms, which is less than one vsync. When we are throttling the compositor, it means that the compositor can't keep up with the refresh driver. With silk, by design, we only composite on vsyncs, whereas before we would try to keep up ASAP before. The delay in rendering should be at most one frame, which is ok IMHO.
https://hg.mozilla.org/mozilla-central/rev/d3380179efc1
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla39
Depends on: 1146692
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: