[Pixman] pixman_blt on aarch64
BALATON Zoltan
balaton at eik.bme.hu
Tue Feb 7 12:46:03 UTC 2023
Maybe we should include pixman list in this. In case you're not subscribed
I'm forwarding it to that list now.
On Tue, 7 Feb 2023, Akihiko Odaki wrote:
> On 2023/02/06 4:16, Richard Henderson wrote:
>> On 2/5/23 08:44, BALATON Zoltan wrote:
>>> On Sun, 5 Feb 2023, Richard Henderson wrote:
>>>> On 2/4/23 06:57, BALATON Zoltan wrote:
>>>>> This has just bounced, I hoped to still be able to post after moderation
>>>>> but now I'm resending it after subscribing to the pixman list. Meanwhile
>>>>> I've found this ticket as well:
>>>>> https://gitlab.freedesktop.org/pixman/pixman/-/merge_requests/71
>>>>> See the rest of the message below. Looks like this is being worked on
>>>>> but I'm not sure how far is it from getting resolved. Any info on that?
>>>>
>>>> Please try this:
>>>>
>>>> https://gitlab.freedesktop.org/rth7680/pixman/-/tree/general
>>>>
>>>> It provides a pure C version for ultimate fallback.
>>>> Unfortunately, there are no test cases for this, nor documentation.
>
> It can share the implementation with fast_composite_src_memcpy().
> fast_composite_src_memcpy() should be well-tested with the tests for
> pixman_image_composite(). arm-neon does similar so we can trust
> fast_composite_src_memcpy() functions as blt.
>
>>>
>>> Thanks, I don't have hardware to test this but maybe Akihiko or somebody
>>> else here cam try. Do you think pixman_fill won't have the same problem?
>>> It seems to have at least a fast_path implementation but I'm not sure how
>>> pixman selects these.
>>
>> For fill, I think the fast_path implementation should work, so long as it
>> isn't disabled via environment variable. I'm not sure why that is, and why
>> _fast_path isn't part of _general.
>
> The implementation of fill should be moved to pixman-general.c but the other
> part of pixman-fast-path.c shouldn't be.
>
> By isolating the non-essential fast-path code to pixman-fast-path.c, you can
> disable it with the environment variable when you are not confident with the
> implementation, and that may help debugging. However, if pixman-fast-path.c
> has some essential code like the implementation of fill, the utility of the
> environment variable will be impaired as setting the environment variable may
> break things.
>
>>
>> Indeed, the fast_path implementation of fill should be easily vectorized by
>> the compiler. I would expect it to be competitive with an assembly
>> implementation. I would expect the implementation chain design to only be
>> useful when multiple vector implementations are supported and selected at
>> runtime -- e.g. the x86 SSE2 vs SSSE3 stuff.
>>
>>
>> r~
>
>
More information about the Pixman
mailing list