Mir

Merge lp://qastaging/~kdub/mir/nested-passthrough into lp://qastaging/mir

Proposed by Kevin DuBois
Status: Merged
Approved by: Daniel van Vugt
Approved revision: no longer in the source branch.
Merged at revision: 3746
Proposed branch: lp://qastaging/~kdub/mir/nested-passthrough
Merge into: lp://qastaging/mir
Prerequisite: lp://qastaging/~kdub/mir/nested-passthrough-logic
Diff against target: 918 lines (+376/-43)
27 files modified
include/test/mir_test_framework/any_surface.h (+3/-1)
include/test/mir_test_framework/headless_display_buffer_compositor_factory.h (+5/-0)
include/test/mir_test_framework/headless_nested_server_runner.h (+12/-0)
src/client/atomic_callback.h (+3/-3)
src/client/mir_buffer_api.cpp (+2/-0)
src/server/compositor/buffer_map.cpp (+8/-4)
src/server/compositor/buffer_map.h (+3/-1)
src/server/graphics/nested/buffer.cpp (+1/-1)
src/server/graphics/nested/host_connection.h (+1/-0)
src/server/graphics/nested/host_surface_spec.h (+2/-0)
src/server/graphics/nested/ipc_operations.h (+2/-2)
src/server/graphics/nested/mir_client_host_connection.cpp (+192/-5)
src/server/graphics/nested/mir_client_host_connection.h (+1/-0)
src/server/graphics/nested/native_buffer.h (+0/-1)
src/server/graphics/nested/platform.cpp (+52/-2)
tests/acceptance-tests/test_nested_mir.cpp (+17/-0)
tests/include/mir/test/doubles/stub_client_buffer.h (+6/-1)
tests/include/mir/test/doubles/stub_host_connection.h (+5/-0)
tests/integration-tests/test_buffer_scheduling.cpp (+3/-3)
tests/mir_test_framework/any_surface.cpp (+7/-1)
tests/mir_test_framework/headless_display_buffer_compositor_factory.cpp (+22/-2)
tests/mir_test_framework/headless_nested_server_runner.cpp (+17/-3)
tests/mir_test_framework/headless_test.cpp (+1/-1)
tests/unit-tests/compositor/test_client_buffers.cpp (+10/-10)
tests/unit-tests/platforms/nested/test_buffer.cpp (+1/-0)
tests/unit-tests/platforms/nested/test_ipc_operations.cpp (+0/-1)
tests/unit-tests/platforms/nested/test_nested_display_buffer.cpp (+0/-1)
To merge this branch: bzr merge lp://qastaging/~kdub/mir/nested-passthrough
Reviewer Review Type Date Requested Status
Daniel van Vugt Approve
Cemil Azizoglu (community) Approve
Mir CI Bot continuous-integration Approve
Review via email: mp+307315@code.qastaging.launchpad.net

Commit message

