diff --git a/community/blender/PKGBUILD b/community/blender/PKGBUILD index ab741c425..d2bf457b8 100644 --- a/community/blender/PKGBUILD +++ b/community/blender/PKGBUILD @@ -21,13 +21,13 @@ buildarch=8 # just build the package against them. I checked with NVIDIA and this way is # fine with them. -_gittag=v2.83.5 +_gittag=v2.90.0 # _gitcommit=054dbb833e15275e0e991e2c15e754a3e7583716 pkgname=blender -pkgver=2.83.5 +pkgver=2.90.0 [[ -n $_gitcommit ]] && pkgver=${pkgver}.git1.${_gitcommit:0:8} -pkgrel=2 +pkgrel=1 epoch=17 pkgdesc="A fully integrated 3D graphics creation suite" arch=('x86_64') @@ -44,8 +44,8 @@ source=("git://git.blender.org/blender-addons.git" "git://git.blender.org/blender-addons-contrib.git" "git://git.blender.org/blender-translations.git" "git://git.blender.org/blender-dev-tools.git" - embree.patch - D8063-cuda11.diff + https://git.blender.org/gitweb/gitweb.cgi/blender.git/patch/91aeb452ab251b307311fe869e8e14df945ec6bc + cuda11.patch https://developer.download.nvidia.com/redist/optix/v7.0/OptiX-7.0.0-include.zip) if [[ -n $_gittag ]]; then source+=("${pkgname}-${pkgver}::git://git.blender.org/blender.git#tag=${_gittag}") @@ -56,8 +56,8 @@ sha512sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' - '6de779ad8649a034ee65c45a36d7838ac0b8b32c3336b4d476186265c060f56276e3e0a2860ec4bff42bef7d5582ee82238013845f6a697672767a05a455aaca' - '7b0dc31c8babaaeed35807d27cc54e6e9fb79a08c4c267244bea2b47149e05089fe495f239fff7d4fff9b1ebcafd588396e8d1db5529dc7ac49d78731575e128' + '46358fe7dab620eb9a7414baa851e7d28818b7c2845f723f7dd0f4b0f721902583a6b57c9c2d5e153c5057cc958727489d301c5195dfd3befee96cde539d813a' + '76d55f49cf0475d3050a3ff534da47345aae862fd5ee0e336143c041ef58c5d4ebd6e922eb8a23c01cc35d19537c46698910b0b52a090cdcea4e5f67e4fb5650' 'b2cff73def3757d4259f4b4d318a8ccfe166bf7c215cbb2124f1c81bd6e742f96207285b24eb4d99b527b7b97dc6d5e8fdf2f16d78d5d1e2684c26d681328491' 'SKIP') @@ -71,10 +71,8 @@ prepare() { git config submodule."source/tools".url "${srcdir}/blender-dev-tools" git submodule update - patch -Np1 -i "$srcdir"/embree.patch - patch -Np1 -i "$srcdir"/D8063-cuda11.diff - - sed -i "s/std=c++11/std=c++14/" CMakeLists.txt + patch -Np1 -i "$srcdir"/91aeb452ab251b307311fe869e8e14df945ec6bc + patch -Np1 -i "$srcdir"/cuda11.patch } build() { diff --git a/community/blender/cuda11.patch b/community/blender/cuda11.patch new file mode 100644 index 000000000..390dead1c --- /dev/null +++ b/community/blender/cuda11.patch @@ -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