Closed Bug 1510365 Opened 7 years ago Closed 2 years ago

Slow-render warnings on dock-connected 30hz monitor.

Categories

(Core :: Graphics: WebRender, defect, P3)

defect

Tracking

()

RESOLVED INACTIVE

People

(Reporter: mhoye, Unassigned)

References

Details

Per https://perfht.ml/2TReZxq I am seeing consistent slow-render warnings that I can reproduce at will by scrolling rapidly. Hardware is a current-gen Microsoft Surface Book plugged into its docking station, with two external monitors - a 4k BenQ running at 30hz, and a Dell [something] running 1080p in portrait.
My theory is that we're trying to drive the screen at 60hz but only able to present at 30hz. This is probably a problem pre-webrender. My suspicion is that we don't handle the case of different monitors running at different rates very well. Ryan, any thoughts about what we're doing vs what we should be doing.
Flags: needinfo?(rhunt)
Currently we only have one global vsync source that drives refresh ticks and compositing. On Windows this uses a thread that waits on DwmFlush(). My recollection is that Dwm will update its 'scene' at the refresh rate of the primary monitor (in this case the Surface Book), while each monitor runs at their native refresh rate sampling the Dwm updates. I could be off on that, I haven't tested and can't find where I read that. It would be interesting if you could switch the primary monitor [1] to the 30hz screen and see the effect it has on the slow frame indicator. Ideally we'd have vsync sources for each monitor, and refresh ticking/compositing could be done at the correct rate for each window. We'd have to change the API we use on Windows to something like WaitForVBlank [2]. I had patches to do this for our global source, but it ran into unpredictable failures on try. Bas was going to talk to some MS folks about it, but it kind of fell off the radar. [1] https://www.tenforums.com/tutorials/3871-change-main-display-windows-10-a.html [2] https://docs.microsoft.com/en-us/windows/desktop/api/dxgi/nf-dxgi-idxgioutput-waitforvblank
Flags: needinfo?(rhunt)
Priority: -- → P3
It sounds like we're no worse at this than current Gecko.
Blocks: stage-wr-next
No longer blocks: stage-wr-trains
Severity: normal → S3
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → INACTIVE
You need to log in before you can comment on or make changes to this bug.