Skip to content

M1 #38

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

Closed
jeffreyrosenbluth opened this issue Oct 19, 2021 · 5 comments
Closed

M1 #38

jeffreyrosenbluth opened this issue Oct 19, 2021 · 5 comments

Comments

@jeffreyrosenbluth
Copy link
Contributor

Is it safe to assume that tiny-skia is slower on Apples M1 chip due to lack of ARM NEON? Any idea on how much slower?

@RazrFalcon
Copy link
Collaborator

RazrFalcon commented Oct 19, 2021

You can check it yourself: arm64.html.zip Just open this page in a browser. This is running on M1. Basically everything that requires f32x8 is slow, but other algorithms are pretty good.

Yes, it's not as fast as Skia, but rustc still does some autovectorization. So we still faster than Cairo, somehow.

Just to clarify, there is no NEON support because we're blocked by rust itself. It could be added as an unstable/nightly feature, if this is something you're interested in.

@CryZe
Copy link
Contributor

CryZe commented Oct 19, 2021

They are actually about to finish adding all the NEON instructions into std. So stabilization might happen in the foreseeable future. I can do a PR with nightly NEON support before that.

@RazrFalcon
Copy link
Collaborator

@CryZe were can I follow the progress?

Patches are welcome, since I don't really have much time lately.

@CryZe
Copy link
Contributor

CryZe commented Oct 19, 2021

This is adding all the remaining instructions except a few that cause problems in LLVM:
rust-lang/stdarch#1230

@jeffreyrosenbluth
Copy link
Contributor Author

jeffreyrosenbluth commented Oct 19, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants