Skip to content
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

Apple Silicon/M1 Support #607

Closed
ThatGuySam opened this issue Apr 21, 2021 · 20 comments
Closed

Apple Silicon/M1 Support #607

ThatGuySam opened this issue Apr 21, 2021 · 20 comments
Labels
Milestone

Comments

@ThatGuySam
Copy link

Problem

Describe the problem or suggestion here.

Expected behavior: Natron has a natively compatible binary for Apple SIlicon (ARM64)

Actual behavior: Natron does have a natively compatible binary for Apple SIlicon (ARM64)

This is mostly a feature request as well as a request on info with Rosetta 2 translation support as I do not possess an Apple Silicon Mac currently.

You can test the Mac App for native support here: https://doesitarm.com/apple-silicon-app-test/

You can also test on Mac OS by running the file command on the binary in terminal

Steps to Reproduce

  1. Open https://doesitarm.com/apple-silicon-app-test/
  2. Test the latest Mac version of the app

Screen Shot 2021-04-21 at 12 13 14 PM

Versions

  • Natron version/commit (they can be retrieved from the About Window): 2.4.0
  • OS version: macOS Big Sur
@devernay devernay added func:buildsystem type:feature New feature or request labels Apr 21, 2021
@devernay
Copy link
Member

devernay commented Apr 21, 2021

This requires setting up a build system and testing. If anyone wants to try it, feel free to help!

I don't have time to do that, and there are several reasons for this (besides the fact that I don't own a Silicon mac).

The main issue is that Natron depends on a lot of third-party software. The best way to build these is currently using MacPorts, and it's better if we wait for a few months for third-party packages to stabilize before starting that (see https://trac.macports.org/wiki/BigSurProblems). I don't want to go into having to fix each individual dependency.

Rosetta2 should work out of the box, though. Can anyone test?

Before we jump to providing a Silicon or universal build, we will probably do a 10.12 build, which will be much easier and will help fixing #606 (which also affects Big Sur).

Also note that Apple is still selling intel-based macs (and will probably do for a while).

@ThatGuySam
Copy link
Author

ThatGuySam commented Apr 21, 2021

That's understandable. I figured I would start the issue since I couldn't find any reference to any kind of Apple SIlicon support yet.

Here's the screenshot template I like to use for people to verify Rosetta 2 support: ThatGuySam/doesitarm#358 (comment)

@devernay
Copy link
Member

Anyone who tests that should use the binary I produced for 10.15 (which fixes a major performance issue on Big Sur)

@rodlie
Copy link
Contributor

rodlie commented Jun 22, 2021

Qt 6.2 will support "Apple Silicon". It's up to the (Qt) community to backport that to 5.15. Getting it to work in Qt4 will probably be too much work(?).

https://www.qt.io/blog/qt-on-apple-silicon

@devernay
Copy link
Member

@devernay devernay changed the title Apple Silicon Support Apple Silicon/M1 Support Aug 28, 2021
@devernay
Copy link
Member

devernay commented Oct 2, 2021

I did an initial investigation by trying to cross-compile on my intel Mac.
The conclusion is that I need access to M1 hardware to start working on this, because a lot of dependencies don't cross-compile easily from macOS/x86_64.
If someone is interested, pleas give me access to an M1 machine where I would have enough control (I need to install Wcode and MacPorts), either physically (I'm in Seattle) or remotely.

Of course, hardware donation would be gladly accepted :-)

@devernay
Copy link
Member

Qt5 now builds on arm64 (M1) https://trac.macports.org/ticket/62059 , so Natron 2.6 could be built for M1.

it's just a matter of making the build and testing it. Unfortunately I don't have access to an M1 machine

@devernay devernay added this to the 2.6 milestone Jan 12, 2022
@devernay
Copy link
Member

I now have a Mac M1 machine, and Natron builds and runs with Qt5. There is still work to do on packaging before distribution.

@devernay
Copy link
Member

devernay commented Dec 8, 2022

@ThatGuySam please test the native Apple Silicon version from https://github.com/NatronGitHub/Natron/releases/tag/v2.6.0-alpha1

I had a very hard time with code signing, which seems to be a requirement on ARM, so I'm not sure it will work. Please report here if it does or doesn't.

@ahemberger
Copy link

Hi;

I just tried downloading and installing the 2.6.0 alpha1 version (which suggests leaving comments here if I experience issues, so here I am!). I tried installing both the x86 and arm64 versions for OS12 (though I am currently using Ventura, OS13.1). Neither launched successfully for me; both yield an error saying that the Natron app package is damaged.

Thanks for all your continued work on this project, it really is appreciated.

@devernay
Copy link
Member

