Code review comment for lp://staging/~nick-dedekind/qtmir/multiwindow.textures

Revision history for this message
Daniel d'Andrada (dandrader) wrote :

> > In MirSurface::dropPendingBuffer() looks like you're replacing it with its
> old
> > implementation. Is that intentional? If not, please update the current
> > implementation to work with that new multi-texture scenario.
>
> It was intentional.
> Your reason for changing the code was "Make frame dropper work even when
> there's no texture around".
> In this impl for the frame dropper we iterate over the textures which we have
> already generated and update the texture. We wouldn't have any renderables for
> something we hadn't requested (and therefore have a texture).

What you're explaining is the wrong assumption that the previous implementation had.

The problematic case is this: When closing and application, QSG might have already freed the texture by the time you try to drop the pending surface frame. Since there's no texture anymore, updateTexture() fails to consume the frame.

The client application will then get stuck on swap_buffers(), unable to consume the pending close_surface event coming from mir.

See https://code.launchpad.net/~dandrader/qtmir/frameDropperNoTexture/+merge/315911 for details

« Back to merge proposal