Mir

lp:~vanvugt/mir/crashing-server

Created by Daniel van Vugt and last modified
Get this branch:
bzr branch lp:~vanvugt/mir/crashing-server
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

Owner:
Daniel van Vugt
Project:
Mir
Status:
Development

Recent revisions

1589. By Daniel van Vugt

Merge latest development-branch

1588. By Daniel van Vugt

Merge latest development-branch

1587. By Daniel van Vugt

Merge latest development-branch

1586. By Daniel van Vugt

tests: Add a "crashing_server" binary to ease testing of debugability issues
arising from crashes in compositor threads (like LP: #1237332).

Hopefully it can some day be automated with some simple scripted analysis
of the resulting core file. But for now that's not possible while the basic
default server requires root/VT access to start at all.

1585. By Kevin DuBois

remove unused StubDisplayDevice.

Approved by Alberto Aguirre, Robert Carr, PS Jenkins bot.

1584. By Robert Carr

Extract cursor image from the builtin cursor in preparation for client cursor API.

Approved by PS Jenkins bot, Alberto Aguirre, Chris Halse Rogers.

1583. By Andreas Pokorny

Make InputDispatcher replaceable

This change introduces a InputDispatcher interface that receives MirEvents.
The existing android-input based InputDispatcher is still the default dispatcher.
The configuration happens through the InputDispatcherConfiguration, which supplies
some additional related interfaces.
.

Approved by PS Jenkins bot, Chris Halse Rogers, Robert Carr, Daniel d'Andrada.

1582. By Kevin DuBois

compositor: generate the renderlist for a particular compositor.

We were previously generating the whole list for every compositor, and then having whoever wanted to access the renderable's buffers provide a unique ID to the interface so the SwitchingBundle could distinguish between compositors. Now we have the compositor provides its ID at the time it wants the list generated.

advantages:
1) This MP has the compositor identify itself when generating the list, and then the components that need to use the buffer afterwards do not have to worry about which compositor they belong to (or how they have to identify themself).

2) mg::Renderable is the interface that the compositor/display hardware optimizations wants to see. This simplifies that interface so that its tailored to the needs of the users of the interface, not to the implementation. Now all members of the interface are const functions with no function parameters needed.

3) We could have ended up with two ID's in SwitchingBundle that refer to the same compositor system. Now SwitchingBundle's will get one ID per compositor, and the compositors can call mg::Renderable::Buffer() repeatedly without affecting SwitchingBundle.

4) we were locking and unlocking a mutex 7 times every time we wanted to copy a renderable (lines 439-445). Shifting to this approach does the lock 1 time (line 370), and copies everything. This is what originally got me going down this path.

5) Although I'm still not a very big fan of using DisplayBufferCompositor* as an id, this improves us from using a void* as an ID. This at least improves the confidence that we can have that only a DisplayBufferCompositor is requesting buffers. (bit of a pre-existing issue).

Approved by PS Jenkins bot, Cemil Azizoglu, Chris Halse Rogers, Alan Griffiths, Robert Carr, Andreas Pokorny, Alberto Aguirre, Alexandros Frantzis.

1581. By Daniel van Vugt

Ensure the alpha component (if any) of the frame buffer is never changed
during compositing. Otherwise you could end up with translucent pixels which
produce incorrect looking screenshots/screencasts (LP: #1301210). Fixes: https://bugs.launchpad.net/bugs/1301210.

Approved by Robert Carr, Kevin DuBois, Alan Griffiths, Alberto Aguirre, PS Jenkins bot.

1580. By Daniel van Vugt

demo-shell: Select which monitor to rotate or change mode on using the
mouse cursor location.

Approved by Alberto Aguirre, Kevin DuBois, Robert Carr, Alexandros Frantzis, PS Jenkins bot.

Branch metadata

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

Subscribers