Created by Daniel van Vugt on 2016-11-02 and last modified on 2016-11-04
Get this branch:
bzr branch lp:~vanvugt/mir/fix-1584894
Only Daniel van Vugt can upload to this branch. If you are Daniel van Vugt please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Daniel van Vugt

Recent revisions

3801. By Daniel van Vugt on 2016-11-02

Also verify the output itself doesn't throw on failure to schedule a

3800. By Daniel van Vugt on 2016-11-02

The old test for flipping throwing on failure is invalid.
Replace it with a new test that verifies we fall back to blitting.

3799. By Daniel van Vugt on 2016-11-02

Working VirtualBox support, with graceful error recovery (display

3798. By Daniel van Vugt on 2016-11-02

Avoid crashing on systems that don't have hardware gamma ramps,
like VirtualBox (LP: #1638220). Fixes: https://bugs.launchpad.net/bugs/1638220.

Approved by Alan Griffiths, Cemil Azizoglu, mir-ci-bot.

3797. By Kevin DuBois on 2016-11-01

api: add the ability to set and get the the physical size of MirBufferStream. Also add a distinction between the physical and logical size to the staged api, mir_surface_spec_add_buffer_stream.

Previously, the physical and logical sizes were fixed (at steady state, they were the same. around resize events, the physical size would vary before reaching steady-state, and cause headaches). This cleans things up as per the friday discussion.

Note: mir_surface_spec_add_buffer_stream and mir_surface_spec_add_presentation_chain are currently gated, and will be removed in favor of mir_surface_spec_add_render_surface when RS work is published. mir_surface_spec_set_buffer_streams will be deprecated and removed.

Approved by mir-ci-bot, Cemil Azizoglu, Chris Halse Rogers.

3796. By Daniel van Vugt on 2016-10-31

vanity: Add proper support for swap interval 0 (mirvanity -n)

Previously it would keep printing an error message that "your camera is
too slow" and also underestimate "expected range", but otherwise worked.

This change corrects all of that. The camera wasn't too slow, just that
the display is so fast with framedropping that the camera seems slow.
But it's still the same physical display so is only appropriate to get
the correct refresh rate from elsewhere. This also corrects the
"expected range" number.

I had to modify eglapp because I found there's no way for a user of
eglapp to get a SurfaceOutput event. The event has already arrived before
the app itself has initialized, so can only be acquired by the toolkit.

Bonus: This fix now lets us observe and measure the improvement provided by predictive bypass on the server (--composite-delay).

Approved by Chris Halse Rogers, mir-ci-bot.

3795. By Chris Halse Rogers on 2016-10-31

Add ObserverRegistrar interface and an ObserverMultiplexer helper implementation.

An ObserverRegistrar manages registering and unregistering Observers of some Mir state.

The ObserverMultiplexer is an implementation of ObserverRegistrar which itself is an Observer, so can be handed out to internal Mir components as a singular Observer and to shells using Mir as an ObserverRegistrar.

At the moment ObserverMultiplexer requires code to implement Observer be provided manually. In The Glorious Future, C++ will provide compile-time reflection which will make it possible to automatically implement.

Approved by mir-ci-bot, Andreas Pokorny, Cemil Azizoglu.

3794. By Daniel van Vugt on 2016-10-31

vanity: Handle VT switching and other occlusions

One problem discovered last week trying to run on a single-headed system
was that the act of VT-switching to see your results would immediately
affect the results. This tries to prevent that.

Approved by Chris Halse Rogers, mir-ci-bot.

3793. By Brandon Schaefer on 2016-10-28

Create the touch events in a ctor which will help speed up the creation of a touch event.

Approved by mir-ci-bot, Daniel van Vugt, Alan Griffiths, Andreas Pokorny, Cemil Azizoglu.

3792. By Andreas Pokorny on 2016-10-28

Remove 1ms input polling and improve perf test in acceptance test

The 1ms polling rate was used to handle the batching case in the input consumer. When it receives input messages that could be batched it refuses to send them out, up to a certain delay. That delay is defined by the frame time. So only when the frametime changes a new batch would be started and the old one is sent out. Probably due to a misunderstanding of InputConsumer (not the first) 1ms was used here..

Additionally since CI machines are under heavy load the touch event generation is moved over to the input thread. So there are then only two threads fighting.

Approved by mir-ci-bot, Brandon Schaefer.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
This branch contains Public information 
Everyone can see this information.