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),
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ xorg-devel mailing list [email protected] http://lists.x.org/mailman/listinfo/xorg-devel