devernay commented Jan 20, 2023

After moving Natron.app to the applications folder, did you right click->open (instead of double-click)?

@devernay
Copy link
Member

devernay commented Jan 20, 2023

Also check in "Systems Preferences->Security & Privacy->Allow apps downloaded from" that "Anywhere" is checked, and check in that same window for a message about Natron if launching Natron fails

@devernay
Copy link
Member

@ahemberger (ping)

@ahemberger
Copy link

Screenshot 2023-04-11 at 2 58 19 PM

@rodlie
Copy link
Contributor

rodlie commented Apr 11, 2023

right-click and select open (you might need to do this twice).

@ahemberger
Copy link

Ok that indeed seems to successfully launch the UI.

@devernay
Copy link
Member

The reason for this is that is that we don't want to pay Apple to be able to distribute free and open source software. Everything is ready for the day Apple offers us a developer license.

@Windows81
Copy link

Windows81 commented Jul 10, 2023

Natron beta only starts whenever I download and insert in the Natorn folder a DirectX build of opengl32.dll or something. However, it shows a white screen. I'm using Windows 11.

Natron Version 2.6
(C) 2018-2023 The Natron developers
(C) 2013-2018 INRIA and Alexandre Gauthier-Foichat
>>>Use the --help or -h option to print usage.<<<
Py_SetPythonHome("C:\Program Files\Natron\bin\..")
PYTHONPATH set to C:\Program Files\Natron\bin\..\lib\python310.zip;C:\Program Files\Natron\bin\..\lib\python3.10;C:\Program Files\Natron\bin\..\lib\python3.10\lib-dynload;C:\Program Files\Natron\bin\..\lib\python3.10\site-packages;C:\Program Files\Natron\bin\..\Plugins
Py_Initialize()
PATH is C:\Program Files\PowerShell\7;C:\Program Files (x86)\MSBuild\14.0\bin\amd64\;C:\Program Files\mingw64\bin;C:\Program Files\Python311\Scripts\;C:\Program Files\Python311\;C:\Program Files\Python310\Scripts\;C:\Program Files\Python310\;C:\Users\USERNAME\AppData\Roaming\Python\Python311\Scripts;C:\Program Files (x86)\mingw32\bin;C:\Program Files\Git\usr\bin;C:\Program Files\ImageMagick-7.0.10-Q16-HDRI;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\PuTTY\;C:\WINDOWS\System32\OpenSSH\;C:\Users\USERNAME\.windows-build-tools\python27\;C:\Users\USERNAME\AppData\Local\Microsoft\WindowsApps;C:\Users\USERNAME\AppData\Local\Programs\Microsoft VS Code\bin;C:\Program Files\Git\cmd;C:\Program Files\audiowaveform;C:\Program Files;C:\Users\USERNAME;C:\Users\USERNAME\AppData\Roaming\npm;C:\Program Files\7-Zip;C:\Program Files\VideoLAN\VLC;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Microsoft Network Monitor 3\;C:\Program Files\Git LFS;C:\Program Files\mkcert;C:\ProgramData\Affinity\Photo\1.0\Plugins\gmic;C:\Program Files\ffmpeg\bin;C:\Program Files\nodejs\;C:\Program Files\AnyBurn;C:\Program Files\Shotcut;C:\Program Files\dnSpy;C:\Program Files\dotnet\;C:\Program Files\Zenity;C:\Program Files\gs\gs10.00.0\bin;C:\Program Files\MonaServer_Win64;C:\Program Files (x86)\Enhanced CTorrent dnh3.3.2;C:\Program Files\android-platform-tools;C:\Users\USERNAME\AppData\Local\Chromium\Application;C:\Program Files (x86)\clisp-2.49;C:\Program Files\swipl\bin;C:\Program Files\jp-windows-amd64;C:\Program Files\rbxmk;C:\Program Files\remodel-0.11.0-windows-x86_64;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\ProgramData\chocolatey\bin;C:\Program Files\Calibre2\;C:\Program Files\GitHub CLI\;C:\Program Files\PowerShell\7\;C:\Users\USERNAME\.cargo\bin;C:\Program Files\VideoLAN\VLC\;C:\Users\USERNAME\AppData\Roaming\Python\Python310\Scripts;C:\Users\USERNAME\AppData\Local\Programs\Python\Python38\Scripts;C:\Users\USERNAME\.deta\bin;C:\Users\USERNAME\AppData\Local\Programs\VSCodium\bin;C:\Users\USERNAME\AppData\Local\Programs\MiKTeX\miktex\bin\x64\;C:\Program Files\Natron\bin\
PYTHONPATH is C:\Program Files\Natron\bin\..\lib\python310.zip;C:\Program Files\Natron\bin\..\lib\python3.10;C:\Program Files\Natron\bin\..\lib\python3.10\lib-dynload;C:\Program Files\Natron\bin\..\lib\python3.10\site-packages;C:\Program Files\Natron\bin\..\Plugins
PYTHONHOME is (null)
Py_DebugFlag is 0
Py_VerboseFlag is 0
Py_InteractiveFlag is 0
Py_InspectFlag is 0
Py_OptimizeFlag is 0
Py_NoSiteFlag is 0
Py_BytesWarningFlag is 0
Py_FrozenFlag is 0
Py_HashRandomizationFlag is 1
Py_IsolatedFlag is 0
Py_QuietFlag is 0
Py_IgnoreEnvironmentFlag is 0
Py_DontWriteBytecodeFlag is 0
Py_NoUserSiteDirectory is 1
Py_GetProgramName is C:\Program Files\Natron\bin\Natron.exe
Py_GetPrefix is C:\Program Files\Natron\bin\..
Py_GetExecPrefix is C:\Program Files\Natron\bin\..
Py_GetProgramFullPath is C:\Program Files\Natron\bin\Natron.exe
Py_GetPath is C:\Program Files\Natron\bin\..\lib\python310.zip;C:\Program Files\Natron\bin\..\lib\python3.10;C:\Program Files\Natron\bin\..\lib\python3.10\lib-dynload;C:\Program Files\Natron\bin\..\lib\python3.10\site-packages;C:\Program Files\Natron\bin\..\Plugins;C:\Program Files\Natron\bin\..\lib\python310.zip;C:\Program Files\Natron\bin\..\lib\python3.10;C:\Program Files\Natron\bin\..\lib\python3.10\lib-dynload;
Py_GetPythonHome is C:\Program Files\Natron\bin\..
'3.10.11 (main, Apr  7 2023, 17:44:59)  [GCC 12.2.0 64 bit (AMD64)]'
'C:\\Program Files\\Natron\\bin\\Natron.exe'
'C:\\Program Files\\Natron\\bin\\..'
'C:\\Program Files\\Natron\\bin\\..'
'lib'
'C:\\Program Files\\Natron\\bin\\Natron.exe'
'C:\\Program Files\\Natron\\bin\\..'
'C:\\Program Files\\Natron\\bin\\..'
  sys.path = [
    'C:\\Program Files\\Natron\\bin',
    'C:\\Program Files\\Natron\\lib\\python310.zip',
    'C:\\Program Files\\Natron\\lib\\python3.10',
    'C:\\Program Files\\Natron\\lib\\python3.10\\lib-dynload',
    'C:\\Program Files\\Natron\\lib\\python3.10\\site-packages',
    'C:\\Program Files\\Natron\\Plugins',
    'C:\\Program Files\\Natron\\bin',
  ]
