[enhancement] Allow a server to halt rendering in a client session

Bug #1310637 reported by Michael Terry
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mir
Fix Released
Undecided
Unassigned
mir (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

== Use Case ==

The scene: This problem occurs during boot with a split greeter and a user session both being launched at roughly the same time. USC shows the boot animation until both the greeter and user session are ready to render, since it doesn't want the greeter to appear without a user session ready for the user to jump into.

The problem: The greeter has a cute little "fade in" animation it does, that lasts about a second. If the greeter wins the startup race, it will start rendering its animation (in the background, since USC isn't showing it yet). Which might complete by the time the user session is available which makes USC show the greeter to the user finally. So sometimes on boot, the user never sees the fade in animation and the greeter just abruptly appears.

== Attempted Solutions ==

In 0.1.8, neither hide() nor lifecycle events seemed to do the trick. And with the new non-blocking rendering work, I imagine we're actually making it harder to do this.

== Desired Solution ==

I'd like to be able to have the USC tell the greeter session to chill out if it appears first. No frames get rendered or lost. It just stops processing. I think Qt does the sensible thing if Mir stops giving it buffers, right?

Tags: enhancement
Michael Terry (mterry)
description: updated
Revision history for this message
kevin gunn (kgunn72) wrote :

note: we need to solve this in the context of mir0.1.9, from the responses we've received in testing I would suspect non-blocking eglswap to land first, which would make the use of hide() irrelevant. According to mterry the time is on the order of a second, so the raciness of the sidechannel to halt rendering wouldn't be good enough.

allowing the shell (or in this case, a "shell like thing" the greeter) to directly halt a session to coordinate a transition seems like a sensible control to add.

Revision history for this message
Michael Terry (mterry) wrote :

<tvoss> mterry, that would require an occlusion event
 mterry, AlbertA something we would need to add anyway

summary: - Allow a server to halt rendering in a client session
+ [enhancement] Allow a server to halt rendering in a client session
tags: added: enhancement
Revision history for this message
kevin gunn (kgunn72) wrote :

this seems ancient, and i know we actually fixed this in terms of ux for the split greeter which landed.
marking as fixed, but please reopen if i'm missing some nuance.

Changed in mir:
status: New → Fix Released
Changed in mir (Ubuntu):
status: New → 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.