Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SIMD-based blitting using ARM Neon and Intel SSE4 #5428

Open
nfeske opened this issue Jan 21, 2025 · 5 comments
Open

SIMD-based blitting using ARM Neon and Intel SSE4 #5428

nfeske opened this issue Jan 21, 2025 · 5 comments

Comments

@nfeske
Copy link
Member

nfeske commented Jan 21, 2025

At the moment, we use SIMD instructions for 2D-pixel copying only on the x86 platform. I'd like to foster the use of SIMD on ARMv8 as well, and also leverage more modern SIMD variants (SSE4) on x86_64.

@nfeske nfeske added the feature label Jan 21, 2025
nfeske added a commit to nfeske/genode that referenced this issue Jan 21, 2025
nfeske added a commit to nfeske/genode that referenced this issue Jan 21, 2025
This is a precondition for using Blit::back2front at the driver side.

Issue genodelabs#5428
nfeske added a commit to nfeske/genode that referenced this issue Jan 21, 2025
nfeske added a commit to nfeske/genode that referenced this issue Jan 21, 2025
@nfeske
Copy link
Member Author

nfeske commented Jan 21, 2025

Implemented for ARM Neon and SSE on my simd branch https://github.com/nfeske/genode/commits/simd/.

nfeske added a commit to nfeske/genode-allwinner that referenced this issue Jan 21, 2025
nfeske added a commit to nfeske/genode-rpi that referenced this issue Jan 21, 2025
nfeske added a commit to nfeske/genode-imx that referenced this issue Jan 21, 2025
nfeske added a commit to nfeske/genode that referenced this issue Jan 21, 2025
nfeske added a commit to nfeske/genode that referenced this issue Jan 21, 2025
This is a precondition for using Blit::back2front at the driver side.

Issue genodelabs#5428
nfeske added a commit to nfeske/genode that referenced this issue Jan 21, 2025
nfeske added a commit to nfeske/genode that referenced this issue Jan 21, 2025
nfeske added a commit to nfeske/genode that referenced this issue Jan 23, 2025
nfeske added a commit to nfeske/genode that referenced this issue Jan 23, 2025
This is a precondition for using Blit::back2front at the driver side.

Issue genodelabs#5428
nfeske added a commit to nfeske/genode that referenced this issue Jan 23, 2025
nfeske added a commit to nfeske/genode that referenced this issue Jan 23, 2025
nfeske added a commit to nfeske/genode that referenced this issue Jan 23, 2025
cnuke pushed a commit to cnuke/genode that referenced this issue Jan 23, 2025
cnuke pushed a commit to cnuke/genode that referenced this issue Jan 23, 2025
This is a precondition for using Blit::back2front at the driver side.

Issue genodelabs#5428
cnuke pushed a commit to cnuke/genode that referenced this issue Jan 23, 2025
cnuke pushed a commit to cnuke/genode that referenced this issue Jan 23, 2025
cnuke pushed a commit to cnuke/genode that referenced this issue Jan 23, 2025
nfeske added a commit to nfeske/genode that referenced this issue Jan 23, 2025
nfeske added a commit to nfeske/genode that referenced this issue Jan 23, 2025
This is a precondition for using Blit::back2front at the driver side.

Issue genodelabs#5428
nfeske added a commit to nfeske/genode that referenced this issue Jan 23, 2025
nfeske added a commit to nfeske/genode that referenced this issue Jan 23, 2025
cnuke pushed a commit to cnuke/genode that referenced this issue Jan 28, 2025
nfeske added a commit to nfeske/genode that referenced this issue Jan 28, 2025
nfeske added a commit to nfeske/genode that referenced this issue Jan 28, 2025
This is a precondition for using Blit::back2front at the driver side.

Issue genodelabs#5428
nfeske added a commit to nfeske/genode that referenced this issue Jan 28, 2025
nfeske added a commit to nfeske/genode that referenced this issue Jan 28, 2025
nfeske added a commit to nfeske/genode that referenced this issue Jan 28, 2025
This commit adds support for SIMD-based alpha blending, which speeds up
the alpha-compositing of the nitpicker GUI server by circa 300% on ARM
Neon and x86_64 using SSE4.1

Issue genodelabs#5428
cnuke pushed a commit to cnuke/genode-allwinner that referenced this issue Jan 29, 2025
nfeske added a commit to nfeske/genode that referenced this issue Jan 30, 2025
nfeske added a commit to nfeske/genode that referenced this issue Jan 30, 2025
This is a precondition for using Blit::back2front at the driver side.

Issue genodelabs#5428
nfeske added a commit to nfeske/genode that referenced this issue Jan 30, 2025
nfeske added a commit to nfeske/genode that referenced this issue Jan 30, 2025
nfeske added a commit to nfeske/genode that referenced this issue Jan 30, 2025
This commit adds support for SIMD-based alpha blending, which speeds up
the alpha-compositing of the nitpicker GUI server by circa 300% on ARM
Neon and x86_64 using SSE4.1

Issue genodelabs#5428
nfeske added a commit that referenced this issue Jan 30, 2025
nfeske added a commit that referenced this issue Jan 30, 2025
This is a precondition for using Blit::back2front at the driver side.

Issue #5428
nfeske added a commit that referenced this issue Jan 30, 2025
nfeske added a commit that referenced this issue Jan 30, 2025
nfeske added a commit that referenced this issue Jan 30, 2025
This commit adds support for SIMD-based alpha blending, which speeds up
the alpha-compositing of the nitpicker GUI server by circa 300% on ARM
Neon and x86_64 using SSE4.1

Issue #5428
@nfeske
Copy link
Member Author

nfeske commented Jan 30, 2025

The commit series for ARM Neon and SSE4 for x86_64 went to staging today. I'll defer the AVX topic to a later point.

@nfeske nfeske changed the title SIMD-based blitting using ARM Neon and Intel AVX SIMD-based blitting using ARM Neon and Intel SSE4 Jan 30, 2025
@nfeske nfeske added the fixed label Jan 30, 2025
nfeske added a commit to genodelabs/genode-allwinner that referenced this issue Jan 31, 2025
nfeske added a commit to genodelabs/genode-imx that referenced this issue Jan 31, 2025
nfeske added a commit to genodelabs/genode-rpi that referenced this issue Jan 31, 2025
@nfeske
Copy link
Member Author

nfeske commented Jan 31, 2025

Yesterday, I missed to push the adaptations in the rpi, allwinner, and imx repository. I updated those just now.

@chelmuth
Copy link
Member

Besides driver/framebuffer/virtio and server/vmm also test/fb_bench is broken on arm_v8a.

nfeske added a commit that referenced this issue Feb 4, 2025
This ambiguity is caused by the inclusion of arm_neon.h by the blit
library header.

Issue #5428
nfeske added a commit that referenced this issue Feb 4, 2025
nfeske added a commit that referenced this issue Feb 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants