[PATCH] exa/mixed: avoid unnecessary dest system buffer copy in prepare_access_reg

Karl Tomlinson xmail at karlt.net
Thu Aug 26 03:57:54 PDT 2010


I came across a situation
(http://ie.microsoft.com/testdrive/Performance/FishIE%20tank/Default.html)
where copying with operator source from a pixmap with
accel_blocked (due to large pitch) to a destination pixmap was
causing unnecessary read-back.

The destination pixmap was created by cairo, which clears the
surface, an operator which can be accelerated.

Then copying from the accel_blocked pixmap is not accelerated and
so causes creation of a system copy of the destination pixmap, and
the copy is initially invalid.  exaPrepareAccessReg_mixed has only
just created the damage and so assumes that everything needs to be
copied to system, even though the operator will overwrite the
copied pixels.

The attached patch avoids the read-back into the system copy.



More information about the xorg-devel mailing list