diff options
Diffstat (limited to 'intern/cycles/kernel/CMakeLists.txt')
-rw-r--r-- | intern/cycles/kernel/CMakeLists.txt | 80 |
1 files changed, 78 insertions, 2 deletions
diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt index 48439a8b68f..ea8aa197b6f 100644 --- a/intern/cycles/kernel/CMakeLists.txt +++ b/intern/cycles/kernel/CMakeLists.txt @@ -64,6 +64,10 @@ set(SRC_OPENCL_KERNELS kernels/opencl/filter.cl ) +set(SRC_OPTIX_KERNELS + kernels/optix/kernel_optix.cu +) + set(SRC_BVH_HEADERS bvh/bvh.h bvh/bvh_nodes.h @@ -95,6 +99,7 @@ set(SRC_HEADERS kernel_color.h kernel_compat_cpu.h kernel_compat_cuda.h + kernel_compat_optix.h kernel_compat_opencl.h kernel_differential.h kernel_emission.h @@ -140,6 +145,9 @@ set(SRC_KERNELS_CUDA_HEADERS kernels/cuda/kernel_cuda_image.h ) +set(SRC_KERNELS_OPTIX_HEADERS +) + set(SRC_KERNELS_OPENCL_HEADERS kernels/opencl/kernel_split_function.h kernels/opencl/kernel_opencl_image.h @@ -168,7 +176,7 @@ set(SRC_CLOSURE_HEADERS closure/volume.h closure/bsdf_principled_diffuse.h closure/bsdf_principled_sheen.h - closure/bsdf_hair_principled.h + closure/bsdf_hair_principled.h ) set(SRC_SVM_HEADERS @@ -201,6 +209,7 @@ set(SRC_SVM_HEADERS svm/svm_magic.h svm/svm_map_range.h svm/svm_mapping.h + svm/svm_mapping_util.h svm/svm_math.h svm/svm_math_util.h svm/svm_mix.h @@ -214,7 +223,7 @@ set(SRC_SVM_HEADERS svm/svm_sepcomb_vector.h svm/svm_sky.h svm/svm_tex_coord.h - svm/svm_texture.h + svm/svm_fractal_noise.h svm/svm_types.h svm/svm_value.h svm/svm_vector_transform.h @@ -222,6 +231,7 @@ set(SRC_SVM_HEADERS svm/svm_voxel.h svm/svm_wave.h svm/svm_white_noise.h + svm/svm_vertex_color.h ) set(SRC_GEOM_HEADERS @@ -474,6 +484,53 @@ if(WITH_CYCLES_CUDA_BINARIES) cycles_set_solution_folder(cycles_kernel_cuda) endif() +# OptiX PTX modules + +if(WITH_CYCLES_DEVICE_OPTIX) + foreach(input ${SRC_OPTIX_KERNELS}) + get_filename_component(input_we ${input} NAME_WE) + + set(output "${CMAKE_CURRENT_BINARY_DIR}/${input_we}.ptx") + set(cuda_flags + -I "${OPTIX_INCLUDE_DIR}" + -I "${CMAKE_CURRENT_SOURCE_DIR}/.." + -I "${CMAKE_CURRENT_SOURCE_DIR}/kernels/cuda" + -arch=sm_30 + --use_fast_math + -o ${output}) + + if(WITH_CYCLES_DEBUG) + set(cuda_flags ${cuda_flags} + -D __KERNEL_DEBUG__) + endif() + + add_custom_command( + OUTPUT + ${output} + DEPENDS + ${input} + ${SRC_HEADERS} + ${SRC_KERNELS_CUDA_HEADERS} + ${SRC_KERNELS_OPTIX_HEADERS} + ${SRC_BVH_HEADERS} + ${SRC_SVM_HEADERS} + ${SRC_GEOM_HEADERS} + ${SRC_CLOSURE_HEADERS} + ${SRC_UTIL_HEADERS} + COMMAND + ${CUDA_NVCC_EXECUTABLE} --ptx ${cuda_flags} ${input} + WORKING_DIRECTORY + "${CMAKE_CURRENT_SOURCE_DIR}") + + list(APPEND optix_ptx ${output}) + + delayed_install("${CMAKE_CURRENT_BINARY_DIR}" "${output}" ${CYCLES_INSTALL_PATH}/lib) + endforeach() + + add_custom_target(cycles_kernel_optix ALL DEPENDS ${optix_ptx}) + cycles_set_solution_folder(cycles_kernel_optix) +endif() + # OSL module if(WITH_CYCLES_OSL) @@ -533,10 +590,12 @@ endif() cycles_add_library(cycles_kernel "${LIB}" ${SRC_CPU_KERNELS} ${SRC_CUDA_KERNELS} + ${SRC_OPTIX_KERNELS} ${SRC_OPENCL_KERNELS} ${SRC_HEADERS} ${SRC_KERNELS_CPU_HEADERS} ${SRC_KERNELS_CUDA_HEADERS} + ${SRC_KERNELS_OPTIX_HEADERS} ${SRC_KERNELS_OPENCL_HEADERS} ${SRC_BVH_HEADERS} ${SRC_CLOSURE_HEADERS} @@ -546,9 +605,24 @@ cycles_add_library(cycles_kernel "${LIB}" ${SRC_SPLIT_HEADERS} ) +source_group("bvh" FILES ${SRC_BVH_HEADERS}) +source_group("closure" FILES ${SRC_CLOSURE_HEADERS}) +source_group("filter" FILES ${SRC_FILTER_HEADERS}) +source_group("geom" FILES ${SRC_GEOM_HEADERS}) +source_group("kernel" FILES ${SRC_HEADERS}) +source_group("kernel\\split" FILES ${SRC_SPLIT_HEADERS}) +source_group("kernels\\cpu" FILES ${SRC_CPU_KERNELS} ${SRC_KERNELS_CPU_HEADERS}) +source_group("kernels\\cuda" FILES ${SRC_CUDA_KERNELS} ${SRC_KERNELS_CUDA_HEADERS}) +source_group("kernels\\opencl" FILES ${SRC_OPENCL_KERNELS} ${SRC_KERNELS_OPENCL_HEADERS}) +source_group("kernels\\optix" FILES ${SRC_OPTIX_KERNELS} ${SRC_KERNELS_OPTIX_HEADERS}) +source_group("svm" FILES ${SRC_SVM_HEADERS}) + if(WITH_CYCLES_CUDA) add_dependencies(cycles_kernel cycles_kernel_cuda) endif() +if(WITH_CYCLES_DEVICE_OPTIX) + add_dependencies(cycles_kernel cycles_kernel_optix) +endif() # OpenCL kernel @@ -562,9 +636,11 @@ endif() delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${SRC_OPENCL_KERNELS}" ${CYCLES_INSTALL_PATH}/source/kernel/kernels/opencl) delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${SRC_CUDA_KERNELS}" ${CYCLES_INSTALL_PATH}/source/kernel/kernels/cuda) +delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${SRC_OPTIX_KERNELS}" ${CYCLES_INSTALL_PATH}/source/kernel/kernels/optix) delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${SRC_HEADERS}" ${CYCLES_INSTALL_PATH}/source/kernel) delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${SRC_KERNELS_OPENCL_HEADERS}" ${CYCLES_INSTALL_PATH}/source/kernel/kernels/opencl) delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${SRC_KERNELS_CUDA_HEADERS}" ${CYCLES_INSTALL_PATH}/source/kernel/kernels/cuda) +delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${SRC_KERNELS_OPTIX_HEADERS}" ${CYCLES_INSTALL_PATH}/source/kernel/kernels/optix) delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${SRC_BVH_HEADERS}" ${CYCLES_INSTALL_PATH}/source/kernel/bvh) delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${SRC_CLOSURE_HEADERS}" ${CYCLES_INSTALL_PATH}/source/kernel/closure) delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${SRC_FILTER_HEADERS}" ${CYCLES_INSTALL_PATH}/source/kernel/filter) |