Compositor: Added denoising node
This node is built on Intel's OpenImageDenoise library.
Other denoisers could be integrated, for example Lukas' Cycles denoiser.
Compositor: Made OpenImageDenoise optional, added CMake and build_env files to find OIDN
Compositor: Fixed some warnings in the denoising operator
build_environment: Updated OpenImageDenoise to 0.8.1
build_environment: Updated OpenImageDenoise in `make deps` for macOS
Reviewers: sergey, jbakker, brecht
Reviewed By: brecht
Subscribers: YAFU, LazyDodo, Zen_YS, slumber, samgreen, tjvoll, yeus, ponomarovmax, getrad, coder.kalyan, vitos1k, Yegor, DeepBlender, kumaran7, Darkfie9825, aliasguru, aafra, ace_dragon, juang3d, pandrodor, cdog, lordodin, jtheninja, mavek, marcog, 5k1n2, Atair, rawalanche, 0o00o0oo, filibis, poor, lukasstockner97
Tags: #compositing
Differential Revision: https://developer.blender.org/D4304
2019-08-14 15:30:26 +02:00
|
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
|
|
index 70ec895..e616b63 100644
|
|
|
|
--- a/CMakeLists.txt
|
|
|
|
+++ b/CMakeLists.txt
|
|
|
|
@@ -178,7 +178,9 @@ set_property(TARGET ${PROJECT_NAME} PROPERTY SOVERSION "0")
|
|
|
|
## Open Image Denoise examples
|
|
|
|
## ----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
-add_subdirectory(examples)
|
|
|
|
+if(WITH_EXAMPLE)
|
|
|
|
+ add_subdirectory(examples)
|
|
|
|
+endif()
|
|
|
|
|
|
|
|
## ----------------------------------------------------------------------------
|
|
|
|
## Open Image Denoise install and packaging
|
|
|
|
Submodule mkl-dnn contains modified content
|
|
|
|
diff --git a/mkl-dnn/cmake/TBB.cmake b/mkl-dnn/cmake/TBB.cmake
|
|
|
|
index 0711e699..c14210b6 100644
|
|
|
|
--- a/mkl-dnn/cmake/TBB.cmake
|
|
|
|
+++ b/mkl-dnn/cmake/TBB.cmake
|
|
|
|
@@ -138,13 +138,13 @@ else()
|
|
|
|
set(TBB_LIBRARY_MALLOC TBB_LIBRARY_MALLOC-NOTFOUND)
|
|
|
|
if(APPLE)
|
|
|
|
find_path(TBB_INCLUDE_DIR tbb/task_scheduler_init.h PATHS ${TBB_ROOT}/include NO_DEFAULT_PATH)
|
|
|
|
- find_library(TBB_LIBRARY tbb PATHS ${TBB_ROOT}/lib NO_DEFAULT_PATH)
|
|
|
|
- find_library(TBB_LIBRARY_MALLOC tbbmalloc PATHS ${TBB_ROOT}/lib NO_DEFAULT_PATH)
|
|
|
|
+ find_library(TBB_LIBRARY tbb_static PATHS ${TBB_ROOT}/lib NO_DEFAULT_PATH)
|
|
|
|
+ find_library(TBB_LIBRARY_MALLOC tbbmalloc_static PATHS ${TBB_ROOT}/lib NO_DEFAULT_PATH)
|
|
|
|
else()
|
|
|
|
find_path(TBB_INCLUDE_DIR tbb/task_scheduler_init.h PATHS ${TBB_ROOT}/include NO_DEFAULT_PATH)
|
|
|
|
set(TBB_HINTS HINTS ${TBB_ROOT}/lib/intel64/gcc4.4 ${TBB_ROOT}/lib ${TBB_ROOT}/lib64 PATHS /usr/libx86_64-linux-gnu/)
|
|
|
|
- find_library(TBB_LIBRARY tbb ${TBB_HINTS})
|
|
|
|
- find_library(TBB_LIBRARY_MALLOC tbbmalloc ${TBB_HINTS})
|
|
|
|
+ find_library(TBB_LIBRARY tbb_static ${TBB_HINTS})
|
|
|
|
+ find_library(TBB_LIBRARY_MALLOC tbbmalloc_static ${TBB_HINTS})
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
|
|
|
|
diff '--ignore-matching-lines=:' -ur '--exclude=*.svn*' -u -r
|
|
|
|
--- a/cmake/install.cmake 2019-08-12 18:02:20.794402575 +0200
|
|
|
|
+++ b/cmake/install.cmake 2019-08-12 18:06:07.470045703 +0200
|
|
|
|
@@ -18,6 +18,13 @@
|
|
|
|
## Install library
|
|
|
|
## ----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
+if(UNIX)
|
|
|
|
+install(FILES
|
|
|
|
+ ${CMAKE_BINARY_DIR}/libOpenImageDenoise.a
|
|
|
|
+ ${CMAKE_BINARY_DIR}/libmkldnn.a
|
|
|
|
+ ${CMAKE_BINARY_DIR}/libcommon.a
|
|
|
|
+ DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
|
|
+else()
|
|
|
|
install(TARGETS ${PROJECT_NAME}
|
|
|
|
EXPORT
|
|
|
|
${PROJECT_NAME}_Export
|
|
|
|
@@ -38,6 +45,7 @@
|
|
|
|
DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT devel
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
+endif()
|
|
|
|
|
|
|
|
## ----------------------------------------------------------------------------
|
|
|
|
## Install headers
|
|
|
|
@@ -78,6 +86,7 @@
|
|
|
|
## Install CMake configuration files
|
|
|
|
## ----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
+if(NOT UNIX)
|
|
|
|
install(EXPORT ${PROJECT_NAME}_Export
|
|
|
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
|
|
|
|
#NAMESPACE ${PROJECT_NAME}::
|
|
|
|
@@ -92,3 +101,4 @@
|
|
|
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
|
|
|
|
COMPONENT devel
|
|
|
|
)
|
|
|
|
+endif()
|
|
|
|
diff '--ignore-matching-lines=:' -ur '--exclude=*.svn*' -u -r
|
|
|
|
--- a/CMakeLists.txt 2019-08-12 14:22:00.974078598 +0200
|
|
|
|
+++ b/CMakeLists.txt 2019-08-12 18:05:05.949057375 +0200
|
|
|
|
@@ -14,7 +14,11 @@
|
|
|
|
## limitations under the License. ##
|
|
|
|
## ======================================================================== ##
|
|
|
|
|
|
|
|
-cmake_minimum_required(VERSION 3.1)
|
|
|
|
+if(UNIX)
|
|
|
|
+ cmake_minimum_required(VERSION 3.1)
|
|
|
|
+else()
|
|
|
|
+ cmake_minimum_required(VERSION 3.13)
|
|
|
|
+endif()
|
|
|
|
|
|
|
|
set(OIDN_VERSION_MAJOR 1)
|
|
|
|
set(OIDN_VERSION_MINOR 0)
|
|
|
|
@@ -32,13 +36,8 @@
|
|
|
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake")
|
|
|
|
|
|
|
|
# Build as shared or static library
|
|
|
|
-if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.13.0")
|
|
|
|
- option(OIDN_STATIC_LIB "Build Open Image Denoise as a static library.")
|
|
|
|
- mark_as_advanced(CLEAR OIDN_STATIC_LIB)
|
|
|
|
-else()
|
|
|
|
- set(OIDN_STATIC_LIB OFF CACHE BOOL "Build Open Image Denoise as a static library." FORCE)
|
|
|
|
- mark_as_advanced(OIDN_STATIC_LIB)
|
|
|
|
-endif()
|
|
|
|
+option(OIDN_STATIC_LIB "Build Open Image Denoise as a static library.")
|
|
|
|
+mark_as_advanced(CLEAR OIDN_STATIC_LIB)
|
|
|
|
if(OIDN_STATIC_LIB)
|
|
|
|
set(OIDN_LIB_TYPE STATIC)
|
|
|
|
else()
|
2020-02-08 15:32:19 -07:00
|
|
|
diff -Naur orig/core/api.cpp external_openimagedenoise/core/api.cpp
|
|
|
|
--- orig/core/api.cpp 2019-07-19 08:37:04 -0600
|
|
|
|
+++ external_openimagedenoise/core/api.cpp 2020-01-21 15:10:56 -0700
|
|
|
|
@@ -15,7 +15,7 @@
|
|
|
|
// ======================================================================== //
|
|
|
|
|
|
|
|
#ifdef _WIN32
|
|
|
|
-# define OIDN_API extern "C" __declspec(dllexport)
|
|
|
|
+# define OIDN_API extern "C"
|
|
|
|
#else
|
|
|
|
# define OIDN_API extern "C" __attribute__ ((visibility ("default")))
|
|
|
|
#endif
|