Adam Jackson <[email protected]> writes: I've been reading code this afternoon, and I think your approach is subtly broken.
PanoramiXDamageQueue traps the damage additions to screen 0, creates a Dispatch callback and then waits until the request completes before merging damage. Other screens call PanoramiXDamageAccumulate. This assumes that damage will be delivered to all screens, which I don't think is always the case as rendering which is clipped out will generate no damage, and hence no callback. I think you just want to have all of the screens hit the same callback and add damage to the screen 0 instance; that way, it won't matter which subset of the screens receive damage. Independently, I'm not thrilled with a DIX-level DispatchCallback, but I have to admit that I don't have a better solution -- adding it down inside panoramix would mean touching every single rendering function to process the queued damage, and there's no other place between the panoramix wrapper and Dispatch. -- [email protected]
pgpOlEtn3imrg.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
