diff --git a/build_files/build_environment/cmake/openimagedenoise.cmake b/build_files/build_environment/cmake/openimagedenoise.cmake index e3fdd557db6..6888111b53c 100644 --- a/build_files/build_environment/cmake/openimagedenoise.cmake +++ b/build_files/build_environment/cmake/openimagedenoise.cmake @@ -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} diff --git a/build_files/build_environment/cmake/versions.cmake b/build_files/build_environment/cmake/versions.cmake index c3099c5411a..06c530895d7 100644 --- a/build_files/build_environment/cmake/versions.cmake +++ b/build_files/build_environment/cmake/versions.cmake @@ -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/) diff --git a/build_files/build_environment/patches/oidn.diff b/build_files/build_environment/patches/oidn.diff index c84fc663de1..e38cf99477e 100644 --- a/build_files/build_environment/patches/oidn.diff +++ b/build_files/build_environment/patches/oidn.diff @@ -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=\"$<$:$>\") - 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. diff --git a/build_files/build_environment/patches/oidn_blackwell.diff b/build_files/build_environment/patches/oidn_blackwell.diff deleted file mode 100644 index dd7ac71dc60..00000000000 --- a/build_files/build_environment/patches/oidn_blackwell.diff +++ /dev/null @@ -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) diff --git a/build_files/build_environment/patches/oidn_disable_dependentload.diff b/build_files/build_environment/patches/oidn_disable_dependentload.diff deleted file mode 100644 index 94df47856fa..00000000000 --- a/build_files/build_environment/patches/oidn_disable_dependentload.diff +++ /dev/null @@ -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") -