While Mir is big onto integrated testing and was designed from the ground-up this way, performance regressions slipping into the code-base doesn't appear to be incredibly uncommon. Just days after Mir receiving an important performance rendering fix
, another commit to Canonical's display server sets out to "fix significant performance issues" with the code-base.
of Mir sets to take care of mir_demo_client_scroll is no longer smooth; stutters
and Modifying mc::BufferStreamFactory ::create_buffer_stream to use double instead of triple buffering results in clients being throttled to 30 FPS
, among other likely open bugs.
The performance fix in this case was reverting a code commit from early September. A commit in September (Revision 1049
) changed the compositor so that there's always one buffer to return without blocking or throwing an exception, but that one buffer is always kept in reserve for compositing. This "fix" commit of reverting the earlier code also expands upon their switching bundle unit test to ensure the regression doesn't happen again in the future.