Screen turns on when a new session/surface appears

Bug #1297876 reported by Michael Terry
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mir
Fix Released
Medium
Andreas Pokorny
mir (Ubuntu)
Fix Released
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

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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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