at CodeWeavers for the patch. From his description:
Fix a display bug with the X server. The Generic Rootless extension
installs overrides for certain GC (graphics context) operations. Within
these overrides, they temporarily uninstall themselves, perform their work,
and then reinstall themselves. Except sometimes they would return early
and wouldn't reinstall themselves when they should. Now they do in all cases.
Fix a bug in RootlessCopyWindow where early returns could leave the screen's
dispatch table entry for CopyWindow unwrapped. We think that this is
another case (hopefully the last) of the rootless drawing bug.
These hints allow an acceleration architecture to optimize allocation of certain
types of pixmaps, such as pixmaps that will serve as backing pixmaps for
redirected windows.
This was an attempt to avoid scratch gc creation and validation for paintwin
because that was expensive. This is not the case in current servers, and the
danger of failure to implement it correctly (as seen in all previous
implementations) is high enough to justify removing it. No performance
difference detected with x11perf -create -move -resize -circulate on Xvfb.
Leave the screen hooks for PaintWindow* in for now to avoid ABI change.
DamagePendingRegion returns a pointer to the region of a drawable that will
be damaged by the current operation for damage records that chose to get damage
reported only at the end of the operation.
over to new system.
Need to update documentation and address some remaining vestiges of
old system such as CursorRec structure, fb "offman" structure, and
FontRec privates.
Composite's automatic redirection is a more general mechanism than the
ad-hoc BS machinery, so it's much prettier to implement the one in terms
of the other. Composite now wraps ChangeWindowAttributes and activates
automatic redirection for windows with backing store requested. The old
backing store infrastructure is completely gutted: ABI-visible structures
retain the function pointers, but they never get called, and all the
open-coded conditionals throughout the DIX layer to implement BS are gone.
Note that this is still not a strictly complete implementation of backing
store, since Composite will throw the bits away on unmap and therefore
WhenMapped and Always hints are equivalent.
This new function walks the composite region and calls a rectangle
compositing function on each compositing rectangle. Previously there
were buggy duplicates of this code in fbcompose.c and
miext/rootles/safealpha/safeAlphaPicture.c.
Additionally, protect libcw setup behind checks for Render, to avoid
segfaulting if Render isn't available (xnest).
The previous setup was an ABI-preserving dance, which is better nuked now.
Now, anything that needs libcw must explicitly initialize it, and
miDisableCompositeWrapper (previously only called by EXA and presumably binary
drivers) is gone.
Get rid of almost all uses of these definitions. They're still defined for
delinquent out-of-tree drivers, and also for the Mesa build. As well as
for miinitext.c. But largely gone.
backing drawable if the serial numbers differ. Fixes crash in XAA which
occurred when the DDX bumped the serial number on the backing drawable and
expected it to get re-validated, and we didn't because the wrapped drawable
hadn't been bumped.