[Bf-blender-cvs] [08031197250] master: Cycles: merge of cycles-x branch, a major update to the renderer

Brecht Van Lommel noreply at git.blender.org
Tue Sep 21 15:00:15 CEST 2021


Commit: 08031197250aeecbaca3803254e6f25b8c7b7b37
Author: Brecht Van Lommel
Date:   Mon Sep 20 17:59:20 2021 +0200
Branches: master
https://developer.blender.org/rB08031197250aeecbaca3803254e6f25b8c7b7b37

Cycles: merge of cycles-x branch, a major update to the renderer

This includes much improved GPU rendering performance, viewport interactivity,
new shadow catcher, revamped sampling settings, subsurface scattering anisotropy,
new GPU volume sampling, improved PMJ sampling pattern, and more.

Some features have also been removed or changed, breaking backwards compatibility.
Including the removal of the OpenCL backend, for which alternatives are under
development.

Release notes and code docs:
https://wiki.blender.org/wiki/Reference/Release_Notes/3.0/Cycles
https://wiki.blender.org/wiki/Source/Render/Cycles

Credits:
* Sergey Sharybin
* Brecht Van Lommel
* Patrick Mours (OptiX backend)
* Christophe Hery (subsurface scattering anisotropy)
* William Leeson (PMJ sampling pattern)
* Alaska (various fixes and tweaks)
* Thomas Dinges (various fixes)

For the full commit history, see the cycles-x branch. This squashes together
all the changes since intermediate changes would often fail building or tests.

Ref T87839, T87837, T87836
Fixes T90734, T89353, T80267, T80267, T77185, T69800

===================================================================

