Blender 2.9 CUDA on Mac

I am very grateful for helping me to succeed Hugo!
It’s working successfully !!!

2 Likes

Hey Hugo, could you go into a bit more detail on this?

I managed to get a 2.93 Alpha build before, but now when I try to update & build again, I’m getting this error:

Configuring Blender in “/Users/joeyvfx/blender-git/build_darwin” …
– Detected OS X 10.14 and Xcode 10.1 at /Applications/Xcode.app
– OSX_SYSROOT_PREFIX: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform
– Detected OSX_SYSROOT: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk
CMake Error at build_files/cmake/platform/platform_apple.cmake:160 (message):
Python executable missing:
/Users/joeydeutsch/blender-git/blender/…/lib/darwin/python/bin/python3.7m
Call Stack (most recent call first):
CMakeLists.txt:917 (include)

Does the python version have anything to do with this? I’d love to know what you did to get that working. Thanks!

It’s because CMakeCache.txt has old variables/paths. Delete the file and start over.

The python3.9 lib is imported by cmake update (lib/darwin/python/lib/libpython3.9.a)… hopefully deleting CMakeCache.txt will work for you, but it didn’t for me… Instead I added the file blender/intern/ghost/intern/GHOST_missingSymbolsCocoa.mm, and put the following code in it:

#import <Cocoa/Cocoa.h>

#include <cstdlib>
using std::size_t;

bool isPlatformVersionAtLeast(size_t major, size_t minor = 0, size_t patch = 0 ) {
   const NSOperatingSystemVersion version = {
       .majorVersion = static_cast<NSInteger>(major),
       .minorVersion = static_cast<NSInteger>(minor),
       .patchVersion = static_cast<NSInteger>(patch),
   };
   // isOperatingSystemAtLeastVersion vs isOSVersionAtLeast
   return [[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:version];
}

extern "C" {
  bool __isPlatformVersionAtLeast(size_t major, size_t minor = 0, size_t patch = 0) {
    return isPlatformVersionAtLeast(major, minor, patch);
  }
}

Then I added a conditional compile of the new file in the blender/intern/ghost/CMakeLists.txt (around line 410):

if(APPLE)
  list(APPEND SRC
    intern/GHOST_SystemPathsCocoa.h
    intern/GHOST_SystemPathsCocoa.mm
    if(WITH_OLDOSX)
      intern/GHOST_missingSymbolsCocoa.mm
    endif()
  )

And added WITH_OLDOSX in the build command.
By the way can someone explain to me how to create a new extern lib that does get linked? I could get the code compiled and put in a lib as an extern section, but just not get the linker to pick it up during the final link.

Thank you Hugo, I managed to build it successfully with your instructions!
Although I installed cmake from a downloaded .dmg + manually add to paths because brew through me an error on this one, and after a few trials it started a potent brew of errors.
The git clone https://git.blender.org/blender.git brought me the 3.0.0 Alpha branch but it worked.
Enabling OptiX denoiser crashed my computer and we’ll probably never get the 7.x SDK on mac to build with OptiX… I have a GTX 1060, and Optix denoiser works on Linux… :slight_smile: