Page MenuHome

macOS: Support arm64
Confirmed, NormalPublicTO DO

Assigned To
None
Authored By
Julian Eisel (Severin)
Jul 7 2020, 5:07 PM
Tokens
"Love" token, awarded by aomizu."Party Time" token, awarded by huhund."Love" token, awarded by cjorssen."Love" token, awarded by TonyG."Love" token, awarded by chr.schmitz."100" token, awarded by tudortchirila."Love" token, awarded by Sarunas."Love" token, awarded by billreynish."Love" token, awarded by adamaf."Love" token, awarded by gilberto_rodrigues."Love" token, awarded by DaveDeer."Love" token, awarded by Raimund58."Love" token, awarded by FRworld."Love" token, awarded by mehmetoguzderin."Love" token, awarded by MetinSeven."Like" token, awarded by MAXMADZZ."Love" token, awarded by Ali6."Love" token, awarded by pentagramwookie."Like" token, awarded by christianclavet."Love" token, awarded by Sigra."Love" token, awarded by Alaska.

Description

Apple already provided a number of patches. These need to be updated to latest master, reviewed and merged. Remaining tasks:

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Just a question out of curiosity about this. Will the port work without Blender using METAL from GL on the new Apple devices? (I mean, blender using Vulkan/MoltenVK)
I was thinking they dropped OpenGL, OpenCL for Metal...

Ali (Ali6) added a comment.EditedDec 17 2020, 3:42 AM

Excited! Can't wait to have Blender running natively on my ARM MacBook! Also would be cool to update the Blender app icon on MacOS to be consistent with all MacOS Big Sur app icons.

will this also make running blender on Jetson Xavier easier as well?

Just a question out of curiosity about this. Will the port work without Blender using METAL from GL on the new Apple devices? (I mean, blender using Vulkan/MoltenVK)
I was thinking they dropped OpenGL, OpenCL for Metal...

OpenGL is still supported iirc, just deprecated. OpenCL is also deprecated but available while targeting the GPU, and is not supported when targeting the cpu. It would still be a good idea to start using METAL/MoltenVK nevertheless

Is there any useful news?
By the way thanks for actively working on this; the M1 is a pretty surprising chip and I can't imagine what Blender could do, with a native support.
Happy new year!

You can find a highly unstable version here: https://github.com/skwerner/blender/releases/tag/v2.91.0-mac-arm

for me it renders like 1/5 times, but when it does it is very fast. Seems like only Eevee and CPU cycles work though, and openimagedenoise doesn't work yet

Right now this is a one-person job by Skwerner, and he seems to have a full-time job as well, so progress is understandably slow. Rosetta version is working well for me though

You can find a highly unstable version here: https://github.com/skwerner/blender/releases/tag/v2.91.0-mac-arm

for me it renders like 1/5 times, but when it does it is very fast. Seems like only Eevee and CPU cycles work though, and openimagedenoise doesn't work yet

Right now this is a one-person job by Skwerner, and he seems to have a full-time job as well, so progress is understandably slow. Rosetta version is working well for me though

Thanks.
I want to learn Blender, but I'm not in a specific hurry, therefore I'll wait for a native apple silicon version and start with a blank slate.

There may be an issue making the Boolean Exact mode work on arm64. It needs a bump of the GMP library to 6.2.1, but the website for that says: "While we added support for Apple's new Arm based computers, our support has a problem. The problem is that Apple reserves CPU register x18, but GMP's mpn/arm64 assembly code uses that register. While GMP runs fine in our tests, we expect things to go awry in some execution situation. (Apple has not been kind enough to specify how they use x18. Therefore, we don't know what the consequences of using x18 might be.)"

Standard wiki build instructions for building Blender on macOS can now be used on Macs with ARM processors, using the precompiled libraries.

Note that we have all libraries except for Embree and OpenImageDenoise, so Cycles does not yet have full performance and features in this build. An x86-64 build is likely to still render faster than arm64 until Embree is added.

For the remainder of the work, I will do the Cycles specific changes, the rest is being handled / coordinated by @Sebastián Barschkis (sebbas).

@James Monteath (jmonteath) Just added you to the discussion. The goal for us will be to finish all the infrastructure tasks before the 2.93 release.

@Howard Trickey (howardt), booleans seem to be working fine in a simple test here. I guess we'll hope there is no problem, and if an arm64 specific boolean bug pops up we know what to suspect.

@Brecht Van Lommel (brecht) Did you hand test a boolean with Exact solver picked? I think the current regression tests for Boolean and Modifiers only check the Fast mode (though I could be wrong). In any case, good news if it works as is. If you didn't update the library, I the library is properly adapting to using portable C code only rather than SIMD instructions.

Ah, I did not test 6.2.1, just the existing 2.6.0. I did a manual test with the exact solver, and ran the automated tests.

I guess we are not in a rush to update to 6.2.1, and by the time we do update it will hopefully will have had more testing. It would be good if there was an automated test for the exact solver.

I had asked before - will this help with SOC like Quartz64 or nvidia jetson Xavier also? as they are also arm64?

Yes, it also helps for those. However setting up a Linux arm64 build with all these optimizations is not as easy as a macOS arm64 build, since we do not provide precompiled libraries for that.