M	CMakeLists.txt
M	build_files/cmake/Modules/FindOptiX.cmake
M	build_files/config/pipeline_config.yaml
M	extern/cuew/include/cuew.h
M	intern/cycles/CMakeLists.txt
M	intern/cycles/app/CMakeLists.txt
M	intern/cycles/app/cycles_standalone.cpp
M	intern/cycles/app/cycles_xml.cpp
M	intern/cycles/blender/CMakeLists.txt
M	intern/cycles/blender/addon/__init__.py
M	intern/cycles/blender/addon/engine.py
M	intern/cycles/blender/addon/presets.py
M	intern/cycles/blender/addon/properties.py
M	intern/cycles/blender/addon/ui.py
M	intern/cycles/blender/addon/version_update.py
M	intern/cycles/blender/blender_camera.cpp
M	intern/cycles/blender/blender_device.cpp
A	intern/cycles/blender/blender_gpu_display.cpp
A	intern/cycles/blender/blender_gpu_display.h
M	intern/cycles/blender/blender_light.cpp
M	intern/cycles/blender/blender_object.cpp
M	intern/cycles/blender/blender_python.cpp
M	intern/cycles/blender/blender_session.cpp
M	intern/cycles/blender/blender_session.h
M	intern/cycles/blender/blender_shader.cpp
M	intern/cycles/blender/blender_sync.cpp
M	intern/cycles/blender/blender_sync.h
M	intern/cycles/blender/blender_viewport.cpp
M	intern/cycles/blender/blender_viewport.h
M	intern/cycles/bvh/bvh_build.cpp
M	intern/cycles/bvh/bvh_embree.cpp
M	intern/cycles/bvh/bvh_params.h
M	intern/cycles/cmake/external_libs.cmake
M	intern/cycles/device/CMakeLists.txt
A	intern/cycles/device/cpu/device.cpp
R059	intern/cycles/kernel/kernels/opencl/kernel_buffer_update.cl	intern/cycles/device/cpu/device.h
A	intern/cycles/device/cpu/device_impl.cpp
A	intern/cycles/device/cpu/device_impl.h
A	intern/cycles/device/cpu/kernel.cpp
A	intern/cycles/device/cpu/kernel.h
A	intern/cycles/device/cpu/kernel_function.h
A	intern/cycles/device/cpu/kernel_thread_globals.cpp
A	intern/cycles/device/cpu/kernel_thread_globals.h
R092	intern/cycles/device/device_cuda.cpp	intern/cycles/device/cuda/device.cpp
R057	intern/cycles/kernel/kernels/opencl/kernel_enqueue_inactive.cl	intern/cycles/device/cuda/device.h
D	intern/cycles/device/cuda/device_cuda.h
D	intern/cycles/device/cuda/device_cuda_impl.cpp
A	intern/cycles/device/cuda/device_impl.cpp
A	intern/cycles/device/cuda/device_impl.h
A	intern/cycles/device/cuda/graphics_interop.cpp
A	intern/cycles/device/cuda/graphics_interop.h
A	intern/cycles/device/cuda/kernel.cpp
A	intern/cycles/device/cuda/kernel.h
A	intern/cycles/device/cuda/queue.cpp
A	intern/cycles/device/cuda/queue.h
A	intern/cycles/device/cuda/util.cpp
A	intern/cycles/device/cuda/util.h
M	intern/cycles/device/device.cpp
M	intern/cycles/device/device.h
D	intern/cycles/device/device_cpu.cpp
A	intern/cycles/device/device_denoise.cpp
A	intern/cycles/device/device_denoise.h
D	intern/cycles/device/device_denoising.cpp
D	intern/cycles/device/device_denoising.h
R066	intern/cycles/kernel/kernels/opencl/kernel_path_init.cl	intern/cycles/device/device_graphics_interop.cpp
A	intern/cycles/device/device_graphics_interop.h
D	intern/cycles/device/device_intern.h
A	intern/cycles/device/device_kernel.cpp
R058	intern/cycles/kernel/kernels/opencl/kernel_holdout_emission_blurring_pathtermination_ao.cl	intern/cycles/device/device_kernel.h
M	intern/cycles/device/device_memory.cpp
M	intern/cycles/device/device_memory.h
D	intern/cycles/device/device_multi.cpp
D	intern/cycles/device/device_network.cpp
D	intern/cycles/device/device_network.h
D	intern/cycles/device/device_opencl.cpp
D	intern/cycles/device/device_optix.cpp
A	intern/cycles/device/device_queue.cpp
A	intern/cycles/device/device_queue.h
D	intern/cycles/device/device_split_kernel.cpp
D	intern/cycles/device/device_split_kernel.h
D	intern/cycles/device/device_task.cpp
D	intern/cycles/device/device_task.h
R073	intern/cycles/device/device_dummy.cpp	intern/cycles/device/dummy/device.cpp
R064	intern/cycles/kernel/kernels/opencl/kernel_do_volume.cl	intern/cycles/device/dummy/device.h
A	intern/cycles/device/multi/device.cpp
R064	intern/cycles/kernel/kernels/opencl/kernel_indirect_background.cl	intern/cycles/device/multi/device.h
D	intern/cycles/device/opencl/device_opencl.h
D	intern/cycles/device/opencl/device_opencl_impl.cpp
D	intern/cycles/device/opencl/memory_manager.cpp
D	intern/cycles/device/opencl/memory_manager.h
D	intern/cycles/device/opencl/opencl_util.cpp
A	intern/cycles/device/optix/device.cpp
A	intern/cycles/device/optix/device.h
A	intern/cycles/device/optix/device_impl.cpp
A	intern/cycles/device/optix/device_impl.h
A	intern/cycles/device/optix/queue.cpp
A	intern/cycles/device/optix/queue.h
A	intern/cycles/device/optix/util.h
M	intern/cycles/graph/node.cpp
M	intern/cycles/graph/node.h
A	intern/cycles/integrator/CMakeLists.txt
A	intern/cycles/integrator/adaptive_sampling.cpp
A	intern/cycles/integrator/adaptive_sampling.h
A	intern/cycles/integrator/denoiser.cpp
A	intern/cycles/integrator/denoiser.h
A	intern/cycles/integrator/denoiser_device.cpp
A	intern/cycles/integrator/denoiser_device.h
A	intern/cycles/integrator/denoiser_oidn.cpp
A	intern/cycles/integrator/denoiser_oidn.h
R058	intern/cycles/kernel/kernels/opencl/kernel_direct_lighting.cl	intern/cycles/integrator/denoiser_optix.cpp
R062	intern/cycles/kernel/kernels/opencl/kernel_lamp_emission.cl	intern/cycles/integrator/denoiser_optix.h
A	intern/cycles/integrator/pass_accessor.cpp
A	intern/cycles/integrator/pass_accessor.h
A	intern/cycles/integrator/pass_accessor_cpu.cpp
A	intern/cycles/integrator/pass_accessor_cpu.h
A	intern/cycles/integrator/pass_accessor_gpu.cpp
A	intern/cycles/integrator/pass_accessor_gpu.h
A	intern/cycles/integrator/path_trace.cpp
A	intern/cycles/integrator/path_trace.h
A	intern/cycles/integrator/path_trace_work.cpp
A	intern/cycles/integrator/path_trace_work.h
A	intern/cycles/integrator/path_trace_work_cpu.cpp
A	intern/cycles/integrator/path_trace_work_cpu.h
A	intern/cycles/integrator/path_trace_work_gpu.cpp
A	intern/cycles/integrator/path_trace_work_gpu.h
A	intern/cycles/integrator/render_scheduler.cpp
A	intern/cycles/integrator/render_scheduler.h
A	intern/cycles/integrator/shader_eval.cpp
A	intern/cycles/integrator/shader_eval.h
A	intern/cycles/integrator/tile.cpp
A	intern/cycles/integrator/tile.h
A	intern/cycles/integrator/work_balancer.cpp
A	intern/cycles/integrator/work_balancer.h
A	intern/cycles/integrator/work_tile_scheduler.cpp
A	intern/cycles/integrator/work_tile_scheduler.h
M	intern/cycles/kernel/CMakeLists.txt
M	intern/cycles/kernel/bvh/bvh.h
M	intern/cycles/kernel/bvh/bvh_embree.h
M	intern/cycles/kernel/bvh/bvh_local.h
M	intern/cycles/kernel/bvh/bvh_nodes.h
M	intern/cycles/kernel/bvh/bvh_shadow_all.h
M	intern/cycles/kernel/bvh/bvh_traversal.h
M	intern/cycles/kernel/bvh/bvh_types.h
M	intern/cycles/kernel/bvh/bvh_util.h
M	intern/cycles/kernel/bvh/bvh_volume.h
M	intern/cycles/kernel/bvh/bvh_volume_all.h
M	intern/cycles/kernel/closure/alloc.h
M	intern/cycles/kernel/closure/bsdf.h
M	intern/cycles/kernel/closure/bsdf_ashikhmin_shirley.h
M	intern/cycles/kernel/closure/bsdf_ashikhmin_velvet.h
M	intern/cycles/kernel/closure/bsdf_diffuse.h
M	intern/cycles/kernel/closure/bsdf_diffuse_ramp.h
M	intern/cycles/kernel/closure/bsdf_hair.h
M	intern/cycles/kernel/closure/bsdf_hair_principled.h
M	intern/cycles/kernel/closure/bsdf_microfacet.h
M	intern/cycles/kernel/closure/bsdf_microfacet_multi.h
M	intern/cycles/kernel/closure/bsdf_oren_nayar.h
M	intern/cycles/kernel/closure/bsdf_phong_ramp.h
M	intern/cycles/kernel/closure/bsdf_principled_diffuse.h
M	intern/cycles/kernel/closure/bsdf_principled_sheen.h
M	intern/cycles/kernel/closure/bsdf_reflection.h
M	intern/cycles/kernel/closure/bsdf_refraction.h
M	intern/cycles/kernel/closure/bsdf_toon.h
M	intern/cycles/kernel/closure/bsdf_transparent.h
M	intern/cycles/kernel/closure/bsdf_util.h
M	intern/cycles/kernel/closure/bssrdf.h
M	intern/cycles/kernel/closure/emissive.h
M	intern/cycles/kernel/closure/volume.h
R061	intern/cycles/kernel/kernel_compat_cpu.h	intern/cycles/kernel/device/cpu/compat.h
A	intern/cycles/kernel/device/cpu/globals.h
R098	intern/cycles/kernel/kernels/cpu/kernel_cpu_image.h	intern/cycles/kernel/device/cpu/image.h
R096	intern/cycles/kernel/kernels/cpu/kernel.cpp	intern/cycles/kernel/device/cpu/kernel.cpp
R077	intern/cycles/kernel/kernel.h	intern/cycles/kernel/device/cpu/kernel.h
A	intern/cycles/kernel/device/cpu/kernel_arch.h
A	intern/cycles/kernel/device/cpu/kernel_arch_impl.h
R093	intern/cycles/kernel/kernels/cpu/kernel_avx.cpp	intern/cycles/kernel/device/cpu/kernel_avx.cpp
R093	intern/cycles/kernel/kernels/cpu/kernel_avx2.cpp	intern/cycles/kernel/device/cpu/kernel_avx2.cpp
R093	intern/cycles/kernel/kernels/cpu/kernel_sse2.cpp	intern/cycles/kernel/device/cpu/kernel_sse2.cpp
R093	intern/cycles/kernel/kernels/cpu/kernel_sse3.cpp	intern/cycles/kernel/device/cpu/kernel_sse3.cpp
R093	intern/cycles/kernel/kernels/cpu/kernel_sse41.cpp	intern/cycles/kernel/device/cpu/kernel_sse41.cpp
R056	intern/cycles/kernel/kernel_compat_cuda.h	intern/cycles/kernel/device/cuda/compat.h
A	intern/cycles/kernel/device/cuda/config.h
A	intern/cycles/kernel/device/cuda/globals.h
R064	intern/cycles/kernel/kernels/opencl/kernel_indirect_subsurface.cl	intern/cycles/kernel/device/cuda/kernel.cu
R077	intern/cycles/kernel/kernels/cuda/kernel_cuda_image.h	intern/cycles/kernel/device/gpu/image.h
A	intern/cycles/kernel/device/gpu/kernel.h
A	intern/cycles/kernel/device/gpu/parallel_active_index.h
A	intern/cycles/kernel/device/gpu/parallel_prefix_sum.h
A	intern/cycles/kernel/device/gpu/parallel_reduce.h
A	intern/cycles/kernel/device/gpu/parallel_sorted_index.h
R054	intern/cycles/kernel/kernel_compat_optix.h	intern/cycles/kernel/device/optix/compat.h
A	intern/cycles/kernel/device/optix/globals.h
R066	intern/cycles/kernel/kernels/optix/kernel_optix.cu	intern/cycles/kernel/device/optix/kernel.cu
A	intern/cycles/kernel/device/optix/kernel_shader_raytrace.cu
D	intern/cycles/kernel/filter/filter.h
D	intern/cycles/kernel/filter/filter_defines.h
D	intern/cycles/kernel/filter/filter_features.h
D	intern/cycles/kernel/filter/filter_features_sse.h
D	intern/cycles/kernel/filter/filter_kernel.h
D	intern/cycles/kernel/filter/filter_nlm_cpu.h
D	intern/cycles/kernel/filter/filter_nlm_gpu.h
D	intern/cycles/kernel/filter/filter_prefilter.h
D	intern/cycles/kernel/filter/filter_reconstruction.h
D	intern/cycles/kernel/filter/filter_transform.h
D	intern/cycles/kernel/filter/filter_transform_gpu.h
D	intern/cycles/kernel/filter/filter_transform_sse.h
M	intern/cycles/kernel/geom/geom.h
M	intern/cycles/kernel/geom/geom_attribute.h
M	intern/cycles/kernel/geom/geom_curve.h
M	intern/cycles/kernel/geom/geom_curve_intersect.h
M	intern/cycles/kernel/geom/geom_motion_curve.h
M	intern/cycles/kernel/geom/geom_motion_triangle.h
M	intern/cycles/kernel/geom/geom_motion_triangle_intersect.h
M	intern/cycles/kernel/geom/geom_motion_triangle_shader.h
M	intern/cycles/kernel/geom/geom_object.h
M	intern/cycles/kernel/geom/geom_patch.h
M	intern/cycles/kernel/geom/geom_primitive.h
A	intern/cycles/kernel/geom/geom_shader_data.h
M	intern/cycles/kernel/geom/geom_subd_triangle.h
M	intern/cycles/kernel/geom/geom_triangle.h
M	intern/cycles/kernel/geom/geom_triangle_intersect.h
M	intern/cycles/kernel/geom/geom_volume.h
A	intern/cycles/kernel/integrator/integrator_init_from_bake.h
A	intern/cycles/kernel/integrator/integrator_init_from_camera.h
A	intern/cycles/kernel/integrator/integrator_intersect_closest.h
A	intern/cycles/kernel/integrator/integrator_intersect_shadow.h
R055	intern/cycles/kernel/kernels/opencl/kernel_state_buffer_size.cl	intern/cycles/kernel/integrator/integrator_intersect_subsurface.h
A	intern/cycles/kernel/integrator/integrator_intersect_volume_stack.h
A	intern/cycles/kernel/integrator/integrator_megakernel.h
A	intern/cycles/kernel/integrator/integrator_shade_background.h
A	intern/cycles/kernel/integrator/integrator_shade_light.h
A	intern/cycles/kernel/integrator/integrator_shade_shadow.h
A	intern/cycles/kernel/integrator/integrator_shade_surface.h
A	intern/cycles/kernel/integrator/integrator_shade_volume.h
A	intern/cycles/kernel/integrator/integrator_state.h
A	intern/cycles/kernel/integrator/integrator_state_flow.h
A	intern/cycles/kernel/integrator/integrator_state_template.h
A	intern/cycles/kernel/integrator/integrator_state_util.h
A	intern/cycles/kernel/integrator/integrator_subsurface.h
A	intern/cycles/kernel/integrator/integrator_volume_stack.h
M	intern/cycles/kernel/kernel_accumulate.h
M	intern/cycles/kernel/kernel_adaptive_sampling.h
M	intern/cycles/kernel/kernel_bake.h
M	intern/cycles/kernel/kernel_camera.h
M	intern/cycles/kernel/kernel_color.h
D	intern/cycles/kernel/kernel_compat_opencl.h
M	intern/cycles/kernel/kernel_differential.h
M	intern/cycles/kernel/kernel_emission.h
M	intern/cycles/kernel/kernel_film.h
D	intern/cycles/kernel/kernel_globals.h
M	intern/cycles/kernel/kernel_id_passes.h
M	intern/cycles/kernel/kernel_jitter.h
M	intern/cycles/kernel/kernel_light.h
M	intern/cycles/kernel/kernel_light_background.h
M	intern/cycles/kernel/kernel_light_common.h
A	intern/cycles/kernel/kernel_lookup_table.h
M	intern/cycles/kernel/kernel_math.h
M	intern/cycles/kernel/kernel_montecarlo.h
M	intern/cycles/kernel/kernel_passes.h
D	intern/cycles/kernel/kernel_path.h
D	intern/cycles/kernel/kernel_path_branched.h
D	intern/cycles/kernel/kernel_path_common.h
M	intern/cycles/kernel/kernel_path_state.h
D	intern/cycles/kernel/kernel_path_subsurface.h
D	intern/cycles/kernel/kernel_path_surface.h
D	intern/cycles/kernel/kernel_path_volume.h
M	intern/cycles/kernel/kernel_profiling.h
M	intern/cycles/kernel/kernel_projection.h
D	intern/cycles/kernel/kernel_queues.h
M	intern/cycles/kernel/kernel_random.h
M	intern/cycles/kernel/kernel_shader.h
D	intern/cycles/kernel/kernel_shadow.h
A	intern/cycles/kernel/kernel_shadow_catcher.h
D	intern/cycles/kernel/kernel_subsurface.h
M	intern/cycles/kernel/kernel_textures.h
M	intern/cycles/kernel/kernel_types.h
D	intern/cycles/kernel/kernel_volume.h
M	intern/cycles/kernel/kernel_work_stealing.h
M	intern/cycles/kernel/kernel_write_passes.h
D	intern/cycles/kernel/kernels/cpu/filter.cpp
D	intern/cycles/kernel/kernels/cpu/filter_avx.cpp
D	intern/cycles/kernel/kernels/cpu/filter_avx2.cpp
D	intern/cycles/kernel/kernels/cpu/filter_cpu.h
D	intern/cycles/kernel/kernels/cpu/filter_cpu_impl.h
D	intern/cycles/kernel/kernels/cpu/filter_sse2.cpp
D	intern/cycles/kernel/kernels/cpu/filter_sse3.cpp
D	intern/cycles/kernel/kernels/cpu/filter_sse41.cpp
D	intern/cycles/kernel/kernels/cpu/kernel_cpu.h
D	intern/cycles/kernel/kernels/cpu/kernel_cpu_impl.h
D	intern/cycles/kernel/kernels/cpu/kernel_split.cpp
D	intern/cycles/kernel/kernels/cpu/kernel_split_avx.cpp
D	intern/cycles/kernel/kernels/cpu/kernel_split_avx2.cpp
D	intern/cycles/kernel/kernels/cpu/kernel_split_sse2.cpp
D	intern/cycles/kernel/kernels/cpu/kernel_split_sse3.cpp
D	intern/cycles/kernel/kernels/cpu/kernel_split_sse41.cpp
D	intern/cycles/kernel/kernels/cuda/filter.cu
D	intern/cycles/kernel/kernels/cuda/kernel.cu
D	intern/cycles/kernel/kernels/cuda/kernel_config.h
D	intern/cycles/kernel/kernels/cuda/kernel_split.cu
D	intern/cycles/kernel/kernels/opencl/filter.cl
D	intern/cycles/kernel/kernels/opencl/kernel_adaptive_adjust_samples.cl
D	intern/cycles/kernel/kernels/opencl/kernel_adaptive_filter_x.cl
D	intern/cycles/kernel/kernels/opencl/kernel_adaptive_filter_y.cl
D	intern/cycles/kernel/kernels/opencl/kernel_adaptive_stopping.cl
D	intern/cycles/kernel/kernels/opencl/kernel_background.cl
D	intern/cycles/kernel/kernels/opencl/kernel_bake.cl
D	intern/cycles/kernel/kernels/opencl/kernel_base.cl
D	intern/cycles/kernel/kernels/opencl/kernel_data_init.cl
D	intern/cycles/kernel/kernels/opencl/kernel_displace.cl
D	intern/cycles/kernel/kernels/opencl/kernel_next_iteration_setup.cl
D	intern/cycles/kernel/kernels/opencl/kernel_opencl_image.h
D	intern/cycles/kernel/kernels/opencl/kernel_queue_enqueue.cl
D	intern/cycles/kernel/kernels/opencl/kernel_scene_intersect.cl
D	intern/cycles/kernel/kernels/opencl/kernel_shader_eval.cl
D	intern/cycles/kernel/kernels/opencl/kernel_shader_setup.cl
D	intern/cycles/kernel/kernels/opencl/kernel_shader_sort.cl
D	intern/cycles/kernel/kernels/opencl/kernel_shadow_blocked_ao.cl
D	intern/cycles/kernel/kernels/opencl/kernel_shadow_blocked_dl.cl
D	intern/cycles/kernel/kernels/opencl/kernel_split_bundle.cl
D	intern/cycles/kernel/kernels/opencl/kernel_split_function.h
D	intern/cycles/kernel/kernels/opencl/kernel_subsurface_scatter.cl
M	intern/cycles/kernel/osl/background.cpp
M	intern/cycles/kernel/osl/bsdf_diffuse_ramp.cpp
M	intern/cycles/kernel/osl/bsdf_phong_ramp.cpp
M	intern/cycles/kernel/osl/emissive.cpp
M	intern/cycles/kernel/osl/osl_bssrdf.cpp
M	intern/cycles/kernel/osl/osl_closures.cpp
M	intern/cycles/kernel/osl/osl_services.cpp
M	intern/cycles/kernel/osl/osl_services.h
M	intern/cycles/kernel/osl/osl_shader.cpp
M	intern/cycles/kernel/osl/osl_shader.h
M	intern/cycles/kernel/shaders/node_principled_bsdf.osl
M	intern/cycles/kernel/shaders/node_subsurface_scattering.osl
D	intern/cycles/kernel/split/kernel_adaptive_adjust_samples.h
D	intern/cycles/kernel/split/kernel_adaptive_filter_x.h
D	intern/cycles/kernel/split/kernel_adaptive_filter_y.h
D	intern/cycles/kernel/split/kernel_adaptive_stopping.h
D	intern/cycles/kernel/split/kernel_branched.h
D	intern/cycles/kernel/split/kernel_buffer_update.h
D	intern/cycles/kernel/split/kernel_data_init.h
D	intern/cycles/kernel/split/kernel_direct_lighting.h
D	intern/cycles/kernel/split/kernel_do_volume.h
D	intern/cycles/kernel/split/kernel_enqueue_inactive.h
D	intern/cycles/kernel/split/kernel_holdout_emission_blurring_pathtermination_ao.h
D	intern/cycles/kernel/split/kernel_indirect_background.h
D	intern/cycles/kernel/split/kernel_indirect_subsurface.h
D	intern/cycles/kernel/split/kernel_lamp_emission.h
D	intern/cycles/kernel/split/kernel_next_iteration_setup.h
D	intern/cycles/kernel/split/kernel_path_init.h
D	intern/cycles/kernel/split/kernel_queue_enqueue.h
D	intern/cycles/kernel/split/kernel_scene_intersect.h
D	intern/cycles/kernel/split/kernel_shader_eval.h
D	intern/cycles/kernel/split/kernel_shader_setup.h
D	intern/cycles/kernel/split/kernel_shader_sort.h
D	intern/cycles/kernel/split/kernel_shadow_blocked_ao.h
D	intern/cycles/kernel/split/kernel_shadow_blocked_dl.h
D	intern/cycles/kernel/split/kernel_split_common.h
D	intern/cycles/kernel/split/kernel_split_data.h
D	intern/cycles/kernel/split/kernel_split_data_types.h
D	intern/cycles/kernel/split/kernel_subsurface_scatter.h
M	intern/cycles/kernel/svm/svm.h
M	intern/cycles/kernel/svm/svm_ao.h
M	intern/cycles/kernel/svm/svm_aov.h
M	intern/cycles/kernel/svm/svm_attribute.h
M	intern/cycles/kernel/svm/svm_bevel.h
M	intern/cycles/kernel/svm/svm_blackbody.h
M	intern/cycles/kernel/svm/svm_brick.h
M	intern/cycles/kernel/svm/svm_brightness.h
M	intern/cycles/kernel/svm/svm_bump.h
M	intern/cycles/kernel/svm/svm_camera.h
M	intern/cycles/kernel/svm/svm_checker.h
M	intern/cycles/kernel/svm/svm_clamp.h
M	intern/cycles/kernel/svm/svm_closure.h
M	intern/cycles/kernel/svm/svm_convert.h
M	intern/cycles/kernel/svm/svm_displace.h
M	intern/cycles/kernel/svm/svm_fresnel.h
M	intern/cycles/kernel/svm/svm_gamma.h
M	intern/cycles/kernel/svm/svm_geometry.h
M	intern/cycles/kernel/svm/svm_gradient.h
M	intern/cycles/kernel/svm/svm_hsv.h
M	intern/cycles/kernel/svm/svm_ies.h
M	intern/cycles/kernel/svm/svm_image.h
M	intern/cycles/kernel/svm/svm_invert.h
M	intern/cycles/kernel/svm/svm_light_path.h
M	intern/cycles/kernel/svm/svm_magic.h
M	intern/cycles/kernel/svm/svm_map_range.h
M	intern/cycles/kernel/svm/svm_mapping.h
M	intern/cycles/kernel/svm/svm_math.h
M	intern/cycles/kernel/svm/svm_mix.h
M	intern/cycles/kernel/svm/svm_musgrave.h
M	intern/cycles/kernel/svm/svm_noise.h
M	intern/cycles/kernel/svm/svm_noisetex.h
M	intern/cycles/kernel/svm/svm_normal.h
M	intern/cycles/kernel/svm/svm_ramp.h
M	intern/cycles/kernel/svm/svm_sepcomb_hsv.h
M	intern/cycles/kernel/svm/svm_sky.h
M	intern/cycles/kernel/svm/svm_tex_coord.h
M	intern/cycles/kernel/svm/svm_types.h
M	intern/cycles/kernel/svm/svm_value.h
M	intern/cycles/kernel/svm/svm_vector_rotate.h
M	intern/cycles/kernel/svm/svm_vector_transform.h
M	intern/cycles/kernel/svm/svm_vertex_color.h
M	intern/cycles/kernel/svm/svm_voronoi.h
M	intern/cycles/kernel/svm/svm_voxel.h
M	intern/cycles/kernel/svm/svm_wave.h
M	intern/cycles/kernel/svm/svm_wavelength.h
M	intern/cycles/kernel/svm/svm_white_noise.h
M	intern/cycles/kernel/svm/svm_wireframe.h
M	intern/cycles/render/CMakeLists.txt
M	intern/cycles/render/background.cpp
M	intern/cycles/render/background.h
M	intern/cycles/render/bake.cpp
M	intern/cycles/render/bake.h
M	intern/cycles/render/buffers.cpp
M	intern/cycles/render/buffers.h
M	intern/cycles/render/camera.cpp
M	intern/cycles/render/camera.h
D	intern/cycles/render/coverage.cpp
D	intern/cycles/render/coverage.h
M	intern/cycles/render/denoising.cpp
M	intern/cycles/render/denoising.h
M	intern/cycles/render/film.cpp
M	intern/cycles/render/film.h
M	intern/cycles/render/geometry.cpp
A	intern/cycles/render/gpu_display.cpp
A	intern/cycles/render/gpu_display.h
M	intern/cycles/render/graph.h
M	intern/cycles/render/integrator.cpp
M	intern/cycles/render/integrator.h
M	intern/cycles/render/jitter.cpp
M	intern/cycles/render/light.cpp
M	intern/cycles/render/light.h
M	intern/cycles/render/mesh_displace.cpp
M	intern/cycles/render/nodes.cpp
M	intern/cycles/render/nodes.h
M	intern/cycles/render/object.cpp
M	intern/cycles/render/osl.cpp
A	intern/cycles/render/pass.cpp
A	intern/cycles/render/pass.h
M	intern/cycles/render/scene.cpp
M	intern/cycles/render/scene.h
M	intern/cycles/render/session.cpp
M	intern/cycles/render/session.h
M	intern/cycles/render/shader.cpp
M	intern/cycles/render/shader.h
M	intern/cycles/render/stats.cpp
M	intern/cycles/render/svm.cpp
M	intern/cycles/render/svm.h
M	intern/cycles/render/tile.cpp
M	intern/cycles/render/tile.h
M	intern/cycles/test/CMakeLists.txt
A	intern/cycles/test/integrator_adaptive_sampling_test.cpp
A	intern/cycles/test/integrator_render_scheduler_test.cpp
A	intern/cycles/test/integrator_tile_test.cpp
M	intern/cycles/test/render_graph_finalize_test.cpp
A	intern/cycles/test/util_math_test.cpp
M	intern/cycles/test/util_string_test.cpp
M	intern/cycles/util/util_atomic.h
M	intern/cycles/util/util_debug.cpp
M	intern/cycles/util/util_debug.h
M	intern/cycles/util/util_defines.h
M	intern/cycles/util/util_half.h
M	intern/cycles/util/util_logging.h
M	intern/cycles/util/util_math.h
M	intern/cycles/util/util_math_float2.h
M	intern/cycles/util/util_math_float3.h
M	intern/cycles/util/util_math_float4.h
M	intern/cycles/util/util_math_int2.h
M	intern/cycles/util/util_math_int3.h
M	intern/cycles/util/util_path.cpp
M	intern/cycles/util/util_path.h
M	intern/cycles/util/util_profiling.cpp
M	intern/cycles/util/util_profiling.h
M	intern/cycles/util/util_progress.h
M	intern/cycles/util/util_simd.h
M	intern/cycles/util/util_static_assert.h
M	intern/cycles/util/util_string.cpp
M	intern/cycles/util/util_string.h
M	intern/cycles/util/util_system.cpp
M	intern/cycles/util/util_system.h
M	intern/cycles/util/util_tbb.h
M	intern/cycles/util/util_texture.h
M	intern/cycles/util/util_transform.h
M	intern/cycles/util/util_types.h
M	intern/cycles/util/util_unique_ptr.h
M	release/scripts/modules/rna_manual_reference.py
M	release/scripts/presets/cycles/sampling/Final.py
M	release/scripts/presets/cycles/sampling/Preview.py
A	release/scripts/presets/cycles/viewport_sampling/Final.py
A	release/scripts/presets/cycles/viewport_sampling/Preview.py
M	release/scripts/startup/bl_ui/properties_view_layer.py
M	source/blender/blenkernel/BKE_blender_version.h
M	source/blender/blenkernel/intern/layer.c
M	source/blender/blenloader/intern/versioning_270.c
M	source/blender/blenloader/intern/versioning_280.c
M	source/blender/blenloader/intern/versioning_290.c
M	source/blender/blenloader/intern/versioning_300.c
M	source/blender/blenloader/intern/versioning_cycles.c
M	source/blender/blenloader/intern/versioning_defaults.c
M	source/blender/compositor/nodes/COM_IDMaskNode.cc
M	source/blender/compositor/nodes/COM_ZCombineNode.cc
M	source/blender/draw/DRW_engine.h
M	source/blender/draw/engines/eevee/eevee_cryptomatte.c
M	source/blender/draw/engines/eevee/eevee_engine.c
M	source/blender/draw/engines/eevee/eevee_private.h
M	source/blender/draw/engines/external/external_engine.c
M	source/blender/draw/engines/external/external_engine.h
M	source/blender/draw/engines/select/select_engine.c
M	source/blender/draw/engines/workbench/workbench_engine.c
M	source/blender/draw/intern/DRW_render.h
M	source/blender/draw/intern/draw_manager.c
M	source/blender/draw/intern/draw_manager_exec.c
M	source/blender/editors/object/object_bake_api.c
M	source/blender/editors/render/render_preview.c
M	source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
M	source/blender/gpu/GPU_material.h
M	source/blender/gpu/intern/gpu_material.c
M	source/blender/gpu/intern/gpu_material_library.h
M	source/blender/gpu/shaders/material/gpu_shader_material_principled.glsl
M	source/blender/gpu/shaders/material/gpu_shader_material_subsurface_scattering.glsl
M	source/blender/makesdna/DNA_layer_types.h
M	source/blender/makesdna/DNA_node_types.h
M	source/blender/makesdna/DNA_scene_defaults.h
M	source/blender/makesdna/DNA_scene_types.h
M	source/blender/makesrna/intern/rna_nodetree.c
M	source/blender/makesrna/intern/rna_render.c
M	source/blender/makesrna/intern/rna_scene.c
M	source/blender/nodes/composite/nodes/node_composite_image.c
M	source/blender/nodes/shader/nodes/node_shader_bsdf_principled.c
M	source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.c
M	source/blender/render/CMakeLists.txt
M	source/blender/render/RE_engine.h
M	source/blender/render/RE_pipeline.h
M	source/blender/render/intern/bake.c
M	source/blender/render/intern/engine.c
M	source/blender/render/intern/initrender.c
D	source/blender/render/intern/initrender.h
M	source/blender/render/intern/pipeline.c
M	source/blender/render/intern/render_result.c
M	source/blender/render/intern/render_result.h
M	source/blender/render/intern/render_types.h
M	source/blender/windowmanager/intern/wm_window.c
M	tests/performance/tests/cycles.py
M	tests/python/CMakeLists.txt

