Build: Upgrade OIDN to the release v2.3.3
This release brings several fixes that Blender no longer needs to patch manually, as well as support for various new and upcoming hardware. Pull Request: https://projects.blender.org/blender/blender/pulls/138171
This commit is contained in:
committed by
Nikita Sirgienko
parent
6562033a4a
commit
cfb8aa24b2
@@ -67,10 +67,7 @@ endif()
|
||||
set(ODIN_PATCH_COMMAND
|
||||
${PATCH_CMD} --verbose -p 1 -N -d
|
||||
${BUILD_DIR}/openimagedenoise/src/external_openimagedenoise <
|
||||
${PATCH_DIR}/oidn.diff &&
|
||||
${PATCH_CMD} --verbose -p 1 -N -d
|
||||
${BUILD_DIR}/openimagedenoise/src/external_openimagedenoise <
|
||||
${PATCH_DIR}/oidn_blackwell.diff
|
||||
${PATCH_DIR}/oidn.diff
|
||||
)
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
@@ -82,14 +79,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WIN32 AND BLENDER_PLATFORM_ARM)
|
||||
set(ODIN_PATCH_COMMAND ${ODIN_PATCH_COMMAND} &&
|
||||
${PATCH_CMD} --verbose -p 1 -N -d
|
||||
${BUILD_DIR}/openimagedenoise/src/external_openimagedenoise <
|
||||
${PATCH_DIR}/oidn_disable_dependentload.diff
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_openimagedenoise
|
||||
URL file://${PACKAGE_DIR}/${OIDN_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
|
||||
@@ -834,10 +834,10 @@ set(MATERIALX_HOMEPAGE https://github.com/AcademySoftwareFoundation/MaterialX)
|
||||
set(MATERIALX_LICENSE SPDX:Apache-2.0)
|
||||
set(MATERIALX_COPYRIGHT "Copyright Contributors to the MaterialX Project")
|
||||
|
||||
set(OIDN_VERSION 2.3.2)
|
||||
set(OIDN_VERSION 2.3.3)
|
||||
set(OIDN_NAME OpenImageDenoise)
|
||||
set(OIDN_URI https://github.com/OpenImageDenoise/oidn/releases/download/v${OIDN_VERSION}/oidn-${OIDN_VERSION}.src.tar.gz)
|
||||
set(OIDN_HASH ce4fa15ca6bfc4d4000653ef11049c11)
|
||||
set(OIDN_URI https://github.com/RenderKit/oidn/releases/download/v${OIDN_VERSION}/oidn-${OIDN_VERSION}.src.tar.gz)
|
||||
set(OIDN_HASH f7756731235b51dfb788787e2f7c9ee0)
|
||||
set(OIDN_HASH_TYPE MD5)
|
||||
set(OIDN_FILE oidn-${OIDN_VERSION}.src.tar.gz)
|
||||
set(OIDN_HOMEPAGE https://www.openimagedenoise.org/)
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt
|
||||
index 38f04e2..2b58ad6 100644
|
||||
index 057526d..059cdbd 100644
|
||||
--- a/core/CMakeLists.txt
|
||||
+++ b/core/CMakeLists.txt
|
||||
@@ -95,6 +95,7 @@ set_target_properties(OpenImageDenoise_core PROPERTIES
|
||||
@@ -94,6 +94,7 @@ set_target_properties(OpenImageDenoise_core PROPERTIES
|
||||
OUTPUT_NAME ${OIDN_LIBRARY_NAME}_core
|
||||
)
|
||||
|
||||
target_compile_definitions(OpenImageDenoise_core PRIVATE OIDN_LIBRARY_NAME="${OIDN_LIBRARY_NAME}")
|
||||
+target_compile_definitions(OpenImageDenoise_core PRIVATE SHARED_POSTFIX=\"$<$<CONFIG:Debug>:$<TARGET_PROPERTY:OpenImageDenoise_core,DEBUG_POSTFIX>>\")
|
||||
|
||||
target_link_libraries(OpenImageDenoise_core
|
||||
PUBLIC
|
||||
if(OIDN_LIBRARY_VERSIONED)
|
||||
set_target_properties(OpenImageDenoise_core PROPERTIES VERSION ${PROJECT_VERSION})
|
||||
diff --git a/core/module.cpp b/core/module.cpp
|
||||
index ba765be..19d67f8 100644
|
||||
index cafedbc..b7d7ff6 100644
|
||||
--- a/core/module.cpp
|
||||
+++ b/core/module.cpp
|
||||
@@ -29,7 +29,7 @@ OIDN_NAMESPACE_BEGIN
|
||||
@@ -23,9 +23,9 @@ index ba765be..19d67f8 100644
|
||||
#if defined(_WIN32)
|
||||
filename += ".dll";
|
||||
#else
|
||||
@@ -37,7 +37,8 @@ OIDN_NAMESPACE_BEGIN
|
||||
"." + toString(OIDN_VERSION_MINOR) +
|
||||
"." + toString(OIDN_VERSION_PATCH);
|
||||
@@ -39,7 +39,8 @@ OIDN_NAMESPACE_BEGIN
|
||||
const std::string versionStr = "";
|
||||
#endif
|
||||
#if defined(__APPLE__)
|
||||
- filename = "lib" + filename + versionStr + ".dylib";
|
||||
+ // BLENDER: version string is stripped on macOS.
|
||||
@@ -34,10 +34,10 @@ index ba765be..19d67f8 100644
|
||||
filename = "lib" + filename + ".so" + versionStr;
|
||||
#endif
|
||||
diff --git a/devices/CMakeLists.txt b/devices/CMakeLists.txt
|
||||
index 03937dc..8dcc236 100644
|
||||
index d43a68e..c878613 100644
|
||||
--- a/devices/CMakeLists.txt
|
||||
+++ b/devices/CMakeLists.txt
|
||||
@@ -66,6 +66,7 @@ if(OIDN_DEVICE_CUDA)
|
||||
@@ -67,6 +67,7 @@ if(OIDN_DEVICE_CUDA)
|
||||
-DOIDN_WARN_AS_ERRORS:BOOL=${OIDN_WARN_AS_ERRORS}
|
||||
-DOIDN_SANITIZER:STRING=${OIDN_SANITIZER}
|
||||
-DOIDN_DEVICE_CUDA_API:STRING=${OIDN_DEVICE_CUDA_API}
|
||||
@@ -45,7 +45,7 @@ index 03937dc..8dcc236 100644
|
||||
BUILD_ALWAYS TRUE
|
||||
DEPENDS
|
||||
OpenImageDenoise_core
|
||||
@@ -157,6 +158,8 @@ if(OIDN_DEVICE_HIP)
|
||||
@@ -158,6 +159,8 @@ if(OIDN_DEVICE_HIP)
|
||||
-DOIDN_API_NAMESPACE:STRING=${OIDN_API_NAMESPACE}
|
||||
-DOIDN_WARN_AS_ERRORS:BOOL=${OIDN_WARN_AS_ERRORS}
|
||||
-DOIDN_SANITIZER:STRING=${OIDN_SANITIZER}
|
||||
@@ -55,10 +55,10 @@ index 03937dc..8dcc236 100644
|
||||
DEPENDS
|
||||
OpenImageDenoise_core
|
||||
diff --git a/devices/hip/hip_device.cpp b/devices/hip/hip_device.cpp
|
||||
index 5842895..8272124 100644
|
||||
index 35c6291..5cc2d84 100644
|
||||
--- a/devices/hip/hip_device.cpp
|
||||
+++ b/devices/hip/hip_device.cpp
|
||||
@@ -93,10 +93,16 @@ OIDN_NAMESPACE_BEGIN
|
||||
@@ -97,11 +97,17 @@ OIDN_NAMESPACE_BEGIN
|
||||
{
|
||||
const std::string name = getArchName(prop);
|
||||
|
||||
@@ -68,7 +68,8 @@ index 5842895..8272124 100644
|
||||
return HIPArch::DL;
|
||||
+ // BLENDER: this comment is meant to generate a merge conflict if the code
|
||||
+ // here changes, so we know that hipSupportsDeviceOIDN should be updated.
|
||||
if (name == "gfx1100" || name == "gfx1101" || name == "gfx1102")
|
||||
if (name == "gfx1100" || name == "gfx1101" || name == "gfx1102" ||
|
||||
name == "gfx1200" || name == "gfx1201")
|
||||
return HIPArch::WMMA;
|
||||
+ // BLENDER: this comment is meant to generate a merge conflict if the code
|
||||
+ // here changes, so we know that hipSupportsDeviceOIDN should be updated.
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
diff -Naur orig/devices/cuda/CMakeLists.txt external_openimagedenoise/devices/cuda/CMakeLists.txt
|
||||
--- orig/devices/cuda/CMakeLists.txt
|
||||
+++ external_openimagedenoise/devices/cuda/CMakeLists.txt
|
||||
@@ -51,13 +52,15 @@
|
||||
set(OIDN_NVCC_SM75_FLAGS "-gencode arch=compute_75,code=sm_75")
|
||||
set(OIDN_NVCC_SM80_FLAGS "-gencode arch=compute_80,code=sm_80")
|
||||
set(OIDN_NVCC_SM90_FLAGS "-gencode arch=compute_90,code=sm_90")
|
||||
+set(OIDN_NVCC_SM100_FLAGS "-gencode arch=compute_100,code=sm_100")
|
||||
+set(OIDN_NVCC_SM120_FLAGS "-gencode arch=compute_120,code=sm_120")
|
||||
|
||||
set_source_files_properties(
|
||||
cuda_conv.cu
|
||||
cuda_device.cu
|
||||
cuda_engine.cu
|
||||
PROPERTIES COMPILE_FLAGS
|
||||
- "${OIDN_NVCC_SM70_FLAGS} ${OIDN_NVCC_SM75_FLAGS} ${OIDN_NVCC_SM80_FLAGS} ${OIDN_NVCC_SM90_FLAGS}"
|
||||
+ "${OIDN_NVCC_SM70_FLAGS} ${OIDN_NVCC_SM75_FLAGS} ${OIDN_NVCC_SM80_FLAGS} ${OIDN_NVCC_SM90_FLAGS} ${OIDN_NVCC_SM100_FLAGS} ${OIDN_NVCC_SM120_FLAGS}"
|
||||
)
|
||||
|
||||
set_source_files_properties(
|
||||
@@ -72,7 +75,7 @@
|
||||
|
||||
set_source_files_properties(
|
||||
cutlass_conv_sm80.cu
|
||||
- PROPERTIES COMPILE_FLAGS "${OIDN_NVCC_SM80_FLAGS} ${OIDN_NVCC_SM90_FLAGS}"
|
||||
+ PROPERTIES COMPILE_FLAGS "${OIDN_NVCC_SM80_FLAGS} ${OIDN_NVCC_SM90_FLAGS} ${OIDN_NVCC_SM100_FLAGS} ${OIDN_NVCC_SM120_FLAGS}"
|
||||
)
|
||||
|
||||
add_library(OpenImageDenoise_device_cuda SHARED ${OIDN_CUDA_SOURCES} ${OIDN_GPU_SOURCES} ${OIDN_RESOURCE_FILE})
|
||||
diff -Naur orig/devices/cuda/cuda_device.h external_openimagedenoise/devices/cuda/cuda_device.h
|
||||
--- orig/devices/cuda/cuda_device.h
|
||||
+++ external_openimagedenoise/devices/cuda/cuda_device.h
|
||||
@@ -50,7 +50,7 @@
|
||||
|
||||
// Supported compute capabilities
|
||||
static constexpr int minSMArch = 70;
|
||||
- static constexpr int maxSMArch = 99;
|
||||
+ static constexpr int maxSMArch = 120;
|
||||
|
||||
int deviceID = 0;
|
||||
#if defined(OIDN_DEVICE_CUDA_API_DRIVER)
|
||||
@@ -1,29 +0,0 @@
|
||||
diff --git a/cmake/oidn_platform.cmake b/cmake/oidn_platform.cmake
|
||||
index d5cc45e..24fcd5b 100644
|
||||
--- a/cmake/oidn_platform.cmake
|
||||
+++ b/cmake/oidn_platform.cmake
|
||||
@@ -232,15 +232,15 @@ if(MSVC)
|
||||
# Enable control flow guard
|
||||
append(OIDN_C_CXX_FLAGS "/guard:cf")
|
||||
|
||||
- if(WIN32)
|
||||
- if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
||||
- append(CMAKE_EXE_LINKER_FLAGS "/DEPENDENTLOADFLAG:0x2000")
|
||||
- append(CMAKE_SHARED_LINKER_FLAGS "/DEPENDENTLOADFLAG:0x2000")
|
||||
- elseif(CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM")
|
||||
- append(CMAKE_EXE_LINKER_FLAGS "/Qoption,link,/DEPENDENTLOADFLAG:0x2000")
|
||||
- append(CMAKE_SHARED_LINKER_FLAGS "/Qoption,link,/DEPENDENTLOADFLAG:0x2000")
|
||||
- endif()
|
||||
- endif()
|
||||
+ #if(WIN32)
|
||||
+ # if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
||||
+ # append(CMAKE_EXE_LINKER_FLAGS "/DEPENDENTLOADFLAG:0x2000")
|
||||
+ # append(CMAKE_SHARED_LINKER_FLAGS "/DEPENDENTLOADFLAG:0x2000")
|
||||
+ # elseif(CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM")
|
||||
+ # append(CMAKE_EXE_LINKER_FLAGS "/Qoption,link,/DEPENDENTLOADFLAG:0x2000")
|
||||
+ # append(CMAKE_SHARED_LINKER_FLAGS "/Qoption,link,/DEPENDENTLOADFLAG:0x2000")
|
||||
+ # endif()
|
||||
+ #endif()
|
||||
else()
|
||||
append(OIDN_C_CXX_FLAGS_RELEASE "-fstack-protector")
|
||||
|
||||
Reference in New Issue
Block a user