[regression] NBS causes sudden loss of performance after surface resizes
Bug #1579076 reported by
Kevin DuBois
This bug affects 2 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
Critical
|
Kevin DuBois | ||
0.23 |
Fix Released
|
Critical
|
Kevin DuBois | ||
mir (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Seems that the dash gets resized() very shortly after its created. This seems to cause a degradation from "triple-buffered" operation to "double-buffered" operation. On some device loads (eg, krillin+dash, where the rendering needs to be triple buffering to stay at vsync rate), this can cause the performance to dip
tagging as critical, as it should block 0.23.
Related branches
lp://staging/~kdub/mir/fix-1579076
- Mir CI Bot: Needs Fixing (continuous-integration)
- Cemil Azizoglu (community): Approve
- Daniel van Vugt: Abstain
-
Diff: 283 lines (+131/-34)3 files modifiedsrc/client/buffer_vault.cpp (+30/-19)
src/client/buffer_vault.h (+2/-0)
tests/unit-tests/client/test_buffer_vault.cpp (+99/-15)
summary: |
- potential nbs performance dip after resize + Potential NBS performance loss after resize |
summary: |
- Potential NBS performance loss after resize + NBS causes sudden loss of performance after surface resizes |
no longer affects: | mir/0.24 |
Changed in mir: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
So, seems what was happening was one of the three buffers was lingering in the mcl::BufferVault without ever being freed again after a resize occurred. Correcting code to reallocate buffers properly.