[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CVS: cvs.openbsd.org: xenocara

Module name:	xenocara
Changes by:	matthieu_(_at_)_cvs_(_dot_)_openbsd_(_dot_)_org	2008/11/11 13:31:42

Modified files:
	xserver/hw/xfree86/xaa: xaa.h xaaInitAccel.c xaawrap.h 

Log message:
Fix from X.Org master git for XAA screen corruption.

XAA PixmapOps: Sync before accessing unwrapped callbacks.

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.

tested by naddy@ and Edd Barrett. ok oga_(_at_)__(_dot_)_