Apple Silicon M1 Support

Does Blender still intend on supporting Apple Silicon M1 Chips?
The chips are very impressive performance wise and I and many other Apple users would love to see support for Apple ARM Chips as well as Metal optimisations.

Development seems to have stalled and would love to see official support from the Blender team!

Apple have not seen anything posted about it other than here where they mention that they have made the groundwork for Blender on Apple Silicon.

If Blender does not have the funds to update support for MacOS maybe we can set up a fund dedicated for Apple Silicon / Metal support. I’m positive the community would come together to fund this.

3 Likes

I am counting on Blender to fully support ARM64 and Metal. If not mistaken, they have never had the amount of funding and resources like today. Not saying it is easy, but probably totally doable if someone just said “Yes”. There is a big thread over here on the topic:

2 Likes

I guess the important question is how much effort is involved in proportion to the install base. Linux and Windows make up the large proportion of installs for blender, investing time in something used by a tiny percentage of the users is bad for blender. I reckon the best way to push this forwards is organise the mac users, and get them behind a dev who’s willing to do the work.

I kind of understand Your reasoning, but I disagree. Especially since Blender is not trying to maximise profits from sales, thus being forced to concentrate on where most users are.
Providing equally good support on all platforms is a good thing, it is what every artist using Blender can expect. Also, folks are already supporting Blender via the development fund – and in the meantime this is thankfully a substantial amount of money.

Profit in this case is the number of users who benifit. So it really depends on how much work is involved. if its allot then its a very bad usage of money as its not going to help as many people as say developing a new feature or fixing a bug.

Really the first step is finding out how much work there is. Then seeing where it fits in the development schedule (if it does). If its not planned then maybe crowd source it! (didn’t Apple do some work on it already?)

From what I understand, LLVM will compile the C/C++ in a snap so no problems there, the code will run natively on the system.
https://hub.packtpub.com/llvm-9-releases-with-official-risc-v-target-support-asm-goto-clang-9-and-more/

The real meaning however is how to get even better performance out of the CPU. Such as for example if you want to use a very specific CPU instruction set, such as done in SIMD math libraries.

But the general idea is that RISC cpus will gradually enter the market, even AMD announced having a direct competitor to the M1 for desktop pcs, and this shows that the transition will be gradual.

1 Like

We plan to add native support in 2.93, the relevant task is here:

15 Likes

I finally got a chance after the move to record a video on how well the ARM64 version of Blender works on the M1 Macs (Mac Mini in my case).

With the extremely high single core scores of the M1 chip paired with the mostly single core task in Blender, and married with the smaller instruction set of the ARM architecture, animating in Blender with a Mac Mini has become really powerful. :smiley:

I’m not sure if anyone at the BF has an M1 Mac to play around with yet, so I hope this video shows that minus rendering the M1 Mac paired with the ARM version of Blender is no joke. :flushed:

Tim

8 Likes

@brecht @StefanW
No rush on this… since 2.93 is in Alpha, just curious when an official ARM version may pop up on the Blender website for download? Will there be an Alpha version first or will it be when 2.93 goes into Beta?

Thanks for the work all of y’all do and staying true to the idea of compatibility for all platforms. It’s amazing to see the growth of Blender and the reach it is having across all 3D industries.

Tim

4 Likes

There is now a macOS arm64 build on:

We’re still waiting for the new buildbot infrastructure to build this automatically, for now we have a manual build here that will be updated less often. Please give it a test and report any bugs you find to the tracker.

9 Likes

Thank you, seriously!

I already said it, but I’ll say it again. If we thought you guys didn’t care about Macs… well, then y’all proved us completely wrong. Only OS with TWO official versions supported by the Blender Foundation!

Bravo, thanks again.
Tim

2 Likes

This is great news! Well done. I’ve been following discussion on arm64 for sometime and was unsure if this would be possible, but it’s great to see this progression because as we know Rosetta 2 can’t be relied on to work forever.

This might be a silly question, but by supporting arm64 natively, does this mean Blender inherently also support Metal rendering api under the hood? or can an app still be arm64 and use OpenGL/Vulcan rendering?

Anyway, well done, this is great to see.

Nothing changes regarding Metal/OpenGL/Vulkan.

I’m having trouble building Blender on my Macbook M1. I have the latest master branch and did a succesful “make update”. I get the following error:
leon@Leons-MacBook-Air blender % make

Configuring Blender in "/Users/leon/Blender-git/build_darwin" ...
-- The C compiler identification is AppleClang 12.0.0.12000032
-- The CXX compiler identification is AppleClang 12.0.0.12000032
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detected native architecture arm64.
objc[4348]: Class AMSupportURLConnectionDelegate is implemented in both ?? (0x2008cc188) and ?? (0x116ddc2b8). One of the two will be used. Which one is undefined.
objc[4348]: Class AMSupportURLSession is implemented in both ?? (0x2008cc1d8) and ?? (0x116ddc308). One of the two will be used. Which one is undefined.
-- Detected OS X 11.1 and Xcode 12.4 at /Applications/Xcode.app/Contents/Developer
-- SDKs Directory: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
-- Detected OSX_SYSROOT: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk
-- Found Git: /opt/homebrew/bin/git (found version "2.31.1") 
-- Performing Test SUPPORT_NEON_BUILD
-- Performing Test SUPPORT_NEON_BUILD - Success
-- Found ZLIB: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/usr/lib/libz.tbd (found version "1.2.11") 
-- Found BZip2: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/usr/lib/libbz2.tbd (found version "1.0.6") 
-- Looking for BZ2_bzCompressInit
-- Looking for BZ2_bzCompressInit - found
-- Found OpenAL: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/OpenAL.framework  
-- JACK not found, disabling WITH_JACK
CMake Error at build_files/cmake/platform/platform_apple.cmake:86 (message):
  Mac OSX requires pre-compiled libs at:
  '/Users/leon/Blender-git/blender/../lib/darwin_arm64'
Call Stack (most recent call first):
  CMakeLists.txt:938 (include)

It looks like the instructions/scripts might not be ready for general M1 usage yet. Can you check if anything is in that lib directory? Maybe the regular darwin x64 binaries were downloaded by mistake?

1 Like

Thanks. The darwin_arm64 lib was missing. Thanks to Alaska in this thread I managed to get it to start building: https://developer.blender.org/T78710

4 Likes