Frank Binns <[email protected]> writes: > As part of present's window destroy function, any vblanks associated with > the destroyed window are aborted and destroyed. However, this can include > a pending flip. This means that when the corresponding flip event is > finally processed it gets ignored. As a result, any deferred unflip is > never performed and, more importantly, the now idle pixmap is never > destroyed. This results in a leak between server resets. > > Fix this by preventing any pending flip, associated with the window being > destroyed, from being aborted and destroyed during window destruction.
Yeah, we can't do that -- the whole point of the present_abort_vblank is to make sure everything associated with that vblank is gone before the serve resets. We don't have any guarantee that the notify will be received before the server has reset. So, what we need to do is to have present_abort_vblank do all of the related clean up, including setting the window pixmaps and freeing the pixmap so that it doesn't get leaked. We can assume that the driver will hold a reference to any data structures related to the scanout until it's actually freed and not do that up in DIX as well. -- [email protected]
pgpZ8odrxIsaY.pgp
Description: PGP signature
_______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
