Rendering stutters when a new client establishes a connection
Bug #1549359 reported by
Alberto Aguirre
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
Medium
|
Alberto Aguirre | ||
mir (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
When there are existing clients rendering and a new client connects, rendering stutters at least on mesa-kms.
To reproduce:
sudo mir_demo_server --arw-file --vt1
mir_demo_
mir_demo_
Related branches
lp://qastaging/~albaguirre/mir/fix-1549359
- Mir CI Bot: Approve (continuous-integration)
- Cemil Azizoglu (community): Approve
- Alan Griffiths: Approve
-
Diff: 233 lines (+97/-9)3 files modifiedsrc/platforms/mesa/server/kms/display.cpp (+9/-3)
src/platforms/mesa/server/kms/display.h (+2/-1)
tests/unit-tests/graphics/mesa/kms/test_display_configuration.cpp (+86/-5)
summary: |
- Rendering stutters when a new client stablishes a connection + Rendering stutters when a new client establishes a connection |
Changed in mir: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
The stutter is caused by blocking of the ipc thread for too long when creating a new session so other clients submitting swapping requests get blocked.
What ends up taking time is the querying of the display configuration when creating a new ApplicationSession, which in my xenial haswell laptop takes about 255ms.
The main culprit is the drmModeGetConnector call which takes around 125+ms per connector in my laptop.