Siarhei Siamashka <siarhei.siamas...@gmail.com> writes: > > As it turns out, non-scaled images having NORMAL repeat (tiled pictures) > > are actually used occasionally (typically with SRC operator). And removing > > simple repeat code caused ~4x performance regression in these cases. Looks > > like a new fast path is needed to solve the problem. > > Just an update to this. I tried to check whether this is easily solvable, but > looks like there are a handful of missing fast paths for NORMAL repeat (they > primarily show up when browsing various pages). Just doing it in a simple and > straightforward way by adding all of them as new fast path functions may > cause more redundancy in the pixman source code. Modifying the existing > scaled fast paths to accept non-scaled cases also works, but it does not > provide the best performance.
An idea might be to move the lookup_fast_path() into pixman-utils.c, and then write a new fast path that would call this function to look up another fast path and call it through the simple repeat code. This would require the full set of flags to be passed down to the fast paths, but we need that for the performance reporting anyway. Just a suggestion, I don't know whether it would work in practice. (An interesting possibility from this would be to use the regular blitters as the "combiners" in the general code. That way, if you have, say, a gradient IN a8 OVER 565 operation, then instead of converting both a8 and 565 to 8888, an existing over_8888_8_565 function could just be called with pointers directly into the mask and destination. Some changes to the general code would obviously be required though). > For now I just reverted this patch in my pixman tree to workaround > the problem and buy some more time to think about how it can be > solved. Does reverting the patch actually work? The standard flags currently include SAMPLES_COVER_CLIP, and for a typical repeating blit, that would not be set. Soren _______________________________________________ Pixman mailing list Pixman@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pixman