Multi-monitor: clone mode much slower (stutters) than sidebyside
Bug #1213801 reported by
Daniel van Vugt
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
Medium
|
Daniel van Vugt | ||
mir (Ubuntu) |
Fix Released
|
Medium
|
Unassigned |
Bug Description
I just noticed a strange performance penalty of clone mode. If running several clients, in clone mode some of them (notably demo_client_
This is probably a symptom of clone mode forcing each page flip to wait for multiple vblanks...
And yes, I have tested with and without the "switch" branch. The bug existed before that landed.
Related branches
lp://qastaging/~vanvugt/mir/async-page-flips
- Alexandros Frantzis (community): Approve
- Alan Griffiths: Approve
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 496 lines (+218/-60)8 files modifiedsrc/platform/graphics/mesa/display.cpp (+11/-0)
src/platform/graphics/mesa/display_buffer.cpp (+72/-31)
src/platform/graphics/mesa/display_buffer.h (+4/-1)
tests/unit-tests/graphics/mesa/mock_kms_output.h (+52/-0)
tests/unit-tests/graphics/mesa/test_cursor.cpp (+2/-19)
tests/unit-tests/graphics/mesa/test_display.cpp (+5/-7)
tests/unit-tests/graphics/mesa/test_display_buffer.cpp (+62/-0)
tests/unit-tests/graphics/mesa/test_display_multi_monitor.cpp (+10/-2)
Changed in mir: | |
importance: | Undecided → High |
status: | New → Triaged |
Changed in mir: | |
assignee: | nobody → Daniel van Vugt (vanvugt) |
status: | Triaged → In Progress |
Changed in mir: | |
milestone: | 0.1.5 → 0.1.6 |
Changed in mir: | |
importance: | High → Medium |
Changed in mir: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
On the other hand, waiting for all outputs' page flips to complete does avoid tearing. And this bug doesn't occur until the rendering load is high.
I think we need to choose between:
(a) Sometimes low frame rate (stutter) but never tearing; or
(b) Always smooth frame rate but tearing on /some/ monitors in clone mode.
I'm really hoping there's an option (c).