===================================================================

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 47712f0ac1e..8e807b84e22 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -403,7 +403,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_TEST_DEVICES CPU CACHE STRING "Run regression tests on the specified device types (CPU CUDA OPTIX OPENCL)" )
+set(CYCLES_TEST_DEVICES CPU CACHE STRING "Run regression tests on the specified device types (CPU CUDA OPTIX)" )
 set(CYCLES_CUDA_BINARIES_ARCH sm_30 sm_35 sm_37 sm_50 sm_52 sm_60 sm_61 sm_70 sm_75 sm_86 compute_75 CACHE STRING "CUDA architectures to build binaries for")
 mark_as_advanced(CYCLES_CUDA_BINARIES_ARCH)
 unset(PLATFORM_DEFAULT)
@@ -418,12 +418,8 @@ mark_as_advanced(WITH_CYCLES_DEBUG_NAN)
 mark_as_advanced(WITH_CYCLES_NATIVE_ONLY)
 
 option(WITH_CYCLES_DEVICE_CUDA              "Enable Cycles CUDA compute support" ON)
-option(WITH_CYCLES_DEVICE_OPTIX             "Enable Cycles OptiX support" OFF)
-option(WITH_CYCLES_DEVICE_OPENCL            "Enable Cycles OpenCL compute support" ON)
-option(WITH_CYCLES_NETWORK              "Enable Cycles compute over network support (EXPERIMENTAL and unfinished)" OFF)
+option(WITH_CYCLES_DEVICE_OPTIX             "Enable Cycles OptiX support" ON)
 mark_as_advanced(WITH_CYCLES_DEVICE_CUDA)
