← Back to team overview

ubuntu-phone team mailing list archive

Re: Qt 5.2 - Events are queued when rendering blocked

 

I must say I'm not liking, what appears to me to be, a "they're doing it
wrong, let's work around it" approach.

On 25.03.2014 22:12, Thomas Voß wrote:
> On Tue, Mar 25, 2014 at 9:34 PM, Alberto Mardegan
> <alberto.mardegan@xxxxxxxxxxxxx> wrote:
>> On 03/25/2014 09:19 PM, Thomas Voß wrote:
>> 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;
> 
> If we don't wait for the applications to ack before we carry out the
> state change, we risk the application to run into a blocking
> eglSwapBuffers call.
> 
>> can't you simply make eglSwapBuffers return false from the instant
>> when you send the expose event?
> 
> As pointed out before: Interpreting a potential block as an error
> condition in the context of eglSwapBuffers is difficult from my POV.
> We also have to bear in mind that while Qt is the most prominent
> toolkit on Ubuntu Touch right now, we also have to make sure that
> other toolkits work flawlessly.
> 
>> 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.
>>
> 
> Right, Qt :) eglSwapBuffer blocking is legitimate. If we return false,
> we would also have to raise an appropriate error. According to:
> 
>   http://www.khronos.org/registry/egl/sdk/docs/man/xhtml/eglSwapBuffers.html
> 
> nothing really fits, and Qt does not yet handle EGL_CONTEXT_LOST. Even
> if it would, raising EGL_CONTEXT_LOST and thus triggering the
> application to reinitialize the entire EGL/GL context is not the right
> thing to do here.

If they're Doing It Wrong™, should we not try and discuss with them how
we can improve the situation instead of working around it? Is there not
prior art for this? Is the approach that we'd return false for the call
when screen is off incorrect, or plain impossible?

If we start saying "use QML everywhere, except don't, 'cause it's not
going to get events when screen is off", that's really changing the
message, and we should not do that lightly.

-- 
Michał (Saviq) Sawicz <michal.sawicz@xxxxxxxxxxxxx>
Canonical Services Ltd.

Attachment: signature.asc
Description: OpenPGP digital signature


Follow ups

References