diff options
-rw-r--r-- | intern/cycles/app/CMakeLists.txt | 28 | ||||
-rw-r--r-- | intern/cycles/cmake/external_libs.cmake | 108 | ||||
-rw-r--r-- | intern/cycles/cmake/macros.cmake | 41 | ||||
-rw-r--r-- | intern/cycles/device/CMakeLists.txt | 1 | ||||
-rw-r--r-- | intern/cycles/hydra/CMakeLists.txt | 18 | ||||
-rw-r--r-- | intern/cycles/hydra/plugin.cpp | 2 | ||||
-rw-r--r-- | intern/cycles/hydra/render_delegate.cpp | 3 | ||||
-rw-r--r-- | intern/cycles/scene/scene.h | 2 | ||||
-rw-r--r-- | intern/cycles/test/CMakeLists.txt | 9 | ||||
-rw-r--r-- | intern/cycles/util/system.cpp | 1 | ||||
-rw-r--r-- | intern/cycles/util/version.h | 8 |
11 files changed, 141 insertions, 80 deletions
diff --git a/intern/cycles/app/CMakeLists.txt b/intern/cycles/app/CMakeLists.txt index 484d99c5ca7..872a95ed5a6 100644 --- a/intern/cycles/app/CMakeLists.txt +++ b/intern/cycles/app/CMakeLists.txt @@ -11,7 +11,7 @@ set(INC set(INC_SYS ) -set(LIBRARIES +set(LIB cycles_device cycles_kernel cycles_scene @@ -33,27 +33,23 @@ if(WITH_ALEMBIC) endif() if(WITH_CYCLES_OSL) - list(APPEND LIBRARIES cycles_kernel_osl) + list(APPEND LIB cycles_kernel_osl) endif() if(CYCLES_STANDALONE_REPOSITORY) - list(APPEND LIBRARIES extern_sky) + list(APPEND LIB extern_sky) else() - list(APPEND LIBRARIES bf_intern_sky) + list(APPEND LIB bf_intern_sky) endif() if(WITH_CYCLES_STANDALONE AND WITH_CYCLES_STANDALONE_GUI) add_definitions(${GL_DEFINITIONS}) - list(APPEND INC_SYS - ${GLEW_INCLUDE_DIR} - ${SDL2_INCLUDE_DIRS} - ) - list(APPEND LIBRARIES - ${CYCLES_GL_LIBRARIES} - ${SDL2_LIBRARIES} - ) + list(APPEND INC_SYS ${GLEW_INCLUDE_DIR} ${SDL2_INCLUDE_DIRS}) + list(APPEND LIB ${CYCLES_GL_LIBRARIES} ${CYCLES_GLEW_LIBRARIES} ${SDL2_LIBRARIES}) endif() +cycles_external_libraries_append(LIB) + # Common configuration. include_directories(${INC}) @@ -84,8 +80,7 @@ if(WITH_CYCLES_STANDALONE) add_executable(cycles ${SRC} ${INC} ${INC_SYS}) unset(SRC) - target_link_libraries(cycles ${LIBRARIES}) - cycles_target_link_libraries(cycles) + target_link_libraries(cycles PRIVATE ${LIB}) if(APPLE) if(WITH_OPENCOLORIO) @@ -128,9 +123,12 @@ if(WITH_CYCLES_CUBIN_COMPILER) set(INC ../../../extern/cuew/include ) + set(LIB + ) + cycles_external_libraries_append(LIB) add_executable(cycles_cubin_cc ${SRC}) include_directories(${INC}) - cycles_target_link_libraries(cycles_cubin_cc) + target_link_libraries(cycles_cubin_cc PRIVATE ${LIB}) unset(SRC) unset(INC) endif() diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake index 3ee92b7be88..0924b83201f 100644 --- a/intern/cycles/cmake/external_libs.cmake +++ b/intern/cycles/cmake/external_libs.cmake @@ -19,7 +19,11 @@ endmacro() if(CYCLES_STANDALONE_REPOSITORY) if(APPLE) - set(_cycles_lib_dir "${CMAKE_SOURCE_DIR}/../lib/darwin") + if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64") + set(_cycles_lib_dir "${CMAKE_SOURCE_DIR}/../lib/darwin") + else() + set(_cycles_lib_dir "${CMAKE_SOURCE_DIR}/../lib/darwin_arm64") + endif() elseif(WIN32) if(CMAKE_CL_64) set(_cycles_lib_dir "${CMAKE_SOURCE_DIR}/../lib/win64_vc15") @@ -48,18 +52,24 @@ if(CYCLES_STANDALONE_REPOSITORY) endif() endif() + if(DEFINED _cycles_lib_dir) + message(STATUS "Using precompiled libraries at ${_cycles_lib_dir}") + endif() + # Avoid namespace pollustion. unset(LIBDIR_NATIVE_ABI) unset(LIBDIR_CENTOS7_ABI) endif() if(EXISTS ${_cycles_lib_dir}) + _set_default(ALEMBIC_ROOT_DIR "${_cycles_lib_dir}/alembic") _set_default(BOOST_ROOT "${_cycles_lib_dir}/boost") _set_default(BLOSC_ROOT_DIR "${_cycles_lib_dir}/blosc") _set_default(EMBREE_ROOT_DIR "${_cycles_lib_dir}/embree") _set_default(GLEW_ROOT_DIR "${_cycles_lib_dir}/glew") _set_default(JPEG_ROOT "${_cycles_lib_dir}/jpeg") _set_default(LLVM_ROOT_DIR "${_cycles_lib_dir}/llvm") + _set_default(CLANG_ROOT_DIR "${_cycles_lib_dir}/llvm") _set_default(OPENCOLORIO_ROOT_DIR "${_cycles_lib_dir}/opencolorio") _set_default(OPENEXR_ROOT_DIR "${_cycles_lib_dir}/openexr") _set_default(OPENIMAGEDENOISE_ROOT_DIR "${_cycles_lib_dir}/openimagedenoise") @@ -110,7 +120,7 @@ if(CYCLES_STANDALONE_REPOSITORY) set(ZLIB_LIBRARY ${_cycles_lib_dir}/zlib/lib/libz_st.lib) set(ZLIB_DIR ${_cycles_lib_dir}/zlib) set(ZLIB_FOUND ON) - else() + elseif(NOT APPLE) find_package(ZLIB REQUIRED) endif() endif() @@ -179,6 +189,10 @@ if(CYCLES_STANDALONE_REPOSITORY) find_package(JPEG REQUIRED) find_package(TIFF REQUIRED) + + if(EXISTS ${_cycles_lib_dir}) + set(PNG_NAMES png16 libpng16 png libpng) + endif() find_package(PNG REQUIRED) endif() @@ -252,6 +266,7 @@ if(CYCLES_STANDALONE_REPOSITORY AND WITH_CYCLES_OSL) else() find_package(OSL REQUIRED) find_package(LLVM REQUIRED) + find_package(Clang REQUIRED) endif() endif() @@ -312,12 +327,14 @@ if(CYCLES_STANDALONE_REPOSITORY) set(BOOST_DEBUG_POSTFIX "vc141-mt-gd-x64-${BOOST_VERSION}.lib") set(BOOST_LIBRARIES optimized ${BOOST_ROOT}/lib/libboost_date_time-${BOOST_POSTFIX} + optimized ${BOOST_ROOT}/lib/libboost_iostreams-${BOOST_POSTFIX} optimized ${BOOST_ROOT}/lib/libboost_filesystem-${BOOST_POSTFIX} optimized ${BOOST_ROOT}/lib/libboost_regex-${BOOST_POSTFIX} optimized ${BOOST_ROOT}/lib/libboost_system-${BOOST_POSTFIX} optimized ${BOOST_ROOT}/lib/libboost_thread-${BOOST_POSTFIX} optimized ${BOOST_ROOT}/lib/libboost_chrono-${BOOST_POSTFIX} debug ${BOOST_ROOT}/lib/libboost_date_time-${BOOST_DEBUG_POSTFIX} + debug ${BOOST_ROOT}/lib/libboost_iostreams-${BOOST_DEBUG_POSTFIX} debug ${BOOST_ROOT}/lib/libboost_filesystem-${BOOST_DEBUG_POSTFIX} debug ${BOOST_ROOT}/lib/libboost_regex-${BOOST_DEBUG_POSTFIX} debug ${BOOST_ROOT}/lib/libboost_system-${BOOST_DEBUG_POSTFIX} @@ -330,7 +347,7 @@ if(CYCLES_STANDALONE_REPOSITORY) debug ${BOOST_ROOT}/lib/libboost_wave-${BOOST_DEBUG_POSTFIX}) endif() else() - set(__boost_packages filesystem regex system thread date_time) + set(__boost_packages iostreams filesystem regex system thread date_time) if(WITH_CYCLES_OSL) list(APPEND __boost_packages wave) endif() @@ -517,17 +534,42 @@ endif() # GLEW ########################################################################### -if(CYCLES_STANDALONE_REPOSITORY) - if(MSVC AND EXISTS ${_cycles_lib_dir}) - set(GLEW_LIBRARY "${_cycles_lib_dir}/opengl/lib/glew.lib") - set(GLEW_INCLUDE_DIR "${_cycles_lib_dir}/opengl/include") - add_definitions(-DGLEW_STATIC) +if((WITH_CYCLES_STANDALONE AND WITH_CYCLES_STANDALONE_GUI) OR + WITH_CYCLES_HYDRA_RENDER_DELEGATE) + if(CYCLES_STANDALONE_REPOSITORY) + if(MSVC AND EXISTS ${_cycles_lib_dir}) + set(GLEW_LIBRARY "${_cycles_lib_dir}/opengl/lib/glew.lib") + set(GLEW_INCLUDE_DIR "${_cycles_lib_dir}/opengl/include") + add_definitions(-DGLEW_STATIC) + else() + find_package(GLEW REQUIRED) + endif() + + set(CYCLES_GLEW_LIBRARIES ${GLEW_LIBRARY}) else() - find_package(GLEW REQUIRED) + # Workaround for unconventional variable name use in Blender. + set(GLEW_INCLUDE_DIR "${GLEW_INCLUDE_PATH}") + set(CYCLES_GLEW_LIBRARIES bf_intern_glew_mx ${BLENDER_GLEW_LIBRARIES}) + endif() +endif() + +########################################################################### +# Alembic +########################################################################### + +if(WITH_CYCLES_ALEMBIC) + if(CYCLES_STANDALONE_REPOSITORY) + if(MSVC AND EXISTS ${_cycles_lib_dir}) + set(ALEMBIC_INCLUDE_DIRS ${_cycles_lib_dir}/alembic/include) + set(ALEMBIC_LIBRARIES + optimized ${_cycles_lib_dir}/alembic/lib/Alembic.lib + debug ${_cycles_lib_dir}/alembic/lib/Alembic_d.lib) + else() + find_package(Alembic REQUIRED) + endif() + + set(WITH_ALEMBIC ON) endif() -else() - # Workaround for unconventional variable name use in Blender. - set(GLEW_INCLUDE_DIR "${GLEW_INCLUDE_PATH}") endif() ########################################################################### @@ -537,29 +579,25 @@ endif() # Detect system libraries again if(EXISTS ${_cycles_lib_dir}) unset(CMAKE_IGNORE_PATH) + unset(_cycles_lib_dir) endif() ########################################################################### # OpenGL ########################################################################### -if(CYCLES_STANDALONE_REPOSITORY) - if(NOT DEFINED OpenGL_GL_PREFERENCE) - set(OpenGL_GL_PREFERENCE "LEGACY") - endif() +if(WITH_CYCLES_STANDALONE AND WITH_CYCLES_STANDALONE_GUI) + if(CYCLES_STANDALONE_REPOSITORY) + if(NOT DEFINED OpenGL_GL_PREFERENCE) + set(OpenGL_GL_PREFERENCE "LEGACY") + endif() - find_package(OpenGL REQUIRED) + find_package(OpenGL REQUIRED) - set(CYCLES_GL_LIBRARIES - ${OPENGL_gl_LIBRARY} - ${OPENGL_glu_LIBRARY} - ${GLEW_LIBRARY} - ) -else() - set(CYCLES_GL_LIBRARIES - bf_intern_glew_mx - ${BLENDER_GL_LIBRARIES} - ${BLENDER_GLEW_LIBRARIES}) + set(CYCLES_GL_LIBRARIES ${OPENGL_gl_LIBRARY}) + else() + set(CYCLES_GL_LIBRARIES ${BLENDER_GL_LIBRARIES}) + endif() endif() ########################################################################### @@ -569,7 +607,7 @@ endif() if(WITH_CYCLES_STANDALONE AND WITH_CYCLES_STANDALONE_GUI) # We can't use the version from the Blender precompiled libraries because # it does not include the video subsystem. - find_package(SDL2) + find_package(SDL2 REQUIRED) if(NOT SDL2_FOUND) set(WITH_CYCLES_STANDALONE_GUI OFF) @@ -600,7 +638,6 @@ if(WITH_CYCLES_CUDA_BINARIES OR NOT WITH_CUDA_DYNLOAD) endif() endif() - ########################################################################### # HIP ########################################################################### @@ -638,4 +675,15 @@ if(WITH_CYCLES_DEVICE_METAL) endif() endif() -unset(_cycles_lib_dir) +########################################################################### +# macOS +########################################################################### + +if(CYCLES_STANDALONE_REPOSITORY) + # On macOS, always use zlib from system. + if(APPLE) + set(ZLIB_ROOT /usr) + find_package(ZLIB REQUIRED) + find_package(PNG REQUIRED) + endif() +endif() diff --git a/intern/cycles/cmake/macros.cmake b/intern/cycles/cmake/macros.cmake index 7c14fd87518..cd1db8e95a9 100644 --- a/intern/cycles/cmake/macros.cmake +++ b/intern/cycles/cmake/macros.cmake @@ -73,30 +73,39 @@ macro(cycles_add_library target library_deps) cycles_set_solution_folder(${target}) endmacro() -macro(cycles_target_link_libraries target) +macro(cycles_external_libraries_append libraries) if(WITH_CYCLES_LOGGING) - target_link_libraries(${target} ${GLOG_LIBRARIES} ${GFLAGS_LIBRARIES}) + list(APPEND ${libraries} ${GLOG_LIBRARIES} ${GFLAGS_LIBRARIES}) endif() if(WITH_CYCLES_OSL) - target_link_libraries(${target} ${OSL_LIBRARIES} ${LLVM_LIBRARY}) + list(APPEND ${libraries} ${OSL_LIBRARIES} ${CLANG_LIBRARIES} ${LLVM_LIBRARY}) endif() if(WITH_CYCLES_EMBREE) - target_link_libraries(${target} ${EMBREE_LIBRARIES}) + list(APPEND ${libraries} ${EMBREE_LIBRARIES}) endif() if(WITH_OPENSUBDIV) - target_link_libraries(${target} ${OPENSUBDIV_LIBRARIES}) + list(APPEND ${libraries} ${OPENSUBDIV_LIBRARIES}) endif() if(WITH_OPENCOLORIO) - target_link_libraries(${target} ${OPENCOLORIO_LIBRARIES}) + list(APPEND ${libraries} ${OPENCOLORIO_LIBRARIES}) + if(APPLE) + list(APPEND ${libraries} "-framework IOKit") + endif() endif() if(WITH_OPENVDB) - target_link_libraries(${target} ${OPENVDB_LIBRARIES} ${BLOSC_LIBRARIES}) + list(APPEND ${libraries} ${OPENVDB_LIBRARIES} ${BLOSC_LIBRARIES}) endif() if(WITH_OPENIMAGEDENOISE) - target_link_libraries(${target} ${OPENIMAGEDENOISE_LIBRARIES}) + list(APPEND ${libraries} ${OPENIMAGEDENOISE_LIBRARIES}) + if(APPLE AND "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64") + list(APPEND ${libraries} "-framework Accelerate") + endif() endif() - target_link_libraries( - ${target} + if(WITH_ALEMBIC) + list(APPEND ${libraries} ${ALEMBIC_LIBRARIES}) + endif() + + list(APPEND ${libraries} ${OPENIMAGEIO_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES} @@ -115,26 +124,26 @@ macro(cycles_target_link_libraries target) if(WITH_CYCLES_DEVICE_CUDA OR WITH_CYCLES_DEVICE_OPTIX) if(WITH_CUDA_DYNLOAD) - target_link_libraries(${target} extern_cuew) + list(APPEND ${libraries} extern_cuew) else() - target_link_libraries(${target} ${CUDA_CUDA_LIBRARY}) + list(APPEND ${libraries} ${CUDA_CUDA_LIBRARY}) endif() endif() if(WITH_CYCLES_DEVICE_HIP AND WITH_HIP_DYNLOAD) - target_link_libraries(${target} extern_hipew) + list(APPEND ${libraries} extern_hipew) endif() if(UNIX AND NOT APPLE) if(CYCLES_STANDALONE_REPOSITORY) - target_link_libraries(${target} extern_libc_compat) + list(APPEND ${libraries} extern_libc_compat) else() - target_link_libraries(${target} bf_intern_libc_compat) + list(APPEND ${libraries} bf_intern_libc_compat) endif() endif() if(NOT CYCLES_STANDALONE_REPOSITORY) - target_link_libraries(${target} bf_intern_guardedalloc) + list(APPEND ${libraries} bf_intern_guardedalloc) endif() endmacro() diff --git a/intern/cycles/device/CMakeLists.txt b/intern/cycles/device/CMakeLists.txt index d4e128093fa..6205775260a 100644 --- a/intern/cycles/device/CMakeLists.txt +++ b/intern/cycles/device/CMakeLists.txt @@ -8,7 +8,6 @@ set(INC set(INC_SYS ${GLEW_INCLUDE_DIR} - ../../../extern/clew/include ) if(WITH_CYCLES_DEVICE_OPTIX OR WITH_CYCLES_DEVICE_CUDA) diff --git a/intern/cycles/hydra/CMakeLists.txt b/intern/cycles/hydra/CMakeLists.txt index d632cd01a02..72d5d0e3bf7 100644 --- a/intern/cycles/hydra/CMakeLists.txt +++ b/intern/cycles/hydra/CMakeLists.txt @@ -13,6 +13,14 @@ set(INC_SYS ${GLEW_INCLUDE_DIR} ) +set(LIB + cycles_scene + cycles_session + cycles_graph + ${CYCLES_GLEW_LIBRARIES} +) +cycles_external_libraries_append(LIB) + set(INC_HD_CYCLES attribute.h camera.h @@ -63,9 +71,6 @@ if(WITH_OPENVDB) list(APPEND INC_SYS ${OPENVDB_INCLUDE_DIRS} ) - list(APPEND LIB - ${OPENVDB_LIBRARIES} - ) endif() include_directories(${INC}) @@ -94,10 +99,9 @@ target_link_libraries(hdCyclesStatic PUBLIC hd hgi + hgiGL PRIVATE - cycles_scene - cycles_session - cycles_graph + ${LIB} ) set(HdCyclesPluginName hdCycles) @@ -124,8 +128,6 @@ target_link_libraries(${HdCyclesPluginName} hdCyclesStatic ) -cycles_target_link_libraries(${HdCyclesPluginName}) - if(WITH_CYCLES_BLENDER) set(CYCLES_HYDRA_INSTALL_PATH "../") else() diff --git a/intern/cycles/hydra/plugin.cpp b/intern/cycles/hydra/plugin.cpp index 8caca3068df..2cbe232334a 100644 --- a/intern/cycles/hydra/plugin.cpp +++ b/intern/cycles/hydra/plugin.cpp @@ -7,7 +7,7 @@ #include "util/log.h" #include "util/path.h" -#include <pxr/base/arch/filesystem.h> +#include <pxr/base/arch/fileSystem.h> #include <pxr/base/plug/plugin.h> #include <pxr/base/plug/thisPlugin.h> #include <pxr/base/tf/envSetting.h> diff --git a/intern/cycles/hydra/render_delegate.cpp b/intern/cycles/hydra/render_delegate.cpp index 748b6a66e1e..a954c3e4d72 100644 --- a/intern/cycles/hydra/render_delegate.cpp +++ b/intern/cycles/hydra/render_delegate.cpp @@ -457,8 +457,9 @@ void HdCyclesDelegate::SetRenderSetting(const PXR_NS::TfToken &key, const PXR_NS VtValue::Cast<double>(value).GetWithDefault(session->params.time_limit)); } else if (key == HdCyclesRenderSettingsTokens->samples) { + static const int max_samples = Integrator::MAX_SAMPLES; int samples = VtValue::Cast<int>(value).GetWithDefault(session->params.samples); - samples = std::min(std::max(1, samples), Integrator::MAX_SAMPLES); + samples = std::min(std::max(1, samples), max_samples); session->set_samples(samples); } else if (key == HdCyclesRenderSettingsTokens->sample_offset) { diff --git a/intern/cycles/scene/scene.h b/intern/cycles/scene/scene.h index 9e3e8d61b80..54c7d9d93ea 100644 --- a/intern/cycles/scene/scene.h +++ b/intern/cycles/scene/scene.h @@ -159,7 +159,7 @@ class SceneParams { SceneParams() { shadingsystem = SHADINGSYSTEM_SVM; - bvh_layout = BVH_LAYOUT_BVH2; + bvh_layout = BVH_LAYOUT_AUTO; bvh_type = BVH_TYPE_DYNAMIC; use_bvh_spatial_split = false; use_bvh_compact_structure = true; diff --git a/intern/cycles/test/CMakeLists.txt b/intern/cycles/test/CMakeLists.txt index a2a51dc47fd..3f64febf4df 100644 --- a/intern/cycles/test/CMakeLists.txt +++ b/intern/cycles/test/CMakeLists.txt @@ -12,7 +12,7 @@ set(INC .. ) -set(ALL_CYCLES_LIBRARIES +set(LIB cycles_kernel cycles_integrator cycles_scene @@ -22,9 +22,9 @@ set(ALL_CYCLES_LIBRARIES cycles_subd cycles_device cycles_util - extern_clew - ${CYCLES_GL_LIBRARIES} ) +cycles_external_libraries_append(LIB) + include_directories(${INC}) set(SRC @@ -59,6 +59,5 @@ if(NOT APPLE) endif() if(WITH_GTESTS) - BLENDER_SRC_GTEST(cycles "${SRC}" "${ALL_CYCLES_LIBRARIES}") - cycles_target_link_libraries(cycles_test) + BLENDER_SRC_GTEST(cycles "${SRC}" "${LIB}") endif() diff --git a/intern/cycles/util/system.cpp b/intern/cycles/util/system.cpp index 3241601d048..a13ad95b9fe 100644 --- a/intern/cycles/util/system.cpp +++ b/intern/cycles/util/system.cpp @@ -20,6 +20,7 @@ OIIO_NAMESPACE_USING # include <sys/ioctl.h> # include <sys/sysctl.h> # include <sys/types.h> +# include <unistd.h> #else # include <sys/ioctl.h> # include <unistd.h> diff --git a/intern/cycles/util/version.h b/intern/cycles/util/version.h index f13ba637424..8260dd4f55d 100644 --- a/intern/cycles/util/version.h +++ b/intern/cycles/util/version.h @@ -8,8 +8,8 @@ CCL_NAMESPACE_BEGIN -#define CYCLES_VERSION_MAJOR 1 -#define CYCLES_VERSION_MINOR 13 +#define CYCLES_VERSION_MAJOR 3 +#define CYCLES_VERSION_MINOR 2 #define CYCLES_VERSION_PATCH 0 #define CYCLES_MAKE_VERSION_STRING2(a, b, c) #a "." #b "." #c @@ -17,6 +17,10 @@ CCL_NAMESPACE_BEGIN #define CYCLES_VERSION_STRING \ CYCLES_MAKE_VERSION_STRING(CYCLES_VERSION_MAJOR, CYCLES_VERSION_MINOR, CYCLES_VERSION_PATCH) +/* Blender libraries version compatible with this version */ + +#define CYCLES_BLENDER_LIBRARIES_VERSION 3.1 + CCL_NAMESPACE_END #endif /* __UTIL_VERSION_H__ */ |