-mark_as_advanced(WITH_CYCLES_DEVICE_OPENCL)
-mark_as_advanced(WITH_CYCLES_NETWORK)
 
 option(WITH_CUDA_DYNLOAD "Dynamically load CUDA libraries at runtime" ON)
 mark_as_advanced(WITH_CUDA_DYNLOAD)
diff --git a/build_files/cmake/Modules/FindOptiX.cmake b/build_files/cmake/Modules/FindOptiX.cmake
index cfcdd9cd23b..67106740f57 100644
--- a/build_files/cmake/Modules/FindOptiX.cmake
+++ b/build_files/cmake/Modules/FindOptiX.cmake
@@ -33,11 +33,23 @@ FIND_PATH(OPTIX_INCLUDE_DIR
     include
 )
 
+IF(EXISTS "${OPTIX_INCLUDE_DIR}/optix.h")
+  FILE(STRINGS "${OPTIX_INCLUDE_DIR}/optix.h" _optix_version REGEX "^#define OPTIX_VERSION[ \t].*$")
+  STRING(REGEX MATCHALL "[0-9]+" _optix_version ${_optix_version})
+
+  MATH(EXPR _optix_version_major "${_optix_version} / 10000")
+  MATH(EXPR _optix_version_minor "(${_optix_version} % 10000) / 100")
+  MATH(EXPR _optix_version_patch "${_optix_version} % 100")
+
+  SET(OPTIX_VERSION "${_optix_version_major}.${_optix_version_minor}.${_optix_version_patch}")
+ENDIF()
+
 # 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)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(OptiX
