IntelOIDenoiser icon indicating copy to clipboard operation
IntelOIDenoiser copied to clipboard

macOS and Linux support?

Open MCotocel opened this issue 3 years ago • 6 comments

Is support for macOS and Linux planned?

MCotocel avatar Jan 13 '21 12:01 MCotocel

I would love to do it but unfortunately I don't have a Linux environment or a Mac to be able to make the builds. If you have such an environment available, and are feeling tech savvy, you could of course try compiling the app yourself as there isn't anything platform dependent about the code. The hardest part will probably be compiling OIIO but you may be able to get that from a package manager. Perhaps this thread about compiling the Nvidia version of the denoiser on Linux could be useful as the build code is similar.

DeclanRussell avatar Jan 13 '21 14:01 DeclanRussell

We made it work but it was rather uneasy.

It needed a few fixes in the code and updating SConstruct. The changes are in my fork

Here is basically the process we established:

brew install scons cmake git git-lfs tbb ispc openimageio (Restart terminal to update git path) git clone https://github.com/FlorentMasson/IntelOIDenoiser.git Follow instructions at https://www.openimagedenoise.org/downloads.html which are :

git clone --recursive https://github.com/OpenImageDenoise/oidn.git
mkdir oidn/build
cd oidn/build
cmake -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang ..
ccmake ..

Here make sure to set OIDN_APPS_OPENIMAGEIO to ON and CMAKE_OSX_DEPLOYMENT_TARGET to 10.0 image (18) Press c then g

make
cp -r ../include/OpenImageDenoise/* ../../IntelOIDenoiser/contrib/darwin/oidn/include/OpenImageDenoise/
mkdir -p ../../IntelOIDenoiser/contrib/darwin/oidn/lib
cp *.dylib ../../IntelOIDenoiser/contrib/darwin/oidn/lib
cd ../../IntelOIDenoiser
scons

On Apple Silicon we had extra steps

  • for some reason homebrew wasn't creating symlinks sudo ln -s /opt/homebrew/Cellar/tbb/2021.2.0/lib/libtbb.dylib /opt/homebrew/lib/libtbb.dylib sudo ln -s /opt/homebrew/Cellar/openimageio/2.2.15.1/include/OpenImageIO /opt/homebrew/include/OpenImageIO
  • fix from homebrew recipe needed in oidn's cmake https://github.com/OpenImageDenoise/oidn/issues/117

It was not really possible to include all libs along the executable like for windows, as building static libraries is harder on macos and all dynamic libraries come with a full path to dependencies (/usr/local or /opt/homebrew)

@DeclanRussell would you please consider integrating the fixes in main.cpp and changes in SConstruct in this repo? I tried not to break the windows build but I've not tested it. Also for references, I had to use a different version for oidn include files as they contain windows-specific directives that are not supported

FlorentMasson avatar Jun 18 '21 15:06 FlorentMasson

@FlorentMasson Nice work getting this working, its awesome! Thanks a bunch for the detailed build instructions too. I would be more than happy to integrate any changes needed for cross platform support. If you create a pull request, I'll take a look at it 😄

DeclanRussell avatar Jun 20 '21 16:06 DeclanRussell

It'd be great to get this working on Linux :)

unfa avatar Sep 01 '21 19:09 unfa

PS: I got it running. I am trying to denoise photos, but I don't see any visual effect on the images I input.

00:04:630 | Denoising complete in 46.758 seconds

unfa avatar Sep 01 '21 19:09 unfa

@unfa Glad to hear you got it working. Unfortunately this denoiser is not designed for photos, only computer generated images. See https://github.com/DeclanRussell/NvidiaAIDenoiser/issues/9 for a similar discussion (though with the Nvidia denoiser that is based on the same technique).

DeclanRussell avatar Sep 02 '21 10:09 DeclanRussell