lp://staging/~vanvugt/mir/strengthen-ClientLatency
- Get this branch:
- bzr branch lp://staging/~vanvugt/mir/strengthen-ClientLatency
Branch merges
- Mir development team: Pending requested
-
Diff: 21 lines (+2/-2)1 file modifiedtests/acceptance-tests/test_latency.cpp (+2/-2)
Branch information
Recent revisions
- 3443. By Alan Griffiths
-
examples: make it easy to launch SDL clients.
Approved by mir-ci-bot, Brandon Schaefer.
- 3442. By Alan Griffiths
-
examples: provide better support for launching GTK apps from demo_server.
Approved by mir-ci-bot, Daniel van Vugt, Kevin DuBois, Cemil Azizoglu.
- 3441. By Daniel van Vugt
-
Disable the 'early release optimization' in BufferQueue, and add more
tests to verify it's really disabled (and the equivalent in NBS too).The purpose of 'early release' (AKA single_monitor_fast in NBS) was to
reduce the chance of frame skipping when the number of buffers is reduced.
However now it seems unlikely we will ever reduce the number of buffers
to two.'early release' has the side-effect of increasing buffer lag by one
frame. And that would have been canceled out by switching to double
buffering, but now it won't be. So in terms of latency we're one frame
better off not using 'early release'.NBS's equivalent mode 'single_
monitor_ fast' is already disabled by
default (LP: #1561418), so no change required there.The new 'mirvanity' tool also confirms that this branch measurably reduces
latency by about 17ms (one frame).That all said, Unity8 was never affected by the 'early release' lag
because (a) its QtMir compositor does not early-release; and (b) the
system compositor generally uses bypass/overlays that prevents the
possibility of early release anyway. But at least now BufferQueue and
NBS have the same default mode, and it is the lowest latency mode.The branch incidentally also provides a basis for fixing LP: #1561418. Fixes: https:/
/bugs.launchpad .net/bugs/ 1561418. Approved by Cemil Azizoglu, Kevin DuBois, mir-ci-bot.
- 3440. By Kevin DuBois
-
Activate the new buffer swapping system, capable of supporting the new buffer semantics. Changes MIR_SERVER_NBUFFERS default from 3 to 0.
Approved by mir-ci-bot, Cemil Azizoglu, Alan Griffiths, Chris Halse Rogers.
- 3439. By Chris Halse Rogers
-
Make mt::Alarm own the LockableCallback its going to dispatch.
This makes it easier to implement some forms of mt::Alarm.
Approved by mir-ci-bot, Cemil Azizoglu, Alberto Aguirre, Kevin DuBois, Brandon Schaefer.
- 3438. By Kevin DuBois
-
compositor: change the buffer accounting in the NBS system from being per-BufferMap to being per-Stream to prepare for connection-
allocated buffers (instead of stream allocated buffers). Approved by Alan Griffiths, mir-ci-bot, Cemil Azizoglu.
- 3437. By Kevin DuBois
-
Deprecate next_buffer rpc call. Last used in mir 0.7.3, replaced by exchange_buffer in 0.8.0, so nothing out there should be using it.
The reason I'm interested in this is I'm trying to cleanly split our Surface/Stream abstraction, and get rid of primary_
buffer_ stream( ) for general hygiene and to fix lp: #1563278. next_buffer() assumes a one-to-one stream-to-surface mapping as it was developed before the Surface/Stream conceptual split that happened when we added 'cursor streams' way back when. Approved by Cemil Azizoglu, mir-ci-bot, Daniel van Vugt.
- 3436. By Brandon Schaefer
-
Class-ify the mir event structure.
Approved by mir-ci-bot, Andreas Pokorny, Alberto Aguirre, Cemil Azizoglu.
- 3435. By Kevin DuBois
-
have mcl::BufferVault use the mcl::Buffer types directly, instead of mcl::ClientBuffer (the platform abstraction). This better prepares this class for when the client side call chain is rpc->buffer->stream (as opposed to rpc->stream-
>buffer, as it is now). Remove the BufferEntry/ BufferInfo structs from buffer_vault.h as a result of the cleanup. Approved by mir-ci-bot, Andreas Pokorny, Alan Griffiths, Cemil Azizoglu.
Branch metadata
- Branch format:
- Branch format 7
- Repository format:
- Bazaar repository format 2a (needs bzr 1.16 or later)
- Stacked on:
- lp://staging/mir