+    REQUIRED_VARS OPTIX_INCLUDE_DIR
+    VERSION_VAR OPTIX_VERSION)
 
 IF(OPTIX_FOUND)
   SET(OPTIX_INCLUDE_DIRS ${OPTIX_INCLUDE_DIR})
@@ -45,6 +57,7 @@ ENDIF()
 
 MARK_AS_ADVANCED(
   OPTIX_INCLUDE_DIR
+  OPTIX_VERSION
 )
 
 UNSET(_optix_SEARCH_DIRS)
diff --git a/build_files/config/pipeline_config.yaml b/build_files/config/pipeline_config.yaml
index 5d1a24a30f1..8222f2ff0b9 100644
--- a/build_files/config/pipeline_config.yaml
+++ b/build_files/config/pipeline_config.yaml
@@ -55,7 +55,7 @@ buildbot:
     cuda11:
         version: '11.4.1'
     optix:
-        version: '7.1.0'
+        version: '7.3.0'
     cmake:
         default:
             version: any
diff --git a/extern/cuew/include/cuew.h b/extern/cuew/include/cuew.h
index 0fa0f1291fa..a2142b8f2ba 100644
--- a/extern/cuew/include/cuew.h
+++ b/extern/cuew/include/cuew.h
@@ -645,7 +645,8 @@ typedef enum CUdevice_P2PAttribute_enum {
   CU_DEVICE_P2P_ATTRIBUTE_PERFORMANCE_RANK = 0x01,
   CU_DEVICE_P2P_ATTRIBUTE_ACCESS_SUPPORTED = 0x02,
   CU_DEVICE_P2P_ATTRIBUTE_NATIVE_ATOMIC_SUPPORTED = 0x03,
-  CU_DEVICE_P2P_ATTRIBUTE_ARRAY_ACCESS_ACCESS_SUPPORTED = 0x04,
+  CU_DEVICE_P2P_ATTRIBUTE_ACCESS_ACCESS_SUPPORTED = 0x04,
+  CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARRAY_ACCESS_SUPPORTED = 0x04,
 } CUdevice_P2PAttribute;
 
 typedef void (CUDA_CB *CUstreamCallback)(CUstream hStream, CUresult status, void* userData);
diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt
index 381248e9bf1..17096d441f0 100644
--- a/intern/cycles/CMakeLists.txt
+++ b/intern/cycles/CMakeLists.txt
@@ -247,7 +247,7 @@ if(WITH_CYCLES_OSL)
 endif()
 
 if(WITH_CYCLES_DEVICE_OPTIX)
-  find_package(OptiX)
+  find_package(OptiX 7.3.0)
 
   if(OPTIX_FOUND)
     add_definitions(-DWITH_OPTIX)
@@ -286,11 +286,17 @@ if(WITH_OPENSUBDIV)
   )
 endif()
 
+if(WITH_OPENIMAGEDENOISE)
+  add_definitions(-DWITH_OPENIMAGEDENOISE)
+  add_definitions(-DOIDN_STATIC_LIB)
+  include_directories(
+    SYSTEM
+    ${OPENIMAGEDENOISE_INCLUDE_DIRS}
+  )
+endif()
+
 if(WITH_CYCLES_STANDALONE)
-  set(WITH_CYCLES_DEVICE_OPENCL TRUE)
   set(WITH_CYCLES_DEVICE_CUDA TRUE)
-  # Experimental and unfinished.
-  set(WITH_CYCLES_NETWORK FALSE)
 endif()
 # TODO(sergey): Consider removing it, only causes confusion in interface.
 set(WITH_CYCLES_DEVICE_MULTI TRUE)
