Mir

Nested servers prevent overlays or fullscreen bypass from working

Bug #1262116 reported by Daniel van Vugt
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Mir
Fix Released
High
Kevin DuBois
mir (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Nested servers prevent fullscreen bypass from working.

This would explain why nesting fullscreen clients is measurably slower than non-nesting:
Direct (bypass) 2600
Direct (bypass off) 2400
Nested (bypass) 2450
Nested (bypass off) 2330

Related branches

summary: - Nested servers prevent full bypass from working
+ Nested servers prevent fullscreen bypass from working
description: updated
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Verified not implemented yet:

bool mgn::detail::NestedOutput::post_renderables_if_optimizable(RenderableList const&)
{
    return false;
}

summary: - Nested servers prevent fullscreen bypass from working
+ Nested servers prevent overlays or fullscreen bypass from working
Revision history for this message
Kevin DuBois (kdub) wrote :

This just prevents a client of a nested server from getting any bypass/overlay advantages. The nested server itself might be overlay or bypass though. We don't have a path through ipc for arranging the nested server to post multiple buffers right to the hardware-advantaged posting path.

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

I've been trying to think of reasons why this isn't feasible. And haven't thought of any reasons yet.

It's certainly worth a try to pass-through buffer (or surface?) allocation to nesting. There might be serious blockers but I can't imagine anything yet.

description: updated
Changed in mir:
assignee: nobody → Alexandros Frantzis (afrantzis)
milestone: none → 0.13.0
status: Triaged → In Progress
Changed in mir:
assignee: Alexandros Frantzis (afrantzis) → Kevin DuBois (kdub)
Changed in mir:
milestone: 0.13.0 → 0.14.0
tags: added: overlays
Changed in mir:
milestone: 0.14.0 → 0.15.0
Changed in mir:
milestone: 0.15.0 → 0.16.0
Changed in mir:
milestone: 0.16.0 → 0.17.0
Changed in mir:
milestone: 0.17.0 → 0.18.0
Kevin DuBois (kdub)
Changed in mir:
milestone: 0.18.0 → 0.19.0
Changed in mir:
milestone: 0.19.0 → 0.20.0
Changed in mir:
milestone: 0.20.0 → none
Changed in mir:
milestone: none → 0.20.0
Changed in mir:
milestone: 0.20.0 → 0.21.0
Changed in mir:
milestone: 0.21.0 → 0.22.0
Changed in mir:
milestone: 0.22.0 → none
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

This is in progress, and we like to keep milestones on everything in progress.

Admittedly we might miss 0.22.0

Changed in mir:
milestone: none → 0.23.0
Kevin DuBois (kdub)
Changed in mir:
milestone: 0.23.0 → 0.24.0
Kevin DuBois (kdub)
Changed in mir:
milestone: 0.24.0 → none
Changed in mir:
milestone: none → 0.25.0
Revision history for this message
Kevin DuBois (kdub) wrote :

Have a spike-prototype working of bypassing buffers. Still more work to do with atomic multi-bufferstream updates, and sorting out the nested platform, but goal is within reach...

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

That's awesome news. Do we expect the benefit to be just bypassing GL, or that as well as lower latency?

If you provide a prototype branch I can run it under high-speed camera testing to measure...

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

Fix committed into lp:mir at revision None, scheduled for release in mir, milestone 0.25.0

Changed in mir:
status: In Progress → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (5.7 KiB)

This bug was fixed in the package mir - 0.25.0+17.04.20161203-0ubuntu1

---------------
mir (0.25.0+17.04.20161203-0ubuntu1) zesty; urgency=medium

  * New upstream release 0.25.0 (https://launchpad.net/mir/+milestone/0.25.0)
    - ABI summary:
      . mirclient ABI unchanged at 9
      . mirserver ABI bumped to 42
      . mircommon ABI bumped to 7
      . mirplatform ABI bumped to 14
      . mirprotobuf ABI unchanged at 3
      . mirplatformgraphics ABI bumped to 11
      . mirclientplatform ABI unchanged at 5
      . mirinputplatform ABI bumped to 6
      . mircore ABI added, at version 1
    - Enhancements:
      . Added pointer confinement support
      . Identify Raspberry Pi output types correctly
      . Added dead key and compose key support
      . Added gamma support for KMS hardware
      . Added yakkety and zesty gcc-6 support
      . Added surface passthrough support for fullscreen clients of nested
        servers
      . Introduced a new library `libmircore'
      . Began migrating from Protobuf to Cap'n Proto starting with events
      . Began support for VirtualBox (servers now start instead of crashing
        but full support for GL clients is still missing)
      . Began support for high precision frame timing, implemented for the
        KMS, Android and X11 backends so far
      . Added --display-report support for the X11 backend
      . Improved reliability of `mirvanity' latency test tool
      . Moved to using the CSS cursor naming scheme internally, although
        the old symbolic indentifiers remain unchanged and still work
      . Added refresh rate to MirSurfaceOutputEvent
      . Many improvements to automated test quality and coverage
      . Smoother desktop zoom using mir_proving_server (Super + two fingers)
    - Bugs fixed:
      . FTBFS On Zesty: invalid use of
        'struct native_handle' (LP: #1638774)
      . libmirclient-debug-extension-dev install debug/surface.h
        twice (LP: #1639153)
      . Mir crashes on virtual box drmModeCrtcSetGamma
        Function not implemented (LP: #1638220)
      . Flickering in mir_demo_client_multistream (LP: #1635273)
      . Camera apps (camera & vanity) never exit (LP: #1635010)
      . Clients cannot connect when MIR_SOCKET="" (LP: #1634508)
      . mirtest-dev packaging fails to sepcify boost depends (LP: #1633537)
      . cursor.h is unclear about mir_diagonal_resize_* (LP: #1626924)
      . Inconsistent underscores in cursor names (LP: #1632617)
      . [regression] Accidental libmircommon.so.6 break (LP: #1617865)
      . [regression] mir demo server fails to start with mx4 (LP: #1615703)
      . [regression] Trust prompt now shown when starting camera (LP: #1612256)
      . [regression] make abi-check fails to build (LP: #1626866)
      . Nested servers prevent overlays or fullscreen bypass (LP: #1262116)
      . Failed to get PRIME fd from gbm bo (LP: #1607812)
      . Mir-on-X is difficult to use on 1366x768 laptop (LP: #1590959)
      . Remove useless message 'Surface 0 DPI' in demos (LP: #1559831)
      . Mir fails to cross-build with newer sbuild (LP: #1628507)
      . Infinite loop in AbstractShell::focus_next_session (LP: #1625401)
      . Dest...

Read more...

Changed in mir (Ubuntu):
status: New → Fix Released
Changed in mir:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.