Screen turns on when a new session/surface appears

Bug #1297876 reported by Michael Terry on 2014-03-26
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mir
Fix Released
Medium
Andreas Pokorny
mir (Ubuntu)
Medium
Unassigned

Bug Description

I'm testing the split greeter. And the following happens:

- Press power button, screen goes off
- In background, the greeter session is launching
- When it appears, the screen turns back on (input is not accepted, you can just see it)

That should not happen.

I had *thought* this was fixed by [1]. I even have a memory of testing that branch on top of 0.1.17 and confirming it worked. But now with mir/devel, the bug is back. So either my earlier test was faulty or some other branch in mir/devel is breaking it again.

[1] https://code.launchpad.net/~robertcarr/mir/remove-ensure-display-powered/+merge/209734

Tags: pm Edit Tag help

Related branches

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

Sounds like it could be bug 1231857. Although I was thinking that one was probably Mesa/desktop only.

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

I suspect we might be encountering platform-specific behaviour in both cases where flipping a new frame implicitly turns the screen on. If that's true then we'll have to work some power-management checks into the DisplayBuffer/Compositor classes.

Revision history for this message
Andreas Pokorny (andreas-pokorny) wrote :

While display is off u-s-c focuses a newly spawned greeter session that has its own display configuration. Mir applies that configuration as a reaction to the focus change. That display configuration has power mode set to on - hence display is also turned on again..

Changed in unity-system-compositor:
assignee: nobody → Andreas Pokorny (andreas-pokorny)
Revision history for this message
Michael Terry (mterry) wrote :

If you uncomment the "power_mode = default_power_state;" lines in mg::DefaultDisplayConfigurationPolicy::apply_to(), this bug goes away.

Robert Carr was of the opinion that display configuration policies shouldn't be applied at all for nested servers. Maybe mgn::NestedDisplay::NestedDisplay() shouldn't call apply_to()? Or we should add a new no-op default policy for nested displays.

Changed in unity-system-compositor:
assignee: Andreas Pokorny (andreas-pokorny) → nobody
status: New → In Progress
assignee: nobody → Andreas Pokorny (andreas-pokorny)
Revision history for this message
Andreas Pokorny (andreas-pokorny) wrote :

Just had a discussion in the mir team. Changing Nested constructor is a simpler change.

Revision history for this message
Andreas Pokorny (andreas-pokorny) wrote :

.. simpler than making usc delay the focus setting until the display is powered on again.

no longer affects: unity-system-compositor
Revision history for this message
Michael Terry (mterry) wrote :

Even if the USC focus call was considered the bug, isn't it bad that setting focus for a session turns on the display? That's quite the method side effect.

Revision history for this message
Andreas Pokorny (andreas-pokorny) wrote :

There seem to be use cases where it makes sense - maybe not the power mode changes.. The fix supplied is only a workaround. We are looking for a cleaner solution..

Changed in mir:
assignee: nobody → Andreas Pokorny (andreas-pokorny)
status: New → In Progress
importance: Undecided → Medium
milestone: none → 0.1.8
Changed in mir (Ubuntu):
status: New → Triaged
importance: Undecided → Medium
Changed in mir:
milestone: 0.1.8 → 0.1.9
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

Fix committed into lp:mir/devel at revision None, scheduled for release in mir, milestone Unknown

Changed in mir:
status: In Progress → Fix Committed
Changed in mir:
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mir - 0.1.9+14.10.20140430.1-0ubuntu1

---------------
mir (0.1.9+14.10.20140430.1-0ubuntu1) utopic; urgency=medium

  [ Daniel van Vugt ]
  * New upstream release 0.1.9 (https://launchpad.net/mir/+milestone/0.1.9)
    - mirclient ABI unchanged, still at 7. Clients do not need rebuilding.
    - mirserver ABI bumped to 19. Shells need rebuilding.
    - More libmirserver class changes and reorganization, including;
      . Moving things from shell:: to scene::
      . Rewriting/refactoring surface factories.
    - Added an id() to Renderable.
    - Scene/Renderer interfaces:
      . Scene is no longer responsible for its own iteration (no for_each
        any more). Instead you should iterate over the list returned by
        Scene::generate_renderable_list().
    - Bugs fixed:
      . Stale socket issue. (LP: #1285215)
      . Qt render gets blocked on EGLSwapBuffers. (LP: #1292306)
      . Lock order violated found in helgrind (potential deadlock).
        (LP: #1296544)
      . [regression] SwitchingBundle in framedropping mode can hang.
        (LP: #1306464)
      . [DPMS] Display backlight turns back on almost immediately after
        being turned off. (LP: #1231857)
      . Wrong frame is seen on wake up/resume/unlock. (LP: #1233564)
      . Nested platform is not testable (LP: #1299101)
      . [regression] mir_demo_server_shell crashes on display resume.
        (LP: #1308941)
      . Multi-threaded composition is actually mostly serialized by
        SurfaceStack::guard. (LP: #1234018)
      . Mirscreencast slows down compositing and makes it very jerky.
        (LP: #1280938)
      . Mirscreencast can cause clients to render faster than the screen
        refresh rate. (LP: #1294361)
      . Screen turns on when a new session/surface appears. (LP: #1297876)
      . mir-doc package is >56MB in size, expands to >100MB of files.
        (LP: #1304998)
      . [regression] Clang: 'mir::test::doubles::MockSurface::visible'
        hides overloaded virtual function [-Woverloaded-virtual].
        (LP: #1301135)
      . [regression] GLRenderer* unit tests have recently become noisy.
        (LP: #1308905)
      . FocusController::set_focus_to() no longer seems to raise a session
        to the top. (LP: #1302689)

  [ Ubuntu daily release ]
  * New rebuild forced
 -- Ubuntu daily release <email address hidden> Wed, 30 Apr 2014 13:26:58 +0000

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

Other bug subscribers