nested: optimize fullscreen client surfaces by passing their buffers through the nested server to the host server without composing.
(LP: #1262116)

Description of the change

nested: optimize fullscreen client surfaces by passing their buffers through the nested server to the host server without composing. Currently only enabled for android. EGLStreams does this under-the hood, and mesa enablement is up for review: lp:~kdub/mir/mesa-clientbuffer-eglimage-mapping

Also working on measurements (needs some more reporting changes)

To post a comment you must log in.
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3732
https://mir-jenkins.ubuntu.com/job/mir-ci/1862/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/2357/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-0-fetch/2420/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2412/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2412/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2412/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2386/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2386/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2386/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2386/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2386/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2386/console

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/1862/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Kevin DuBois (kdub) wrote :

grr, merge madness

Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3733
https://mir-jenkins.ubuntu.com/job/mir-ci/1863/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/2358/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/2421
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2413
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2413
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2413
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2387/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2387/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2387/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2387/console
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2387/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2387
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2387/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2387/console

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/1863/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3736
https://mir-jenkins.ubuntu.com/job/mir-ci/1865/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/2360/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/2423
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2415
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2415
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2415
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2389/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2389/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2389/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2389
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2389/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2389
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2389/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2389/console

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/1865/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3737
https://mir-jenkins.ubuntu.com/job/mir-ci/1866/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/2362/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/2425
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2417
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2417
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2417
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2391/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2391/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2391/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2391/console
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2391/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2391
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2391/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2391/console

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/1866/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Kevin DuBois (kdub) wrote :
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3738
https://mir-jenkins.ubuntu.com/job/mir-ci/1884/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/2388/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/2451
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2443
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2443
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2443
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2417
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2417/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2417/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2417/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2417
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2417/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2417
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2417/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2417/console

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/1884/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3738
https://mir-jenkins.ubuntu.com/job/mir-ci/1886/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/2390/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/2453
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2445
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2445
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2445
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2419
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2419/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2419/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2419/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2419
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2419/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2419
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2419/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2419/console

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/1886/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Kevin DuBois (kdub) wrote :

hmm, seems different than the logged bug, investigating further

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

For the measurements, we can measure latency externally using mirvanity. Although I suspect we don't expect any reduction in latency here(?).

I think CPU and GPU load is also something we aim to reduce but bug 1540207 suggests that we won't see that on desktop. So maybe try looking at CPU/GPU usage on mobile for some positive measurements.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

OK, I've just done some fresh high-speed camera testing with mirvanity. Confirmed there is no reduction in latency here. Nesting still introduces two extra frames of lag (triple buffers):

Trunk: 64ms
This branch: 64ms
Trunk (nested): 97ms
This branch (nested): 97ms

But that's OK. Latency reductions will come later with the client-side vsync work I'm doing...

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Oh. Is this relevant?

[2016-10-05 11:22:54.841327] <ERROR> mirclient: Caught exception at client library boundary (in mir_buffer_egl_image_parameters): /home/dan/bzr/mir/tmp.nested/src/platforms/mesa/client/client_buffer.cpp(175): Throw in function virtual void mir::client::mesa::ClientBuffer::egl_image_creation_parameters(EGLenum*, void**, EGLint**)
Dynamic exception type: boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::invalid_argument> >
std::exception::what: not implemented yet

[2016-10-05 11:22:54.841628] <ERROR> mirclient: Caught exception at client library boundary (in mir_buffer_egl_image_parameters): /home/dan/bzr/mir/tmp.nested/src/platforms/mesa/client/client_buffer.cpp(175): Throw in function virtual void mir::client::mesa::ClientBuffer::egl_image_creation_parameters(EGLenum*, void**, EGLint**)
Dynamic exception type: boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::invalid_argument> >
std::exception::what: not implemented yet

Revision history for this message
Daniel van Vugt (vanvugt) :
review: Needs Information
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Looks like that exception is fixed in:
lp:~kdub/mir/mesa-clientbuffer-eglimage-mapping

Revision history for this message
Daniel van Vugt (vanvugt) :
review: Abstain
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Win! Merging lp:~kdub/mir/mesa-clientbuffer-eglimage-mapping with this one gets the nesting lag down from 97ms to 64ms. Thus after you combine both branches the nesting lag is eliminated!

review: Approve
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Bugger. Found a regression in fullscreen framedropping clients (mir_demo_client_egltriangle -n -f). On trunk it renders at 1200 FPS, but with this branch (and the other one) we are bound to 60 FPS, which is bad for games and other apps that rely on swap interval 0 not blocking.

Although a similar bug 1369763 has existed on android for at least two years. We should avoid breaking desktop as well.

review: Needs Fixing
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Actually fixing bug 1369763 is possibly a prerequisite for my future lower latency work. So we really need to fix it everywhere.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Also, since this branch doesn't actually do what the label says until you combine it with lp:~kdub/mir/mesa-clientbuffer-eglimage-mapping, it might be an idea to prereq that.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

OK, a few issues, so to summarise:

(0) Please prerequisite lp:~kdub/mir/mesa-clientbuffer-eglimage-mapping to make this branch work on desktop.

(1) Needs Fixing: Framedropping pass-through clients are incorrectly bound to 60 FPS.

(2) Needs Fixing: My nested server got stuck in an infinite loop on shutdown when testing this branch, but that bug might have originated elsewhere?...

[2016-10-05 15:49:42.260127] <ERROR> Mesa/NativeSurface: Caught exception at Mir/EGL driver boundary (in advance_buffer): Dynamic exception type: std::logic_error
std::exception::what: state was not valid

[2016-10-05 15:49:42.262044] <ERROR> Mesa/NativeSurface: Caught exception at Mir/EGL driver boundary (in advance_buffer): Dynamic exception type: std::logic_error
std::exception::what: state was not valid

[2016-10-05 15:49:42.264824] <ERROR> Mesa/NativeSurface: Caught exception at Mir/EGL driver boundary (in advance_buffer): Dynamic exception type: std::logic_error
std::exception::what: state was not valid

Looks similar to bug 1630230.

review: Needs Fixing
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:3740
https://mir-jenkins.ubuntu.com/job/mir-ci/1905/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/2418
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/2481
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2473
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2473
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2473
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2447
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2447/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2447
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2447/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2447
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2447/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2447
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2447/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2447
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2447/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2447
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2447/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/1905/rebuild

review: Approve (continuous-integration)
Revision history for this message
Kevin DuBois (kdub) wrote :

with the 60fps degradation, still needs investigation. The fix pushed might have fixed the shutdown problem, and did fix CI. Still investigating a situation with the io threads and shutdown, that I've only seen in the acceptance tests, but should be fixed anyways.

Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:3741
https://mir-jenkins.ubuntu.com/job/mir-ci/1906/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/2419
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/2482
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2474
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2474
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2474
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2448
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2448/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2448
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2448/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2448
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2448/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2448
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2448/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2448
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2448/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2448
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2448/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/1906/rebuild

review: Approve (continuous-integration)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

(0) I'm trying to solve this by landing the other branch today, before this one. That way this landing will actually be the revision in which nested passthrough also started working.

(1) I don't mind too much if this bug remains unresolved briefly. Since I started looking at how NBS does swap intervals yesterday I now realize we have a couple of other existing bugs in this area to fix already. So making that three bugs instead of two isn't a major problem. Especially if multiple bugs get resolved all at once.

(2) Can't reproduce that error now. Thanks.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

(3) Just worth noting; a pixel format with alpha may well be able to pass-through but in some cases (at least always on desktop) will be rejected by bypass:

+bool mgn::MirClientHostConnection::supports_passthrough()
467 +{
468 + auto buffer = create_buffer(mg::BufferProperties(geom::Size{1, 1} , mir_pixel_format_abgr_8888, mg::BufferUsage::software));

Revision history for this message
Cemil Azizoglu (cemil-azizoglu) wrote :

LGTM... Looking forward to more complete performance numbers.

review: Approve
Revision history for this message
Kevin DuBois (kdub) wrote :

@Daniel
for (1) the issue is that the client is swapinterval0, and the chain representing that client in the host server is operating with 'swapinterval1'. The spare buffers quickly all end up getting stuck in the host's queue, instead of returning from the host on new submissions.

I'm plumbing up a way for the host and the client to agree on swapinterval at the moment. will restack on that branch, and then we don't have to have the issue.

for (3) can probably add this in a subsequent branch.

@Cemil
Will propose updates to the latency suite to accommodate nested passthrough, hopefully before the sprint.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

(3) I wonder if there ever might be some future platform which can't pass-through non-bypassable buffers (abgr). Doesn't seem to be important yet but it wouldn't hurt us to remove all doubt and probe using xbgr only.

Cemil:
You won't get more accurate (or encouraging) performance numbers than my above measurements. Although sadly mirvanity only runs on desktop (no Video4Linux support on Android!?).

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches