On Thu, Feb 11, 2016 at 05:41:16PM +0000, Chris Wilson wrote: > On Wed, Feb 10, 2016 at 11:51:18AM -0500, Adam Jackson wrote: > > @@ -983,7 +990,7 @@ DRI2WakeClient(ClientPtr client, DrawablePtr pDraw, int > > frame, > > { > > ScreenPtr pScreen = pDraw->pScreen; > > DRI2DrawablePtr pPriv; > > - > > +t > > Without this, > Tested-by: Chris Wilson <ch...@chris-wilson.co.uk> > Reviewed-by: Chris Wilson <ch...@chris-wilson.co.uk>
Drat, valgrind turned up something obnoxious: ==8695== Invalid write of size 8 ==8695== at 0x5A74E9: dri2ClientWake (in /opt/xorg/bin/Xorg) ==8695== by 0x43F811: ProcessWorkQueue (in /opt/xorg/bin/Xorg) ==8695== by 0x5DA640: WaitForSomething (in /opt/xorg/bin/Xorg) ==8695== by 0x4397E0: Dispatch (in /opt/xorg/bin/Xorg) ==8695== by 0x43E8B9: dix_main (in /opt/xorg/bin/Xorg) ==8695== by 0x6CD5EC4: (below main) (libc-start.c:287) ==8695== Address 0xcf4c688 is 56 bytes inside a block of size 144 free'd ==8695== at 0x4C2BE10: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==8695== by 0x5A7AB9: DRI2DrawableGone (in /opt/xorg/bin/Xorg) ==8695== by 0x467EE6: FreeResource (in /opt/xorg/bin/Xorg) ==8695== by 0x4336D6: ProcDestroyWindow (in /opt/xorg/bin/Xorg) ==8695== by 0x439A85: Dispatch (in /opt/xorg/bin/Xorg) ==8695== by 0x43E8B9: dix_main (in /opt/xorg/bin/Xorg) ==8695== by 0x6CD5EC4: (below main) (libc-start.c:287) ==8695== Fix incoming; if we remove limitation to only allow one DRI2 client to block (thus allowing multiple clients to wait on a MSC on the root for instance) we can use the ClientSleep to keep track of all the pending wake ups, with just an introduction of ClientSignalAll. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel