Hello,

Here is a branch with some basic ARM NEON optimizations for pixman_blt:
http://cgit.freedesktop.org/~siamashka/pixman/log/?h=pixman_blt_neon
These are quite similar to MMX/SSE2 and don't introduce any controversy,
so I hope that they can be pushed to pixman master soon unless somebody
has objections.

But a bit more speed can be gained by tweaking pixman_blt to support
overlapped source/destination areas and making use of SIMD optimizations
there:
http://cgit.freedesktop.org/~siamashka/pixman/log/?h=overlapped_blt

Making real use of overlapped pixman_blt also requires patching xserver and
the most simple way to do it is included in the attached test patch (not
intended to be applied as-is). I wonder if it just makes sense to apply
overlapped_blt patches to pixman now? And then later bump minimal required
pixman version in xserver from current 0.15.20 to the one which supports
overlapped blt operations?

Overlapped blitting is used in many places like GTK file dialog, arora web
browser (scrolling page back) and some other applications.

Comments are very much welcome.

I did not include the changes to drop delegates support in this patchset
because they only distracted everyone from the main topic earlier when
overlapped pixman_blt had been discussed :-)

-- 
Best regards,
Siarhei Siamashka
diff --git a/fb/fbcopy.c b/fb/fbcopy.c
index 07eb663..ba394b7 100644
--- a/fb/fbcopy.c
+++ b/fb/fbcopy.c
@@ -91,8 +91,7 @@ fbCopyNtoN (DrawablePtr	pSrcDrawable,
     while (nbox--)
     {
 #ifndef FB_ACCESS_WRAPPER /* pixman_blt() doesn't support accessors yet */
-	if (pm == FB_ALLONES && alu == GXcopy && !reverse &&
-	    !upsidedown)
+	if (pm == FB_ALLONES && alu == GXcopy)
 	{
 	    if (!pixman_blt ((uint32_t *)src, (uint32_t *)dst, srcStride, dstStride, srcBpp, dstBpp,
 			     (pbox->x1 + dx + srcXoff),

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
xorg-devel mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to