@@ -386,18 +392,12 @@ if(WITH_CYCLES_BLENDER)
   add_subdirectory(blender)
 endif()
 
-if(WITH_CYCLES_NETWORK)
-  add_definitions(-DWITH_NETWORK)
-endif()
-
-if(WITH_CYCLES_STANDALONE OR WITH_CYCLES_NETWORK OR WITH_CYCLES_CUBIN_COMPILER)
-  add_subdirectory(app)
-endif()
-
+add_subdirectory(app)
 add_subdirectory(bvh)
 add_subdirectory(device)
 add_subdirectory(doc)
 add_subdirectory(graph)
+add_subdirectory(integrator)
 add_subdirectory(kernel)
 add_subdirectory(render)
 add_subdirectory(subd)
diff --git a/intern/cycles/app/CMakeLists.txt b/intern/cycles/app/CMakeLists.txt
index 7a1e5d62dd2..f9dc5f00802 100644
--- a/intern/cycles/app/CMakeLists.txt
+++ b/intern/cycles/app/CMakeLists.txt
@@ -90,24 +90,6 @@ if(WITH_CYCLES_STANDALONE)
   endif()
 endif()
 
-#####################################################################
-# Cycles network server executable
-#####################################################################
-
-if(WITH_CYCLES_NETWORK)
-  set(SRC
-    cycles_server.cpp
-  )
-  add_executable(cycles_server ${SRC})
-  target_link_libraries(cycles_server ${LIBRARIES})
-  cycles_target_link_libraries(cycles_server)
-
-  if(UNIX AND NOT APPLE)
-    set_target_properties(cycles_server PROPERTIES INSTALL_RPATH $ORIGIN/lib)
-  endif()
-  unset(SRC)
-endif()
-
 #####################################################################
 # Cycles cubin compiler executable
 #####################################################################
