← Back to team overview

ubuntu-phone team mailing list archive

Re: Qt 5.2 - Events are queued when rendering blocked

 

On 03/25/2014 09:19 PM, Thomas Voß wrote:
> We spent some time evaluating the situation and both alternatives.
> While we can certainly map our lifecycle events to the respective Qt
> events, we would have to block turning off the screen until all
> applications have ack'd and thus told us that they are good to go. In
> addition, we would need to handle applications not responding,
> including potential grace periods such that apps can flush their
> rendering queue. Moreover, we think that interpreting a potentially
> blocking call to eglSwapBuffers as an error case is not correct. From
> our POV, a call to eglSwapBuffers is a legitimate outcome, and we (as
> well as many others) leverage this semantics for throttling client
> applications.
> 
> Right now, we are considering the second alternative as it is much
> less intrusive.

Less intrusive for who? :-)
I actually liked your original idea (eglSwapBuffers returning false
while the screen is off) much better, and that's definitely less
intrusive for application developers.
What is the reason who made you reconsider this? You explained it above,
but I failed to understand why you need to wait for the applications to
ack; can't you simply make eglSwapBuffers return false from the instant
when you send the expose event? As Gunnar wrote in the bug, for the
small time window between the time when the screen goes off and the time
when the applications receives the expose (off) event, Qt would just
ignore the failed eglSwapBuffer.

Ciao,
  Alberto



Follow ups

References