RazrFalcon / tiny-skia

A tiny Skia subset ported to Rust
BSD 3-Clause "New" or "Revised" License
1.05k stars 67 forks source link

M1 #38

Closed jeffreyrosenbluth closed 2 years ago

jeffreyrosenbluth commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

@CryZe were can I follow the progress?

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

CryZe commented 2 years ago

This is adding all the remaining instructions except a few that cause problems in LLVM: https://github.com/rust-lang/stdarch/pull/1230

jeffreyrosenbluth commented 2 years ago

Thanks, this is very helpful On Oct 19, 2021, 8:54 AM -0400, Christopher Serr @.***>, wrote:

This is adding all the remaining instructions except a few that cause problems in LLVM: rust-lang/stdarch#1230 — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.