diff options
author | Patrick Mours <pmours@nvidia.com> | 2019-09-12 15:50:06 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-09-13 12:50:11 +0300 |
commit | a2b52dc5716a97e5413acbd6eefc9ce3788b6456 (patch) | |
tree | 7e6d6c17b73671e67c1f7fbdadd821b4541f820f /build_files | |
parent | 53932f1f068501bfb095c407a7777a964dc5ec1c (diff) |
Cycles: add Optix device backend
This uses hardware-accelerated raytracing on NVIDIA RTX graphics cards.
It is still currently experimental. Most features are supported, but a few
are still missing like baking, branched path tracing and using CPU memory.
https://wiki.blender.org/wiki/Reference/Release_Notes/2.81/Cycles#NVIDIA_RTX
For building with Optix support, the Optix SDK must be installed. See here for
build instructions:
https://wiki.blender.org/wiki/Building_Blender/CUDA
Differential Revision: https://developer.blender.org/D5363
Diffstat (limited to 'build_files')
-rw-r--r-- | build_files/buildbot/slave_compile.py | 3 | ||||
-rw-r--r-- | build_files/cmake/Modules/FindOptiX.cmake | 57 | ||||
-rw-r--r-- | build_files/cmake/config/blender_lite.cmake | 1 | ||||
-rw-r--r-- | build_files/cmake/config/blender_release.cmake | 1 |
4 files changed, 62 insertions, 0 deletions
diff --git a/build_files/buildbot/slave_compile.py b/build_files/buildbot/slave_compile.py index 84667e663f6..0da0ead819f 100644 --- a/build_files/buildbot/slave_compile.py +++ b/build_files/buildbot/slave_compile.py @@ -34,6 +34,9 @@ def get_cmake_options(builder): elif builder.platform == 'linux': config_file = "build_files/buildbot/config/blender_linux.cmake" + optix_sdk_dir = os.path.join(builder.blender_dir, '..', '..', 'NVIDIA-Optix-SDK') + options.append('-DOPTIX_ROOT_DIR:PATH=' + optix_sdk_dir) + options.append("-C" + os.path.join(builder.blender_dir, config_file)) options.append("-DCMAKE_INSTALL_PREFIX=%s" % (builder.install_dir)) diff --git a/build_files/cmake/Modules/FindOptiX.cmake b/build_files/cmake/Modules/FindOptiX.cmake new file mode 100644 index 00000000000..56fd2fd1396 --- /dev/null +++ b/build_files/cmake/Modules/FindOptiX.cmake @@ -0,0 +1,57 @@ +# - Find OptiX library +# Find the native OptiX includes and library +# This module defines +# OPTIX_INCLUDE_DIRS, where to find optix.h, Set when +# OPTIX_INCLUDE_DIR is found. +# OPTIX_ROOT_DIR, The base directory to search for OptiX. +# This can also be an environment variable. +# OPTIX_FOUND, If false, do not try to use OptiX. + +#============================================================================= +# Copyright 2019 Blender Foundation. +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= + +# If OPTIX_ROOT_DIR was defined in the environment, use it. +IF(NOT OPTIX_ROOT_DIR AND NOT $ENV{OPTIX_ROOT_DIR} STREQUAL "") + SET(OPTIX_ROOT_DIR $ENV{OPTIX_ROOT_DIR}) +ENDIF() + +SET(_optix_SEARCH_DIRS + ${OPTIX_ROOT_DIR} + "$ENV{PROGRAMDATA}/NVIDIA Corporation/OptiX SDK 7.0.0" + /usr/local + /sw # Fink + /opt/local # DarwinPorts +) + +FIND_PATH(OPTIX_INCLUDE_DIR + NAMES + optix.h + HINTS + ${_optix_SEARCH_DIRS} + PATH_SUFFIXES + include +) + +# handle the QUIETLY and REQUIRED arguments and set OPTIX_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(OptiX DEFAULT_MSG + OPTIX_INCLUDE_DIR) + +IF(OPTIX_FOUND) + SET(OPTIX_INCLUDE_DIRS ${OPTIX_INCLUDE_DIR}) +ENDIF(OPTIX_FOUND) + +MARK_AS_ADVANCED( + OPTIX_INCLUDE_DIR +) + +UNSET(_optix_SEARCH_DIRS) diff --git a/build_files/cmake/config/blender_lite.cmake b/build_files/cmake/config/blender_lite.cmake index e98f4f098bb..37cbfa27972 100644 --- a/build_files/cmake/config/blender_lite.cmake +++ b/build_files/cmake/config/blender_lite.cmake @@ -17,6 +17,7 @@ set(WITH_CODEC_FFMPEG OFF CACHE BOOL "" FORCE) set(WITH_CODEC_SNDFILE OFF CACHE BOOL "" FORCE) set(WITH_CYCLES OFF CACHE BOOL "" FORCE) set(WITH_CYCLES_OSL OFF CACHE BOOL "" FORCE) +set(WITH_CYCLES_DEVICE_OPTIX OFF CACHE BOOL "" FORCE) set(WITH_DRACO OFF CACHE BOOL "" FORCE) set(WITH_FFTW3 OFF CACHE BOOL "" FORCE) set(WITH_LIBMV OFF CACHE BOOL "" FORCE) diff --git a/build_files/cmake/config/blender_release.cmake b/build_files/cmake/config/blender_release.cmake index 2d7b167764b..cb338f40a7b 100644 --- a/build_files/cmake/config/blender_release.cmake +++ b/build_files/cmake/config/blender_release.cmake @@ -57,6 +57,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(WITH_CYCLES_DEVICE_OPTIX ON CACHE BOOL "" FORCE) # platform dependent options if(UNIX AND NOT APPLE) |