diff --git a/intern/cycles/app/cycles_standalone.cpp b/intern/cycles/app/cycles_standalone.cpp
index 6b3513b065a..270096d70b0 100644
--- a/intern/cycles/app/cycles_standalone.cpp
+++ b/intern/cycles/app/cycles_standalone.cpp
@@ -126,7 +126,7 @@ static BufferParams &session_buffer_params()
 
 static void scene_init()
 {
-  options.scene = new Scene(options.scene_params, options.session->device);
+  options.scene = options.session->scene;
 
   /* Read XML */
   xml_read_file(options.scene, options.filepath.c_str());
@@ -148,7 +148,7 @@ static void scene_init()
 static void session_init()
 {
   options.session_params.write_render_cb = write_render;
-  options.session = new Session(options.session_params);
+  options.session = new Session(options.session_params, options.scene_params);
 
   if (options.session_params.background && !options.quiet)
     options.session->progress.set_update_callback(function_bind(&session_print_status));
@@ -159,7 +159,6 @@ static void session_init()
 
   /* load scene */
   scene_init();
-  options.session->scene = options.scene;
 
   options.session->reset(session_buffer_params(), options.session_params.samples);
   options.session->start();
@@ -527,9 +526,6 @@ static void options_parse(int argc, const char **argv)
     fprintf(stderr, "No file path specified\n");
     exit(EXIT_FAILURE);
   }
-
-  /* For smoother Viewport */
-  options.session_params.start_resolution = 64;
 }
 
 CCL_NAMESPACE_END
diff --git a/intern/cycles/app/cycles_xml.cpp b/intern/cycles/app/cycles_xml.cpp
index 276d850f1b3..54f97fddbd9 100644
--- a/intern/cycles/app/cycles_xml.cpp
+++ b/intern/cycles/app/cycles_xml.cpp
@@ -703,7 +703,7 @@ void xml_read_file(Scene *scene, const char *filepath)
 
   xml_read_include(state, path_filename(filepath));
 
-  scene->params.bvh_type = SceneParams::BVH_STATIC;
+  scene->params.bvh_type = BVH_TYPE_STATIC;
 }
 
 CCL_NAMESPACE_END
diff --git a/intern/cycles/blender/CMakeLists.txt b/intern/cycles/blender/CMakeLists.txt
index ee5c6157338..5bdcfd56a4d 100644
--- a/intern/cycles/blender/CMakeLists.txt
+++ b/intern/cycles/blender/CMakeLists.txt
@@ -33,6 +33,7 @@ set(SRC
   blender_device.cpp
   blender_image.cpp
   blender_geometry.cpp
+  blender_gpu_display.cpp
   blender_light.cpp
   blender_mesh.cpp
   blender_object.cpp
@@ -50,6 +51,7 @@ set(SRC
 
   CCL_api.h
   blender_device.h
+  blender_gpu_display.h
   blender_id_map.h
   blender_image.h
   blender_object_cull.h
@@ -93,14 +95,6 @@ set(ADDON_FILES
 
 add_definitions(${GL_DEFINITIONS})
 
-if(WITH_CYCLES_DEVICE_OPENCL)
-  add_definitions(-DWITH_OPENCL)
-endif()
-
-if(WITH_CYCLES_NETWORK)
-  add_definitions(-DWITH_NETWORK)
-endif()
-
 if(WITH_MOD_FLUID)
   add_definitions(-DWITH_FLUID)
 endif()
diff --git a/intern/cycles/blender/addon/__init__.py b/intern/cycles/blender/addon/__init__.py
index f728050a3cf..1ce25a253f9 100644
--- a/intern/cycles/blender/addon/__init__.py
+++ b/intern/cycles/blender/addon/__init__.py
@@ -58,7 +58,6 @@ class CyclesRender(bpy.types.RenderEngine):
     bl_use_eevee_viewport = True
     bl_use_preview = True
     bl_use_exclude_layers = True
-    bl_use_save_buffers = True
     bl_use_spherical_stereo = True
     bl_use_custom_freestyle = True
     bl_use_alembic_procedural = True
@@ -85,6 +84,12 @@ class CyclesRender(bpy.types.RenderEngine):
     def render(self, depsgraph):
         engine.render(self, depsgraph)
 
+    def render_frame_finish(self):
+        engine.render_frame_finish(self)
+
+    def draw(self, context, depsgraph):
+        engine.draw(self, depsgraph, context.space_data)
+
     def bake(self, depsgraph, obj, pass_type, pass_filter, width, height):
 

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list