When using any XAAPixmapOps, we call into unknown but freshly
unwrapped callbacks (like fb ones). Unlike the XAA*Fallback calls,
we did so without syncing first, exposing us to all kinds of
synchronisation issues.
I believe that the rendering errors appeared now because *PaintWindow
vanished (e4d11e58), and we just use miPaintWindow instead. This
takes a less direct route to the hw and ends up at
PolyFillRectPixmap, which very often left drawing artifacts.
We now sync accordingly, and no longer get the rendering artifacts i
was methodically reproducing on radeonhd, radeon, unichrome...
Also, in order to allow driver authors to remove extensive syncing
or flushing to hide this issue, create XAA_VERSION_ defines, put
them in xaa.h and bump the patchlevel.
(novell bug #435791)
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.
Add XSERV_t, TRANS_SERVER, TRANS_REOPEN to quash warnings.
Add #include <dix-config.h> or <xorg-config.h>, as appropriate, to all
source files in the xserver/xorg tree, predicated on defines of
HAVE_{DIX,XORG}_CONFIG_H. Change all Xfont includes to
<X11/fonts/foo.h>.
SetupForCPUToScreenAlphaTexture2. These add a dstFormat argument after
the previous format argument, which the driver needs to use to properly
set up the destination format. Two new arrays are added for the list of
destination formats supported that correspond to the previous format
arrays for sources.
- Make Render acceleration only occur when the new hook for that
acceleration type is supplied and the dst format list is set, along
with the src format list being set. Without knowing the destination
format, the Render acceleration couldn't properly support all the
destinations it might encounter.
- Bump XAA module minor version.
- Update the Radeon Render acceleration to use the new hooks when the XAA
module is sufficiently new. Fix a bug in the src/dst alpha booleans for
ops, and use them to set blend_cntl to support destinations without
alpha. Add missing PICT_a1r5g5b5 texture format, and add list
terminator. (!)