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

Revision history for this message
Nick Dedekind (nick-dedekind) 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/3
> 15911 for details

I see! I've changed it to match the current impl + multiple textures.

« Back to merge proposal