Python library is in C:\Program Files\Natron\Lib\site-packages
qt.qpa.fonts: Unable to open default EUDC font: "C:\\WINDOWS\\FONTS\\EUDC.TTE"
Info: init.py script not loaded (this is not an error)
Info: initGui.py script not loaded (this is not an error)
Failed to make context current.
Failed to make context current.
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
Failed to make context current.
QOpenGLWidget: Failed to make context current
Failed to make context current.
QOpenGLWidget: Failed to make context current
Failed to make context current.
QOpenGLWidget: Failed to make context current
Failed to make context current.
QOpenGLWidget: Failed to make context current
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
Failed to make context current.
QOpenGLWidget: Failed to make context current
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
Loading project: C:/Users/USERNAME/Videos/Projects/Innovation/Petrol.ntp
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
Failed to make context current.
QOpenGLWidget: Failed to make context current
Failed to make context current.
QOpenGLWidget: Failed to make context current
Failed to make context current.
QOpenGLWidget: Failed to make context current
Failed to make context current.
QOpenGLWidget: Failed to make context current
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
Failed to make context current.
QOpenGLWidget: Failed to make context current
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed
qt.qpa.backingstore: composeAndFlush: makeCurrent() failed

@rodlie
Copy link
Contributor

rodlie commented Jul 10, 2023

Looks like you don't have a proper graphics card driver.

@An-m1654
Copy link

An-m1654 commented Feb 8, 2024

Natron 2.6-pre builds (with Apple Silicon support)
Does it start yes/no? (Yes)
Can you do basic work with this version yes/no? (yes)
If you get a crash, please report with the crash details. (No crash)

The latest release can not use Ros 2
The Green box's cross (X) isn't very visible

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

No branches or pull requests

7 participants