Date: Monday, August 2, 2021 @ 21:07:55 Author: arojas Revision: 993112
archrelease: copy trunk to community-staging-x86_64 Added: blender/repos/community-staging-x86_64/ blender/repos/community-staging-x86_64/D8063-cuda11.diff (from rev 993110, blender/trunk/D8063-cuda11.diff) blender/repos/community-staging-x86_64/PKGBUILD (from rev 993110, blender/trunk/PKGBUILD) blender/repos/community-staging-x86_64/blender-openexr3.patch (from rev 993110, blender/trunk/blender-openexr3.patch) blender/repos/community-staging-x86_64/cuda11.patch (from rev 993110, blender/trunk/cuda11.patch) blender/repos/community-staging-x86_64/embree.patch (from rev 993110, blender/trunk/embree.patch) ------------------------+ D8063-cuda11.diff | 105 +++++++++++++++++++++++++++++++++++++++++++++++ PKGBUILD | 90 ++++++++++++++++++++++++++++++++++++++++ blender-openexr3.patch | 42 ++++++++++++++++++ cuda11.patch | 91 ++++++++++++++++++++++++++++++++++++++++ embree.patch | 43 +++++++++++++++++++ 5 files changed, 371 insertions(+) Copied: blender/repos/community-staging-x86_64/D8063-cuda11.diff (from rev 993110, blender/trunk/D8063-cuda11.diff) =================================================================== --- community-staging-x86_64/D8063-cuda11.diff (rev 0) +++ community-staging-x86_64/D8063-cuda11.diff 2021-08-02 21:07:55 UTC (rev 993112) @@ -0,0 +1,105 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -375,7 +375,7 @@ + option(WITH_CYCLES_CUBIN_COMPILER "Build cubins with nvrtc based compiler instead of nvcc" OFF) + option(WITH_CYCLES_CUDA_BUILD_SERIAL "Build cubins one after another (useful on machines with limited RAM)" OFF) + mark_as_advanced(WITH_CYCLES_CUDA_BUILD_SERIAL) +-set(CYCLES_CUDA_BINARIES_ARCH sm_30 sm_35 sm_37 sm_50 sm_52 sm_60 sm_61 sm_70 sm_75 CACHE STRING "CUDA architectures to build binaries for") ++set(CYCLES_CUDA_BINARIES_ARCH sm_30 sm_35 sm_37 sm_50 sm_52 sm_60 sm_61 sm_70 sm_75 sm_80 CACHE STRING "CUDA architectures to build binaries for") + mark_as_advanced(CYCLES_CUDA_BINARIES_ARCH) + unset(PLATFORM_DEFAULT) + option(WITH_CYCLES_LOGGING "Build Cycles with logging support" ON) +diff --git a/build_files/cmake/config/blender_release.cmake b/build_files/cmake/config/blender_release.cmake +--- a/build_files/cmake/config/blender_release.cmake ++++ b/build_files/cmake/config/blender_release.cmake +@@ -52,7 +52,7 @@ + set(WITH_MEM_JEMALLOC ON CACHE BOOL "" FORCE) + set(WITH_CYCLES_CUDA_BINARIES ON CACHE BOOL "" FORCE) + set(WITH_CYCLES_CUBIN_COMPILER OFF CACHE BOOL "" FORCE) +-set(CYCLES_CUDA_BINARIES_ARCH sm_30;sm_35;sm_37;sm_50;sm_52;sm_60;sm_61;sm_70;sm_75 CACHE STRING "" FORCE) ++set(CYCLES_CUDA_BINARIES_ARCH sm_30;sm_35;sm_37;sm_50;sm_52;sm_60;sm_61;sm_70;sm_75;sm_80 CACHE STRING "" FORCE) + set(WITH_CYCLES_DEVICE_OPTIX ON CACHE BOOL "" FORCE) + + # platform dependent options +diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt +--- a/intern/cycles/CMakeLists.txt ++++ b/intern/cycles/CMakeLists.txt +@@ -313,7 +313,7 @@ + set(MAX_MSVC 1910) + elseif(${CUDA_VERSION} EQUAL "9.1") + set(MAX_MSVC 1911) +- elseif(${CUDA_VERSION} LESS "11.0") ++ elseif(${CUDA_VERSION} LESS "12.0") + set(MAX_MSVC 1999) + endif() + if(NOT MSVC_VERSION LESS ${MAX_MSVC} OR CMAKE_C_COMPILER_ID MATCHES "Clang") +diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt +--- a/intern/cycles/kernel/CMakeLists.txt ++++ b/intern/cycles/kernel/CMakeLists.txt +@@ -485,8 +485,12 @@ + foreach(arch ${CYCLES_CUDA_BINARIES_ARCH}) + if(${arch} MATCHES "sm_2.") + message(STATUS "CUDA binaries for ${arch} are no longer supported, skipped.") ++ elseif(${arch} MATCHES "sm_30" AND ${CUDA_VERSION} GREATER 109) ++ message(STATUS "CUDA binaries for ${arch} are no longer supported, skipped.") + elseif(${arch} MATCHES "sm_7." AND ${CUDA_VERSION} LESS 100) + message(STATUS "CUDA binaries for ${arch} require CUDA 10.0+, skipped.") ++ elseif(${arch} MATCHES "sm_8." AND ${CUDA_VERSION} LESS 110) ++ message(STATUS "CUDA binaries for ${arch} require CUDA 11.0+, skipped.") + else() + # Compile regular kernel + CYCLES_CUDA_KERNEL_ADD(${arch} ${prev_arch} filter "" "${cuda_filter_sources}" FALSE) +@@ -525,6 +529,11 @@ + set(cuda_flags ${cuda_flags} + -D __KERNEL_DEBUG__) + endif() ++ set(OPTIX_TARGET 30) ++ if(${CUDA_VERSION} GREATER 109) #cuda 11 ++ set(OPTIX_TARGET 52) ++ endif() ++ + if(WITH_CYCLES_CUBIN_COMPILER) + + # Needed to find libnvrtc-builtins.so. Can't do it from inside +@@ -536,7 +545,6 @@ + set(CUBIN_CC_ENV ${CMAKE_COMMAND} + -E env LD_LIBRARY_PATH="${CUDA_TOOLKIT_ROOT_DIR}/lib64") + endif() +- + add_custom_command( + OUTPUT ${output} + DEPENDS +@@ -551,7 +559,7 @@ + ${SRC_UTIL_HEADERS} + COMMAND ${CUBIN_CC_ENV} + "$<TARGET_FILE:cycles_cubin_cc>" +- -target 30 ++ -target ${OPTIX_TARGET} + -ptx + -i ${CMAKE_CURRENT_SOURCE_DIR}/${input} + ${cuda_flags} +@@ -575,7 +583,7 @@ + COMMAND + ${CUDA_NVCC_EXECUTABLE} + --ptx +- -arch=sm_30 ++ -arch=sm_${OPTIX_TARGET} + ${cuda_flags} + ${input} + WORKING_DIRECTORY +diff --git a/intern/cycles/kernel/kernels/cuda/kernel_config.h b/intern/cycles/kernel/kernels/cuda/kernel_config.h +--- a/intern/cycles/kernel/kernels/cuda/kernel_config.h ++++ b/intern/cycles/kernel/kernels/cuda/kernel_config.h +@@ -70,8 +70,8 @@ + # endif + # define CUDA_KERNEL_BRANCHED_MAX_REGISTERS 63 + +-/* 7.x */ +-#elif __CUDA_ARCH__ <= 799 ++/* 7.x / 8.x */ ++#elif __CUDA_ARCH__ <= 899 + # define CUDA_MULTIPRESSOR_MAX_REGISTERS 65536 + # define CUDA_MULTIPROCESSOR_MAX_BLOCKS 32 + # define CUDA_BLOCK_MAX_THREADS 1024 + Copied: blender/repos/community-staging-x86_64/PKGBUILD (from rev 993110, blender/trunk/PKGBUILD) =================================================================== --- community-staging-x86_64/PKGBUILD (rev 0) +++ community-staging-x86_64/PKGBUILD 2021-08-02 21:07:55 UTC (rev 993112) @@ -0,0 +1,90 @@ +# Maintainer: Sven-Hendrik Haase <svenst...@gmail.com> +# Contributor: John Sowiak <j...@archlinux.org> +# Contributor: tobias <tob...@archlinux.org> + +# For legal reasons, we can't separately package the Optix headers so we'll +# just build the package against them. I checked with NVIDIA and this way is +# fine with them. + +pkgname=blender +pkgver=2.93.1 +pkgrel=6 +epoch=17 +pkgdesc="A fully integrated 3D graphics creation suite" +arch=('x86_64') +license=('GPL') +url="https://www.blender.org" +depends=('libpng' 'libtiff' 'openexr' 'python' 'desktop-file-utils' 'python-requests' 'potrace' + 'shared-mime-info' 'hicolor-icon-theme' 'xdg-utils' 'glew' 'openjpeg2' 'python-numpy' + 'freetype2' 'openal' 'ffmpeg' 'fftw' 'boost-libs' 'opencollada' 'alembic' 'openxr' + 'openimageio' 'libsndfile' 'jack' 'opencolorio' 'openshadinglanguage' 'openimagedenoise' + 'jemalloc' 'libspnav' 'ptex' 'opensubdiv' 'openvdb' 'log4cplus' 'sdl2' 'embree') +makedepends=('cmake' 'boost' 'mesa' 'git' 'llvm' 'cuda' 'ninja') +optdepends=('cuda: cycles renderer cuda support') +options=(!strip) +source=("git+https://git.blender.org/blender.git#tag=v$pkgver" + "git+https://git.blender.org/blender-addons.git" + "git+https://git.blender.org/blender-addons-contrib.git" + "git+https://git.blender.org/blender-translations.git" + "git+https://git.blender.org/blender-dev-tools.git" + https://developer.download.nvidia.com/redist/optix/v7.0/OptiX-7.0.0-include.zip + blender-openexr3.patch) +sha512sums=('SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'b2cff73def3757d4259f4b4d318a8ccfe166bf7c215cbb2124f1c81bd6e742f96207285b24eb4d99b527b7b97dc6d5e8fdf2f16d78d5d1e2684c26d681328491' + 'e2dd7210d26b70445e9ae8e33dea35111ad0b0aca9d3b4ded3df560d0fcc8dc044868f729e0f090a04b6f316f083b5505a7056ce088e8702065add87b9b457e5') + +prepare() { + cd "$pkgname" + + git submodule init + git config submodule."release/scripts/addons".url "${srcdir}/blender-addons" + git config submodule."release/scripts/addons_contrib".url "${srcdir}/blender-addons-contrib" + git config submodule."release/datafiles/locale".url "${srcdir}/blender-translations" + git config submodule."source/tools".url "${srcdir}/blender-dev-tools" + git submodule update + git submodule foreach git checkout v${pkgver} + + patch -p1 < "$srcdir"/blender-openexr3.patch # Fix build with OpenEXR 3 +} + +build() { + cd "$pkgname" + + local PYTHON_VER=3.9 + export PYTHONHASHSEED=0 + + cmake . \ + -Bbuild \ + -GNinja \ + -Cbuild_files/cmake/config/blender_release.cmake \ + -DOPTIX_ROOT_DIR="$srcdir"/include \ + -DWITH_CYCLES_EMBREE=ON \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=Release \ + -DWITH_INSTALL_PORTABLE=OFF \ + -DWITH_PYTHON_INSTALL=OFF \ + -DPYTHON_VERSION=$PYTHON_VER \ + -DPYTHON_LIBPATH=/usr/lib \ + -DPYTHON_LIBRARY=python$PYTHON_VER \ + -DPYTHON_INCLUDE_DIRS=/usr/include/python$PYTHON_VER \ + -DCMAKE_CXX_FLAGS="-I /usr/include/python$PYTHON_VER" + ninja -C build +} + +package() { + cd "$pkgname" + + DESTDIR="${pkgdir}" ninja -C build install + install -Dm755 release/bin/blender-softwaregl "${pkgdir}/usr/bin/blender-softwaregl" + python -m compileall "${pkgdir}/usr/share/blender" + python -O -m compileall "${pkgdir}/usr/share/blender" + + install -Dm644 release/freedesktop/org.blender.Blender.appdata.xml "${pkgdir}/usr/share/metainfo/org.blender.Blender.appdata.xml" + + # Manually install additional scripts (See FS#69351) + cp -r release/scripts/addons_contrib/* "${pkgdir}"/usr/share/blender/2*/scripts/addons_contrib/ +} Copied: blender/repos/community-staging-x86_64/blender-openexr3.patch (from rev 993110, blender/trunk/blender-openexr3.patch) =================================================================== --- community-staging-x86_64/blender-openexr3.patch (rev 0) +++ community-staging-x86_64/blender-openexr3.patch 2021-08-02 21:07:55 UTC (rev 993112) @@ -0,0 +1,42 @@ +diff --git a/build_files/cmake/Modules/FindOpenEXR.cmake b/build_files/cmake/Modules/FindOpenEXR.cmake +index 090f80b8df7..a2f7b4c622b 100644 +--- a/build_files/cmake/Modules/FindOpenEXR.cmake ++++ b/build_files/cmake/Modules/FindOpenEXR.cmake +@@ -34,11 +34,10 @@ ENDIF() + SET(_openexr_libs_ver_init "2.0") + + SET(_openexr_FIND_COMPONENTS +- Half + Iex +- IlmImf +- IlmThread + Imath ++ OpenEXR ++ IlmThread + ) + + SET(_openexr_SEARCH_DIRS +@@ -120,7 +119,7 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenEXR DEFAULT_MSG + IF(OPENEXR_FOUND) + SET(OPENEXR_LIBRARIES ${_openexr_LIBRARIES}) + # Both include paths are needed because of dummy OSL headers mixing #include <OpenEXR/foo.h> and #include <foo.h> :( +- SET(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${OPENEXR_INCLUDE_DIR}/OpenEXR) ++ SET(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${OPENEXR_INCLUDE_DIR}/OpenEXR ${OPENEXR_INCLUDE_DIR}/Imath) + ENDIF() + + MARK_AS_ADVANCED( +diff --git a/source/blender/imbuf/intern/openexr/openexr_api.cpp b/source/blender/imbuf/intern/openexr/openexr_api.cpp +index 382d86f2645..eff50b19c31 100644 +--- a/source/blender/imbuf/intern/openexr/openexr_api.cpp ++++ b/source/blender/imbuf/intern/openexr/openexr_api.cpp +@@ -38,8 +38,10 @@ + #include <ImfChannelList.h> + #include <ImfCompression.h> + #include <ImfCompressionAttribute.h> ++#include <ImfFrameBuffer.h> + #include <ImfIO.h> + #include <ImfInputFile.h> ++#include <ImfInt64.h> + #include <ImfOutputFile.h> + #include <ImfPixelType.h> + #include <ImfStandardAttributes.h> Copied: blender/repos/community-staging-x86_64/cuda11.patch (from rev 993110, blender/trunk/cuda11.patch) =================================================================== --- community-staging-x86_64/cuda11.patch (rev 0) +++ community-staging-x86_64/cuda11.patch 2021-08-02 21:07:55 UTC (rev 993112) @@ -0,0 +1,91 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 76d2d578dc3..e0c83cb5e18 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -375,7 +375,7 @@ option(WITH_CYCLES_CUDA_BINARIES "Build Cycles CUDA binaries" OFF) + option(WITH_CYCLES_CUBIN_COMPILER "Build cubins with nvrtc based compiler instead of nvcc" OFF) + option(WITH_CYCLES_CUDA_BUILD_SERIAL "Build cubins one after another (useful on machines with limited RAM)" OFF) + mark_as_advanced(WITH_CYCLES_CUDA_BUILD_SERIAL) +-set(CYCLES_CUDA_BINARIES_ARCH sm_30 sm_35 sm_37 sm_50 sm_52 sm_60 sm_61 sm_70 sm_75 compute_75 CACHE STRING "CUDA architectures to build binaries for") ++set(CYCLES_CUDA_BINARIES_ARCH sm_35 sm_37 sm_50 sm_52 sm_60 sm_61 sm_70 sm_75 compute_75 sm_80 compute_80 CACHE STRING "CUDA architectures to build binaries for") + mark_as_advanced(CYCLES_CUDA_BINARIES_ARCH) + unset(PLATFORM_DEFAULT) + option(WITH_CYCLES_LOGGING "Build Cycles with logging support" ON) +diff --git a/build_files/cmake/config/blender_release.cmake b/build_files/cmake/config/blender_release.cmake +index c6aa359c82c..8d8bf109958 100644 +--- a/build_files/cmake/config/blender_release.cmake ++++ b/build_files/cmake/config/blender_release.cmake +@@ -55,7 +55,7 @@ set(WITH_USD ON CACHE BOOL "" FORCE) + set(WITH_MEM_JEMALLOC ON CACHE BOOL "" FORCE) + set(WITH_CYCLES_CUDA_BINARIES ON CACHE BOOL "" FORCE) + set(WITH_CYCLES_CUBIN_COMPILER OFF CACHE BOOL "" FORCE) +-set(CYCLES_CUDA_BINARIES_ARCH sm_30;sm_35;sm_37;sm_50;sm_52;sm_60;sm_61;sm_70;sm_75;compute_75 CACHE STRING "" FORCE) ++set(CYCLES_CUDA_BINARIES_ARCH sm_30;sm_35;sm_37;sm_50;sm_52;sm_60;sm_61;sm_70;sm_75;compute_75;sm_80;compute_80 CACHE STRING "" FORCE) + set(WITH_CYCLES_DEVICE_OPTIX ON CACHE BOOL "" FORCE) + + # platform dependent options +diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt +index e5a5e9773d3..1bc11953db2 100644 +--- a/intern/cycles/CMakeLists.txt ++++ b/intern/cycles/CMakeLists.txt +@@ -314,7 +314,7 @@ if(WITH_CYCLES_CUDA_BINARIES AND (NOT WITH_CYCLES_CUBIN_COMPILER)) + set(MAX_MSVC 1910) + elseif(${CUDA_VERSION} EQUAL "9.1") + set(MAX_MSVC 1911) +- elseif(${CUDA_VERSION} LESS "11.0") ++ elseif(${CUDA_VERSION} LESS "12.0") + set(MAX_MSVC 1999) + endif() + if(NOT MSVC_VERSION LESS ${MAX_MSVC} OR CMAKE_C_COMPILER_ID MATCHES "Clang") +diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt +index db146226dc7..7993fb8c263 100644 +--- a/intern/cycles/kernel/CMakeLists.txt ++++ b/intern/cycles/kernel/CMakeLists.txt +@@ -473,8 +473,12 @@ if(WITH_CYCLES_CUDA_BINARIES) + foreach(arch ${CYCLES_CUDA_BINARIES_ARCH}) + if(${arch} MATCHES "sm_2.") + message(STATUS "CUDA binaries for ${arch} are no longer supported, skipped.") ++ elseif(${arch} MATCHES "sm_30" AND ${CUDA_VERSION} GREATER 109) ++ message(STATUS "CUDA binaries for ${arch} are no longer supported, skipped.") + elseif(${arch} MATCHES "sm_7." AND ${CUDA_VERSION} LESS 100) + message(STATUS "CUDA binaries for ${arch} require CUDA 10.0+, skipped.") ++ elseif(${arch} MATCHES "sm_8." AND ${CUDA_VERSION} LESS 110) ++ message(STATUS "CUDA binaries for ${arch} require CUDA 11.0+, skipped.") + else() + # Compile regular kernel + CYCLES_CUDA_KERNEL_ADD(${arch} ${prev_arch} filter "" "${cuda_filter_sources}" FALSE) +@@ -513,6 +517,11 @@ if(WITH_CYCLES_DEVICE_OPTIX AND WITH_CYCLES_CUDA_BINARIES) + set(cuda_flags ${cuda_flags} + -D __KERNEL_DEBUG__) + endif() ++ set(OPTIX_TARGET 30) ++ if(${CUDA_VERSION} GREATER 109) #cuda 11 ++ set(OPTIX_TARGET 52) ++ endif() ++ + if(WITH_CYCLES_CUBIN_COMPILER) + + # Needed to find libnvrtc-builtins.so. Can't do it from inside +@@ -524,7 +533,6 @@ if(WITH_CYCLES_DEVICE_OPTIX AND WITH_CYCLES_CUDA_BINARIES) + set(CUBIN_CC_ENV ${CMAKE_COMMAND} + -E env LD_LIBRARY_PATH="${CUDA_TOOLKIT_ROOT_DIR}/lib64") + endif() +- + add_custom_command( + OUTPUT ${output} + DEPENDS +diff --git a/intern/cycles/kernel/kernels/cuda/kernel_config.h b/intern/cycles/kernel/kernels/cuda/kernel_config.h +index 3ec00762e72..8e650129d8b 100644 +--- a/intern/cycles/kernel/kernels/cuda/kernel_config.h ++++ b/intern/cycles/kernel/kernels/cuda/kernel_config.h +@@ -70,8 +70,8 @@ + # endif + # define CUDA_KERNEL_BRANCHED_MAX_REGISTERS 63 + +-/* 7.x */ +-#elif __CUDA_ARCH__ <= 799 ++/* 7.x / 8.x */ ++#elif __CUDA_ARCH__ <= 899 + # define CUDA_MULTIPRESSOR_MAX_REGISTERS 65536 + # define CUDA_MULTIPROCESSOR_MAX_BLOCKS 32 + # define CUDA_BLOCK_MAX_THREADS 1024 Copied: blender/repos/community-staging-x86_64/embree.patch (from rev 993110, blender/trunk/embree.patch) =================================================================== --- community-staging-x86_64/embree.patch (rev 0) +++ community-staging-x86_64/embree.patch 2021-08-02 21:07:55 UTC (rev 993112) @@ -0,0 +1,43 @@ +diff --git a/intern/cycles/blender/CMakeLists.txt b/intern/cycles/blender/CMakeLists.txt +index d9a2ebf8571..f3b7d156024 100644 +--- a/intern/cycles/blender/CMakeLists.txt ++++ b/intern/cycles/blender/CMakeLists.txt +@@ -66,6 +66,12 @@ if(WITH_CYCLES_LOGGING) + ) + endif() + ++if(WITH_CYCLES_EMBREE) ++ list(APPEND LIB ++ ${EMBREE_LIBRARIES} ++ ) ++endif() ++ + set(ADDON_FILES + addon/__init__.py + addon/engine.py +diff --git a/build_files/cmake/Modules/FindEmbree.cmake b/build_files/cmake/Modules/FindEmbree.cmake +index d9d525d4586..03b509a28f3 100644 +--- a/build_files/cmake/Modules/FindEmbree.cmake ++++ b/build_files/cmake/Modules/FindEmbree.cmake +@@ -72,7 +72,7 @@ ENDFOREACH() + + FIND_LIBRARY(EMBREE_LIBRARY + NAMES +- libembree3 ++ embree3 + HINTS + ${_embree_SEARCH_DIRS} + PATH_SUFFIXES +@@ -83,10 +83,10 @@ FIND_LIBRARY(EMBREE_LIBRARY + # all listed variables are TRUE + INCLUDE(FindPackageHandleStandardArgs) + FIND_PACKAGE_HANDLE_STANDARD_ARGS(EMBREE DEFAULT_MSG +- _embree_LIBRARIES EMBREE_INCLUDE_DIR) ++ EMBREE_LIBRARY EMBREE_INCLUDE_DIR) + + IF(EMBREE_FOUND) +- SET(EMBREE_LIBRARIES ${_embree_LIBRARIES}) ++ SET(EMBREE_LIBRARIES ${EMBREE_LIBRARY}) + SET(EMBREE_INCLUDE_DIRS ${EMBREE_INCLUDE_DIR}) + ENDIF(EMBREE_FOUND) +