Merge lp://staging/~raof/mir/fully-constructed-surfaces into lp://staging/mir
Status: | Superseded |
---|---|
Proposed branch: | lp://staging/~raof/mir/fully-constructed-surfaces |
Merge into: | lp://staging/mir |
Prerequisite: | lp://staging/~raof/mir/client-release-simplifications |
Diff against target: |
3249 lines (+1209/-410) 46 files modified
include/test/mir/test/validity_matchers.h (+3/-0) playground/mir_egl_platform_shim.c (+6/-6) playground/render_surface.cpp (+12/-8) src/client/CMakeLists.txt (+2/-0) src/client/buffer_stream.cpp (+133/-62) src/client/buffer_stream.h (+18/-8) src/client/buffer_stream_configuration.cpp (+8/-0) src/client/buffer_stream_configuration.h (+1/-0) src/client/buffer_vault.cpp (+22/-5) src/client/connection_configuration.h (+6/-0) src/client/connection_surface_map.cpp (+75/-12) src/client/connection_surface_map.h (+25/-2) src/client/default_connection_configuration.cpp (+15/-2) src/client/default_connection_configuration.h (+2/-0) src/client/error_render_surface.cpp (+1/-4) src/client/error_render_surface.h (+6/-3) src/client/mir_connection.cpp (+117/-37) src/client/mir_connection.h (+6/-2) src/client/mir_render_surface.h (+6/-3) src/client/mir_render_surface_api.cpp (+56/-8) src/client/no_tls_future-inl.h (+1/-0) src/client/render_surface.cpp (+31/-14) src/client/render_surface.h (+6/-3) src/client/rpc/mir_protobuf_rpc_channel.cpp (+25/-19) src/client/surface_map.h (+4/-2) src/client/symbols.map (+8/-0) src/include/client/mir_toolkit/mir_render_surface.h (+40/-17) src/server/scene/mediating_display_changer.cpp (+1/-1) tests/acceptance-tests/staging/test_render_surface.cpp (+54/-21) tests/acceptance-tests/test_client_library.cpp (+85/-0) tests/acceptance-tests/test_server_shutdown.cpp (+1/-1) tests/include/mir/test/doubles/stub_buffer_stream_factory.h (+15/-4) tests/integration-tests/test_buffer_scheduling.cpp (+3/-1) tests/integration-tests/test_surfaceloop.cpp (+27/-32) tests/integration-tests/test_swapinterval.cpp (+2/-2) tests/mir_test/validity_matchers.cpp (+15/-0) tests/mir_test_doubles/test_protobuf_client.cpp (+2/-1) tests/unit-tests/client/test_buffer_vault.cpp (+2/-1) tests/unit-tests/client/test_client_buffer_stream.cpp (+151/-87) tests/unit-tests/client/test_connection_resource_map.cpp (+84/-11) tests/unit-tests/client/test_mir_render_surface.cpp (+108/-21) tests/unit-tests/client/test_protobuf_rpc_channel.cpp (+9/-7) tests/unit-tests/compositor/test_stream.cpp (+1/-1) tests/unit-tests/frontend/stress_protobuf_communicator.cpp (+4/-1) tests/unit-tests/scene/test_application_session.cpp (+3/-1) tests/unit-tests/scene/test_surface_stack.cpp (+7/-0) |
To merge this branch: | bzr merge lp://staging/~raof/mir/fully-constructed-surfaces |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Mir CI Bot | continuous-integration | Needs Fixing | |
Mir development team | Pending | ||
Review via email: mp+313085@code.staging.launchpad.net |
This proposal has been superseded by a proposal from 2016-12-15.
Commit message
Ensure MirBufferStream and MirSurface are fully constructed within their client callback.
Ever since NBS we've had some sneaky RPC in seemingly innocuous client calls like
mir_buffer_
time - most easily from within the creation callback - this RPC would deadlock.
Plumb through the necessary BufferStream so that the client's callback
is called after the BufferStream is fully valid.
Unmerged revisions
- 3870. By Chris Halse Rogers
-
Fix incomplete comment
- 3869. By Chris Halse Rogers
-
Merge trunk, fixing remaining issues
- 3868. By Chris Halse Rogers
-
Merge trunk, resolving conflicts
- 3867. By Chris Halse Rogers
-
The Omega Commit.
Resolve changes to trunk, ensure tests provide the newly-expected environment.
- 3866. By Chris Halse Rogers
-
Follow rename of header
- 3865. By Chris Halse Rogers
-
Also test that MirBufferStream is fully usable in its created callback
- 3864. By Chris Halse Rogers
-
Add (failing) test checking that a MirSurface is fully usable in the surface created callback
- 3863. By Chris Halse Rogers
-
Add ConnectionSurfa
ceMap:: reserve( SurfaceId) This lets the MirConnection tell the RPC layer that a surface is *about* to be
constructed. This is necessary because the server sends a SurfaceOutputEvent
immediately after the create_surface() response, but if the surface has a default
BufferStream that stream is not fully constructed until a futher allocate_buffer() RPC
call + event.
FAILED: Continuous integration, rev:3869 /mir-jenkins. ubuntu. com/job/ mir-ci/ 2382/ /mir-jenkins. ubuntu. com/job/ build-mir/ 3104/console /mir-jenkins. ubuntu. com/job/ build-0- fetch/3171/ console /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= vivid+overlay/ 3163/console /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= xenial+ overlay/ 3163/console /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= yakkety/ 3163/console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= clang,platform= mesa,release= yakkety/ 3133/console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= xenial+ overlay/ 3133/console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= yakkety/ 3133/console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= android, release= vivid+overlay/ 3133/console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= android, release= vivid+overlay/ 3133/console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= mesa,release= xenial+ overlay/ 3133/console
https:/
Executed test runs:
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild: /mir-jenkins. ubuntu. com/job/ mir-ci/ 2382/rebuild
https:/