Mir's default DisplayBuffer clone mode forces all outputs to the rate of the slowest one (and increases latency too)
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| | Mir |
Triaged
|
Medium
|
Unassigned | |
| | mir (Ubuntu) |
Medium
|
Unassigned | ||
Bug Description
Clone mode forces all outputs to render at the rate of the slowest one.
This is unnecessary. If you're cloning between say a 24Hz TV and a 60Hz laptop then Mir should be smart enough to give them separate compositors so as to keep the laptop screen rendering at 60Hz.
| tags: | added: multimonitor |
| Daniel van Vugt (vanvugt) wrote : | #2 |
I think it would be helpful to make the decision of whether outputs share a single DisplayBuffer an option. Because people might want a faster smoother clone mode, or a single display buffer that spans all outputs (for efficiency or to force a stubborn shell to span). Our default heuristic doesn't let the user choose this right now.
| summary: |
- [regression] Multimonitor frame sync is running very slow + Clone mode forces all outputs to render at the rate of the slowest one |
| Changed in mir: | |
| status: | Invalid → Triaged |
| tags: | removed: regression |
| description: | updated |
| Daniel van Vugt (vanvugt) wrote : | #3 |
This bug is getting annoying. It means I can't plug an external monitor into a laptop and easily measure its latency using mirvanity. Because the default DisplayBuffer cloning increases latency by an extra frame or so.
| summary: |
- Clone mode forces all outputs to render at the rate of the slowest one + Mir's default DisplayBuffer clone mode forces all outputs to the rate of + the slowest one (and increases latency too) |
| tags: | added: performance |
| Michał Sawicz (saviq) wrote : | #4 |
Syncing task from Mir.
| Changed in mir (Ubuntu): | |
| importance: | Undecided → Medium |
| status: | New → Triaged |

Oops, forgot it's defaulting to clone mode so the compositing rate is indeed throttled to the slowest output (24Hz).
Setting the outputs side-by-side forces Mir to create separate compositors: mir_demo_ server_ shell --display- config= sidebyside
bin/
so now they're independent and the laptop display renders smoothly at 60Hz.