* Defer to simpler hooks in more cases (inspired by XAA behaviour).
* Move damage tracking from lower to higher level functions.
* Always migrate for fallbacks.
* Convert rects to region and use it for damage tracking.
* When possible, defer to exaFillRegion{Solid,Tiled} using converted region.
* Always migrate for fallbacks.
* Move damage tracking out of ExaCheckPolyFillRect.
* Support planemasks, different ALUs and arbitrary tile origin.
* Leave damage tracking and non-trivial fallbacks to callers.
* Always migrate for fallbacks.
This is in preparation for using these from more other functions.
- Move some code around to minimize diff noise
- Add mmx ops from pixman that never made it into X
- Merge Jeff Muizelaar's bugfixes to fbCompositeSrc_8888x8x8888mmx and
fbCompositeSrc_x888x8x8888mmx.
Before putting anything on the screen, check if the GC was made for the
ScreenRec we want to render to. If not, toss the GC and create a new one. This
is not the best solution but it does the job for now. Same thing for ARGB
cursors except that it's even uglier.
Also remember the screen the cursor was rendered to and check for the right
screen in the BlockHandler, SourceValidate and a few others. Only remove or
restore the cursor if we are rendering to the same screen, otherwise we get
artefacts that are both funky and really annoying.
Requires moving the spriteTrace into the DeviceIntRec and adjusting a few
functions to take in device argument, most notably XYToWindow().
Cursor rendering on the second screen is busted.
Formerly we sized an array with a compile time constant, then initialized
its size to the same constant, but the Linux PCI init code would increase
that "constant". So if you happened to have more than 128 PCI devices,
you'd happily scribble into whatever variables happened to be in .bss
after that array.
Only really fixed for Linux atm. Other OSes will simply (still) fail to
work on video devices above the 128th PCI device.
Fix up the fast-path compositing operators; those are useful for
sources without alpha, but can't be used for sources with
alpha. Also, replaced fbCompositeSrcSrc_nxn with call to fbBlt as
this function must handle 1, 4, 8, 16, 24, 32 bpp objects. Would
be nice to optimize fbBlt for common cases involving 8, 16, 24 and
32bpp.
From Keith Packard.
* Port fix for bug 7685 from pixman. Patch by Carl Worth
* Add projective version of radial gradient code.
* Make sure that all Pict*Gradient types have PictGradient as prefix,
since code in various places relies on that.