Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brecht@blender.org>2021-10-24 15:19:19 +0300
committerBrecht Van Lommel <brecht@blender.org>2021-10-25 22:13:08 +0300
commit9f07d73e4598c7746218bc6b64cf2f88908645e9 (patch)
tree04cccc54eb7d1c32a36b7841cb1257fc1df06a66
parent4758a7d35750ae0a2ed24014817e5b169a71e364 (diff)
Cycles: changes to source code folders structure
* Split render/ into scene/ and session/. The scene/ folder now contains the scene and its nodes. The session/ folder contains the render session and associated data structures like drivers and render buffers. * Move top level kernel headers into new folders kernel/camera/, kernel/film/, kernel/light/, kernel/sample/, kernel/util/ * Move integrator related kernel headers into kernel/integrator/ * Move OSL shaders from kernel/shaders/ to kernel/osl/shaders/ For patches and branches, git merge and rebase should be able to detect the renames and move over code to the right file.
-rw-r--r--intern/cycles/CMakeLists.txt3
-rw-r--r--intern/cycles/app/CMakeLists.txt3
-rw-r--r--intern/cycles/app/cycles_standalone.cpp10
-rw-r--r--intern/cycles/app/cycles_xml.cpp24
-rw-r--r--intern/cycles/app/oiio_output_driver.h2
-rw-r--r--intern/cycles/blender/CMakeLists.txt3
-rw-r--r--intern/cycles/blender/blender_camera.cpp4
-rw-r--r--intern/cycles/blender/blender_curves.cpp13
-rw-r--r--intern/cycles/blender/blender_display_driver.h2
-rw-r--r--intern/cycles/blender/blender_geometry.cpp10
-rw-r--r--intern/cycles/blender/blender_id_map.h4
-rw-r--r--intern/cycles/blender/blender_image.h2
-rw-r--r--intern/cycles/blender/blender_light.cpp2
-rw-r--r--intern/cycles/blender/blender_mesh.cpp11
-rw-r--r--intern/cycles/blender/blender_object.cpp22
-rw-r--r--intern/cycles/blender/blender_object_cull.cpp2
-rw-r--r--intern/cycles/blender/blender_output_driver.h2
-rw-r--r--intern/cycles/blender/blender_particles.cpp6
-rw-r--r--intern/cycles/blender/blender_python.cpp6
-rw-r--r--intern/cycles/blender/blender_session.cpp26
-rw-r--r--intern/cycles/blender/blender_session.h6
-rw-r--r--intern/cycles/blender/blender_shader.cpp18
-rw-r--r--intern/cycles/blender/blender_sync.cpp26
-rw-r--r--intern/cycles/blender/blender_sync.h4
-rw-r--r--intern/cycles/blender/blender_util.h2
-rw-r--r--intern/cycles/blender/blender_viewport.cpp2
-rw-r--r--intern/cycles/blender/blender_viewport.h2
-rw-r--r--intern/cycles/blender/blender_volume.cpp10
-rw-r--r--intern/cycles/bvh/CMakeLists.txt2
-rw-r--r--intern/cycles/bvh/bvh2.cpp6
-rw-r--r--intern/cycles/bvh/bvh_build.cpp10
-rw-r--r--intern/cycles/bvh/bvh_embree.cpp8
-rw-r--r--intern/cycles/bvh/bvh_split.cpp6
-rw-r--r--intern/cycles/bvh/bvh_unaligned.cpp4
-rw-r--r--intern/cycles/device/cpu/device_impl.cpp2
-rw-r--r--intern/cycles/device/cuda/device_impl.cpp2
-rw-r--r--intern/cycles/device/device_denoise.h2
-rw-r--r--intern/cycles/device/device_graphics_interop.h2
-rw-r--r--intern/cycles/device/hip/device_impl.cpp2
-rw-r--r--intern/cycles/device/multi/device.cpp3
-rw-r--r--intern/cycles/device/optix/device_impl.cpp13
-rw-r--r--intern/cycles/integrator/CMakeLists.txt4
-rw-r--r--intern/cycles/integrator/denoiser.cpp2
-rw-r--r--intern/cycles/integrator/denoiser_device.cpp2
-rw-r--r--intern/cycles/integrator/denoiser_oidn.cpp2
-rw-r--r--intern/cycles/integrator/pass_accessor.cpp2
-rw-r--r--intern/cycles/integrator/pass_accessor.h2
-rw-r--r--intern/cycles/integrator/pass_accessor_cpu.cpp4
-rw-r--r--intern/cycles/integrator/pass_accessor_gpu.cpp2
-rw-r--r--intern/cycles/integrator/path_trace.cpp6
-rw-r--r--intern/cycles/integrator/path_trace.h2
-rw-r--r--intern/cycles/integrator/path_trace_display.cpp2
-rw-r--r--intern/cycles/integrator/path_trace_display.h2
-rw-r--r--intern/cycles/integrator/path_trace_tile.cpp8
-rw-r--r--intern/cycles/integrator/path_trace_tile.h2
-rw-r--r--intern/cycles/integrator/path_trace_work.cpp6
-rw-r--r--intern/cycles/integrator/path_trace_work.h4
-rw-r--r--intern/cycles/integrator/path_trace_work_cpu.cpp6
-rw-r--r--intern/cycles/integrator/path_trace_work_gpu.cpp4
-rw-r--r--intern/cycles/integrator/render_scheduler.cpp4
-rw-r--r--intern/cycles/integrator/render_scheduler.h2
-rw-r--r--intern/cycles/integrator/work_tile_scheduler.cpp2
-rw-r--r--intern/cycles/kernel/CMakeLists.txt58
-rw-r--r--intern/cycles/kernel/bake/bake.h (renamed from intern/cycles/kernel/kernel_bake.h)5
-rw-r--r--intern/cycles/kernel/camera/camera.h (renamed from intern/cycles/kernel/kernel_camera.h)8
-rw-r--r--intern/cycles/kernel/camera/camera_projection.h (renamed from intern/cycles/kernel/kernel_projection.h)0
-rw-r--r--intern/cycles/kernel/closure/bsdf_ashikhmin_velvet.h2
-rw-r--r--intern/cycles/kernel/closure/bsdf_diffuse.h2
-rw-r--r--intern/cycles/kernel/closure/bsdf_diffuse_ramp.h2
-rw-r--r--intern/cycles/kernel/closure/bsdf_hair_principled.h2
-rw-r--r--intern/cycles/kernel/closure/bsdf_microfacet.h4
-rw-r--r--intern/cycles/kernel/closure/bsdf_microfacet_multi.h3
-rw-r--r--intern/cycles/kernel/closure/bsdf_principled_diffuse.h2
-rw-r--r--intern/cycles/kernel/closure/bsdf_util.h106
-rw-r--r--intern/cycles/kernel/device/cpu/globals.h2
-rw-r--r--intern/cycles/kernel/device/cpu/kernel_arch_impl.h9
-rw-r--r--intern/cycles/kernel/device/cuda/globals.h3
-rw-r--r--intern/cycles/kernel/device/gpu/kernel.h9
-rw-r--r--intern/cycles/kernel/device/gpu/work_stealing.h (renamed from intern/cycles/kernel/kernel_work_stealing.h)0
-rw-r--r--intern/cycles/kernel/device/hip/globals.h3
-rw-r--r--intern/cycles/kernel/device/optix/globals.h3
-rw-r--r--intern/cycles/kernel/film/film_accumulate.h (renamed from intern/cycles/kernel/kernel_accumulate.h)8
-rw-r--r--intern/cycles/kernel/film/film_adaptive_sampling.h (renamed from intern/cycles/kernel/kernel_adaptive_sampling.h)2
-rw-r--r--intern/cycles/kernel/film/film_id_passes.h (renamed from intern/cycles/kernel/kernel_id_passes.h)0
-rw-r--r--intern/cycles/kernel/film/film_passes.h (renamed from intern/cycles/kernel/kernel_passes.h)4
-rw-r--r--intern/cycles/kernel/film/film_read.h (renamed from intern/cycles/kernel/kernel_film.h)0
-rw-r--r--intern/cycles/kernel/film/film_write_passes.h (renamed from intern/cycles/kernel/kernel_write_passes.h)0
-rw-r--r--intern/cycles/kernel/geom/geom_patch.h2
-rw-r--r--intern/cycles/kernel/geom/geom_primitive.h2
-rw-r--r--intern/cycles/kernel/geom/geom_triangle_intersect.h2
-rw-r--r--intern/cycles/kernel/integrator/integrator_init_from_bake.h13
-rw-r--r--intern/cycles/kernel/integrator/integrator_init_from_camera.h15
-rw-r--r--intern/cycles/kernel/integrator/integrator_intersect_closest.h13
-rw-r--r--intern/cycles/kernel/integrator/integrator_intersect_volume_stack.h2
-rw-r--r--intern/cycles/kernel/integrator/integrator_path_state.h (renamed from intern/cycles/kernel/kernel_path_state.h)2
-rw-r--r--intern/cycles/kernel/integrator/integrator_shade_background.h9
-rw-r--r--intern/cycles/kernel/integrator/integrator_shade_light.h8
-rw-r--r--intern/cycles/kernel/integrator/integrator_shade_shadow.h3
-rw-r--r--intern/cycles/kernel/integrator/integrator_shade_surface.h15
-rw-r--r--intern/cycles/kernel/integrator/integrator_shade_volume.h15
-rw-r--r--intern/cycles/kernel/integrator/integrator_shader_eval.h (renamed from intern/cycles/kernel/kernel_shader.h)5
-rw-r--r--intern/cycles/kernel/integrator/integrator_shadow_catcher.h (renamed from intern/cycles/kernel/kernel_shadow_catcher.h)2
-rw-r--r--intern/cycles/kernel/integrator/integrator_state_util.h3
-rw-r--r--intern/cycles/kernel/integrator/integrator_subsurface.h6
-rw-r--r--intern/cycles/kernel/integrator/integrator_subsurface_random_walk.h2
-rw-r--r--intern/cycles/kernel/kernel_math.h25
-rw-r--r--intern/cycles/kernel/kernel_types.h10
-rw-r--r--intern/cycles/kernel/light/light.h (renamed from intern/cycles/kernel/kernel_light.h)9
-rw-r--r--intern/cycles/kernel/light/light_background.h (renamed from intern/cycles/kernel/kernel_light_background.h)2
-rw-r--r--intern/cycles/kernel/light/light_common.h (renamed from intern/cycles/kernel/kernel_light_common.h)2
-rw-r--r--intern/cycles/kernel/light/light_sample.h (renamed from intern/cycles/kernel/kernel_emission.h)10
-rw-r--r--intern/cycles/kernel/osl/CMakeLists.txt2
-rw-r--r--intern/cycles/kernel/osl/bsdf_diffuse_ramp.cpp1
-rw-r--r--intern/cycles/kernel/osl/osl_bssrdf.cpp1
-rw-r--r--intern/cycles/kernel/osl/osl_closures.cpp2
-rw-r--r--intern/cycles/kernel/osl/osl_services.cpp23
-rw-r--r--intern/cycles/kernel/osl/osl_shader.cpp5
-rw-r--r--intern/cycles/kernel/osl/shaders/CMakeLists.txt (renamed from intern/cycles/kernel/shaders/CMakeLists.txt)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_absorption_volume.osl (renamed from intern/cycles/kernel/shaders/node_absorption_volume.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_add_closure.osl (renamed from intern/cycles/kernel/shaders/node_add_closure.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_ambient_occlusion.osl (renamed from intern/cycles/kernel/shaders/node_ambient_occlusion.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_anisotropic_bsdf.osl (renamed from intern/cycles/kernel/shaders/node_anisotropic_bsdf.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_attribute.osl (renamed from intern/cycles/kernel/shaders/node_attribute.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_background.osl (renamed from intern/cycles/kernel/shaders/node_background.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_bevel.osl (renamed from intern/cycles/kernel/shaders/node_bevel.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_blackbody.osl (renamed from intern/cycles/kernel/shaders/node_blackbody.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_brick_texture.osl (renamed from intern/cycles/kernel/shaders/node_brick_texture.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_brightness.osl (renamed from intern/cycles/kernel/shaders/node_brightness.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_bump.osl (renamed from intern/cycles/kernel/shaders/node_bump.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_camera.osl (renamed from intern/cycles/kernel/shaders/node_camera.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_checker_texture.osl (renamed from intern/cycles/kernel/shaders/node_checker_texture.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_clamp.osl (renamed from intern/cycles/kernel/shaders/node_clamp.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_color.h (renamed from intern/cycles/kernel/shaders/node_color.h)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_combine_hsv.osl (renamed from intern/cycles/kernel/shaders/node_combine_hsv.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_combine_rgb.osl (renamed from intern/cycles/kernel/shaders/node_combine_rgb.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_combine_xyz.osl (renamed from intern/cycles/kernel/shaders/node_combine_xyz.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_convert_from_color.osl (renamed from intern/cycles/kernel/shaders/node_convert_from_color.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_convert_from_float.osl (renamed from intern/cycles/kernel/shaders/node_convert_from_float.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_convert_from_int.osl (renamed from intern/cycles/kernel/shaders/node_convert_from_int.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_convert_from_normal.osl (renamed from intern/cycles/kernel/shaders/node_convert_from_normal.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_convert_from_point.osl (renamed from intern/cycles/kernel/shaders/node_convert_from_point.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_convert_from_string.osl (renamed from intern/cycles/kernel/shaders/node_convert_from_string.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_convert_from_vector.osl (renamed from intern/cycles/kernel/shaders/node_convert_from_vector.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_diffuse_bsdf.osl (renamed from intern/cycles/kernel/shaders/node_diffuse_bsdf.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_displacement.osl (renamed from intern/cycles/kernel/shaders/node_displacement.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_emission.osl (renamed from intern/cycles/kernel/shaders/node_emission.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_environment_texture.osl (renamed from intern/cycles/kernel/shaders/node_environment_texture.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_float_curve.osl (renamed from intern/cycles/kernel/shaders/node_float_curve.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_fresnel.h (renamed from intern/cycles/kernel/shaders/node_fresnel.h)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_fresnel.osl (renamed from intern/cycles/kernel/shaders/node_fresnel.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_gamma.osl (renamed from intern/cycles/kernel/shaders/node_gamma.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_geometry.osl (renamed from intern/cycles/kernel/shaders/node_geometry.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_glass_bsdf.osl (renamed from intern/cycles/kernel/shaders/node_glass_bsdf.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_glossy_bsdf.osl (renamed from intern/cycles/kernel/shaders/node_glossy_bsdf.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_gradient_texture.osl (renamed from intern/cycles/kernel/shaders/node_gradient_texture.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_hair_bsdf.osl (renamed from intern/cycles/kernel/shaders/node_hair_bsdf.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_hair_info.osl (renamed from intern/cycles/kernel/shaders/node_hair_info.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_hash.h (renamed from intern/cycles/kernel/shaders/node_hash.h)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_holdout.osl (renamed from intern/cycles/kernel/shaders/node_holdout.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_hsv.osl (renamed from intern/cycles/kernel/shaders/node_hsv.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_ies_light.osl (renamed from intern/cycles/kernel/shaders/node_ies_light.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_image_texture.osl (renamed from intern/cycles/kernel/shaders/node_image_texture.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_invert.osl (renamed from intern/cycles/kernel/shaders/node_invert.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_layer_weight.osl (renamed from intern/cycles/kernel/shaders/node_layer_weight.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_light_falloff.osl (renamed from intern/cycles/kernel/shaders/node_light_falloff.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_light_path.osl (renamed from intern/cycles/kernel/shaders/node_light_path.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_magic_texture.osl (renamed from intern/cycles/kernel/shaders/node_magic_texture.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_map_range.osl (renamed from intern/cycles/kernel/shaders/node_map_range.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_mapping.osl (renamed from intern/cycles/kernel/shaders/node_mapping.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_math.h (renamed from intern/cycles/kernel/shaders/node_math.h)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_math.osl (renamed from intern/cycles/kernel/shaders/node_math.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_mix.osl (renamed from intern/cycles/kernel/shaders/node_mix.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_mix_closure.osl (renamed from intern/cycles/kernel/shaders/node_mix_closure.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_musgrave_texture.osl (renamed from intern/cycles/kernel/shaders/node_musgrave_texture.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_noise.h (renamed from intern/cycles/kernel/shaders/node_noise.h)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_noise_texture.osl (renamed from intern/cycles/kernel/shaders/node_noise_texture.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_normal.osl (renamed from intern/cycles/kernel/shaders/node_normal.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_normal_map.osl (renamed from intern/cycles/kernel/shaders/node_normal_map.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_object_info.osl (renamed from intern/cycles/kernel/shaders/node_object_info.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_output_displacement.osl (renamed from intern/cycles/kernel/shaders/node_output_displacement.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_output_surface.osl (renamed from intern/cycles/kernel/shaders/node_output_surface.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_output_volume.osl (renamed from intern/cycles/kernel/shaders/node_output_volume.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_particle_info.osl (renamed from intern/cycles/kernel/shaders/node_particle_info.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_principled_bsdf.osl (renamed from intern/cycles/kernel/shaders/node_principled_bsdf.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_principled_hair_bsdf.osl (renamed from intern/cycles/kernel/shaders/node_principled_hair_bsdf.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_principled_volume.osl (renamed from intern/cycles/kernel/shaders/node_principled_volume.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_ramp_util.h (renamed from intern/cycles/kernel/shaders/node_ramp_util.h)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_refraction_bsdf.osl (renamed from intern/cycles/kernel/shaders/node_refraction_bsdf.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_rgb_curves.osl (renamed from intern/cycles/kernel/shaders/node_rgb_curves.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_rgb_ramp.osl (renamed from intern/cycles/kernel/shaders/node_rgb_ramp.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_rgb_to_bw.osl (renamed from intern/cycles/kernel/shaders/node_rgb_to_bw.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_scatter_volume.osl (renamed from intern/cycles/kernel/shaders/node_scatter_volume.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_separate_hsv.osl (renamed from intern/cycles/kernel/shaders/node_separate_hsv.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_separate_rgb.osl (renamed from intern/cycles/kernel/shaders/node_separate_rgb.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_separate_xyz.osl (renamed from intern/cycles/kernel/shaders/node_separate_xyz.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_set_normal.osl (renamed from intern/cycles/kernel/shaders/node_set_normal.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_sky_texture.osl (renamed from intern/cycles/kernel/shaders/node_sky_texture.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_subsurface_scattering.osl (renamed from intern/cycles/kernel/shaders/node_subsurface_scattering.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_tangent.osl (renamed from intern/cycles/kernel/shaders/node_tangent.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl (renamed from intern/cycles/kernel/shaders/node_texture_coordinate.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_toon_bsdf.osl (renamed from intern/cycles/kernel/shaders/node_toon_bsdf.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_translucent_bsdf.osl (renamed from intern/cycles/kernel/shaders/node_translucent_bsdf.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_transparent_bsdf.osl (renamed from intern/cycles/kernel/shaders/node_transparent_bsdf.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_uv_map.osl (renamed from intern/cycles/kernel/shaders/node_uv_map.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_value.osl (renamed from intern/cycles/kernel/shaders/node_value.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_vector_curves.osl (renamed from intern/cycles/kernel/shaders/node_vector_curves.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_vector_displacement.osl (renamed from intern/cycles/kernel/shaders/node_vector_displacement.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_vector_math.osl (renamed from intern/cycles/kernel/shaders/node_vector_math.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_vector_rotate.osl (renamed from intern/cycles/kernel/shaders/node_vector_rotate.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_vector_transform.osl (renamed from intern/cycles/kernel/shaders/node_vector_transform.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_velvet_bsdf.osl (renamed from intern/cycles/kernel/shaders/node_velvet_bsdf.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_vertex_color.osl (renamed from intern/cycles/kernel/shaders/node_vertex_color.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_voronoi_texture.osl (renamed from intern/cycles/kernel/shaders/node_voronoi_texture.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_voxel_texture.osl (renamed from intern/cycles/kernel/shaders/node_voxel_texture.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_wave_texture.osl (renamed from intern/cycles/kernel/shaders/node_wave_texture.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_wavelength.osl (renamed from intern/cycles/kernel/shaders/node_wavelength.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_white_noise_texture.osl (renamed from intern/cycles/kernel/shaders/node_white_noise_texture.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/node_wireframe.osl (renamed from intern/cycles/kernel/shaders/node_wireframe.osl)0
-rw-r--r--intern/cycles/kernel/osl/shaders/stdcycles.h (renamed from intern/cycles/kernel/shaders/stdcycles.h)0
-rw-r--r--intern/cycles/kernel/sample/sample_jitter.h (renamed from intern/cycles/kernel/kernel_jitter.h)0
-rw-r--r--intern/cycles/kernel/sample/sample_lcg.h51
-rw-r--r--intern/cycles/kernel/sample/sample_mapping.h (renamed from intern/cycles/kernel/kernel_montecarlo.h)131
-rw-r--r--intern/cycles/kernel/sample/sample_mis.h64
-rw-r--r--intern/cycles/kernel/sample/sample_pattern.h (renamed from intern/cycles/kernel/kernel_random.h)33
-rw-r--r--intern/cycles/kernel/svm/svm_aov.h2
-rw-r--r--intern/cycles/kernel/svm/svm_bevel.h4
-rw-r--r--intern/cycles/kernel/svm/svm_displace.h2
-rw-r--r--intern/cycles/kernel/svm/svm_tex_coord.h4
-rw-r--r--intern/cycles/kernel/util/util_color.h (renamed from intern/cycles/kernel/kernel_color.h)0
-rw-r--r--intern/cycles/kernel/util/util_differential.h (renamed from intern/cycles/kernel/kernel_differential.h)0
-rw-r--r--intern/cycles/kernel/util/util_lookup_table.h (renamed from intern/cycles/kernel/kernel_lookup_table.h)0
-rw-r--r--intern/cycles/kernel/util/util_profiling.h (renamed from intern/cycles/kernel/kernel_profiling.h)0
-rw-r--r--intern/cycles/scene/CMakeLists.txt (renamed from intern/cycles/render/CMakeLists.txt)29
-rw-r--r--intern/cycles/scene/alembic.cpp (renamed from intern/cycles/render/alembic.cpp)18
-rw-r--r--intern/cycles/scene/alembic.h (renamed from intern/cycles/render/alembic.h)4
-rw-r--r--intern/cycles/scene/alembic_read.cpp (renamed from intern/cycles/render/alembic_read.cpp)8
-rw-r--r--intern/cycles/scene/alembic_read.h (renamed from intern/cycles/render/alembic_read.h)0
-rw-r--r--intern/cycles/scene/attribute.cpp (renamed from intern/cycles/render/attribute.cpp)8
-rw-r--r--intern/cycles/scene/attribute.h (renamed from intern/cycles/render/attribute.h)2
-rw-r--r--intern/cycles/scene/background.cpp (renamed from intern/cycles/render/background.cpp)14
-rw-r--r--intern/cycles/scene/background.h (renamed from intern/cycles/render/background.h)0
-rw-r--r--intern/cycles/scene/bake.cpp (renamed from intern/cycles/render/bake.cpp)14
-rw-r--r--intern/cycles/scene/bake.h (renamed from intern/cycles/render/bake.h)2
-rw-r--r--intern/cycles/scene/camera.cpp (renamed from intern/cycles/render/camera.cpp)19
-rw-r--r--intern/cycles/scene/camera.h (renamed from intern/cycles/render/camera.h)0
-rw-r--r--intern/cycles/scene/colorspace.cpp (renamed from intern/cycles/render/colorspace.cpp)2
-rw-r--r--intern/cycles/scene/colorspace.h (renamed from intern/cycles/render/colorspace.h)0
-rw-r--r--intern/cycles/scene/constant_fold.cpp (renamed from intern/cycles/render/constant_fold.cpp)4
-rw-r--r--intern/cycles/scene/constant_fold.h (renamed from intern/cycles/render/constant_fold.h)0
-rw-r--r--intern/cycles/scene/curves.cpp (renamed from intern/cycles/render/curves.cpp)8
-rw-r--r--intern/cycles/scene/curves.h (renamed from intern/cycles/render/curves.h)2
-rw-r--r--intern/cycles/scene/film.cpp (renamed from intern/cycles/render/film.cpp)20
-rw-r--r--intern/cycles/scene/film.h (renamed from intern/cycles/render/film.h)2
-rw-r--r--intern/cycles/scene/geometry.cpp (renamed from intern/cycles/render/geometry.cpp)24
-rw-r--r--intern/cycles/scene/geometry.h (renamed from intern/cycles/render/geometry.h)2
-rw-r--r--intern/cycles/scene/hair.cpp (renamed from intern/cycles/render/hair.cpp)8
-rw-r--r--intern/cycles/scene/hair.h (renamed from intern/cycles/render/hair.h)2
-rw-r--r--intern/cycles/scene/image.cpp (renamed from intern/cycles/render/image.cpp)12
-rw-r--r--intern/cycles/scene/image.h (renamed from intern/cycles/render/image.h)2
-rw-r--r--intern/cycles/scene/image_oiio.cpp (renamed from intern/cycles/render/image_oiio.cpp)2
-rw-r--r--intern/cycles/scene/image_oiio.h (renamed from intern/cycles/render/image_oiio.h)2
-rw-r--r--intern/cycles/scene/image_sky.cpp (renamed from intern/cycles/render/image_sky.cpp)2
-rw-r--r--intern/cycles/scene/image_sky.h (renamed from intern/cycles/render/image_sky.h)2
-rw-r--r--intern/cycles/scene/image_vdb.cpp (renamed from intern/cycles/render/image_vdb.cpp)2
-rw-r--r--intern/cycles/scene/image_vdb.h (renamed from intern/cycles/render/image_vdb.h)2
-rw-r--r--intern/cycles/scene/integrator.cpp (renamed from intern/cycles/render/integrator.cpp)22
-rw-r--r--intern/cycles/scene/integrator.h (renamed from intern/cycles/render/integrator.h)0
-rw-r--r--intern/cycles/scene/jitter.cpp (renamed from intern/cycles/render/jitter.cpp)2
-rw-r--r--intern/cycles/scene/jitter.h (renamed from intern/cycles/render/jitter.h)0
-rw-r--r--intern/cycles/scene/light.cpp (renamed from intern/cycles/render/light.cpp)22
-rw-r--r--intern/cycles/scene/light.h (renamed from intern/cycles/render/light.h)2
-rw-r--r--intern/cycles/scene/mesh.cpp (renamed from intern/cycles/render/mesh.cpp)10
-rw-r--r--intern/cycles/scene/mesh.h (renamed from intern/cycles/render/mesh.h)6
-rw-r--r--intern/cycles/scene/mesh_displace.cpp (renamed from intern/cycles/render/mesh_displace.cpp)8
-rw-r--r--intern/cycles/scene/mesh_subdivision.cpp (renamed from intern/cycles/render/mesh_subdivision.cpp)6
-rw-r--r--intern/cycles/scene/object.cpp (renamed from intern/cycles/render/object.cpp)22
-rw-r--r--intern/cycles/scene/object.h (renamed from intern/cycles/render/object.h)4
-rw-r--r--intern/cycles/scene/osl.cpp (renamed from intern/cycles/render/osl.cpp)18
-rw-r--r--intern/cycles/scene/osl.h (renamed from intern/cycles/render/osl.h)6
-rw-r--r--intern/cycles/scene/particles.cpp (renamed from intern/cycles/render/particles.cpp)6
-rw-r--r--intern/cycles/scene/particles.h (renamed from intern/cycles/render/particles.h)0
-rw-r--r--intern/cycles/scene/pass.cpp (renamed from intern/cycles/render/pass.cpp)2
-rw-r--r--intern/cycles/scene/pass.h (renamed from intern/cycles/render/pass.h)0
-rw-r--r--intern/cycles/scene/procedural.cpp (renamed from intern/cycles/render/procedural.cpp)4
-rw-r--r--intern/cycles/scene/procedural.h (renamed from intern/cycles/render/procedural.h)0
-rw-r--r--intern/cycles/scene/scene.cpp (renamed from intern/cycles/render/scene.cpp)38
-rw-r--r--intern/cycles/scene/scene.h (renamed from intern/cycles/render/scene.h)6
-rw-r--r--intern/cycles/scene/shader.cpp (renamed from intern/cycles/render/shader.cpp)30
-rw-r--r--intern/cycles/scene/shader.h (renamed from intern/cycles/render/shader.h)2
-rw-r--r--intern/cycles/scene/shader_graph.cpp (renamed from intern/cycles/render/graph.cpp)12
-rw-r--r--intern/cycles/scene/shader_graph.h (renamed from intern/cycles/render/graph.h)0
-rw-r--r--intern/cycles/scene/shader_nodes.cpp (renamed from intern/cycles/render/nodes.cpp)25
-rw-r--r--intern/cycles/scene/shader_nodes.h (renamed from intern/cycles/render/nodes.h)4
-rw-r--r--intern/cycles/scene/sobol.cpp94
-rw-r--r--intern/cycles/scene/sobol.h (renamed from intern/cycles/render/sobol.h)0
-rw-r--r--intern/cycles/scene/sobol.tables (renamed from intern/cycles/render/sobol.cpp)51
-rw-r--r--intern/cycles/scene/stats.cpp (renamed from intern/cycles/render/stats.cpp)4
-rw-r--r--intern/cycles/scene/stats.h (renamed from intern/cycles/render/stats.h)2
-rw-r--r--intern/cycles/scene/svm.cpp (renamed from intern/cycles/render/svm.cpp)18
-rw-r--r--intern/cycles/scene/svm.h (renamed from intern/cycles/render/svm.h)6
-rw-r--r--intern/cycles/scene/tables.cpp (renamed from intern/cycles/render/tables.cpp)6
-rw-r--r--intern/cycles/scene/tables.h (renamed from intern/cycles/render/tables.h)0
-rw-r--r--intern/cycles/scene/volume.cpp (renamed from intern/cycles/render/volume.cpp)8
-rw-r--r--intern/cycles/scene/volume.h (renamed from intern/cycles/render/volume.h)2
-rw-r--r--intern/cycles/session/CMakeLists.txt48
-rw-r--r--intern/cycles/session/buffers.cpp (renamed from intern/cycles/render/buffers.cpp)2
-rw-r--r--intern/cycles/session/buffers.h (renamed from intern/cycles/render/buffers.h)2
-rw-r--r--intern/cycles/session/denoising.cpp (renamed from intern/cycles/render/denoising.cpp)2
-rw-r--r--intern/cycles/session/denoising.h (renamed from intern/cycles/render/denoising.h)0
-rw-r--r--intern/cycles/session/display_driver.h (renamed from intern/cycles/render/display_driver.h)0
-rw-r--r--intern/cycles/session/merge.cpp (renamed from intern/cycles/render/merge.cpp)2
-rw-r--r--intern/cycles/session/merge.h (renamed from intern/cycles/render/merge.h)0
-rw-r--r--intern/cycles/session/output_driver.h (renamed from intern/cycles/render/output_driver.h)0
-rw-r--r--intern/cycles/session/session.cpp (renamed from intern/cycles/render/session.cpp)26
-rw-r--r--intern/cycles/session/session.h (renamed from intern/cycles/render/session.h)8
-rw-r--r--intern/cycles/session/tile.cpp (renamed from intern/cycles/render/tile.cpp)10
-rw-r--r--intern/cycles/session/tile.h (renamed from intern/cycles/render/tile.h)2
-rw-r--r--intern/cycles/subd/subd_dice.cpp4
-rw-r--r--intern/cycles/subd/subd_patch.cpp2
-rw-r--r--intern/cycles/subd/subd_split.cpp4
-rw-r--r--intern/cycles/test/CMakeLists.txt7
-rw-r--r--intern/cycles/test/render_graph_finalize_test.cpp6
322 files changed, 1014 insertions, 875 deletions
diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt
index 2018c1d9648..b6f3926f329 100644
--- a/intern/cycles/CMakeLists.txt
+++ b/intern/cycles/CMakeLists.txt
@@ -400,7 +400,8 @@ add_subdirectory(doc)
add_subdirectory(graph)
add_subdirectory(integrator)
add_subdirectory(kernel)
-add_subdirectory(render)
+add_subdirectory(scene)
+add_subdirectory(session)
add_subdirectory(subd)
add_subdirectory(util)
diff --git a/intern/cycles/app/CMakeLists.txt b/intern/cycles/app/CMakeLists.txt
index 3ed3f54ef9f..50600793854 100644
--- a/intern/cycles/app/CMakeLists.txt
+++ b/intern/cycles/app/CMakeLists.txt
@@ -25,7 +25,8 @@ set(INC_SYS
set(LIBRARIES
cycles_device
cycles_kernel
- cycles_render
+ cycles_scene
+ cycles_session
cycles_bvh
cycles_subd
cycles_graph
diff --git a/intern/cycles/app/cycles_standalone.cpp b/intern/cycles/app/cycles_standalone.cpp
index 00dc140648a..800227ccf48 100644
--- a/intern/cycles/app/cycles_standalone.cpp
+++ b/intern/cycles/app/cycles_standalone.cpp
@@ -17,11 +17,11 @@
#include <stdio.h>
#include "device/device.h"
-#include "render/buffers.h"
-#include "render/camera.h"
-#include "render/integrator.h"
-#include "render/scene.h"
-#include "render/session.h"
+#include "scene/camera.h"
+#include "scene/integrator.h"
+#include "scene/scene.h"
+#include "session/buffers.h"
+#include "session/session.h"
#include "util/util_args.h"
#include "util/util_foreach.h"
diff --git a/intern/cycles/app/cycles_xml.cpp b/intern/cycles/app/cycles_xml.cpp
index 0b83c60f32d..1ced74b6136 100644
--- a/intern/cycles/app/cycles_xml.cpp
+++ b/intern/cycles/app/cycles_xml.cpp
@@ -22,18 +22,18 @@
#include "graph/node_xml.h"
-#include "render/background.h"
-#include "render/camera.h"
-#include "render/film.h"
-#include "render/graph.h"
-#include "render/integrator.h"
-#include "render/light.h"
-#include "render/mesh.h"
-#include "render/nodes.h"
-#include "render/object.h"
-#include "render/osl.h"
-#include "render/scene.h"
-#include "render/shader.h"
+#include "scene/background.h"
+#include "scene/camera.h"
+#include "scene/film.h"
+#include "scene/integrator.h"
+#include "scene/light.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
+#include "scene/osl.h"
+#include "scene/scene.h"
+#include "scene/shader.h"
+#include "scene/shader_graph.h"
+#include "scene/shader_nodes.h"
#include "subd/subd_patch.h"
#include "subd/subd_split.h"
diff --git a/intern/cycles/app/oiio_output_driver.h b/intern/cycles/app/oiio_output_driver.h
index cdc4085d962..a6984938fe7 100644
--- a/intern/cycles/app/oiio_output_driver.h
+++ b/intern/cycles/app/oiio_output_driver.h
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#include "render/output_driver.h"
+#include "session/output_driver.h"
#include "util/util_function.h"
#include "util/util_image.h"
diff --git a/intern/cycles/blender/CMakeLists.txt b/intern/cycles/blender/CMakeLists.txt
index a0442b3394b..d948f2b3118 100644
--- a/intern/cycles/blender/CMakeLists.txt
+++ b/intern/cycles/blender/CMakeLists.txt
@@ -69,7 +69,8 @@ set(LIB
cycles_device
cycles_graph
cycles_kernel
- cycles_render
+ cycles_scene
+ cycles_session
cycles_subd
cycles_util
diff --git a/intern/cycles/blender/blender_camera.cpp b/intern/cycles/blender/blender_camera.cpp
index 52acc2573f5..670e25841f5 100644
--- a/intern/cycles/blender/blender_camera.cpp
+++ b/intern/cycles/blender/blender_camera.cpp
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#include "render/camera.h"
-#include "render/scene.h"
+#include "scene/camera.h"
+#include "scene/scene.h"
#include "blender/blender_sync.h"
#include "blender/blender_util.h"
diff --git a/intern/cycles/blender/blender_curves.cpp b/intern/cycles/blender/blender_curves.cpp
index b6b4f206620..84333faaa23 100644
--- a/intern/cycles/blender/blender_curves.cpp
+++ b/intern/cycles/blender/blender_curves.cpp
@@ -14,16 +14,17 @@
* limitations under the License.
*/
-#include "render/attribute.h"
-#include "render/camera.h"
-#include "render/curves.h"
-#include "render/hair.h"
-#include "render/object.h"
-#include "render/scene.h"
+#include "scene/attribute.h"
+#include "scene/camera.h"
+#include "scene/curves.h"
+#include "scene/hair.h"
+#include "scene/object.h"
+#include "scene/scene.h"
#include "blender/blender_sync.h"
#include "blender/blender_util.h"
+#include "util/util_color.h"
#include "util/util_foreach.h"
#include "util/util_hash.h"
#include "util/util_logging.h"
diff --git a/intern/cycles/blender/blender_display_driver.h b/intern/cycles/blender/blender_display_driver.h
index 5e7e9b01065..800d0791041 100644
--- a/intern/cycles/blender/blender_display_driver.h
+++ b/intern/cycles/blender/blender_display_driver.h
@@ -22,7 +22,7 @@
#include "RNA_blender_cpp.h"
-#include "render/display_driver.h"
+#include "session/display_driver.h"
#include "util/util_thread.h"
#include "util/util_unique_ptr.h"
diff --git a/intern/cycles/blender/blender_geometry.cpp b/intern/cycles/blender/blender_geometry.cpp
index 7b49bb7fbb7..b4b0d04d104 100644
--- a/intern/cycles/blender/blender_geometry.cpp
+++ b/intern/cycles/blender/blender_geometry.cpp
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-#include "render/curves.h"
-#include "render/hair.h"
-#include "render/mesh.h"
-#include "render/object.h"
-#include "render/volume.h"
+#include "scene/curves.h"
+#include "scene/hair.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
+#include "scene/volume.h"
#include "blender/blender_sync.h"
#include "blender/blender_util.h"
diff --git a/intern/cycles/blender/blender_id_map.h b/intern/cycles/blender/blender_id_map.h
index 198cfb4b29a..27a53a90f12 100644
--- a/intern/cycles/blender/blender_id_map.h
+++ b/intern/cycles/blender/blender_id_map.h
@@ -19,8 +19,8 @@
#include <string.h>
-#include "render/geometry.h"
-#include "render/scene.h"
+#include "scene/geometry.h"
+#include "scene/scene.h"
#include "util/util_map.h"
#include "util/util_set.h"
diff --git a/intern/cycles/blender/blender_image.h b/intern/cycles/blender/blender_image.h
index fddbbfd9c37..6f1e72c21af 100644
--- a/intern/cycles/blender/blender_image.h
+++ b/intern/cycles/blender/blender_image.h
@@ -19,7 +19,7 @@
#include "RNA_blender_cpp.h"
-#include "render/image.h"
+#include "scene/image.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/blender/blender_light.cpp b/intern/cycles/blender/blender_light.cpp
index 4df1e720dde..aa0c6a964e4 100644
--- a/intern/cycles/blender/blender_light.cpp
+++ b/intern/cycles/blender/blender_light.cpp
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-#include "render/light.h"
+#include "scene/light.h"
#include "blender/blender_sync.h"
#include "blender/blender_util.h"
diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp
index 7ec430eb7fe..992e17d6f79 100644
--- a/intern/cycles/blender/blender_mesh.cpp
+++ b/intern/cycles/blender/blender_mesh.cpp
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-#include "render/camera.h"
-#include "render/colorspace.h"
-#include "render/mesh.h"
-#include "render/object.h"
-#include "render/scene.h"
+#include "scene/camera.h"
+#include "scene/colorspace.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
+#include "scene/scene.h"
#include "blender/blender_session.h"
#include "blender/blender_sync.h"
@@ -28,6 +28,7 @@
#include "subd/subd_split.h"
#include "util/util_algorithm.h"
+#include "util/util_color.h"
#include "util/util_disjoint_set.h"
#include "util/util_foreach.h"
#include "util/util_hash.h"
diff --git a/intern/cycles/blender/blender_object.cpp b/intern/cycles/blender/blender_object.cpp
index 4b1c4edef7e..75311805fd8 100644
--- a/intern/cycles/blender/blender_object.cpp
+++ b/intern/cycles/blender/blender_object.cpp
@@ -14,17 +14,17 @@
* limitations under the License.
*/
-#include "render/alembic.h"
-#include "render/camera.h"
-#include "render/graph.h"
-#include "render/integrator.h"
-#include "render/light.h"
-#include "render/mesh.h"
-#include "render/nodes.h"
-#include "render/object.h"
-#include "render/particles.h"
-#include "render/scene.h"
-#include "render/shader.h"
+#include "scene/alembic.h"
+#include "scene/camera.h"
+#include "scene/integrator.h"
+#include "scene/light.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
+#include "scene/particles.h"
+#include "scene/scene.h"
+#include "scene/shader.h"
+#include "scene/shader_graph.h"
+#include "scene/shader_nodes.h"
#include "blender/blender_object_cull.h"
#include "blender/blender_sync.h"
diff --git a/intern/cycles/blender/blender_object_cull.cpp b/intern/cycles/blender/blender_object_cull.cpp
index cb7827b3c4a..34cceb5a6e4 100644
--- a/intern/cycles/blender/blender_object_cull.cpp
+++ b/intern/cycles/blender/blender_object_cull.cpp
@@ -16,7 +16,7 @@
#include <cstdlib>
-#include "render/camera.h"
+#include "scene/camera.h"
#include "blender/blender_object_cull.h"
#include "blender/blender_util.h"
diff --git a/intern/cycles/blender/blender_output_driver.h b/intern/cycles/blender/blender_output_driver.h
index 0852cba1b34..1d016f8bcb9 100644
--- a/intern/cycles/blender/blender_output_driver.h
+++ b/intern/cycles/blender/blender_output_driver.h
@@ -20,7 +20,7 @@
#include "RNA_blender_cpp.h"
-#include "render/output_driver.h"
+#include "session/output_driver.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/blender/blender_particles.cpp b/intern/cycles/blender/blender_particles.cpp
index 206ee24a093..f654998af62 100644
--- a/intern/cycles/blender/blender_particles.cpp
+++ b/intern/cycles/blender/blender_particles.cpp
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-#include "render/mesh.h"
-#include "render/object.h"
-#include "render/particles.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
+#include "scene/particles.h"
#include "blender/blender_sync.h"
#include "blender/blender_util.h"
diff --git a/intern/cycles/blender/blender_python.cpp b/intern/cycles/blender/blender_python.cpp
index d681517c9e1..45e5394cf34 100644
--- a/intern/cycles/blender/blender_python.cpp
+++ b/intern/cycles/blender/blender_python.cpp
@@ -23,8 +23,8 @@
#include "blender/blender_sync.h"
#include "blender/blender_util.h"
-#include "render/denoising.h"
-#include "render/merge.h"
+#include "session/denoising.h"
+#include "session/merge.h"
#include "util/util_debug.h"
#include "util/util_foreach.h"
@@ -39,7 +39,7 @@
#include "util/util_types.h"
#ifdef WITH_OSL
-# include "render/osl.h"
+# include "scene/osl.h"
# include <OSL/oslconfig.h>
# include <OSL/oslquery.h>
diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp
index 0b4b5c60def..988a8159864 100644
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@ -17,19 +17,19 @@
#include <stdlib.h>
#include "device/device.h"
-#include "render/background.h"
-#include "render/buffers.h"
-#include "render/camera.h"
-#include "render/colorspace.h"
-#include "render/film.h"
-#include "render/integrator.h"
-#include "render/light.h"
-#include "render/mesh.h"
-#include "render/object.h"
-#include "render/scene.h"
-#include "render/session.h"
-#include "render/shader.h"
-#include "render/stats.h"
+#include "scene/background.h"
+#include "scene/camera.h"
+#include "scene/colorspace.h"
+#include "scene/film.h"
+#include "scene/integrator.h"
+#include "scene/light.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
+#include "scene/scene.h"
+#include "scene/shader.h"
+#include "scene/stats.h"
+#include "session/buffers.h"
+#include "session/session.h"
#include "util/util_algorithm.h"
#include "util/util_color.h"
diff --git a/intern/cycles/blender/blender_session.h b/intern/cycles/blender/blender_session.h
index 7d3be5f8054..9bc685ec306 100644
--- a/intern/cycles/blender/blender_session.h
+++ b/intern/cycles/blender/blender_session.h
@@ -21,9 +21,9 @@
#include "device/device.h"
-#include "render/bake.h"
-#include "render/scene.h"
-#include "render/session.h"
+#include "scene/bake.h"
+#include "scene/scene.h"
+#include "session/session.h"
#include "util/util_vector.h"
diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp
index db5eadeed56..74fdfcdea83 100644
--- a/intern/cycles/blender/blender_shader.cpp
+++ b/intern/cycles/blender/blender_shader.cpp
@@ -14,15 +14,15 @@
* limitations under the License.
*/
-#include "render/background.h"
-#include "render/colorspace.h"
-#include "render/graph.h"
-#include "render/integrator.h"
-#include "render/light.h"
-#include "render/nodes.h"
-#include "render/osl.h"
-#include "render/scene.h"
-#include "render/shader.h"
+#include "scene/background.h"
+#include "scene/colorspace.h"
+#include "scene/integrator.h"
+#include "scene/light.h"
+#include "scene/osl.h"
+#include "scene/scene.h"
+#include "scene/shader.h"
+#include "scene/shader_graph.h"
+#include "scene/shader_nodes.h"
#include "blender/blender_image.h"
#include "blender/blender_sync.h"
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index 9f5bbddbe77..e38e4eb8683 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -14,19 +14,19 @@
* limitations under the License.
*/
-#include "render/background.h"
-#include "render/camera.h"
-#include "render/curves.h"
-#include "render/film.h"
-#include "render/graph.h"
-#include "render/integrator.h"
-#include "render/light.h"
-#include "render/mesh.h"
-#include "render/nodes.h"
-#include "render/object.h"
-#include "render/procedural.h"
-#include "render/scene.h"
-#include "render/shader.h"
+#include "scene/background.h"
+#include "scene/camera.h"
+#include "scene/curves.h"
+#include "scene/film.h"
+#include "scene/integrator.h"
+#include "scene/light.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
+#include "scene/procedural.h"
+#include "scene/scene.h"
+#include "scene/shader.h"
+#include "scene/shader_graph.h"
+#include "scene/shader_nodes.h"
#include "device/device.h"
diff --git a/intern/cycles/blender/blender_sync.h b/intern/cycles/blender/blender_sync.h
index 786479ac0f8..99e3f0bf02b 100644
--- a/intern/cycles/blender/blender_sync.h
+++ b/intern/cycles/blender/blender_sync.h
@@ -26,8 +26,8 @@
#include "blender/blender_util.h"
#include "blender/blender_viewport.h"
-#include "render/scene.h"
-#include "render/session.h"
+#include "scene/scene.h"
+#include "session/session.h"
#include "util/util_map.h"
#include "util/util_set.h"
diff --git a/intern/cycles/blender/blender_util.h b/intern/cycles/blender/blender_util.h
index 77b2bd5ac4f..a3dd2349525 100644
--- a/intern/cycles/blender/blender_util.h
+++ b/intern/cycles/blender/blender_util.h
@@ -17,7 +17,7 @@
#ifndef __BLENDER_UTIL_H__
#define __BLENDER_UTIL_H__
-#include "render/mesh.h"
+#include "scene/mesh.h"
#include "util/util_algorithm.h"
#include "util/util_array.h"
diff --git a/intern/cycles/blender/blender_viewport.cpp b/intern/cycles/blender/blender_viewport.cpp
index 62e32240bba..b8deb77b621 100644
--- a/intern/cycles/blender/blender_viewport.cpp
+++ b/intern/cycles/blender/blender_viewport.cpp
@@ -17,7 +17,7 @@
#include "blender_viewport.h"
#include "blender_util.h"
-#include "render/pass.h"
+#include "scene/pass.h"
#include "util/util_logging.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/blender/blender_viewport.h b/intern/cycles/blender/blender_viewport.h
index b5adafc30c9..a445973f4d2 100644
--- a/intern/cycles/blender/blender_viewport.h
+++ b/intern/cycles/blender/blender_viewport.h
@@ -23,7 +23,7 @@
#include "RNA_blender_cpp.h"
#include "RNA_types.h"
-#include "render/film.h"
+#include "scene/film.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/blender/blender_volume.cpp b/intern/cycles/blender/blender_volume.cpp
index 0a5b19d7d4c..46083cb29dd 100644
--- a/intern/cycles/blender/blender_volume.cpp
+++ b/intern/cycles/blender/blender_volume.cpp
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-#include "render/colorspace.h"
-#include "render/image.h"
-#include "render/image_vdb.h"
-#include "render/object.h"
-#include "render/volume.h"
+#include "scene/colorspace.h"
+#include "scene/image.h"
+#include "scene/image_vdb.h"
+#include "scene/object.h"
+#include "scene/volume.h"
#include "blender/blender_sync.h"
#include "blender/blender_util.h"
diff --git a/intern/cycles/bvh/CMakeLists.txt b/intern/cycles/bvh/CMakeLists.txt
index 8cc72359757..f7e47a8764d 100644
--- a/intern/cycles/bvh/CMakeLists.txt
+++ b/intern/cycles/bvh/CMakeLists.txt
@@ -49,7 +49,7 @@ set(SRC_HEADERS
)
set(LIB
- cycles_render
+ cycles_scene
cycles_util
)
diff --git a/intern/cycles/bvh/bvh2.cpp b/intern/cycles/bvh/bvh2.cpp
index 4a90a1e8796..3b864859f31 100644
--- a/intern/cycles/bvh/bvh2.cpp
+++ b/intern/cycles/bvh/bvh2.cpp
@@ -17,9 +17,9 @@
#include "bvh/bvh2.h"
-#include "render/hair.h"
-#include "render/mesh.h"
-#include "render/object.h"
+#include "scene/hair.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
#include "bvh/bvh_build.h"
#include "bvh/bvh_node.h"
diff --git a/intern/cycles/bvh/bvh_build.cpp b/intern/cycles/bvh/bvh_build.cpp
index 025a103d6f8..9ae40b57bc3 100644
--- a/intern/cycles/bvh/bvh_build.cpp
+++ b/intern/cycles/bvh/bvh_build.cpp
@@ -22,11 +22,11 @@
#include "bvh/bvh_params.h"
#include "bvh_split.h"
-#include "render/curves.h"
-#include "render/hair.h"
-#include "render/mesh.h"
-#include "render/object.h"
-#include "render/scene.h"
+#include "scene/curves.h"
+#include "scene/hair.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
+#include "scene/scene.h"
#include "util/util_algorithm.h"
#include "util/util_foreach.h"
diff --git a/intern/cycles/bvh/bvh_embree.cpp b/intern/cycles/bvh/bvh_embree.cpp
index cd19e009bf3..59a72f27294 100644
--- a/intern/cycles/bvh/bvh_embree.cpp
+++ b/intern/cycles/bvh/bvh_embree.cpp
@@ -40,11 +40,11 @@
# include "kernel/bvh/bvh_util.h"
# include "kernel/device/cpu/compat.h"
# include "kernel/device/cpu/globals.h"
-# include "kernel/kernel_random.h"
+# include "kernel/sample/sample_lcg.h"
-# include "render/hair.h"
-# include "render/mesh.h"
-# include "render/object.h"
+# include "scene/hair.h"
+# include "scene/mesh.h"
+# include "scene/object.h"
# include "util/util_foreach.h"
# include "util/util_logging.h"
diff --git a/intern/cycles/bvh/bvh_split.cpp b/intern/cycles/bvh/bvh_split.cpp
index d4c79253834..0e7d36983e7 100644
--- a/intern/cycles/bvh/bvh_split.cpp
+++ b/intern/cycles/bvh/bvh_split.cpp
@@ -20,9 +20,9 @@
#include "bvh/bvh_build.h"
#include "bvh/bvh_sort.h"
-#include "render/hair.h"
-#include "render/mesh.h"
-#include "render/object.h"
+#include "scene/hair.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
#include "util/util_algorithm.h"
diff --git a/intern/cycles/bvh/bvh_unaligned.cpp b/intern/cycles/bvh/bvh_unaligned.cpp
index 38e55307848..ce95aa7aa74 100644
--- a/intern/cycles/bvh/bvh_unaligned.cpp
+++ b/intern/cycles/bvh/bvh_unaligned.cpp
@@ -16,8 +16,8 @@
#include "bvh/bvh_unaligned.h"
-#include "render/hair.h"
-#include "render/object.h"
+#include "scene/hair.h"
+#include "scene/object.h"
#include "bvh/bvh_binning.h"
#include "bvh_params.h"
diff --git a/intern/cycles/device/cpu/device_impl.cpp b/intern/cycles/device/cpu/device_impl.cpp
index d02c18daee9..98d637b5f8a 100644
--- a/intern/cycles/device/cpu/device_impl.cpp
+++ b/intern/cycles/device/cpu/device_impl.cpp
@@ -47,7 +47,7 @@
#include "bvh/bvh_embree.h"
-#include "render/buffers.h"
+#include "session/buffers.h"
#include "util/util_debug.h"
#include "util/util_foreach.h"
diff --git a/intern/cycles/device/cuda/device_impl.cpp b/intern/cycles/device/cuda/device_impl.cpp
index 1c970096801..40f407b4fb3 100644
--- a/intern/cycles/device/cuda/device_impl.cpp
+++ b/intern/cycles/device/cuda/device_impl.cpp
@@ -24,8 +24,6 @@
# include "device/cuda/device_impl.h"
-# include "render/buffers.h"
-
# include "util/util_debug.h"
# include "util/util_foreach.h"
# include "util/util_logging.h"
diff --git a/intern/cycles/device/device_denoise.h b/intern/cycles/device/device_denoise.h
index dfdc7cc87b3..4e09f1a1ba3 100644
--- a/intern/cycles/device/device_denoise.h
+++ b/intern/cycles/device/device_denoise.h
@@ -18,7 +18,7 @@
#include "device/device_memory.h"
#include "graph/node.h"
-#include "render/buffers.h"
+#include "session/buffers.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/device/device_graphics_interop.h b/intern/cycles/device/device_graphics_interop.h
index eaf76077141..e5c97fe5a1e 100644
--- a/intern/cycles/device/device_graphics_interop.h
+++ b/intern/cycles/device/device_graphics_interop.h
@@ -16,7 +16,7 @@
#pragma once
-#include "render/display_driver.h"
+#include "session/display_driver.h"
#include "util/util_types.h"
diff --git a/intern/cycles/device/hip/device_impl.cpp b/intern/cycles/device/hip/device_impl.cpp
index 4ae714913ab..9ffeb9724a1 100644
--- a/intern/cycles/device/hip/device_impl.cpp
+++ b/intern/cycles/device/hip/device_impl.cpp
@@ -24,8 +24,6 @@
# include "device/hip/device_impl.h"
-# include "render/buffers.h"
-
# include "util/util_debug.h"
# include "util/util_foreach.h"
# include "util/util_logging.h"
diff --git a/intern/cycles/device/multi/device.cpp b/intern/cycles/device/multi/device.cpp
index 4f995abf2c4..330a1ed06ef 100644
--- a/intern/cycles/device/multi/device.cpp
+++ b/intern/cycles/device/multi/device.cpp
@@ -24,8 +24,7 @@
#include "device/device.h"
#include "device/device_queue.h"
-#include "render/buffers.h"
-#include "render/geometry.h"
+#include "scene/geometry.h"
#include "util/util_foreach.h"
#include "util/util_list.h"
diff --git a/intern/cycles/device/optix/device_impl.cpp b/intern/cycles/device/optix/device_impl.cpp
index 29e46be7745..55c3fbd88f2 100644
--- a/intern/cycles/device/optix/device_impl.cpp
+++ b/intern/cycles/device/optix/device_impl.cpp
@@ -21,13 +21,14 @@
# include "bvh/bvh.h"
# include "bvh/bvh_optix.h"
+
# include "integrator/pass_accessor_gpu.h"
-# include "render/buffers.h"
-# include "render/hair.h"
-# include "render/mesh.h"
-# include "render/object.h"
-# include "render/pass.h"
-# include "render/scene.h"
+
+# include "scene/hair.h"
+# include "scene/mesh.h"
+# include "scene/object.h"
+# include "scene/pass.h"
+# include "scene/scene.h"
# include "util/util_debug.h"
# include "util/util_logging.h"
diff --git a/intern/cycles/integrator/CMakeLists.txt b/intern/cycles/integrator/CMakeLists.txt
index 949254606b8..dedde513409 100644
--- a/intern/cycles/integrator/CMakeLists.txt
+++ b/intern/cycles/integrator/CMakeLists.txt
@@ -61,9 +61,11 @@ set(SRC_HEADERS
)
set(LIB
+ cycles_device
+
# NOTE: Is required for RenderBuffers access. Might consider moving files around a bit to
# avoid such cyclic dependency.
- cycles_render
+ cycles_session
cycles_util
)
diff --git a/intern/cycles/integrator/denoiser.cpp b/intern/cycles/integrator/denoiser.cpp
index 598bbd497a5..45f967b38eb 100644
--- a/intern/cycles/integrator/denoiser.cpp
+++ b/intern/cycles/integrator/denoiser.cpp
@@ -19,7 +19,7 @@
#include "device/device.h"
#include "integrator/denoiser_oidn.h"
#include "integrator/denoiser_optix.h"
-#include "render/buffers.h"
+#include "session/buffers.h"
#include "util/util_logging.h"
#include "util/util_progress.h"
diff --git a/intern/cycles/integrator/denoiser_device.cpp b/intern/cycles/integrator/denoiser_device.cpp
index e8361c50f2f..1afd8d46866 100644
--- a/intern/cycles/integrator/denoiser_device.cpp
+++ b/intern/cycles/integrator/denoiser_device.cpp
@@ -20,7 +20,7 @@
#include "device/device_denoise.h"
#include "device/device_memory.h"
#include "device/device_queue.h"
-#include "render/buffers.h"
+#include "session/buffers.h"
#include "util/util_logging.h"
#include "util/util_progress.h"
diff --git a/intern/cycles/integrator/denoiser_oidn.cpp b/intern/cycles/integrator/denoiser_oidn.cpp
index cc9a3f51387..c3555008699 100644
--- a/intern/cycles/integrator/denoiser_oidn.cpp
+++ b/intern/cycles/integrator/denoiser_oidn.cpp
@@ -21,7 +21,7 @@
#include "device/device.h"
#include "device/device_queue.h"
#include "integrator/pass_accessor_cpu.h"
-#include "render/buffers.h"
+#include "session/buffers.h"
#include "util/util_array.h"
#include "util/util_logging.h"
#include "util/util_openimagedenoise.h"
diff --git a/intern/cycles/integrator/pass_accessor.cpp b/intern/cycles/integrator/pass_accessor.cpp
index 1308b03b06c..0a8c445eca7 100644
--- a/intern/cycles/integrator/pass_accessor.cpp
+++ b/intern/cycles/integrator/pass_accessor.cpp
@@ -16,7 +16,7 @@
#include "integrator/pass_accessor.h"
-#include "render/buffers.h"
+#include "session/buffers.h"
#include "util/util_logging.h"
// clang-format off
diff --git a/intern/cycles/integrator/pass_accessor.h b/intern/cycles/integrator/pass_accessor.h
index 624bf7d0b2c..c9cf3ba8956 100644
--- a/intern/cycles/integrator/pass_accessor.h
+++ b/intern/cycles/integrator/pass_accessor.h
@@ -16,7 +16,7 @@
#pragma once
-#include "render/pass.h"
+#include "scene/pass.h"
#include "util/util_half.h"
#include "util/util_string.h"
#include "util/util_types.h"
diff --git a/intern/cycles/integrator/pass_accessor_cpu.cpp b/intern/cycles/integrator/pass_accessor_cpu.cpp
index e3cb81d31b7..f3ca38c667d 100644
--- a/intern/cycles/integrator/pass_accessor_cpu.cpp
+++ b/intern/cycles/integrator/pass_accessor_cpu.cpp
@@ -16,7 +16,7 @@
#include "integrator/pass_accessor_cpu.h"
-#include "render/buffers.h"
+#include "session/buffers.h"
#include "util/util_logging.h"
#include "util/util_tbb.h"
@@ -24,7 +24,7 @@
#include "kernel/device/cpu/compat.h"
#include "kernel/device/cpu/globals.h"
#include "kernel/kernel_types.h"
-#include "kernel/kernel_film.h"
+#include "kernel/film/film_read.h"
// clang-format on
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/integrator/pass_accessor_gpu.cpp b/intern/cycles/integrator/pass_accessor_gpu.cpp
index 7b01d061708..3b4290a89e6 100644
--- a/intern/cycles/integrator/pass_accessor_gpu.cpp
+++ b/intern/cycles/integrator/pass_accessor_gpu.cpp
@@ -17,7 +17,7 @@
#include "integrator/pass_accessor_gpu.h"
#include "device/device_queue.h"
-#include "render/buffers.h"
+#include "session/buffers.h"
#include "util/util_logging.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/integrator/path_trace.cpp b/intern/cycles/integrator/path_trace.cpp
index 9f3049c6484..94687f7bc95 100644
--- a/intern/cycles/integrator/path_trace.cpp
+++ b/intern/cycles/integrator/path_trace.cpp
@@ -22,9 +22,9 @@
#include "integrator/path_trace_display.h"
#include "integrator/path_trace_tile.h"
#include "integrator/render_scheduler.h"
-#include "render/pass.h"
-#include "render/scene.h"
-#include "render/tile.h"
+#include "scene/pass.h"
+#include "scene/scene.h"
+#include "session/tile.h"
#include "util/util_algorithm.h"
#include "util/util_logging.h"
#include "util/util_progress.h"
diff --git a/intern/cycles/integrator/path_trace.h b/intern/cycles/integrator/path_trace.h
index dbb22c204d9..89fa5fa8eaf 100644
--- a/intern/cycles/integrator/path_trace.h
+++ b/intern/cycles/integrator/path_trace.h
@@ -20,7 +20,7 @@
#include "integrator/pass_accessor.h"
#include "integrator/path_trace_work.h"
#include "integrator/work_balancer.h"
-#include "render/buffers.h"
+#include "session/buffers.h"
#include "util/util_function.h"
#include "util/util_thread.h"
#include "util/util_unique_ptr.h"
diff --git a/intern/cycles/integrator/path_trace_display.cpp b/intern/cycles/integrator/path_trace_display.cpp
index e22989bb301..7455a107ae6 100644
--- a/intern/cycles/integrator/path_trace_display.cpp
+++ b/intern/cycles/integrator/path_trace_display.cpp
@@ -16,7 +16,7 @@
#include "integrator/path_trace_display.h"
-#include "render/buffers.h"
+#include "session/buffers.h"
#include "util/util_logging.h"
diff --git a/intern/cycles/integrator/path_trace_display.h b/intern/cycles/integrator/path_trace_display.h
index 99d2e0e1203..d40e45e7ead 100644
--- a/intern/cycles/integrator/path_trace_display.h
+++ b/intern/cycles/integrator/path_trace_display.h
@@ -16,7 +16,7 @@
#pragma once
-#include "render/display_driver.h"
+#include "session/display_driver.h"
#include "util/util_half.h"
#include "util/util_thread.h"
diff --git a/intern/cycles/integrator/path_trace_tile.cpp b/intern/cycles/integrator/path_trace_tile.cpp
index 540f4aa5f68..4834769f476 100644
--- a/intern/cycles/integrator/path_trace_tile.cpp
+++ b/intern/cycles/integrator/path_trace_tile.cpp
@@ -18,10 +18,10 @@
#include "integrator/pass_accessor_cpu.h"
#include "integrator/path_trace.h"
-#include "render/buffers.h"
-#include "render/film.h"
-#include "render/pass.h"
-#include "render/scene.h"
+#include "scene/film.h"
+#include "scene/pass.h"
+#include "scene/scene.h"
+#include "session/buffers.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/integrator/path_trace_tile.h b/intern/cycles/integrator/path_trace_tile.h
index fd3e2969f6c..6c7bddf2ca5 100644
--- a/intern/cycles/integrator/path_trace_tile.h
+++ b/intern/cycles/integrator/path_trace_tile.h
@@ -16,7 +16,7 @@
#pragma once
-#include "render/output_driver.h"
+#include "session/output_driver.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/integrator/path_trace_work.cpp b/intern/cycles/integrator/path_trace_work.cpp
index d46f095d0d7..e08c410a579 100644
--- a/intern/cycles/integrator/path_trace_work.cpp
+++ b/intern/cycles/integrator/path_trace_work.cpp
@@ -20,9 +20,9 @@
#include "integrator/path_trace_work.h"
#include "integrator/path_trace_work_cpu.h"
#include "integrator/path_trace_work_gpu.h"
-#include "render/buffers.h"
-#include "render/film.h"
-#include "render/scene.h"
+#include "scene/film.h"
+#include "scene/scene.h"
+#include "session/buffers.h"
#include "kernel/kernel_types.h"
diff --git a/intern/cycles/integrator/path_trace_work.h b/intern/cycles/integrator/path_trace_work.h
index 404165b7c55..6b2a6c71e81 100644
--- a/intern/cycles/integrator/path_trace_work.h
+++ b/intern/cycles/integrator/path_trace_work.h
@@ -17,8 +17,8 @@
#pragma once
#include "integrator/pass_accessor.h"
-#include "render/buffers.h"
-#include "render/pass.h"
+#include "scene/pass.h"
+#include "session/buffers.h"
#include "util/util_types.h"
#include "util/util_unique_ptr.h"
diff --git a/intern/cycles/integrator/path_trace_work_cpu.cpp b/intern/cycles/integrator/path_trace_work_cpu.cpp
index 1cadcd9ec5c..1e59682a64c 100644
--- a/intern/cycles/integrator/path_trace_work_cpu.cpp
+++ b/intern/cycles/integrator/path_trace_work_cpu.cpp
@@ -19,13 +19,13 @@
#include "device/cpu/kernel.h"
#include "device/device.h"
-#include "kernel/kernel_path_state.h"
+#include "kernel/integrator/integrator_path_state.h"
#include "integrator/pass_accessor_cpu.h"
#include "integrator/path_trace_display.h"
-#include "render/buffers.h"
-#include "render/scene.h"
+#include "scene/scene.h"
+#include "session/buffers.h"
#include "util/util_atomic.h"
#include "util/util_logging.h"
diff --git a/intern/cycles/integrator/path_trace_work_gpu.cpp b/intern/cycles/integrator/path_trace_work_gpu.cpp
index 36f275e1075..24526cc666f 100644
--- a/intern/cycles/integrator/path_trace_work_gpu.cpp
+++ b/intern/cycles/integrator/path_trace_work_gpu.cpp
@@ -20,8 +20,8 @@
#include "device/device.h"
#include "integrator/pass_accessor_gpu.h"
-#include "render/buffers.h"
-#include "render/scene.h"
+#include "scene/scene.h"
+#include "session/buffers.h"
#include "util/util_logging.h"
#include "util/util_string.h"
#include "util/util_tbb.h"
diff --git a/intern/cycles/integrator/render_scheduler.cpp b/intern/cycles/integrator/render_scheduler.cpp
index 322d3d5f94c..3c64cba5feb 100644
--- a/intern/cycles/integrator/render_scheduler.cpp
+++ b/intern/cycles/integrator/render_scheduler.cpp
@@ -16,8 +16,8 @@
#include "integrator/render_scheduler.h"
-#include "render/session.h"
-#include "render/tile.h"
+#include "session/session.h"
+#include "session/tile.h"
#include "util/util_logging.h"
#include "util/util_math.h"
#include "util/util_time.h"
diff --git a/intern/cycles/integrator/render_scheduler.h b/intern/cycles/integrator/render_scheduler.h
index c4ab15e54ba..a2c1e75d3b6 100644
--- a/intern/cycles/integrator/render_scheduler.h
+++ b/intern/cycles/integrator/render_scheduler.h
@@ -18,7 +18,7 @@
#include "integrator/adaptive_sampling.h"
#include "integrator/denoiser.h" /* For DenoiseParams. */
-#include "render/buffers.h"
+#include "session/buffers.h"
#include "util/util_string.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/integrator/work_tile_scheduler.cpp b/intern/cycles/integrator/work_tile_scheduler.cpp
index 234b1fae915..a6775f27b65 100644
--- a/intern/cycles/integrator/work_tile_scheduler.cpp
+++ b/intern/cycles/integrator/work_tile_scheduler.cpp
@@ -18,7 +18,7 @@
#include "device/device_queue.h"
#include "integrator/tile.h"
-#include "render/buffers.h"
+#include "session/buffers.h"
#include "util/util_atomic.h"
#include "util/util_logging.h"
diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt
index 6d5d386ddea..f27bcb41d3d 100644
--- a/intern/cycles/kernel/CMakeLists.txt
+++ b/intern/cycles/kernel/CMakeLists.txt
@@ -44,7 +44,8 @@ set(SRC_DEVICE_OPTIX
device/optix/kernel_shader_raytrace.cu
)
-set(SRC_BVH_HEADERS
+set(SRC_HEADERS
+ bake/bake.h
bvh/bvh.h
bvh/bvh_nodes.h
bvh/bvh_shadow_all.h
@@ -55,36 +56,32 @@ set(SRC_BVH_HEADERS
bvh/bvh_volume.h
bvh/bvh_volume_all.h
bvh/bvh_embree.h
-)
-
-set(SRC_HEADERS
- kernel_accumulate.h
- kernel_adaptive_sampling.h
- kernel_bake.h
- kernel_camera.h
- kernel_color.h
- kernel_differential.h
- kernel_emission.h
- kernel_film.h
- kernel_id_passes.h
- kernel_jitter.h
- kernel_light.h
- kernel_light_background.h
- kernel_light_common.h
- kernel_lookup_table.h
- kernel_math.h
- kernel_montecarlo.h
- kernel_passes.h
- kernel_path_state.h
- kernel_profiling.h
- kernel_projection.h
- kernel_random.h
- kernel_shader.h
- kernel_shadow_catcher.h
+ camera/camera.h
+ camera/camera_projection.h
+ film/film_accumulate.h
+ film/film_adaptive_sampling.h
+ film/film_id_passes.h
+ film/film_passes.h
+ film/film_read.h
+ film/film_write_passes.h
+ integrator/integrator_path_state.h
+ integrator/integrator_shader_eval.h
+ integrator/integrator_shadow_catcher.h
kernel_textures.h
kernel_types.h
- kernel_work_stealing.h
- kernel_write_passes.h
+ light/light.h
+ light/light_background.h
+ light/light_common.h
+ light/light_sample.h
+ sample/sample_jitter.h
+ sample/sample_lcg.h
+ sample/sample_mapping.h
+ sample/sample_mis.h
+ sample/sample_pattern.h
+ util/util_color.h
+ util/util_differential.h
+ util/util_lookup_table.h
+ util/util_profiling.h
)
set(SRC_DEVICE_CPU_HEADERS
@@ -102,6 +99,7 @@ set(SRC_DEVICE_GPU_HEADERS
device/gpu/parallel_prefix_sum.h
device/gpu/parallel_reduce.h
device/gpu/parallel_sorted_index.h
+ device/gpu/work_stealing.h
)
set(SRC_DEVICE_CUDA_HEADERS
@@ -666,7 +664,7 @@ if(WITH_CYCLES_OSL)
cycles_kernel_osl
)
add_subdirectory(osl)
- add_subdirectory(shaders)
+ add_subdirectory(osl/shaders)
endif()
# CPU module
diff --git a/intern/cycles/kernel/kernel_bake.h b/intern/cycles/kernel/bake/bake.h
index 30a41b9d3e3..e234d56bd3c 100644
--- a/intern/cycles/kernel/kernel_bake.h
+++ b/intern/cycles/kernel/bake/bake.h
@@ -16,9 +16,8 @@
#pragma once
-#include "kernel/kernel_differential.h"
-#include "kernel/kernel_projection.h"
-#include "kernel/kernel_shader.h"
+#include "kernel/camera/camera_projection.h"
+#include "kernel/integrator/integrator_shader_eval.h"
#include "kernel/geom/geom.h"
diff --git a/intern/cycles/kernel/kernel_camera.h b/intern/cycles/kernel/camera/camera.h
index 58a34668f45..66bc25bb879 100644
--- a/intern/cycles/kernel/kernel_camera.h
+++ b/intern/cycles/kernel/camera/camera.h
@@ -16,10 +16,10 @@
#pragma once
-#include "kernel_differential.h"
-#include "kernel_lookup_table.h"
-#include "kernel_montecarlo.h"
-#include "kernel_projection.h"
+#include "kernel/camera/camera_projection.h"
+#include "kernel/sample/sample_mapping.h"
+#include "kernel/util/util_differential.h"
+#include "kernel/util/util_lookup_table.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/kernel_projection.h b/intern/cycles/kernel/camera/camera_projection.h
index 0aea82fa812..0aea82fa812 100644
--- a/intern/cycles/kernel/kernel_projection.h
+++ b/intern/cycles/kernel/camera/camera_projection.h
diff --git a/intern/cycles/kernel/closure/bsdf_ashikhmin_velvet.h b/intern/cycles/kernel/closure/bsdf_ashikhmin_velvet.h
index c00890be54c..fa88c66f536 100644
--- a/intern/cycles/kernel/closure/bsdf_ashikhmin_velvet.h
+++ b/intern/cycles/kernel/closure/bsdf_ashikhmin_velvet.h
@@ -32,7 +32,7 @@
#pragma once
-#include "kernel/kernel_montecarlo.h"
+#include "kernel/sample/sample_mapping.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/closure/bsdf_diffuse.h b/intern/cycles/kernel/closure/bsdf_diffuse.h
index 16c9b428004..dd3b4500b1f 100644
--- a/intern/cycles/kernel/closure/bsdf_diffuse.h
+++ b/intern/cycles/kernel/closure/bsdf_diffuse.h
@@ -32,6 +32,8 @@
#pragma once
+#include "kernel/sample/sample_mapping.h"
+
CCL_NAMESPACE_BEGIN
typedef struct DiffuseBsdf {
diff --git a/intern/cycles/kernel/closure/bsdf_diffuse_ramp.h b/intern/cycles/kernel/closure/bsdf_diffuse_ramp.h
index 8bff7709a32..1e70d3e534e 100644
--- a/intern/cycles/kernel/closure/bsdf_diffuse_ramp.h
+++ b/intern/cycles/kernel/closure/bsdf_diffuse_ramp.h
@@ -32,6 +32,8 @@
#pragma once
+#include "kernel/sample/sample_mapping.h"
+
CCL_NAMESPACE_BEGIN
#ifdef __OSL__
diff --git a/intern/cycles/kernel/closure/bsdf_hair_principled.h b/intern/cycles/kernel/closure/bsdf_hair_principled.h
index a474c5661b3..ff554d4a60e 100644
--- a/intern/cycles/kernel/closure/bsdf_hair_principled.h
+++ b/intern/cycles/kernel/closure/bsdf_hair_principled.h
@@ -20,7 +20,7 @@
# include <fenv.h>
#endif
-#include "kernel/kernel_color.h"
+#include "kernel/util/util_color.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/closure/bsdf_microfacet.h b/intern/cycles/kernel/closure/bsdf_microfacet.h
index a4e1b7a491c..28aac368f2b 100644
--- a/intern/cycles/kernel/closure/bsdf_microfacet.h
+++ b/intern/cycles/kernel/closure/bsdf_microfacet.h
@@ -32,8 +32,8 @@
#pragma once
-#include "kernel/kernel_lookup_table.h"
-#include "kernel/kernel_random.h"
+#include "kernel/sample/sample_pattern.h"
+#include "kernel/util/util_lookup_table.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/closure/bsdf_microfacet_multi.h b/intern/cycles/kernel/closure/bsdf_microfacet_multi.h
index b7bd7faaa54..b1ab8d7ffd0 100644
--- a/intern/cycles/kernel/closure/bsdf_microfacet_multi.h
+++ b/intern/cycles/kernel/closure/bsdf_microfacet_multi.h
@@ -16,6 +16,9 @@
#pragma once
+#include "kernel/sample/sample_lcg.h"
+#include "kernel/sample/sample_mapping.h"
+
CCL_NAMESPACE_BEGIN
/* Most of the code is based on the supplemental implementations from
diff --git a/intern/cycles/kernel/closure/bsdf_principled_diffuse.h b/intern/cycles/kernel/closure/bsdf_principled_diffuse.h
index 74390f768a2..0e3b21117b5 100644
--- a/intern/cycles/kernel/closure/bsdf_principled_diffuse.h
+++ b/intern/cycles/kernel/closure/bsdf_principled_diffuse.h
@@ -27,6 +27,8 @@
#include "kernel/closure/bsdf_util.h"
+#include "kernel/sample/sample_mapping.h"
+
CCL_NAMESPACE_BEGIN
enum PrincipledDiffuseBsdfComponents {
diff --git a/intern/cycles/kernel/closure/bsdf_util.h b/intern/cycles/kernel/closure/bsdf_util.h
index 873494c1e03..b1c16a037df 100644
--- a/intern/cycles/kernel/closure/bsdf_util.h
+++ b/intern/cycles/kernel/closure/bsdf_util.h
@@ -148,4 +148,110 @@ interpolate_fresnel_color(float3 L, float3 H, float ior, float F0, float3 cspec0
return cspec0 * (1.0f - FH) + make_float3(1.0f, 1.0f, 1.0f) * FH;
}
+ccl_device float3 ensure_valid_reflection(float3 Ng, float3 I, float3 N)
+{
+ float3 R = 2 * dot(N, I) * N - I;
+
+ /* Reflection rays may always be at least as shallow as the incoming ray. */
+ float threshold = min(0.9f * dot(Ng, I), 0.01f);
+ if (dot(Ng, R) >= threshold) {
+ return N;
+ }
+
+ /* Form coordinate system with Ng as the Z axis and N inside the X-Z-plane.
+ * The X axis is found by normalizing the component of N that's orthogonal to Ng.
+ * The Y axis isn't actually needed.
+ */
+ float NdotNg = dot(N, Ng);
+ float3 X = normalize(N - NdotNg * Ng);
+
+ /* Keep math expressions. */
+ /* clang-format off */
+ /* Calculate N.z and N.x in the local coordinate system.
+ *
+ * The goal of this computation is to find a N' that is rotated towards Ng just enough
+ * to lift R' above the threshold (here called t), therefore dot(R', Ng) = t.
+ *
+ * According to the standard reflection equation,
+ * this means that we want dot(2*dot(N', I)*N' - I, Ng) = t.
+ *
+ * Since the Z axis of our local coordinate system is Ng, dot(x, Ng) is just x.z, so we get
+ * 2*dot(N', I)*N'.z - I.z = t.
+ *
+ * The rotation is simple to express in the coordinate system we formed -
+ * since N lies in the X-Z-plane, we know that N' will also lie in the X-Z-plane,
+ * so N'.y = 0 and therefore dot(N', I) = N'.x*I.x + N'.z*I.z .
+ *
+ * Furthermore, we want N' to be normalized, so N'.x = sqrt(1 - N'.z^2).
+ *
+ * With these simplifications,
+ * we get the final equation 2*(sqrt(1 - N'.z^2)*I.x + N'.z*I.z)*N'.z - I.z = t.
+ *
+ * The only unknown here is N'.z, so we can solve for that.
+ *
+ * The equation has four solutions in general:
+ *
+ * N'.z = +-sqrt(0.5*(+-sqrt(I.x^2*(I.x^2 + I.z^2 - t^2)) + t*I.z + I.x^2 + I.z^2)/(I.x^2 + I.z^2))
+ * We can simplify this expression a bit by grouping terms:
+ *
+ * a = I.x^2 + I.z^2
+ * b = sqrt(I.x^2 * (a - t^2))
+ * c = I.z*t + a
+ * N'.z = +-sqrt(0.5*(+-b + c)/a)
+ *
+ * Two solutions can immediately be discarded because they're negative so N' would lie in the
+ * lower hemisphere.
+ */
+ /* clang-format on */
+
+ float Ix = dot(I, X), Iz = dot(I, Ng);
+ float Ix2 = sqr(Ix), Iz2 = sqr(Iz);
+ float a = Ix2 + Iz2;
+
+ float b = safe_sqrtf(Ix2 * (a - sqr(threshold)));
+ float c = Iz * threshold + a;
+
+ /* Evaluate both solutions.
+ * In many cases one can be immediately discarded (if N'.z would be imaginary or larger than
+ * one), so check for that first. If no option is viable (might happen in extreme cases like N
+ * being in the wrong hemisphere), give up and return Ng. */
+ float fac = 0.5f / a;
+ float N1_z2 = fac * (b + c), N2_z2 = fac * (-b + c);
+ bool valid1 = (N1_z2 > 1e-5f) && (N1_z2 <= (1.0f + 1e-5f));
+ bool valid2 = (N2_z2 > 1e-5f) && (N2_z2 <= (1.0f + 1e-5f));
+
+ float2 N_new;
+ if (valid1 && valid2) {
+ /* If both are possible, do the expensive reflection-based check. */
+ float2 N1 = make_float2(safe_sqrtf(1.0f - N1_z2), safe_sqrtf(N1_z2));
+ float2 N2 = make_float2(safe_sqrtf(1.0f - N2_z2), safe_sqrtf(N2_z2));
+
+ float R1 = 2 * (N1.x * Ix + N1.y * Iz) * N1.y - Iz;
+ float R2 = 2 * (N2.x * Ix + N2.y * Iz) * N2.y - Iz;
+
+ valid1 = (R1 >= 1e-5f);
+ valid2 = (R2 >= 1e-5f);
+ if (valid1 && valid2) {
+ /* If both solutions are valid, return the one with the shallower reflection since it will be
+ * closer to the input (if the original reflection wasn't shallow, we would not be in this
+ * part of the function). */
+ N_new = (R1 < R2) ? N1 : N2;
+ }
+ else {
+ /* If only one reflection is valid (= positive), pick that one. */
+ N_new = (R1 > R2) ? N1 : N2;
+ }
+ }
+ else if (valid1 || valid2) {
+ /* Only one solution passes the N'.z criterium, so pick that one. */
+ float Nz2 = valid1 ? N1_z2 : N2_z2;
+ N_new = make_float2(safe_sqrtf(1.0f - Nz2), safe_sqrtf(Nz2));
+ }
+ else {
+ return Ng;
+ }
+
+ return N_new.x * X + N_new.y * Ng;
+}
+
CCL_NAMESPACE_END
diff --git a/intern/cycles/kernel/device/cpu/globals.h b/intern/cycles/kernel/device/cpu/globals.h
index fb9aae38cfc..f3e530a9edc 100644
--- a/intern/cycles/kernel/device/cpu/globals.h
+++ b/intern/cycles/kernel/device/cpu/globals.h
@@ -18,8 +18,8 @@
#pragma once
-#include "kernel/kernel_profiling.h"
#include "kernel/kernel_types.h"
+#include "kernel/util/util_profiling.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/device/cpu/kernel_arch_impl.h b/intern/cycles/kernel/device/cpu/kernel_arch_impl.h
index ba777062113..148b6a33cb5 100644
--- a/intern/cycles/kernel/device/cpu/kernel_arch_impl.h
+++ b/intern/cycles/kernel/device/cpu/kernel_arch_impl.h
@@ -46,10 +46,11 @@
# include "kernel/integrator/integrator_shade_volume.h"
# include "kernel/integrator/integrator_megakernel.h"
-# include "kernel/kernel_film.h"
-# include "kernel/kernel_adaptive_sampling.h"
-# include "kernel/kernel_bake.h"
-# include "kernel/kernel_id_passes.h"
+# include "kernel/film/film_adaptive_sampling.h"
+# include "kernel/film/film_read.h"
+# include "kernel/film/film_id_passes.h"
+
+# include "kernel/bake/bake.h"
#else
# define STUB_ASSERT(arch, name) \
diff --git a/intern/cycles/kernel/device/cuda/globals.h b/intern/cycles/kernel/device/cuda/globals.h
index 2c187cf8a23..cde935198b3 100644
--- a/intern/cycles/kernel/device/cuda/globals.h
+++ b/intern/cycles/kernel/device/cuda/globals.h
@@ -18,11 +18,12 @@
#pragma once
-#include "kernel/kernel_profiling.h"
#include "kernel/kernel_types.h"
#include "kernel/integrator/integrator_state.h"
+#include "kernel/util/util_profiling.h"
+
CCL_NAMESPACE_BEGIN
/* Not actually used, just a NULL pointer that gets passed everywhere, which we
diff --git a/intern/cycles/kernel/device/gpu/kernel.h b/intern/cycles/kernel/device/gpu/kernel.h
index 335cb1ec0c0..aa360b3016a 100644
--- a/intern/cycles/kernel/device/gpu/kernel.h
+++ b/intern/cycles/kernel/device/gpu/kernel.h
@@ -19,6 +19,7 @@
#include "kernel/device/gpu/parallel_active_index.h"
#include "kernel/device/gpu/parallel_prefix_sum.h"
#include "kernel/device/gpu/parallel_sorted_index.h"
+#include "kernel/device/gpu/work_stealing.h"
#include "kernel/integrator/integrator_state.h"
#include "kernel/integrator/integrator_state_flow.h"
@@ -36,10 +37,10 @@
#include "kernel/integrator/integrator_shade_surface.h"
#include "kernel/integrator/integrator_shade_volume.h"
-#include "kernel/kernel_adaptive_sampling.h"
-#include "kernel/kernel_bake.h"
-#include "kernel/kernel_film.h"
-#include "kernel/kernel_work_stealing.h"
+#include "kernel/bake/bake.h"
+
+#include "kernel/film/film_adaptive_sampling.h"
+#include "kernel/film/film_read.h"
/* --------------------------------------------------------------------
* Integrator.
diff --git a/intern/cycles/kernel/kernel_work_stealing.h b/intern/cycles/kernel/device/gpu/work_stealing.h
index fab0915c38e..fab0915c38e 100644
--- a/intern/cycles/kernel/kernel_work_stealing.h
+++ b/intern/cycles/kernel/device/gpu/work_stealing.h
diff --git a/intern/cycles/kernel/device/hip/globals.h b/intern/cycles/kernel/device/hip/globals.h
index 28e1cc4282f..079944bd8f2 100644
--- a/intern/cycles/kernel/device/hip/globals.h
+++ b/intern/cycles/kernel/device/hip/globals.h
@@ -18,11 +18,12 @@
#pragma once
-#include "kernel/kernel_profiling.h"
#include "kernel/kernel_types.h"
#include "kernel/integrator/integrator_state.h"
+#include "kernel/util/util_profiling.h"
+
CCL_NAMESPACE_BEGIN
/* Not actually used, just a NULL pointer that gets passed everywhere, which we
diff --git a/intern/cycles/kernel/device/optix/globals.h b/intern/cycles/kernel/device/optix/globals.h
index 7b8ebfe50e6..e038bc1797a 100644
--- a/intern/cycles/kernel/device/optix/globals.h
+++ b/intern/cycles/kernel/device/optix/globals.h
@@ -18,11 +18,12 @@
#pragma once
-#include "kernel/kernel_profiling.h"
#include "kernel/kernel_types.h"
#include "kernel/integrator/integrator_state.h"
+#include "kernel/util/util_profiling.h"
+
CCL_NAMESPACE_BEGIN
/* Not actually used, just a NULL pointer that gets passed everywhere, which we
diff --git a/intern/cycles/kernel/kernel_accumulate.h b/intern/cycles/kernel/film/film_accumulate.h
index 54492bef974..914e165a9cd 100644
--- a/intern/cycles/kernel/kernel_accumulate.h
+++ b/intern/cycles/kernel/film/film_accumulate.h
@@ -16,10 +16,10 @@
#pragma once
-#include "kernel_adaptive_sampling.h"
-#include "kernel_random.h"
-#include "kernel_shadow_catcher.h"
-#include "kernel_write_passes.h"
+#include "kernel/film/film_adaptive_sampling.h"
+#include "kernel/film/film_write_passes.h"
+
+#include "kernel/integrator/integrator_shadow_catcher.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/kernel_adaptive_sampling.h b/intern/cycles/kernel/film/film_adaptive_sampling.h
index b80853fcc51..c78b5f6b707 100644
--- a/intern/cycles/kernel/kernel_adaptive_sampling.h
+++ b/intern/cycles/kernel/film/film_adaptive_sampling.h
@@ -16,7 +16,7 @@
#pragma once
-#include "kernel/kernel_write_passes.h"
+#include "kernel/film/film_write_passes.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/kernel_id_passes.h b/intern/cycles/kernel/film/film_id_passes.h
index d5b8c90a828..d5b8c90a828 100644
--- a/intern/cycles/kernel/kernel_id_passes.h
+++ b/intern/cycles/kernel/film/film_id_passes.h
diff --git a/intern/cycles/kernel/kernel_passes.h b/intern/cycles/kernel/film/film_passes.h
index 4e4ffa68d25..40ddb1b5563 100644
--- a/intern/cycles/kernel/kernel_passes.h
+++ b/intern/cycles/kernel/film/film_passes.h
@@ -18,8 +18,8 @@
#include "kernel/geom/geom.h"
-#include "kernel/kernel_id_passes.h"
-#include "kernel/kernel_write_passes.h"
+#include "kernel/film/film_id_passes.h"
+#include "kernel/film/film_write_passes.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/kernel_film.h b/intern/cycles/kernel/film/film_read.h
index a87eff3832e..a87eff3832e 100644
--- a/intern/cycles/kernel/kernel_film.h
+++ b/intern/cycles/kernel/film/film_read.h
diff --git a/intern/cycles/kernel/kernel_write_passes.h b/intern/cycles/kernel/film/film_write_passes.h
index 9d379495629..9d379495629 100644
--- a/intern/cycles/kernel/kernel_write_passes.h
+++ b/intern/cycles/kernel/film/film_write_passes.h
diff --git a/intern/cycles/kernel/geom/geom_patch.h b/intern/cycles/kernel/geom/geom_patch.h
index bd797ef52ab..bf1a06220aa 100644
--- a/intern/cycles/kernel/geom/geom_patch.h
+++ b/intern/cycles/kernel/geom/geom_patch.h
@@ -26,6 +26,8 @@
#pragma once
+#include "util/util_color.h"
+
CCL_NAMESPACE_BEGIN
typedef struct PatchHandle {
diff --git a/intern/cycles/kernel/geom/geom_primitive.h b/intern/cycles/kernel/geom/geom_primitive.h
index 91b29c7f990..bc559e3c812 100644
--- a/intern/cycles/kernel/geom/geom_primitive.h
+++ b/intern/cycles/kernel/geom/geom_primitive.h
@@ -21,7 +21,7 @@
#pragma once
-#include "kernel/kernel_projection.h"
+#include "kernel/camera/camera_projection.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/geom/geom_triangle_intersect.h b/intern/cycles/kernel/geom/geom_triangle_intersect.h
index fee629cc75a..440dc23d124 100644
--- a/intern/cycles/kernel/geom/geom_triangle_intersect.h
+++ b/intern/cycles/kernel/geom/geom_triangle_intersect.h
@@ -22,7 +22,7 @@
#pragma once
-#include "kernel/kernel_random.h"
+#include "kernel/sample/sample_lcg.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/integrator/integrator_init_from_bake.h b/intern/cycles/kernel/integrator/integrator_init_from_bake.h
index de916be24e7..5790cfd3f22 100644
--- a/intern/cycles/kernel/integrator/integrator_init_from_bake.h
+++ b/intern/cycles/kernel/integrator/integrator_init_from_bake.h
@@ -16,11 +16,14 @@
#pragma once
-#include "kernel/kernel_accumulate.h"
-#include "kernel/kernel_adaptive_sampling.h"
-#include "kernel/kernel_camera.h"
-#include "kernel/kernel_path_state.h"
-#include "kernel/kernel_random.h"
+#include "kernel/camera/camera.h"
+
+#include "kernel/film/film_accumulate.h"
+#include "kernel/film/film_adaptive_sampling.h"
+
+#include "kernel/integrator/integrator_path_state.h"
+
+#include "kernel/sample/sample_pattern.h"
#include "kernel/geom/geom.h"
diff --git a/intern/cycles/kernel/integrator/integrator_init_from_camera.h b/intern/cycles/kernel/integrator/integrator_init_from_camera.h
index 5bab6b2e2fd..499a72ffbc4 100644
--- a/intern/cycles/kernel/integrator/integrator_init_from_camera.h
+++ b/intern/cycles/kernel/integrator/integrator_init_from_camera.h
@@ -16,12 +16,15 @@
#pragma once
-#include "kernel/kernel_accumulate.h"
-#include "kernel/kernel_adaptive_sampling.h"
-#include "kernel/kernel_camera.h"
-#include "kernel/kernel_path_state.h"
-#include "kernel/kernel_random.h"
-#include "kernel/kernel_shadow_catcher.h"
+#include "kernel/camera/camera.h"
+
+#include "kernel/film/film_accumulate.h"
+#include "kernel/film/film_adaptive_sampling.h"
+
+#include "kernel/integrator/integrator_path_state.h"
+#include "kernel/integrator/integrator_shadow_catcher.h"
+
+#include "kernel/sample/sample_pattern.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/integrator/integrator_intersect_closest.h b/intern/cycles/kernel/integrator/integrator_intersect_closest.h
index c1315d48694..41d3dfde41a 100644
--- a/intern/cycles/kernel/integrator/integrator_intersect_closest.h
+++ b/intern/cycles/kernel/integrator/integrator_intersect_closest.h
@@ -16,11 +16,14 @@
#pragma once
-#include "kernel/kernel_differential.h"
-#include "kernel/kernel_light.h"
-#include "kernel/kernel_path_state.h"
-#include "kernel/kernel_projection.h"
-#include "kernel/kernel_shadow_catcher.h"
+#include "kernel/camera/camera_projection.h"
+
+#include "kernel/integrator/integrator_path_state.h"
+#include "kernel/integrator/integrator_shadow_catcher.h"
+
+#include "kernel/light/light.h"
+
+#include "kernel/util/util_differential.h"
#include "kernel/geom/geom.h"
diff --git a/intern/cycles/kernel/integrator/integrator_intersect_volume_stack.h b/intern/cycles/kernel/integrator/integrator_intersect_volume_stack.h
index 7def3e2f3f3..505d9687948 100644
--- a/intern/cycles/kernel/integrator/integrator_intersect_volume_stack.h
+++ b/intern/cycles/kernel/integrator/integrator_intersect_volume_stack.h
@@ -18,8 +18,8 @@
#include "kernel/bvh/bvh.h"
#include "kernel/geom/geom.h"
+#include "kernel/integrator/integrator_shader_eval.h"
#include "kernel/integrator/integrator_volume_stack.h"
-#include "kernel/kernel_shader.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/kernel_path_state.h b/intern/cycles/kernel/integrator/integrator_path_state.h
index a0584f0b219..73062b26682 100644
--- a/intern/cycles/kernel/kernel_path_state.h
+++ b/intern/cycles/kernel/integrator/integrator_path_state.h
@@ -16,7 +16,7 @@
#pragma once
-#include "kernel_random.h"
+#include "kernel/sample/sample_pattern.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/integrator/integrator_shade_background.h b/intern/cycles/kernel/integrator/integrator_shade_background.h
index 287c54d7243..b3bef9a234e 100644
--- a/intern/cycles/kernel/integrator/integrator_shade_background.h
+++ b/intern/cycles/kernel/integrator/integrator_shade_background.h
@@ -16,10 +16,11 @@
#pragma once
-#include "kernel/kernel_accumulate.h"
-#include "kernel/kernel_emission.h"
-#include "kernel/kernel_light.h"
-#include "kernel/kernel_shader.h"
+#include "kernel/film/film_accumulate.h"
+#include "kernel/integrator/integrator_shader_eval.h"
+#include "kernel/light/light.h"
+#include "kernel/light/light_sample.h"
+#include "kernel/sample/sample_mis.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/integrator/integrator_shade_light.h b/intern/cycles/kernel/integrator/integrator_shade_light.h
index 4f0f5a39756..7d220006322 100644
--- a/intern/cycles/kernel/integrator/integrator_shade_light.h
+++ b/intern/cycles/kernel/integrator/integrator_shade_light.h
@@ -16,10 +16,10 @@
#pragma once
-#include "kernel/kernel_accumulate.h"
-#include "kernel/kernel_emission.h"
-#include "kernel/kernel_light.h"
-#include "kernel/kernel_shader.h"
+#include "kernel/film/film_accumulate.h"
+#include "kernel/integrator/integrator_shader_eval.h"
+#include "kernel/light/light.h"
+#include "kernel/light/light_sample.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/integrator/integrator_shade_shadow.h b/intern/cycles/kernel/integrator/integrator_shade_shadow.h
index a82254e1dea..0c4eeb8d10d 100644
--- a/intern/cycles/kernel/integrator/integrator_shade_shadow.h
+++ b/intern/cycles/kernel/integrator/integrator_shade_shadow.h
@@ -18,8 +18,7 @@
#include "kernel/integrator/integrator_shade_volume.h"
#include "kernel/integrator/integrator_volume_stack.h"
-
-#include "kernel/kernel_shader.h"
+#include "kernel/integrator/integrator_shader_eval.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/integrator/integrator_shade_surface.h b/intern/cycles/kernel/integrator/integrator_shade_surface.h
index 3724b05c6b0..c99c70b7e23 100644
--- a/intern/cycles/kernel/integrator/integrator_shade_surface.h
+++ b/intern/cycles/kernel/integrator/integrator_shade_surface.h
@@ -16,16 +16,19 @@
#pragma once
-#include "kernel/kernel_accumulate.h"
-#include "kernel/kernel_emission.h"
-#include "kernel/kernel_light.h"
-#include "kernel/kernel_passes.h"
-#include "kernel/kernel_path_state.h"
-#include "kernel/kernel_shader.h"
+#include "kernel/film/film_accumulate.h"
+#include "kernel/film/film_passes.h"
+#include "kernel/integrator/integrator_path_state.h"
+#include "kernel/integrator/integrator_shader_eval.h"
#include "kernel/integrator/integrator_subsurface.h"
#include "kernel/integrator/integrator_volume_stack.h"
+#include "kernel/light/light.h"
+#include "kernel/light/light_sample.h"
+
+#include "kernel/sample/sample_mis.h"
+
CCL_NAMESPACE_BEGIN
ccl_device_forceinline void integrate_surface_shader_setup(KernelGlobals kg,
diff --git a/intern/cycles/kernel/integrator/integrator_shade_volume.h b/intern/cycles/kernel/integrator/integrator_shade_volume.h
index d0aabb550c0..44ef4803575 100644
--- a/intern/cycles/kernel/integrator/integrator_shade_volume.h
+++ b/intern/cycles/kernel/integrator/integrator_shade_volume.h
@@ -16,16 +16,19 @@
#pragma once
-#include "kernel/kernel_accumulate.h"
-#include "kernel/kernel_emission.h"
-#include "kernel/kernel_light.h"
-#include "kernel/kernel_passes.h"
-#include "kernel/kernel_path_state.h"
-#include "kernel/kernel_shader.h"
+#include "kernel/film/film_accumulate.h"
+#include "kernel/film/film_passes.h"
+#include "kernel/integrator/integrator_path_state.h"
+#include "kernel/integrator/integrator_shader_eval.h"
#include "kernel/integrator/integrator_intersect_closest.h"
#include "kernel/integrator/integrator_volume_stack.h"
+#include "kernel/light/light.h"
+#include "kernel/light/light_sample.h"
+
+#include "kernel/sample/sample_mis.h"
+
CCL_NAMESPACE_BEGIN
#ifdef __VOLUME__
diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/integrator/integrator_shader_eval.h
index d25191b72cf..dc1543c9511 100644
--- a/intern/cycles/kernel/kernel_shader.h
+++ b/intern/cycles/kernel/integrator/integrator_shader_eval.h
@@ -18,14 +18,13 @@
#pragma once
-// clang-format off
#include "kernel/closure/alloc.h"
#include "kernel/closure/bsdf_util.h"
#include "kernel/closure/bsdf.h"
#include "kernel/closure/emissive.h"
-// clang-format on
-#include "kernel/kernel_accumulate.h"
+#include "kernel/film/film_accumulate.h"
+
#include "kernel/svm/svm.h"
#ifdef __OSL__
diff --git a/intern/cycles/kernel/kernel_shadow_catcher.h b/intern/cycles/kernel/integrator/integrator_shadow_catcher.h
index 9bed140b395..24d03466393 100644
--- a/intern/cycles/kernel/kernel_shadow_catcher.h
+++ b/intern/cycles/kernel/integrator/integrator_shadow_catcher.h
@@ -16,8 +16,8 @@
#pragma once
+#include "kernel/integrator/integrator_path_state.h"
#include "kernel/integrator/integrator_state_util.h"
-#include "kernel/kernel_path_state.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/integrator/integrator_state_util.h b/intern/cycles/kernel/integrator/integrator_state_util.h
index 6e6b7f8a40f..0b1f67daa92 100644
--- a/intern/cycles/kernel/integrator/integrator_state_util.h
+++ b/intern/cycles/kernel/integrator/integrator_state_util.h
@@ -17,7 +17,8 @@
#pragma once
#include "kernel/integrator/integrator_state.h"
-#include "kernel/kernel_differential.h"
+
+#include "kernel/util/util_differential.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/integrator/integrator_subsurface.h b/intern/cycles/kernel/integrator/integrator_subsurface.h
index e3bf9db80f7..9560641c460 100644
--- a/intern/cycles/kernel/integrator/integrator_subsurface.h
+++ b/intern/cycles/kernel/integrator/integrator_subsurface.h
@@ -16,9 +16,7 @@
#pragma once
-#include "kernel/kernel_path_state.h"
-#include "kernel/kernel_projection.h"
-#include "kernel/kernel_shader.h"
+#include "kernel/camera/camera_projection.h"
#include "kernel/bvh/bvh.h"
@@ -29,6 +27,8 @@
#include "kernel/closure/volume.h"
#include "kernel/integrator/integrator_intersect_volume_stack.h"
+#include "kernel/integrator/integrator_path_state.h"
+#include "kernel/integrator/integrator_shader_eval.h"
#include "kernel/integrator/integrator_subsurface_disk.h"
#include "kernel/integrator/integrator_subsurface_random_walk.h"
diff --git a/intern/cycles/kernel/integrator/integrator_subsurface_random_walk.h b/intern/cycles/kernel/integrator/integrator_subsurface_random_walk.h
index 2ab6d0961e3..b98acda1f4d 100644
--- a/intern/cycles/kernel/integrator/integrator_subsurface_random_walk.h
+++ b/intern/cycles/kernel/integrator/integrator_subsurface_random_walk.h
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#include "kernel/kernel_projection.h"
+#include "kernel/camera/camera_projection.h"
#include "kernel/bvh/bvh.h"
diff --git a/intern/cycles/kernel/kernel_math.h b/intern/cycles/kernel/kernel_math.h
deleted file mode 100644
index 3c5ab95bbc8..00000000000
--- a/intern/cycles/kernel/kernel_math.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright 2011-2013 Blender Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include "util/util_color.h"
-#include "util/util_math.h"
-#include "util/util_math_fast.h"
-#include "util/util_math_intersect.h"
-#include "util/util_projection.h"
-#include "util/util_texture.h"
-#include "util/util_transform.h"
diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h
index 5cbe2939dfc..9b978901bf1 100644
--- a/intern/cycles/kernel/kernel_types.h
+++ b/intern/cycles/kernel/kernel_types.h
@@ -22,10 +22,16 @@
# define __EMBREE__
#endif
-#include "kernel/kernel_math.h"
-#include "kernel/svm/svm_types.h"
+#include "util/util_math.h"
+#include "util/util_math_fast.h"
+#include "util/util_math_intersect.h"
+#include "util/util_projection.h"
+#include "util/util_texture.h"
+#include "util/util_transform.h"
#include "util/util_static_assert.h"
+#include "kernel/svm/svm_types.h"
+
#ifndef __KERNEL_GPU__
# define __KERNEL_CPU__
#endif
diff --git a/intern/cycles/kernel/kernel_light.h b/intern/cycles/kernel/light/light.h
index b3eaed4fcb0..facbbe23d0f 100644
--- a/intern/cycles/kernel/kernel_light.h
+++ b/intern/cycles/kernel/light/light.h
@@ -16,12 +16,9 @@
#pragma once
-#include "geom/geom.h"
-
-#include "kernel_light_background.h"
-#include "kernel_montecarlo.h"
-#include "kernel_projection.h"
-#include "kernel_types.h"
+#include "kernel/geom/geom.h"
+#include "kernel/light/light_background.h"
+#include "kernel/sample/sample_mapping.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/kernel_light_background.h b/intern/cycles/kernel/light/light_background.h
index 2e828b8b765..78f8c94f7a3 100644
--- a/intern/cycles/kernel/kernel_light_background.h
+++ b/intern/cycles/kernel/light/light_background.h
@@ -16,7 +16,7 @@
#pragma once
-#include "kernel_light_common.h"
+#include "kernel/light/light_common.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/kernel_light_common.h b/intern/cycles/kernel/light/light_common.h
index 9e2b738f376..207e89090cc 100644
--- a/intern/cycles/kernel/kernel_light_common.h
+++ b/intern/cycles/kernel/light/light_common.h
@@ -16,7 +16,7 @@
#pragma once
-#include "kernel_montecarlo.h"
+#include "kernel/sample/sample_mapping.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/kernel_emission.h b/intern/cycles/kernel/light/light_sample.h
index 8d329b8dac3..4ae5d9e1944 100644
--- a/intern/cycles/kernel/kernel_emission.h
+++ b/intern/cycles/kernel/light/light_sample.h
@@ -16,10 +16,12 @@
#pragma once
-#include "kernel/kernel_light.h"
-#include "kernel/kernel_montecarlo.h"
-#include "kernel/kernel_path_state.h"
-#include "kernel/kernel_shader.h"
+#include "kernel/integrator/integrator_path_state.h"
+#include "kernel/integrator/integrator_shader_eval.h"
+
+#include "kernel/light/light.h"
+
+#include "kernel/sample/sample_mapping.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/osl/CMakeLists.txt b/intern/cycles/kernel/osl/CMakeLists.txt
index 6cdc7367fbb..7be1b7129e0 100644
--- a/intern/cycles/kernel/osl/CMakeLists.txt
+++ b/intern/cycles/kernel/osl/CMakeLists.txt
@@ -39,7 +39,7 @@ set(HEADER_SRC
)
set(LIB
- cycles_render
+ cycles_scene
${OSL_LIBRARIES}
${OPENIMAGEIO_LIBRARIES}
diff --git a/intern/cycles/kernel/osl/bsdf_diffuse_ramp.cpp b/intern/cycles/kernel/osl/bsdf_diffuse_ramp.cpp
index 45216f4c74d..2ec7f14c0fa 100644
--- a/intern/cycles/kernel/osl/bsdf_diffuse_ramp.cpp
+++ b/intern/cycles/kernel/osl/bsdf_diffuse_ramp.cpp
@@ -39,7 +39,6 @@
// clang-format off
#include "kernel/kernel_types.h"
-#include "kernel/kernel_montecarlo.h"
#include "kernel/closure/alloc.h"
#include "kernel/closure/bsdf_diffuse_ramp.h"
// clang-format on
diff --git a/intern/cycles/kernel/osl/osl_bssrdf.cpp b/intern/cycles/kernel/osl/osl_bssrdf.cpp
index 5bf7b604498..3b8661ce45d 100644
--- a/intern/cycles/kernel/osl/osl_bssrdf.cpp
+++ b/intern/cycles/kernel/osl/osl_bssrdf.cpp
@@ -37,7 +37,6 @@
// clang-format off
#include "kernel/kernel_types.h"
-#include "kernel/kernel_montecarlo.h"
#include "kernel/closure/alloc.h"
#include "kernel/closure/bsdf_util.h"
diff --git a/intern/cycles/kernel/osl/osl_closures.cpp b/intern/cycles/kernel/osl/osl_closures.cpp
index a2062046ae8..89bab35b60b 100644
--- a/intern/cycles/kernel/osl/osl_closures.cpp
+++ b/intern/cycles/kernel/osl/osl_closures.cpp
@@ -44,8 +44,6 @@
#include "kernel/device/cpu/globals.h"
#include "kernel/kernel_types.h"
-#include "kernel/kernel_montecarlo.h"
-#include "kernel/kernel_random.h"
#include "kernel/closure/alloc.h"
#include "kernel/closure/bsdf_util.h"
diff --git a/intern/cycles/kernel/osl/osl_services.cpp b/intern/cycles/kernel/osl/osl_services.cpp
index cbe1bf1bfc0..56b04fd280e 100644
--- a/intern/cycles/kernel/osl/osl_services.cpp
+++ b/intern/cycles/kernel/osl/osl_services.cpp
@@ -25,10 +25,10 @@
#include <string.h>
-#include "render/colorspace.h"
-#include "render/mesh.h"
-#include "render/object.h"
-#include "render/scene.h"
+#include "scene/colorspace.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
+#include "scene/scene.h"
#include "kernel/osl/osl_closures.h"
#include "kernel/osl/osl_globals.h"
@@ -44,19 +44,22 @@
#include "kernel/device/cpu/globals.h"
#include "kernel/device/cpu/image.h"
-#include "kernel/kernel_differential.h"
+#include "kernel/util/util_differential.h"
#include "kernel/integrator/integrator_state.h"
#include "kernel/integrator/integrator_state_flow.h"
#include "kernel/geom/geom.h"
+
#include "kernel/bvh/bvh.h"
-#include "kernel/kernel_color.h"
-#include "kernel/kernel_camera.h"
-#include "kernel/kernel_path_state.h"
-#include "kernel/kernel_projection.h"
-#include "kernel/kernel_shader.h"
+#include "kernel/camera/camera.h"
+#include "kernel/camera/camera_projection.h"
+
+#include "kernel/integrator/integrator_path_state.h"
+#include "kernel/integrator/integrator_shader_eval.h"
+
+#include "kernel/util/util_color.h"
// clang-format on
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/osl/osl_shader.cpp b/intern/cycles/kernel/osl/osl_shader.cpp
index fba207e7230..6426a09b33d 100644
--- a/intern/cycles/kernel/osl/osl_shader.cpp
+++ b/intern/cycles/kernel/osl/osl_shader.cpp
@@ -20,7 +20,6 @@
#include "kernel/device/cpu/compat.h"
#include "kernel/device/cpu/globals.h"
-#include "kernel/kernel_montecarlo.h"
#include "kernel/kernel_types.h"
#include "kernel/geom/geom_object.h"
@@ -33,9 +32,7 @@
#include "kernel/osl/osl_shader.h"
// clang-format on
-#include "util/util_foreach.h"
-
-#include "render/attribute.h"
+#include "scene/attribute.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/shaders/CMakeLists.txt b/intern/cycles/kernel/osl/shaders/CMakeLists.txt
index 6b62e7bb52f..6b62e7bb52f 100644
--- a/intern/cycles/kernel/shaders/CMakeLists.txt
+++ b/intern/cycles/kernel/osl/shaders/CMakeLists.txt
diff --git a/intern/cycles/kernel/shaders/node_absorption_volume.osl b/intern/cycles/kernel/osl/shaders/node_absorption_volume.osl
index 37ccc4c969f..37ccc4c969f 100644
--- a/intern/cycles/kernel/shaders/node_absorption_volume.osl
+++ b/intern/cycles/kernel/osl/shaders/node_absorption_volume.osl
diff --git a/intern/cycles/kernel/shaders/node_add_closure.osl b/intern/cycles/kernel/osl/shaders/node_add_closure.osl
index 27ecc9ef0c2..27ecc9ef0c2 100644
--- a/intern/cycles/kernel/shaders/node_add_closure.osl
+++ b/intern/cycles/kernel/osl/shaders/node_add_closure.osl
diff --git a/intern/cycles/kernel/shaders/node_ambient_occlusion.osl b/intern/cycles/kernel/osl/shaders/node_ambient_occlusion.osl
index 22d245d0698..22d245d0698 100644
--- a/intern/cycles/kernel/shaders/node_ambient_occlusion.osl
+++ b/intern/cycles/kernel/osl/shaders/node_ambient_occlusion.osl
diff --git a/intern/cycles/kernel/shaders/node_anisotropic_bsdf.osl b/intern/cycles/kernel/osl/shaders/node_anisotropic_bsdf.osl
index 739cd375ab2..739cd375ab2 100644
--- a/intern/cycles/kernel/shaders/node_anisotropic_bsdf.osl
+++ b/intern/cycles/kernel/osl/shaders/node_anisotropic_bsdf.osl
diff --git a/intern/cycles/kernel/shaders/node_attribute.osl b/intern/cycles/kernel/osl/shaders/node_attribute.osl
index b7f35956ec7..b7f35956ec7 100644
--- a/intern/cycles/kernel/shaders/node_attribute.osl
+++ b/intern/cycles/kernel/osl/shaders/node_attribute.osl
diff --git a/intern/cycles/kernel/shaders/node_background.osl b/intern/cycles/kernel/osl/shaders/node_background.osl
index 3f45db751b3..3f45db751b3 100644
--- a/intern/cycles/kernel/shaders/node_background.osl
+++ b/intern/cycles/kernel/osl/shaders/node_background.osl
diff --git a/intern/cycles/kernel/shaders/node_bevel.osl b/intern/cycles/kernel/osl/shaders/node_bevel.osl
index e87ddab716d..e87ddab716d 100644
--- a/intern/cycles/kernel/shaders/node_bevel.osl
+++ b/intern/cycles/kernel/osl/shaders/node_bevel.osl
diff --git a/intern/cycles/kernel/shaders/node_blackbody.osl b/intern/cycles/kernel/osl/shaders/node_blackbody.osl
index 741efae755d..741efae755d 100644
--- a/intern/cycles/kernel/shaders/node_blackbody.osl
+++ b/intern/cycles/kernel/osl/shaders/node_blackbody.osl
diff --git a/intern/cycles/kernel/shaders/node_brick_texture.osl b/intern/cycles/kernel/osl/shaders/node_brick_texture.osl
index 075a324c730..075a324c730 100644
--- a/intern/cycles/kernel/shaders/node_brick_texture.osl
+++ b/intern/cycles/kernel/osl/shaders/node_brick_texture.osl
diff --git a/intern/cycles/kernel/shaders/node_brightness.osl b/intern/cycles/kernel/osl/shaders/node_brightness.osl
index 019edfb79a3..019edfb79a3 100644
--- a/intern/cycles/kernel/shaders/node_brightness.osl
+++ b/intern/cycles/kernel/osl/shaders/node_brightness.osl
diff --git a/intern/cycles/kernel/shaders/node_bump.osl b/intern/cycles/kernel/osl/shaders/node_bump.osl
index 811182f40b5..811182f40b5 100644
--- a/intern/cycles/kernel/shaders/node_bump.osl
+++ b/intern/cycles/kernel/osl/shaders/node_bump.osl
diff --git a/intern/cycles/kernel/shaders/node_camera.osl b/intern/cycles/kernel/osl/shaders/node_camera.osl
index 45ca50c6e1e..45ca50c6e1e 100644
--- a/intern/cycles/kernel/shaders/node_camera.osl
+++ b/intern/cycles/kernel/osl/shaders/node_camera.osl
diff --git a/intern/cycles/kernel/shaders/node_checker_texture.osl b/intern/cycles/kernel/osl/shaders/node_checker_texture.osl
index d6a30dbdb40..d6a30dbdb40 100644
--- a/intern/cycles/kernel/shaders/node_checker_texture.osl
+++ b/intern/cycles/kernel/osl/shaders/node_checker_texture.osl
diff --git a/intern/cycles/kernel/shaders/node_clamp.osl b/intern/cycles/kernel/osl/shaders/node_clamp.osl
index b600fb7c455..b600fb7c455 100644
--- a/intern/cycles/kernel/shaders/node_clamp.osl
+++ b/intern/cycles/kernel/osl/shaders/node_clamp.osl
diff --git a/intern/cycles/kernel/shaders/node_color.h b/intern/cycles/kernel/osl/shaders/node_color.h
index 276c91843e8..276c91843e8 100644
--- a/intern/cycles/kernel/shaders/node_color.h
+++ b/intern/cycles/kernel/osl/shaders/node_color.h
diff --git a/intern/cycles/kernel/shaders/node_combine_hsv.osl b/intern/cycles/kernel/osl/shaders/node_combine_hsv.osl
index 05e502b5bc1..05e502b5bc1 100644
--- a/intern/cycles/kernel/shaders/node_combine_hsv.osl
+++ b/intern/cycles/kernel/osl/shaders/node_combine_hsv.osl
diff --git a/intern/cycles/kernel/shaders/node_combine_rgb.osl b/intern/cycles/kernel/osl/shaders/node_combine_rgb.osl
index 036f371eb5c..036f371eb5c 100644
--- a/intern/cycles/kernel/shaders/node_combine_rgb.osl
+++ b/intern/cycles/kernel/osl/shaders/node_combine_rgb.osl
diff --git a/intern/cycles/kernel/shaders/node_combine_xyz.osl b/intern/cycles/kernel/osl/shaders/node_combine_xyz.osl
index 4ebd86b605c..4ebd86b605c 100644
--- a/intern/cycles/kernel/shaders/node_combine_xyz.osl
+++ b/intern/cycles/kernel/osl/shaders/node_combine_xyz.osl
diff --git a/intern/cycles/kernel/shaders/node_convert_from_color.osl b/intern/cycles/kernel/osl/shaders/node_convert_from_color.osl
index c3f0e118844..c3f0e118844 100644
--- a/intern/cycles/kernel/shaders/node_convert_from_color.osl
+++ b/intern/cycles/kernel/osl/shaders/node_convert_from_color.osl
diff --git a/intern/cycles/kernel/shaders/node_convert_from_float.osl b/intern/cycles/kernel/osl/shaders/node_convert_from_float.osl
index 61a15a1c2b0..61a15a1c2b0 100644
--- a/intern/cycles/kernel/shaders/node_convert_from_float.osl
+++ b/intern/cycles/kernel/osl/shaders/node_convert_from_float.osl
diff --git a/intern/cycles/kernel/shaders/node_convert_from_int.osl b/intern/cycles/kernel/osl/shaders/node_convert_from_int.osl
index 2e6a99b2765..2e6a99b2765 100644
--- a/intern/cycles/kernel/shaders/node_convert_from_int.osl
+++ b/intern/cycles/kernel/osl/shaders/node_convert_from_int.osl
diff --git a/intern/cycles/kernel/shaders/node_convert_from_normal.osl b/intern/cycles/kernel/osl/shaders/node_convert_from_normal.osl
index 64201d63190..64201d63190 100644
--- a/intern/cycles/kernel/shaders/node_convert_from_normal.osl
+++ b/intern/cycles/kernel/osl/shaders/node_convert_from_normal.osl
diff --git a/intern/cycles/kernel/shaders/node_convert_from_point.osl b/intern/cycles/kernel/osl/shaders/node_convert_from_point.osl
index 11d64f76d6f..11d64f76d6f 100644
--- a/intern/cycles/kernel/shaders/node_convert_from_point.osl
+++ b/intern/cycles/kernel/osl/shaders/node_convert_from_point.osl
diff --git a/intern/cycles/kernel/shaders/node_convert_from_string.osl b/intern/cycles/kernel/osl/shaders/node_convert_from_string.osl
index b496c4e6d05..b496c4e6d05 100644
--- a/intern/cycles/kernel/shaders/node_convert_from_string.osl
+++ b/intern/cycles/kernel/osl/shaders/node_convert_from_string.osl
diff --git a/intern/cycles/kernel/shaders/node_convert_from_vector.osl b/intern/cycles/kernel/osl/shaders/node_convert_from_vector.osl
index 820faabd32b..820faabd32b 100644
--- a/intern/cycles/kernel/shaders/node_convert_from_vector.osl
+++ b/intern/cycles/kernel/osl/shaders/node_convert_from_vector.osl
diff --git a/intern/cycles/kernel/shaders/node_diffuse_bsdf.osl b/intern/cycles/kernel/osl/shaders/node_diffuse_bsdf.osl
index f5886f534eb..f5886f534eb 100644
--- a/intern/cycles/kernel/shaders/node_diffuse_bsdf.osl
+++ b/intern/cycles/kernel/osl/shaders/node_diffuse_bsdf.osl
diff --git a/intern/cycles/kernel/shaders/node_displacement.osl b/intern/cycles/kernel/osl/shaders/node_displacement.osl
index 44a4828d511..44a4828d511 100644
--- a/intern/cycles/kernel/shaders/node_displacement.osl
+++ b/intern/cycles/kernel/osl/shaders/node_displacement.osl
diff --git a/intern/cycles/kernel/shaders/node_emission.osl b/intern/cycles/kernel/osl/shaders/node_emission.osl
index f289a9711d9..f289a9711d9 100644
--- a/intern/cycles/kernel/shaders/node_emission.osl
+++ b/intern/cycles/kernel/osl/shaders/node_emission.osl
diff --git a/intern/cycles/kernel/shaders/node_environment_texture.osl b/intern/cycles/kernel/osl/shaders/node_environment_texture.osl
index d04743eb368..d04743eb368 100644
--- a/intern/cycles/kernel/shaders/node_environment_texture.osl
+++ b/intern/cycles/kernel/osl/shaders/node_environment_texture.osl
diff --git a/intern/cycles/kernel/shaders/node_float_curve.osl b/intern/cycles/kernel/osl/shaders/node_float_curve.osl
index f1f05fd88a9..f1f05fd88a9 100644
--- a/intern/cycles/kernel/shaders/node_float_curve.osl
+++ b/intern/cycles/kernel/osl/shaders/node_float_curve.osl
diff --git a/intern/cycles/kernel/shaders/node_fresnel.h b/intern/cycles/kernel/osl/shaders/node_fresnel.h
index ade1d4c6207..ade1d4c6207 100644
--- a/intern/cycles/kernel/shaders/node_fresnel.h
+++ b/intern/cycles/kernel/osl/shaders/node_fresnel.h
diff --git a/intern/cycles/kernel/shaders/node_fresnel.osl b/intern/cycles/kernel/osl/shaders/node_fresnel.osl
index cff084c344d..cff084c344d 100644
--- a/intern/cycles/kernel/shaders/node_fresnel.osl
+++ b/intern/cycles/kernel/osl/shaders/node_fresnel.osl
diff --git a/intern/cycles/kernel/shaders/node_gamma.osl b/intern/cycles/kernel/osl/shaders/node_gamma.osl
index 0816df64fe8..0816df64fe8 100644
--- a/intern/cycles/kernel/shaders/node_gamma.osl
+++ b/intern/cycles/kernel/osl/shaders/node_gamma.osl
diff --git a/intern/cycles/kernel/shaders/node_geometry.osl b/intern/cycles/kernel/osl/shaders/node_geometry.osl
index 55cda71db1b..55cda71db1b 100644
--- a/intern/cycles/kernel/shaders/node_geometry.osl
+++ b/intern/cycles/kernel/osl/shaders/node_geometry.osl
diff --git a/intern/cycles/kernel/shaders/node_glass_bsdf.osl b/intern/cycles/kernel/osl/shaders/node_glass_bsdf.osl
index 0042d573f8d..0042d573f8d 100644
--- a/intern/cycles/kernel/shaders/node_glass_bsdf.osl
+++ b/intern/cycles/kernel/osl/shaders/node_glass_bsdf.osl
diff --git a/intern/cycles/kernel/shaders/node_glossy_bsdf.osl b/intern/cycles/kernel/osl/shaders/node_glossy_bsdf.osl
index c73604d3650..c73604d3650 100644
--- a/intern/cycles/kernel/shaders/node_glossy_bsdf.osl
+++ b/intern/cycles/kernel/osl/shaders/node_glossy_bsdf.osl
diff --git a/intern/cycles/kernel/shaders/node_gradient_texture.osl b/intern/cycles/kernel/osl/shaders/node_gradient_texture.osl
index c7faee0d022..c7faee0d022 100644
--- a/intern/cycles/kernel/shaders/node_gradient_texture.osl
+++ b/intern/cycles/kernel/osl/shaders/node_gradient_texture.osl
diff --git a/intern/cycles/kernel/shaders/node_hair_bsdf.osl b/intern/cycles/kernel/osl/shaders/node_hair_bsdf.osl
index 3e0ac7af2e0..3e0ac7af2e0 100644
--- a/intern/cycles/kernel/shaders/node_hair_bsdf.osl
+++ b/intern/cycles/kernel/osl/shaders/node_hair_bsdf.osl
diff --git a/intern/cycles/kernel/shaders/node_hair_info.osl b/intern/cycles/kernel/osl/shaders/node_hair_info.osl
index ddc2e28b83a..ddc2e28b83a 100644
--- a/intern/cycles/kernel/shaders/node_hair_info.osl
+++ b/intern/cycles/kernel/osl/shaders/node_hair_info.osl
diff --git a/intern/cycles/kernel/shaders/node_hash.h b/intern/cycles/kernel/osl/shaders/node_hash.h
index b42e42ff910..b42e42ff910 100644
--- a/intern/cycles/kernel/shaders/node_hash.h
+++ b/intern/cycles/kernel/osl/shaders/node_hash.h
diff --git a/intern/cycles/kernel/shaders/node_holdout.osl b/intern/cycles/kernel/osl/shaders/node_holdout.osl
index 92e41c92f72..92e41c92f72 100644
--- a/intern/cycles/kernel/shaders/node_holdout.osl
+++ b/intern/cycles/kernel/osl/shaders/node_holdout.osl
diff --git a/intern/cycles/kernel/shaders/node_hsv.osl b/intern/cycles/kernel/osl/shaders/node_hsv.osl
index 4417057b10f..4417057b10f 100644
--- a/intern/cycles/kernel/shaders/node_hsv.osl
+++ b/intern/cycles/kernel/osl/shaders/node_hsv.osl
diff --git a/intern/cycles/kernel/shaders/node_ies_light.osl b/intern/cycles/kernel/osl/shaders/node_ies_light.osl
index 76348b4d758..76348b4d758 100644
--- a/intern/cycles/kernel/shaders/node_ies_light.osl
+++ b/intern/cycles/kernel/osl/shaders/node_ies_light.osl
diff --git a/intern/cycles/kernel/shaders/node_image_texture.osl b/intern/cycles/kernel/osl/shaders/node_image_texture.osl
index 56fcc47a011..56fcc47a011 100644
--- a/intern/cycles/kernel/shaders/node_image_texture.osl
+++ b/intern/cycles/kernel/osl/shaders/node_image_texture.osl
diff --git a/intern/cycles/kernel/shaders/node_invert.osl b/intern/cycles/kernel/osl/shaders/node_invert.osl
index 23c16935ca1..23c16935ca1 100644
--- a/intern/cycles/kernel/shaders/node_invert.osl
+++ b/intern/cycles/kernel/osl/shaders/node_invert.osl
diff --git a/intern/cycles/kernel/shaders/node_layer_weight.osl b/intern/cycles/kernel/osl/shaders/node_layer_weight.osl
index 1662be2cad1..1662be2cad1 100644
--- a/intern/cycles/kernel/shaders/node_layer_weight.osl
+++ b/intern/cycles/kernel/osl/shaders/node_layer_weight.osl
diff --git a/intern/cycles/kernel/shaders/node_light_falloff.osl b/intern/cycles/kernel/osl/shaders/node_light_falloff.osl
index 3f3c9444a5a..3f3c9444a5a 100644
--- a/intern/cycles/kernel/shaders/node_light_falloff.osl
+++ b/intern/cycles/kernel/osl/shaders/node_light_falloff.osl
diff --git a/intern/cycles/kernel/shaders/node_light_path.osl b/intern/cycles/kernel/osl/shaders/node_light_path.osl
index ba268db288c..ba268db288c 100644
--- a/intern/cycles/kernel/shaders/node_light_path.osl
+++ b/intern/cycles/kernel/osl/shaders/node_light_path.osl
diff --git a/intern/cycles/kernel/shaders/node_magic_texture.osl b/intern/cycles/kernel/osl/shaders/node_magic_texture.osl
index 476c6895f05..476c6895f05 100644
--- a/intern/cycles/kernel/shaders/node_magic_texture.osl
+++ b/intern/cycles/kernel/osl/shaders/node_magic_texture.osl
diff --git a/intern/cycles/kernel/shaders/node_map_range.osl b/intern/cycles/kernel/osl/shaders/node_map_range.osl
index 2fcc664a80e..2fcc664a80e 100644
--- a/intern/cycles/kernel/shaders/node_map_range.osl
+++ b/intern/cycles/kernel/osl/shaders/node_map_range.osl
diff --git a/intern/cycles/kernel/shaders/node_mapping.osl b/intern/cycles/kernel/osl/shaders/node_mapping.osl
index 131640685bc..131640685bc 100644
--- a/intern/cycles/kernel/shaders/node_mapping.osl
+++ b/intern/cycles/kernel/osl/shaders/node_mapping.osl
diff --git a/intern/cycles/kernel/shaders/node_math.h b/intern/cycles/kernel/osl/shaders/node_math.h
index 2da73b94212..2da73b94212 100644
--- a/intern/cycles/kernel/shaders/node_math.h
+++ b/intern/cycles/kernel/osl/shaders/node_math.h
diff --git a/intern/cycles/kernel/shaders/node_math.osl b/intern/cycles/kernel/osl/shaders/node_math.osl
index 66884610561..66884610561 100644
--- a/intern/cycles/kernel/shaders/node_math.osl
+++ b/intern/cycles/kernel/osl/shaders/node_math.osl
diff --git a/intern/cycles/kernel/shaders/node_mix.osl b/intern/cycles/kernel/osl/shaders/node_mix.osl
index dcd9f014f3e..dcd9f014f3e 100644
--- a/intern/cycles/kernel/shaders/node_mix.osl
+++ b/intern/cycles/kernel/osl/shaders/node_mix.osl
diff --git a/intern/cycles/kernel/shaders/node_mix_closure.osl b/intern/cycles/kernel/osl/shaders/node_mix_closure.osl
index 94fc2171c44..94fc2171c44 100644
--- a/intern/cycles/kernel/shaders/node_mix_closure.osl
+++ b/intern/cycles/kernel/osl/shaders/node_mix_closure.osl
diff --git a/intern/cycles/kernel/shaders/node_musgrave_texture.osl b/intern/cycles/kernel/osl/shaders/node_musgrave_texture.osl
index 0e71ce74c29..0e71ce74c29 100644
--- a/intern/cycles/kernel/shaders/node_musgrave_texture.osl
+++ b/intern/cycles/kernel/osl/shaders/node_musgrave_texture.osl
diff --git a/intern/cycles/kernel/shaders/node_noise.h b/intern/cycles/kernel/osl/shaders/node_noise.h
index ab4cd7792cc..ab4cd7792cc 100644
--- a/intern/cycles/kernel/shaders/node_noise.h
+++ b/intern/cycles/kernel/osl/shaders/node_noise.h
diff --git a/intern/cycles/kernel/shaders/node_noise_texture.osl b/intern/cycles/kernel/osl/shaders/node_noise_texture.osl
index 01196ab633a..01196ab633a 100644
--- a/intern/cycles/kernel/shaders/node_noise_texture.osl
+++ b/intern/cycles/kernel/osl/shaders/node_noise_texture.osl
diff --git a/intern/cycles/kernel/shaders/node_normal.osl b/intern/cycles/kernel/osl/shaders/node_normal.osl
index a0a88445427..a0a88445427 100644
--- a/intern/cycles/kernel/shaders/node_normal.osl
+++ b/intern/cycles/kernel/osl/shaders/node_normal.osl
diff --git a/intern/cycles/kernel/shaders/node_normal_map.osl b/intern/cycles/kernel/osl/shaders/node_normal_map.osl
index 7a94ad8ad1a..7a94ad8ad1a 100644
--- a/intern/cycles/kernel/shaders/node_normal_map.osl
+++ b/intern/cycles/kernel/osl/shaders/node_normal_map.osl
diff --git a/intern/cycles/kernel/shaders/node_object_info.osl b/intern/cycles/kernel/osl/shaders/node_object_info.osl
index 44513d9a1ba..44513d9a1ba 100644
--- a/intern/cycles/kernel/shaders/node_object_info.osl
+++ b/intern/cycles/kernel/osl/shaders/node_object_info.osl
diff --git a/intern/cycles/kernel/shaders/node_output_displacement.osl b/intern/cycles/kernel/osl/shaders/node_output_displacement.osl
index bd60fc2b7e1..bd60fc2b7e1 100644
--- a/intern/cycles/kernel/shaders/node_output_displacement.osl
+++ b/intern/cycles/kernel/osl/shaders/node_output_displacement.osl
diff --git a/intern/cycles/kernel/shaders/node_output_surface.osl b/intern/cycles/kernel/osl/shaders/node_output_surface.osl
index cd746f79c4a..cd746f79c4a 100644
--- a/intern/cycles/kernel/shaders/node_output_surface.osl
+++ b/intern/cycles/kernel/osl/shaders/node_output_surface.osl
diff --git a/intern/cycles/kernel/shaders/node_output_volume.osl b/intern/cycles/kernel/osl/shaders/node_output_volume.osl
index 4cc14cd6699..4cc14cd6699 100644
--- a/intern/cycles/kernel/shaders/node_output_volume.osl
+++ b/intern/cycles/kernel/osl/shaders/node_output_volume.osl
diff --git a/intern/cycles/kernel/shaders/node_particle_info.osl b/intern/cycles/kernel/osl/shaders/node_particle_info.osl
index 2dcdf3d0f3c..2dcdf3d0f3c 100644
--- a/intern/cycles/kernel/shaders/node_particle_info.osl
+++ b/intern/cycles/kernel/osl/shaders/node_particle_info.osl
diff --git a/intern/cycles/kernel/shaders/node_principled_bsdf.osl b/intern/cycles/kernel/osl/shaders/node_principled_bsdf.osl
index 55afb892d36..55afb892d36 100644
--- a/intern/cycles/kernel/shaders/node_principled_bsdf.osl
+++ b/intern/cycles/kernel/osl/shaders/node_principled_bsdf.osl
diff --git a/intern/cycles/kernel/shaders/node_principled_hair_bsdf.osl b/intern/cycles/kernel/osl/shaders/node_principled_hair_bsdf.osl
index 4cf17e0e703..4cf17e0e703 100644
--- a/intern/cycles/kernel/shaders/node_principled_hair_bsdf.osl
+++ b/intern/cycles/kernel/osl/shaders/node_principled_hair_bsdf.osl
diff --git a/intern/cycles/kernel/shaders/node_principled_volume.osl b/intern/cycles/kernel/osl/shaders/node_principled_volume.osl
index 0cb4cdebdaa..0cb4cdebdaa 100644
--- a/intern/cycles/kernel/shaders/node_principled_volume.osl
+++ b/intern/cycles/kernel/osl/shaders/node_principled_volume.osl
diff --git a/intern/cycles/kernel/shaders/node_ramp_util.h b/intern/cycles/kernel/osl/shaders/node_ramp_util.h
index f7fb07b257d..f7fb07b257d 100644
--- a/intern/cycles/kernel/shaders/node_ramp_util.h
+++ b/intern/cycles/kernel/osl/shaders/node_ramp_util.h
diff --git a/intern/cycles/kernel/shaders/node_refraction_bsdf.osl b/intern/cycles/kernel/osl/shaders/node_refraction_bsdf.osl
index 9e9b31d9a87..9e9b31d9a87 100644
--- a/intern/cycles/kernel/shaders/node_refraction_bsdf.osl
+++ b/intern/cycles/kernel/osl/shaders/node_refraction_bsdf.osl
diff --git a/intern/cycles/kernel/shaders/node_rgb_curves.osl b/intern/cycles/kernel/osl/shaders/node_rgb_curves.osl
index 8850040d580..8850040d580 100644
--- a/intern/cycles/kernel/shaders/node_rgb_curves.osl
+++ b/intern/cycles/kernel/osl/shaders/node_rgb_curves.osl
diff --git a/intern/cycles/kernel/shaders/node_rgb_ramp.osl b/intern/cycles/kernel/osl/shaders/node_rgb_ramp.osl
index 2131edb2688..2131edb2688 100644
--- a/intern/cycles/kernel/shaders/node_rgb_ramp.osl
+++ b/intern/cycles/kernel/osl/shaders/node_rgb_ramp.osl
diff --git a/intern/cycles/kernel/shaders/node_rgb_to_bw.osl b/intern/cycles/kernel/osl/shaders/node_rgb_to_bw.osl
index f0a094d5b57..f0a094d5b57 100644
--- a/intern/cycles/kernel/shaders/node_rgb_to_bw.osl
+++ b/intern/cycles/kernel/osl/shaders/node_rgb_to_bw.osl
diff --git a/intern/cycles/kernel/shaders/node_scatter_volume.osl b/intern/cycles/kernel/osl/shaders/node_scatter_volume.osl
index 36ad952dee6..36ad952dee6 100644
--- a/intern/cycles/kernel/shaders/node_scatter_volume.osl
+++ b/intern/cycles/kernel/osl/shaders/node_scatter_volume.osl
diff --git a/intern/cycles/kernel/shaders/node_separate_hsv.osl b/intern/cycles/kernel/osl/shaders/node_separate_hsv.osl
index 2f902b72dbc..2f902b72dbc 100644
--- a/intern/cycles/kernel/shaders/node_separate_hsv.osl
+++ b/intern/cycles/kernel/osl/shaders/node_separate_hsv.osl
diff --git a/intern/cycles/kernel/shaders/node_separate_rgb.osl b/intern/cycles/kernel/osl/shaders/node_separate_rgb.osl
index 62e4aedb879..62e4aedb879 100644
--- a/intern/cycles/kernel/shaders/node_separate_rgb.osl
+++ b/intern/cycles/kernel/osl/shaders/node_separate_rgb.osl
diff --git a/intern/cycles/kernel/shaders/node_separate_xyz.osl b/intern/cycles/kernel/osl/shaders/node_separate_xyz.osl
index acaf3942b6f..acaf3942b6f 100644
--- a/intern/cycles/kernel/shaders/node_separate_xyz.osl
+++ b/intern/cycles/kernel/osl/shaders/node_separate_xyz.osl
diff --git a/intern/cycles/kernel/shaders/node_set_normal.osl b/intern/cycles/kernel/osl/shaders/node_set_normal.osl
index 26a97e2b5d1..26a97e2b5d1 100644
--- a/intern/cycles/kernel/shaders/node_set_normal.osl
+++ b/intern/cycles/kernel/osl/shaders/node_set_normal.osl
diff --git a/intern/cycles/kernel/shaders/node_sky_texture.osl b/intern/cycles/kernel/osl/shaders/node_sky_texture.osl
index 43d7bd36973..43d7bd36973 100644
--- a/intern/cycles/kernel/shaders/node_sky_texture.osl
+++ b/intern/cycles/kernel/osl/shaders/node_sky_texture.osl
diff --git a/intern/cycles/kernel/shaders/node_subsurface_scattering.osl b/intern/cycles/kernel/osl/shaders/node_subsurface_scattering.osl
index f55e38c54ff..f55e38c54ff 100644
--- a/intern/cycles/kernel/shaders/node_subsurface_scattering.osl
+++ b/intern/cycles/kernel/osl/shaders/node_subsurface_scattering.osl
diff --git a/intern/cycles/kernel/shaders/node_tangent.osl b/intern/cycles/kernel/osl/shaders/node_tangent.osl
index f086fa079ec..f086fa079ec 100644
--- a/intern/cycles/kernel/shaders/node_tangent.osl
+++ b/intern/cycles/kernel/osl/shaders/node_tangent.osl
diff --git a/intern/cycles/kernel/shaders/node_texture_coordinate.osl b/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl
index 9cdb925dbfa..9cdb925dbfa 100644
--- a/intern/cycles/kernel/shaders/node_texture_coordinate.osl
+++ b/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl
diff --git a/intern/cycles/kernel/shaders/node_toon_bsdf.osl b/intern/cycles/kernel/osl/shaders/node_toon_bsdf.osl
index 4a44730c70c..4a44730c70c 100644
--- a/intern/cycles/kernel/shaders/node_toon_bsdf.osl
+++ b/intern/cycles/kernel/osl/shaders/node_toon_bsdf.osl
diff --git a/intern/cycles/kernel/shaders/node_translucent_bsdf.osl b/intern/cycles/kernel/osl/shaders/node_translucent_bsdf.osl
index 23a562bf34d..23a562bf34d 100644
--- a/intern/cycles/kernel/shaders/node_translucent_bsdf.osl
+++ b/intern/cycles/kernel/osl/shaders/node_translucent_bsdf.osl
diff --git a/intern/cycles/kernel/shaders/node_transparent_bsdf.osl b/intern/cycles/kernel/osl/shaders/node_transparent_bsdf.osl
index eb737a05c41..eb737a05c41 100644
--- a/intern/cycles/kernel/shaders/node_transparent_bsdf.osl
+++ b/intern/cycles/kernel/osl/shaders/node_transparent_bsdf.osl
diff --git a/intern/cycles/kernel/shaders/node_uv_map.osl b/intern/cycles/kernel/osl/shaders/node_uv_map.osl
index 88d8c5ba394..88d8c5ba394 100644
--- a/intern/cycles/kernel/shaders/node_uv_map.osl
+++ b/intern/cycles/kernel/osl/shaders/node_uv_map.osl
diff --git a/intern/cycles/kernel/shaders/node_value.osl b/intern/cycles/kernel/osl/shaders/node_value.osl
index 13197b9a27a..13197b9a27a 100644
--- a/intern/cycles/kernel/shaders/node_value.osl
+++ b/intern/cycles/kernel/osl/shaders/node_value.osl
diff --git a/intern/cycles/kernel/shaders/node_vector_curves.osl b/intern/cycles/kernel/osl/shaders/node_vector_curves.osl
index 9d3a2b82b0a..9d3a2b82b0a 100644
--- a/intern/cycles/kernel/shaders/node_vector_curves.osl
+++ b/intern/cycles/kernel/osl/shaders/node_vector_curves.osl
diff --git a/intern/cycles/kernel/shaders/node_vector_displacement.osl b/intern/cycles/kernel/osl/shaders/node_vector_displacement.osl
index 7cd9c2a37f2..7cd9c2a37f2 100644
--- a/intern/cycles/kernel/shaders/node_vector_displacement.osl
+++ b/intern/cycles/kernel/osl/shaders/node_vector_displacement.osl
diff --git a/intern/cycles/kernel/shaders/node_vector_math.osl b/intern/cycles/kernel/osl/shaders/node_vector_math.osl
index c08d75b99ef..c08d75b99ef 100644
--- a/intern/cycles/kernel/shaders/node_vector_math.osl
+++ b/intern/cycles/kernel/osl/shaders/node_vector_math.osl
diff --git a/intern/cycles/kernel/shaders/node_vector_rotate.osl b/intern/cycles/kernel/osl/shaders/node_vector_rotate.osl
index e99bf7d81b0..e99bf7d81b0 100644
--- a/intern/cycles/kernel/shaders/node_vector_rotate.osl
+++ b/intern/cycles/kernel/osl/shaders/node_vector_rotate.osl
diff --git a/intern/cycles/kernel/shaders/node_vector_transform.osl b/intern/cycles/kernel/osl/shaders/node_vector_transform.osl
index b71c6ec4824..b71c6ec4824 100644
--- a/intern/cycles/kernel/shaders/node_vector_transform.osl
+++ b/intern/cycles/kernel/osl/shaders/node_vector_transform.osl
diff --git a/intern/cycles/kernel/shaders/node_velvet_bsdf.osl b/intern/cycles/kernel/osl/shaders/node_velvet_bsdf.osl
index 299acef35ee..299acef35ee 100644
--- a/intern/cycles/kernel/shaders/node_velvet_bsdf.osl
+++ b/intern/cycles/kernel/osl/shaders/node_velvet_bsdf.osl
diff --git a/intern/cycles/kernel/shaders/node_vertex_color.osl b/intern/cycles/kernel/osl/shaders/node_vertex_color.osl
index ffaf7a2f720..ffaf7a2f720 100644
--- a/intern/cycles/kernel/shaders/node_vertex_color.osl
+++ b/intern/cycles/kernel/osl/shaders/node_vertex_color.osl
diff --git a/intern/cycles/kernel/shaders/node_voronoi_texture.osl b/intern/cycles/kernel/osl/shaders/node_voronoi_texture.osl
index de6c697fc85..de6c697fc85 100644
--- a/intern/cycles/kernel/shaders/node_voronoi_texture.osl
+++ b/intern/cycles/kernel/osl/shaders/node_voronoi_texture.osl
diff --git a/intern/cycles/kernel/shaders/node_voxel_texture.osl b/intern/cycles/kernel/osl/shaders/node_voxel_texture.osl
index 14489298367..14489298367 100644
--- a/intern/cycles/kernel/shaders/node_voxel_texture.osl
+++ b/intern/cycles/kernel/osl/shaders/node_voxel_texture.osl
diff --git a/intern/cycles/kernel/shaders/node_wave_texture.osl b/intern/cycles/kernel/osl/shaders/node_wave_texture.osl
index 71d81dff7ec..71d81dff7ec 100644
--- a/intern/cycles/kernel/shaders/node_wave_texture.osl
+++ b/intern/cycles/kernel/osl/shaders/node_wave_texture.osl
diff --git a/intern/cycles/kernel/shaders/node_wavelength.osl b/intern/cycles/kernel/osl/shaders/node_wavelength.osl
index f484c4b4788..f484c4b4788 100644
--- a/intern/cycles/kernel/shaders/node_wavelength.osl
+++ b/intern/cycles/kernel/osl/shaders/node_wavelength.osl
diff --git a/intern/cycles/kernel/shaders/node_white_noise_texture.osl b/intern/cycles/kernel/osl/shaders/node_white_noise_texture.osl
index 94735a019d5..94735a019d5 100644
--- a/intern/cycles/kernel/shaders/node_white_noise_texture.osl
+++ b/intern/cycles/kernel/osl/shaders/node_white_noise_texture.osl
diff --git a/intern/cycles/kernel/shaders/node_wireframe.osl b/intern/cycles/kernel/osl/shaders/node_wireframe.osl
index 673a451c928..673a451c928 100644
--- a/intern/cycles/kernel/shaders/node_wireframe.osl
+++ b/intern/cycles/kernel/osl/shaders/node_wireframe.osl
diff --git a/intern/cycles/kernel/shaders/stdcycles.h b/intern/cycles/kernel/osl/shaders/stdcycles.h
index dd604da68ce..dd604da68ce 100644
--- a/intern/cycles/kernel/shaders/stdcycles.h
+++ b/intern/cycles/kernel/osl/shaders/stdcycles.h
diff --git a/intern/cycles/kernel/kernel_jitter.h b/intern/cycles/kernel/sample/sample_jitter.h
index b62ec7fda42..b62ec7fda42 100644
--- a/intern/cycles/kernel/kernel_jitter.h
+++ b/intern/cycles/kernel/sample/sample_jitter.h
diff --git a/intern/cycles/kernel/sample/sample_lcg.h b/intern/cycles/kernel/sample/sample_lcg.h
new file mode 100644
index 00000000000..92cfff639b4
--- /dev/null
+++ b/intern/cycles/kernel/sample/sample_lcg.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2011-2013 Blender Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+CCL_NAMESPACE_BEGIN
+
+/* Linear Congruential Generator */
+
+ccl_device uint lcg_step_uint(uint *rng)
+{
+ /* implicit mod 2^32 */
+ *rng = (1103515245 * (*rng) + 12345);
+ return *rng;
+}
+
+ccl_device float lcg_step_float(uint *rng)
+{
+ /* implicit mod 2^32 */
+ *rng = (1103515245 * (*rng) + 12345);
+ return (float)*rng * (1.0f / (float)0xFFFFFFFF);
+}
+
+ccl_device uint lcg_init(uint seed)
+{
+ uint rng = seed;
+ lcg_step_uint(&rng);
+ return rng;
+}
+
+ccl_device_inline uint lcg_state_init(const uint rng_hash,
+ const uint rng_offset,
+ const uint sample,
+ const uint scramble)
+{
+ return lcg_init(rng_hash + rng_offset + sample * scramble);
+}
+
+CCL_NAMESPACE_END
diff --git a/intern/cycles/kernel/kernel_montecarlo.h b/intern/cycles/kernel/sample/sample_mapping.h
index c931aa45276..3297aa2a29a 100644
--- a/intern/cycles/kernel/kernel_montecarlo.h
+++ b/intern/cycles/kernel/sample/sample_mapping.h
@@ -126,31 +126,6 @@ ccl_device float3 sample_uniform_sphere(float u1, float u2)
return make_float3(x, y, z);
}
-ccl_device float balance_heuristic(float a, float b)
-{
- return (a) / (a + b);
-}
-
-ccl_device float balance_heuristic_3(float a, float b, float c)
-{
- return (a) / (a + b + c);
-}
-
-ccl_device float power_heuristic(float a, float b)
-{
- return (a * a) / (a * a + b * b);
-}
-
-ccl_device float power_heuristic_3(float a, float b, float c)
-{
- return (a * a) / (a * a + b * b + c * c);
-}
-
-ccl_device float max_heuristic(float a, float b)
-{
- return (a > b) ? 1.0f : 0.0f;
-}
-
/* distribute uniform xy on [0,1] over unit disk [-1,1], with concentric mapping
* to better preserve stratification for some RNG sequences */
ccl_device float2 concentric_sample_disk(float u1, float u2)
@@ -199,110 +174,4 @@ ccl_device float2 regular_polygon_sample(float corners, float rotation, float u,
return make_float2(cr * p.x - sr * p.y, sr * p.x + cr * p.y);
}
-ccl_device float3 ensure_valid_reflection(float3 Ng, float3 I, float3 N)
-{
- float3 R = 2 * dot(N, I) * N - I;
-
- /* Reflection rays may always be at least as shallow as the incoming ray. */
- float threshold = min(0.9f * dot(Ng, I), 0.01f);
- if (dot(Ng, R) >= threshold) {
- return N;
- }
-
- /* Form coordinate system with Ng as the Z axis and N inside the X-Z-plane.
- * The X axis is found by normalizing the component of N that's orthogonal to Ng.
- * The Y axis isn't actually needed.
- */
- float NdotNg = dot(N, Ng);
- float3 X = normalize(N - NdotNg * Ng);
-
- /* Keep math expressions. */
- /* clang-format off */
- /* Calculate N.z and N.x in the local coordinate system.
- *
- * The goal of this computation is to find a N' that is rotated towards Ng just enough
- * to lift R' above the threshold (here called t), therefore dot(R', Ng) = t.
- *
- * According to the standard reflection equation,
- * this means that we want dot(2*dot(N', I)*N' - I, Ng) = t.
- *
- * Since the Z axis of our local coordinate system is Ng, dot(x, Ng) is just x.z, so we get
- * 2*dot(N', I)*N'.z - I.z = t.
- *
- * The rotation is simple to express in the coordinate system we formed -
- * since N lies in the X-Z-plane, we know that N' will also lie in the X-Z-plane,
- * so N'.y = 0 and therefore dot(N', I) = N'.x*I.x + N'.z*I.z .
- *
- * Furthermore, we want N' to be normalized, so N'.x = sqrt(1 - N'.z^2).
- *
- * With these simplifications,
- * we get the final equation 2*(sqrt(1 - N'.z^2)*I.x + N'.z*I.z)*N'.z - I.z = t.
- *
- * The only unknown here is N'.z, so we can solve for that.
- *
- * The equation has four solutions in general:
- *
- * N'.z = +-sqrt(0.5*(+-sqrt(I.x^2*(I.x^2 + I.z^2 - t^2)) + t*I.z + I.x^2 + I.z^2)/(I.x^2 + I.z^2))
- * We can simplify this expression a bit by grouping terms:
- *
- * a = I.x^2 + I.z^2
- * b = sqrt(I.x^2 * (a - t^2))
- * c = I.z*t + a
- * N'.z = +-sqrt(0.5*(+-b + c)/a)
- *
- * Two solutions can immediately be discarded because they're negative so N' would lie in the
- * lower hemisphere.
- */
- /* clang-format on */
-
- float Ix = dot(I, X), Iz = dot(I, Ng);
- float Ix2 = sqr(Ix), Iz2 = sqr(Iz);
- float a = Ix2 + Iz2;
-
- float b = safe_sqrtf(Ix2 * (a - sqr(threshold)));
- float c = Iz * threshold + a;
-
- /* Evaluate both solutions.
- * In many cases one can be immediately discarded (if N'.z would be imaginary or larger than
- * one), so check for that first. If no option is viable (might happen in extreme cases like N
- * being in the wrong hemisphere), give up and return Ng. */
- float fac = 0.5f / a;
- float N1_z2 = fac * (b + c), N2_z2 = fac * (-b + c);
- bool valid1 = (N1_z2 > 1e-5f) && (N1_z2 <= (1.0f + 1e-5f));
- bool valid2 = (N2_z2 > 1e-5f) && (N2_z2 <= (1.0f + 1e-5f));
-
- float2 N_new;
- if (valid1 && valid2) {
- /* If both are possible, do the expensive reflection-based check. */
- float2 N1 = make_float2(safe_sqrtf(1.0f - N1_z2), safe_sqrtf(N1_z2));
- float2 N2 = make_float2(safe_sqrtf(1.0f - N2_z2), safe_sqrtf(N2_z2));
-
- float R1 = 2 * (N1.x * Ix + N1.y * Iz) * N1.y - Iz;
- float R2 = 2 * (N2.x * Ix + N2.y * Iz) * N2.y - Iz;
-
- valid1 = (R1 >= 1e-5f);
- valid2 = (R2 >= 1e-5f);
- if (valid1 && valid2) {
- /* If both solutions are valid, return the one with the shallower reflection since it will be
- * closer to the input (if the original reflection wasn't shallow, we would not be in this
- * part of the function). */
- N_new = (R1 < R2) ? N1 : N2;
- }
- else {
- /* If only one reflection is valid (= positive), pick that one. */
- N_new = (R1 > R2) ? N1 : N2;
- }
- }
- else if (valid1 || valid2) {
- /* Only one solution passes the N'.z criterium, so pick that one. */
- float Nz2 = valid1 ? N1_z2 : N2_z2;
- N_new = make_float2(safe_sqrtf(1.0f - Nz2), safe_sqrtf(Nz2));
- }
- else {
- return Ng;
- }
-
- return N_new.x * X + N_new.y * Ng;
-}
-
CCL_NAMESPACE_END
diff --git a/intern/cycles/kernel/sample/sample_mis.h b/intern/cycles/kernel/sample/sample_mis.h
new file mode 100644
index 00000000000..0878b3aac36
--- /dev/null
+++ b/intern/cycles/kernel/sample/sample_mis.h
@@ -0,0 +1,64 @@
+/*
+ * Parts adapted from Open Shading Language with this license:
+ *
+ * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al.
+ * All Rights Reserved.
+ *
+ * Modifications Copyright 2011, Blender Foundation.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Sony Pictures Imageworks nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+CCL_NAMESPACE_BEGIN
+
+/* Multiple importance sampling utilities. */
+
+ccl_device float balance_heuristic(float a, float b)
+{
+ return (a) / (a + b);
+}
+
+ccl_device float balance_heuristic_3(float a, float b, float c)
+{
+ return (a) / (a + b + c);
+}
+
+ccl_device float power_heuristic(float a, float b)
+{
+ return (a * a) / (a * a + b * b);
+}
+
+ccl_device float power_heuristic_3(float a, float b, float c)
+{
+ return (a * a) / (a * a + b * b + c * c);
+}
+
+ccl_device float max_heuristic(float a, float b)
+{
+ return (a > b) ? 1.0f : 0.0f;
+}
+
+CCL_NAMESPACE_END
diff --git a/intern/cycles/kernel/kernel_random.h b/intern/cycles/kernel/sample/sample_pattern.h
index e5e87453611..95635c2c855 100644
--- a/intern/cycles/kernel/kernel_random.h
+++ b/intern/cycles/kernel/sample/sample_pattern.h
@@ -15,7 +15,7 @@
*/
#pragma once
-#include "kernel/kernel_jitter.h"
+#include "kernel/sample/sample_jitter.h"
#include "util/util_hash.h"
CCL_NAMESPACE_BEGIN
@@ -157,37 +157,6 @@ ccl_device_inline uint path_rng_hash_init(KernelGlobals kg,
return rng_hash;
}
-/* Linear Congruential Generator */
-
-ccl_device uint lcg_step_uint(uint *rng)
-{
- /* implicit mod 2^32 */
- *rng = (1103515245 * (*rng) + 12345);
- return *rng;
-}
-
-ccl_device float lcg_step_float(uint *rng)
-{
- /* implicit mod 2^32 */
- *rng = (1103515245 * (*rng) + 12345);
- return (float)*rng * (1.0f / (float)0xFFFFFFFF);
-}
-
-ccl_device uint lcg_init(uint seed)
-{
- uint rng = seed;
- lcg_step_uint(&rng);
- return rng;
-}
-
-ccl_device_inline uint lcg_state_init(const uint rng_hash,
- const uint rng_offset,
- const uint sample,
- const uint scramble)
-{
- return lcg_init(rng_hash + rng_offset + sample * scramble);
-}
-
ccl_device_inline bool sample_is_even(int pattern, int sample)
{
if (pattern == SAMPLING_PATTERN_PMJ) {
diff --git a/intern/cycles/kernel/svm/svm_aov.h b/intern/cycles/kernel/svm/svm_aov.h
index 833a6443b3c..92be7fb6906 100644
--- a/intern/cycles/kernel/svm/svm_aov.h
+++ b/intern/cycles/kernel/svm/svm_aov.h
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#include "kernel/kernel_write_passes.h"
+#include "kernel/film/film_write_passes.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/svm/svm_bevel.h b/intern/cycles/kernel/svm/svm_bevel.h
index 292887beedf..0a30822aa68 100644
--- a/intern/cycles/kernel/svm/svm_bevel.h
+++ b/intern/cycles/kernel/svm/svm_bevel.h
@@ -15,8 +15,8 @@
*/
#include "kernel/bvh/bvh.h"
-#include "kernel/kernel_montecarlo.h"
-#include "kernel/kernel_random.h"
+#include "kernel/sample/sample_mapping.h"
+#include "kernel/sample/sample_pattern.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/svm/svm_displace.h b/intern/cycles/kernel/svm/svm_displace.h
index f2446c3b3ef..8429fe1d3e0 100644
--- a/intern/cycles/kernel/svm/svm_displace.h
+++ b/intern/cycles/kernel/svm/svm_displace.h
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#include "kernel/kernel_montecarlo.h"
+#include "kernel/sample/sample_mapping.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/svm/svm_tex_coord.h b/intern/cycles/kernel/svm/svm_tex_coord.h
index fe777eb34c8..9af0a818cad 100644
--- a/intern/cycles/kernel/svm/svm_tex_coord.h
+++ b/intern/cycles/kernel/svm/svm_tex_coord.h
@@ -14,9 +14,9 @@
* limitations under the License.
*/
+#include "kernel/camera/camera.h"
#include "kernel/geom/geom.h"
-#include "kernel/kernel_camera.h"
-#include "kernel/kernel_montecarlo.h"
+#include "kernel/sample/sample_mapping.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/kernel/kernel_color.h b/intern/cycles/kernel/util/util_color.h
index 0d7bfecd5f3..0d7bfecd5f3 100644
--- a/intern/cycles/kernel/kernel_color.h
+++ b/intern/cycles/kernel/util/util_color.h
diff --git a/intern/cycles/kernel/kernel_differential.h b/intern/cycles/kernel/util/util_differential.h
index 17187083019..17187083019 100644
--- a/intern/cycles/kernel/kernel_differential.h
+++ b/intern/cycles/kernel/util/util_differential.h
diff --git a/intern/cycles/kernel/kernel_lookup_table.h b/intern/cycles/kernel/util/util_lookup_table.h
index 2c26e668d7b..2c26e668d7b 100644
--- a/intern/cycles/kernel/kernel_lookup_table.h
+++ b/intern/cycles/kernel/util/util_lookup_table.h
diff --git a/intern/cycles/kernel/kernel_profiling.h b/intern/cycles/kernel/util/util_profiling.h
index db8644005ea..db8644005ea 100644
--- a/intern/cycles/kernel/kernel_profiling.h
+++ b/intern/cycles/kernel/util/util_profiling.h
diff --git a/intern/cycles/render/CMakeLists.txt b/intern/cycles/scene/CMakeLists.txt
index 323222b8c85..a3fde99306b 100644
--- a/intern/cycles/render/CMakeLists.txt
+++ b/intern/cycles/scene/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright 2011-2020 Blender Foundation
+# Copyright 2011-2021 Blender Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -14,28 +14,20 @@
set(INC
..
- ../../glew-mx
../../sky/include
)
-set(INC_SYS
- ${GLEW_INCLUDE_DIR}
-)
-
set(SRC
alembic.cpp
alembic_read.cpp
attribute.cpp
background.cpp
bake.cpp
- buffers.cpp
camera.cpp
colorspace.cpp
constant_fold.cpp
- denoising.cpp
film.cpp
geometry.cpp
- graph.cpp
hair.cpp
image.cpp
image_oiio.cpp
@@ -44,11 +36,9 @@ set(SRC
integrator.cpp
jitter.cpp
light.cpp
- merge.cpp
mesh.cpp
mesh_displace.cpp
mesh_subdivision.cpp
- nodes.cpp
procedural.cpp
object.cpp
osl.cpp
@@ -56,13 +46,13 @@ set(SRC
pass.cpp
curves.cpp
scene.cpp
- session.cpp
shader.cpp
+ shader_graph.cpp
+ shader_nodes.cpp
sobol.cpp
stats.cpp
svm.cpp
tables.cpp
- tile.cpp
volume.cpp
)
@@ -72,16 +62,11 @@ set(SRC_HEADERS
attribute.h
bake.h
background.h
- buffers.h
camera.h
colorspace.h
constant_fold.h
- denoising.h
- display_driver.h
- output_driver.h
film.h
geometry.h
- graph.h
hair.h
image.h
image_oiio.h
@@ -90,9 +75,7 @@ set(SRC_HEADERS
integrator.h
light.h
jitter.h
- merge.h
mesh.h
- nodes.h
object.h
osl.h
particles.h
@@ -100,13 +83,13 @@ set(SRC_HEADERS
procedural.h
curves.h
scene.h
- session.h
shader.h
+ shader_graph.h
+ shader_nodes.h
sobol.h
stats.h
svm.h
tables.h
- tile.h
volume.h
)
@@ -177,4 +160,4 @@ include_directories(SYSTEM ${INC_SYS})
add_definitions(${GL_DEFINITIONS})
-cycles_add_library(cycles_render "${LIB}" ${SRC} ${SRC_HEADERS})
+cycles_add_library(cycles_scene "${LIB}" ${SRC} ${SRC_HEADERS})
diff --git a/intern/cycles/render/alembic.cpp b/intern/cycles/scene/alembic.cpp
index 69bc0712674..07a969e88d3 100644
--- a/intern/cycles/render/alembic.cpp
+++ b/intern/cycles/scene/alembic.cpp
@@ -14,15 +14,15 @@
* limitations under the License.
*/
-#include "render/alembic.h"
-
-#include "render/alembic_read.h"
-#include "render/camera.h"
-#include "render/curves.h"
-#include "render/mesh.h"
-#include "render/object.h"
-#include "render/scene.h"
-#include "render/shader.h"
+#include "scene/alembic.h"
+
+#include "scene/alembic_read.h"
+#include "scene/camera.h"
+#include "scene/curves.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
+#include "scene/scene.h"
+#include "scene/shader.h"
#include "util/util_foreach.h"
#include "util/util_logging.h"
diff --git a/intern/cycles/render/alembic.h b/intern/cycles/scene/alembic.h
index 8e166a5ab04..9aeef273910 100644
--- a/intern/cycles/render/alembic.h
+++ b/intern/cycles/scene/alembic.h
@@ -17,8 +17,8 @@
#pragma once
#include "graph/node.h"
-#include "render/attribute.h"
-#include "render/procedural.h"
+#include "scene/attribute.h"
+#include "scene/procedural.h"
#include "util/util_set.h"
#include "util/util_transform.h"
#include "util/util_vector.h"
diff --git a/intern/cycles/render/alembic_read.cpp b/intern/cycles/scene/alembic_read.cpp
index b105af63b44..1ce64d9ee41 100644
--- a/intern/cycles/render/alembic_read.cpp
+++ b/intern/cycles/scene/alembic_read.cpp
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-#include "render/alembic_read.h"
-
-#include "render/alembic.h"
-#include "render/mesh.h"
+#include "scene/alembic.h"
+#include "scene/alembic_read.h"
+#include "scene/mesh.h"
+#include "util/util_color.h"
#include "util/util_progress.h"
#ifdef WITH_ALEMBIC
diff --git a/intern/cycles/render/alembic_read.h b/intern/cycles/scene/alembic_read.h
index 9cc8622a1ba..9cc8622a1ba 100644
--- a/intern/cycles/render/alembic_read.h
+++ b/intern/cycles/scene/alembic_read.h
diff --git a/intern/cycles/render/attribute.cpp b/intern/cycles/scene/attribute.cpp
index d7e6939cd80..0c440fb9fd1 100644
--- a/intern/cycles/render/attribute.cpp
+++ b/intern/cycles/scene/attribute.cpp
@@ -14,10 +14,10 @@
* limitations under the License.
*/
-#include "render/attribute.h"
-#include "render/hair.h"
-#include "render/image.h"
-#include "render/mesh.h"
+#include "scene/attribute.h"
+#include "scene/hair.h"
+#include "scene/image.h"
+#include "scene/mesh.h"
#include "util/util_foreach.h"
#include "util/util_logging.h"
diff --git a/intern/cycles/render/attribute.h b/intern/cycles/scene/attribute.h
index 004c267cabc..9af3dcaee26 100644
--- a/intern/cycles/render/attribute.h
+++ b/intern/cycles/scene/attribute.h
@@ -17,7 +17,7 @@
#ifndef __ATTRIBUTE_H__
#define __ATTRIBUTE_H__
-#include "render/image.h"
+#include "scene/image.h"
#include "kernel/kernel_types.h"
diff --git a/intern/cycles/render/background.cpp b/intern/cycles/scene/background.cpp
index ae6290ac27b..db5be885538 100644
--- a/intern/cycles/render/background.cpp
+++ b/intern/cycles/scene/background.cpp
@@ -14,14 +14,14 @@
* limitations under the License.
*/
-#include "render/background.h"
+#include "scene/background.h"
#include "device/device.h"
-#include "render/graph.h"
-#include "render/integrator.h"
-#include "render/nodes.h"
-#include "render/scene.h"
-#include "render/shader.h"
-#include "render/stats.h"
+#include "scene/integrator.h"
+#include "scene/scene.h"
+#include "scene/shader.h"
+#include "scene/shader_graph.h"
+#include "scene/shader_nodes.h"
+#include "scene/stats.h"
#include "util/util_foreach.h"
#include "util/util_math.h"
diff --git a/intern/cycles/render/background.h b/intern/cycles/scene/background.h
index 2f7ef0f7737..2f7ef0f7737 100644
--- a/intern/cycles/render/background.h
+++ b/intern/cycles/scene/background.h
diff --git a/intern/cycles/render/bake.cpp b/intern/cycles/scene/bake.cpp
index 54e496caed6..86c5c4c02af 100644
--- a/intern/cycles/render/bake.cpp
+++ b/intern/cycles/scene/bake.cpp
@@ -14,13 +14,13 @@
* limitations under the License.
*/
-#include "render/bake.h"
-#include "render/buffers.h"
-#include "render/integrator.h"
-#include "render/mesh.h"
-#include "render/object.h"
-#include "render/shader.h"
-#include "render/stats.h"
+#include "scene/bake.h"
+#include "scene/integrator.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
+#include "scene/shader.h"
+#include "scene/stats.h"
+#include "session/buffers.h"
#include "util/util_foreach.h"
diff --git a/intern/cycles/render/bake.h b/intern/cycles/scene/bake.h
index 39e504490c2..044383d2d43 100644
--- a/intern/cycles/render/bake.h
+++ b/intern/cycles/scene/bake.h
@@ -18,7 +18,7 @@
#define __BAKE_H__
#include "device/device.h"
-#include "render/scene.h"
+#include "scene/scene.h"
#include "util/util_progress.h"
#include "util/util_vector.h"
diff --git a/intern/cycles/render/camera.cpp b/intern/cycles/scene/camera.cpp
index 8b69c971991..1e78f8dd36f 100644
--- a/intern/cycles/render/camera.cpp
+++ b/intern/cycles/scene/camera.cpp
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-#include "render/camera.h"
-#include "render/mesh.h"
-#include "render/object.h"
-#include "render/scene.h"
-#include "render/stats.h"
-#include "render/tables.h"
+#include "scene/camera.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
+#include "scene/scene.h"
+#include "scene/stats.h"
+#include "scene/tables.h"
#include "device/device.h"
@@ -32,15 +32,10 @@
#include "util/util_vector.h"
/* needed for calculating differentials */
-// clang-format off
#include "kernel/device/cpu/compat.h"
#include "kernel/device/cpu/globals.h"
-#include "kernel/kernel_projection.h"
-#include "kernel/kernel_differential.h"
-#include "kernel/kernel_montecarlo.h"
-#include "kernel/kernel_camera.h"
-// clang-format on
+#include "kernel/camera/camera.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/render/camera.h b/intern/cycles/scene/camera.h
index cb8ecac1a7e..cb8ecac1a7e 100644
--- a/intern/cycles/render/camera.h
+++ b/intern/cycles/scene/camera.h
diff --git a/intern/cycles/render/colorspace.cpp b/intern/cycles/scene/colorspace.cpp
index 3842f8e4726..8584a6f5dd7 100644
--- a/intern/cycles/render/colorspace.cpp
+++ b/intern/cycles/scene/colorspace.cpp
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#include "render/colorspace.h"
+#include "scene/colorspace.h"
#include "util/util_color.h"
#include "util/util_half.h"
diff --git a/intern/cycles/render/colorspace.h b/intern/cycles/scene/colorspace.h
index 51d0b121cc0..51d0b121cc0 100644
--- a/intern/cycles/render/colorspace.h
+++ b/intern/cycles/scene/colorspace.h
diff --git a/intern/cycles/render/constant_fold.cpp b/intern/cycles/scene/constant_fold.cpp
index a4d40ae8183..b2a17198c93 100644
--- a/intern/cycles/render/constant_fold.cpp
+++ b/intern/cycles/scene/constant_fold.cpp
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#include "render/constant_fold.h"
-#include "render/graph.h"
+#include "scene/constant_fold.h"
+#include "scene/shader_graph.h"
#include "util/util_foreach.h"
#include "util/util_logging.h"
diff --git a/intern/cycles/render/constant_fold.h b/intern/cycles/scene/constant_fold.h
index fec4123c361..fec4123c361 100644
--- a/intern/cycles/render/constant_fold.h
+++ b/intern/cycles/scene/constant_fold.h
diff --git a/intern/cycles/render/curves.cpp b/intern/cycles/scene/curves.cpp
index db48d8b6430..6e45905d367 100644
--- a/intern/cycles/render/curves.cpp
+++ b/intern/cycles/scene/curves.cpp
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-#include "render/curves.h"
+#include "scene/curves.h"
#include "device/device.h"
-#include "render/mesh.h"
-#include "render/object.h"
-#include "render/scene.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
+#include "scene/scene.h"
#include "util/util_foreach.h"
#include "util/util_map.h"
diff --git a/intern/cycles/render/curves.h b/intern/cycles/scene/curves.h
index c52fcb9c882..9b0e2a29977 100644
--- a/intern/cycles/render/curves.h
+++ b/intern/cycles/scene/curves.h
@@ -20,7 +20,7 @@
#include "util/util_array.h"
#include "util/util_types.h"
-#include "render/hair.h"
+#include "scene/hair.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/render/film.cpp b/intern/cycles/scene/film.cpp
index 381f794545a..b2322cd08ab 100644
--- a/intern/cycles/render/film.cpp
+++ b/intern/cycles/scene/film.cpp
@@ -14,17 +14,17 @@
* limitations under the License.
*/
-#include "render/film.h"
+#include "scene/film.h"
#include "device/device.h"
-#include "render/background.h"
-#include "render/bake.h"
-#include "render/camera.h"
-#include "render/integrator.h"
-#include "render/mesh.h"
-#include "render/object.h"
-#include "render/scene.h"
-#include "render/stats.h"
-#include "render/tables.h"
+#include "scene/background.h"
+#include "scene/bake.h"
+#include "scene/camera.h"
+#include "scene/integrator.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
+#include "scene/scene.h"
+#include "scene/stats.h"
+#include "scene/tables.h"
#include "util/util_algorithm.h"
#include "util/util_foreach.h"
diff --git a/intern/cycles/render/film.h b/intern/cycles/scene/film.h
index 5d327353361..ede0d6298a6 100644
--- a/intern/cycles/render/film.h
+++ b/intern/cycles/scene/film.h
@@ -17,7 +17,7 @@
#ifndef __FILM_H__
#define __FILM_H__
-#include "render/pass.h"
+#include "scene/pass.h"
#include "util/util_string.h"
#include "util/util_vector.h"
diff --git a/intern/cycles/render/geometry.cpp b/intern/cycles/scene/geometry.cpp
index 5cedab24ceb..9fe34ac6e99 100644
--- a/intern/cycles/render/geometry.cpp
+++ b/intern/cycles/scene/geometry.cpp
@@ -19,18 +19,18 @@
#include "device/device.h"
-#include "render/attribute.h"
-#include "render/camera.h"
-#include "render/geometry.h"
-#include "render/hair.h"
-#include "render/light.h"
-#include "render/mesh.h"
-#include "render/nodes.h"
-#include "render/object.h"
-#include "render/scene.h"
-#include "render/shader.h"
-#include "render/stats.h"
-#include "render/volume.h"
+#include "scene/attribute.h"
+#include "scene/camera.h"
+#include "scene/geometry.h"
+#include "scene/hair.h"
+#include "scene/light.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
+#include "scene/scene.h"
+#include "scene/shader.h"
+#include "scene/shader_nodes.h"
+#include "scene/stats.h"
+#include "scene/volume.h"
#include "subd/subd_patch_table.h"
#include "subd/subd_split.h"
diff --git a/intern/cycles/render/geometry.h b/intern/cycles/scene/geometry.h
index 5c45754ad90..8133132229e 100644
--- a/intern/cycles/render/geometry.h
+++ b/intern/cycles/scene/geometry.h
@@ -21,7 +21,7 @@
#include "bvh/bvh_params.h"
-#include "render/attribute.h"
+#include "scene/attribute.h"
#include "util/util_boundbox.h"
#include "util/util_set.h"
diff --git a/intern/cycles/render/hair.cpp b/intern/cycles/scene/hair.cpp
index 4656148119a..2390da5bf88 100644
--- a/intern/cycles/render/hair.cpp
+++ b/intern/cycles/scene/hair.cpp
@@ -16,10 +16,10 @@
#include "bvh/bvh.h"
-#include "render/curves.h"
-#include "render/hair.h"
-#include "render/object.h"
-#include "render/scene.h"
+#include "scene/curves.h"
+#include "scene/hair.h"
+#include "scene/object.h"
+#include "scene/scene.h"
#include "integrator/shader_eval.h"
diff --git a/intern/cycles/render/hair.h b/intern/cycles/scene/hair.h
index 3e91fc3dcbb..832015058fe 100644
--- a/intern/cycles/render/hair.h
+++ b/intern/cycles/scene/hair.h
@@ -17,7 +17,7 @@
#ifndef __HAIR_H__
#define __HAIR_H__
-#include "render/geometry.h"
+#include "scene/geometry.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/render/image.cpp b/intern/cycles/scene/image.cpp
index 27f9b7df1dd..ac85cf5185e 100644
--- a/intern/cycles/render/image.cpp
+++ b/intern/cycles/scene/image.cpp
@@ -14,13 +14,13 @@
* limitations under the License.
*/
-#include "render/image.h"
+#include "scene/image.h"
#include "device/device.h"
-#include "render/colorspace.h"
-#include "render/image_oiio.h"
-#include "render/image_vdb.h"
-#include "render/scene.h"
-#include "render/stats.h"
+#include "scene/colorspace.h"
+#include "scene/image_oiio.h"
+#include "scene/image_vdb.h"
+#include "scene/scene.h"
+#include "scene/stats.h"
#include "util/util_foreach.h"
#include "util/util_image.h"
diff --git a/intern/cycles/render/image.h b/intern/cycles/scene/image.h
index dede9513d5f..0c0bbff170a 100644
--- a/intern/cycles/render/image.h
+++ b/intern/cycles/scene/image.h
@@ -19,7 +19,7 @@
#include "device/device_memory.h"
-#include "render/colorspace.h"
+#include "scene/colorspace.h"
#include "util/util_string.h"
#include "util/util_thread.h"
diff --git a/intern/cycles/render/image_oiio.cpp b/intern/cycles/scene/image_oiio.cpp
index 4867efe6ac0..256a7aeb7d4 100644
--- a/intern/cycles/render/image_oiio.cpp
+++ b/intern/cycles/scene/image_oiio.cpp
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#include "render/image_oiio.h"
+#include "scene/image_oiio.h"
#include "util/util_image.h"
#include "util/util_logging.h"
diff --git a/intern/cycles/render/image_oiio.h b/intern/cycles/scene/image_oiio.h
index a6dbb168b65..87f8b20f254 100644
--- a/intern/cycles/render/image_oiio.h
+++ b/intern/cycles/scene/image_oiio.h
@@ -17,7 +17,7 @@
#ifndef __IMAGE_OIIO__
#define __IMAGE_OIIO__
-#include "render/image.h"
+#include "scene/image.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/render/image_sky.cpp b/intern/cycles/scene/image_sky.cpp
index 7f9b85836f8..cd8b8d0d991 100644
--- a/intern/cycles/render/image_sky.cpp
+++ b/intern/cycles/scene/image_sky.cpp
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#include "render/image_sky.h"
+#include "scene/image_sky.h"
#include "sky_model.h"
diff --git a/intern/cycles/render/image_sky.h b/intern/cycles/scene/image_sky.h
index 89ff586e7fd..d57e7bbee07 100644
--- a/intern/cycles/render/image_sky.h
+++ b/intern/cycles/scene/image_sky.h
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#include "render/image.h"
+#include "scene/image.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/render/image_vdb.cpp b/intern/cycles/scene/image_vdb.cpp
index 4da11c8a140..466df82dd73 100644
--- a/intern/cycles/render/image_vdb.cpp
+++ b/intern/cycles/scene/image_vdb.cpp
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#include "render/image_vdb.h"
+#include "scene/image_vdb.h"
#include "util/util_logging.h"
#include "util/util_openvdb.h"
diff --git a/intern/cycles/render/image_vdb.h b/intern/cycles/scene/image_vdb.h
index 763196f2a15..0a43d83a24f 100644
--- a/intern/cycles/render/image_vdb.h
+++ b/intern/cycles/scene/image_vdb.h
@@ -24,7 +24,7 @@
# include <nanovdb/util/GridHandle.h>
#endif
-#include "render/image.h"
+#include "scene/image.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/render/integrator.cpp b/intern/cycles/scene/integrator.cpp
index d74d14242bb..3d516860e83 100644
--- a/intern/cycles/render/integrator.cpp
+++ b/intern/cycles/scene/integrator.cpp
@@ -14,18 +14,18 @@
* limitations under the License.
*/
-#include "render/integrator.h"
+#include "scene/integrator.h"
#include "device/device.h"
-#include "render/background.h"
-#include "render/camera.h"
-#include "render/film.h"
-#include "render/jitter.h"
-#include "render/light.h"
-#include "render/object.h"
-#include "render/scene.h"
-#include "render/shader.h"
-#include "render/sobol.h"
-#include "render/stats.h"
+#include "scene/background.h"
+#include "scene/camera.h"
+#include "scene/film.h"
+#include "scene/jitter.h"
+#include "scene/light.h"
+#include "scene/object.h"
+#include "scene/scene.h"
+#include "scene/shader.h"
+#include "scene/sobol.h"
+#include "scene/stats.h"
#include "kernel/kernel_types.h"
diff --git a/intern/cycles/render/integrator.h b/intern/cycles/scene/integrator.h
index 5ad419e02ca..5ad419e02ca 100644
--- a/intern/cycles/render/integrator.h
+++ b/intern/cycles/scene/integrator.h
diff --git a/intern/cycles/render/jitter.cpp b/intern/cycles/scene/jitter.cpp
index e31f8abd446..e2162195ad8 100644
--- a/intern/cycles/render/jitter.cpp
+++ b/intern/cycles/scene/jitter.cpp
@@ -23,7 +23,7 @@
* "Efficient Generation of Points that Satisfy Two-Dimensional Elementary Intervals"
*/
-#include "render/jitter.h"
+#include "scene/jitter.h"
#include <math.h>
#include <vector>
diff --git a/intern/cycles/render/jitter.h b/intern/cycles/scene/jitter.h
index ed34c7a4f4d..ed34c7a4f4d 100644
--- a/intern/cycles/render/jitter.h
+++ b/intern/cycles/scene/jitter.h
diff --git a/intern/cycles/render/light.cpp b/intern/cycles/scene/light.cpp
index 400ed0802a6..26f208d58e5 100644
--- a/intern/cycles/render/light.cpp
+++ b/intern/cycles/scene/light.cpp
@@ -16,17 +16,17 @@
#include "device/device.h"
-#include "render/background.h"
-#include "render/film.h"
-#include "render/graph.h"
-#include "render/integrator.h"
-#include "render/light.h"
-#include "render/mesh.h"
-#include "render/nodes.h"
-#include "render/object.h"
-#include "render/scene.h"
-#include "render/shader.h"
-#include "render/stats.h"
+#include "scene/background.h"
+#include "scene/film.h"
+#include "scene/integrator.h"
+#include "scene/light.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
+#include "scene/scene.h"
+#include "scene/shader.h"
+#include "scene/shader_graph.h"
+#include "scene/shader_nodes.h"
+#include "scene/stats.h"
#include "integrator/shader_eval.h"
diff --git a/intern/cycles/render/light.h b/intern/cycles/scene/light.h
index 7f86237c8b3..9820508d3a5 100644
--- a/intern/cycles/render/light.h
+++ b/intern/cycles/scene/light.h
@@ -23,7 +23,7 @@
/* included as Light::set_shader defined through NODE_SOCKET_API does not select
* the right Node::set overload as it does not know that Shader is a Node */
-#include "render/shader.h"
+#include "scene/shader.h"
#include "util/util_ies.h"
#include "util/util_thread.h"
diff --git a/intern/cycles/render/mesh.cpp b/intern/cycles/scene/mesh.cpp
index 9c93f6f881c..1ed0eb4c30a 100644
--- a/intern/cycles/render/mesh.cpp
+++ b/intern/cycles/scene/mesh.cpp
@@ -19,11 +19,11 @@
#include "device/device.h"
-#include "render/graph.h"
-#include "render/hair.h"
-#include "render/mesh.h"
-#include "render/object.h"
-#include "render/scene.h"
+#include "scene/hair.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
+#include "scene/scene.h"
+#include "scene/shader_graph.h"
#include "subd/subd_patch_table.h"
#include "subd/subd_split.h"
diff --git a/intern/cycles/render/mesh.h b/intern/cycles/scene/mesh.h
index 8258c18ddd1..bc549fa55fa 100644
--- a/intern/cycles/render/mesh.h
+++ b/intern/cycles/scene/mesh.h
@@ -20,9 +20,9 @@
#include "graph/node.h"
#include "bvh/bvh_params.h"
-#include "render/attribute.h"
-#include "render/geometry.h"
-#include "render/shader.h"
+#include "scene/attribute.h"
+#include "scene/geometry.h"
+#include "scene/shader.h"
#include "util/util_array.h"
#include "util/util_boundbox.h"
diff --git a/intern/cycles/render/mesh_displace.cpp b/intern/cycles/scene/mesh_displace.cpp
index 3a11f39d977..c673d79f8fe 100644
--- a/intern/cycles/render/mesh_displace.cpp
+++ b/intern/cycles/scene/mesh_displace.cpp
@@ -18,10 +18,10 @@
#include "integrator/shader_eval.h"
-#include "render/mesh.h"
-#include "render/object.h"
-#include "render/scene.h"
-#include "render/shader.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
+#include "scene/scene.h"
+#include "scene/shader.h"
#include "util/util_foreach.h"
#include "util/util_map.h"
diff --git a/intern/cycles/render/mesh_subdivision.cpp b/intern/cycles/scene/mesh_subdivision.cpp
index 575dbef8ec2..2b27d4b3b2a 100644
--- a/intern/cycles/render/mesh_subdivision.cpp
+++ b/intern/cycles/scene/mesh_subdivision.cpp
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-#include "render/attribute.h"
-#include "render/camera.h"
-#include "render/mesh.h"
+#include "scene/attribute.h"
+#include "scene/camera.h"
+#include "scene/mesh.h"
#include "subd/subd_patch.h"
#include "subd/subd_patch_table.h"
diff --git a/intern/cycles/render/object.cpp b/intern/cycles/scene/object.cpp
index 330ae5ec0fc..8b0cc752049 100644
--- a/intern/cycles/render/object.cpp
+++ b/intern/cycles/scene/object.cpp
@@ -14,18 +14,18 @@
* limitations under the License.
*/
-#include "render/object.h"
+#include "scene/object.h"
#include "device/device.h"
-#include "render/camera.h"
-#include "render/curves.h"
-#include "render/hair.h"
-#include "render/integrator.h"
-#include "render/light.h"
-#include "render/mesh.h"
-#include "render/particles.h"
-#include "render/scene.h"
-#include "render/stats.h"
-#include "render/volume.h"
+#include "scene/camera.h"
+#include "scene/curves.h"
+#include "scene/hair.h"
+#include "scene/integrator.h"
+#include "scene/light.h"
+#include "scene/mesh.h"
+#include "scene/particles.h"
+#include "scene/scene.h"
+#include "scene/stats.h"
+#include "scene/volume.h"
#include "util/util_foreach.h"
#include "util/util_logging.h"
diff --git a/intern/cycles/render/object.h b/intern/cycles/scene/object.h
index ad312835789..d3909bb2b03 100644
--- a/intern/cycles/render/object.h
+++ b/intern/cycles/scene/object.h
@@ -22,8 +22,8 @@
/* included as Object::set_particle_system defined through NODE_SOCKET_API does
* not select the right Node::set overload as it does not know that ParticleSystem
* is a Node */
-#include "render/particles.h"
-#include "render/scene.h"
+#include "scene/particles.h"
+#include "scene/scene.h"
#include "util/util_array.h"
#include "util/util_boundbox.h"
diff --git a/intern/cycles/render/osl.cpp b/intern/cycles/scene/osl.cpp
index 1037ebcae7e..c8ab83ab781 100644
--- a/intern/cycles/render/osl.cpp
+++ b/intern/cycles/scene/osl.cpp
@@ -16,15 +16,15 @@
#include "device/device.h"
-#include "render/background.h"
-#include "render/colorspace.h"
-#include "render/graph.h"
-#include "render/light.h"
-#include "render/nodes.h"
-#include "render/osl.h"
-#include "render/scene.h"
-#include "render/shader.h"
-#include "render/stats.h"
+#include "scene/background.h"
+#include "scene/colorspace.h"
+#include "scene/light.h"
+#include "scene/osl.h"
+#include "scene/scene.h"
+#include "scene/shader.h"
+#include "scene/shader_graph.h"
+#include "scene/shader_nodes.h"
+#include "scene/stats.h"
#ifdef WITH_OSL
diff --git a/intern/cycles/render/osl.h b/intern/cycles/scene/osl.h
index dfeec54d915..4161fe6ed67 100644
--- a/intern/cycles/render/osl.h
+++ b/intern/cycles/scene/osl.h
@@ -22,9 +22,9 @@
#include "util/util_string.h"
#include "util/util_thread.h"
-#include "render/graph.h"
-#include "render/nodes.h"
-#include "render/shader.h"
+#include "scene/shader.h"
+#include "scene/shader_graph.h"
+#include "scene/shader_nodes.h"
#ifdef WITH_OSL
# include <OSL/llvm_util.h>
diff --git a/intern/cycles/render/particles.cpp b/intern/cycles/scene/particles.cpp
index 02dd1359b18..8041c57ba02 100644
--- a/intern/cycles/render/particles.cpp
+++ b/intern/cycles/scene/particles.cpp
@@ -14,10 +14,10 @@
* limitations under the License.
*/
-#include "render/particles.h"
+#include "scene/particles.h"
#include "device/device.h"
-#include "render/scene.h"
-#include "render/stats.h"
+#include "scene/scene.h"
+#include "scene/stats.h"
#include "util/util_foreach.h"
#include "util/util_hash.h"
diff --git a/intern/cycles/render/particles.h b/intern/cycles/scene/particles.h
index 8b59756f148..8b59756f148 100644
--- a/intern/cycles/render/particles.h
+++ b/intern/cycles/scene/particles.h
diff --git a/intern/cycles/render/pass.cpp b/intern/cycles/scene/pass.cpp
index 472c9fc0a82..fc93a05d321 100644
--- a/intern/cycles/render/pass.cpp
+++ b/intern/cycles/scene/pass.cpp
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#include "render/pass.h"
+#include "scene/pass.h"
#include "util/util_algorithm.h"
#include "util/util_logging.h"
diff --git a/intern/cycles/render/pass.h b/intern/cycles/scene/pass.h
index 82230c62cb0..82230c62cb0 100644
--- a/intern/cycles/render/pass.h
+++ b/intern/cycles/scene/pass.h
diff --git a/intern/cycles/render/procedural.cpp b/intern/cycles/scene/procedural.cpp
index 1307a35dcf2..abfc6c62ad4 100644
--- a/intern/cycles/render/procedural.cpp
+++ b/intern/cycles/scene/procedural.cpp
@@ -16,8 +16,8 @@
#include "procedural.h"
-#include "render/scene.h"
-#include "render/stats.h"
+#include "scene/scene.h"
+#include "scene/stats.h"
#include "util/util_foreach.h"
#include "util/util_progress.h"
diff --git a/intern/cycles/render/procedural.h b/intern/cycles/scene/procedural.h
index 985b8d69979..985b8d69979 100644
--- a/intern/cycles/render/procedural.h
+++ b/intern/cycles/scene/procedural.h
diff --git a/intern/cycles/render/scene.cpp b/intern/cycles/scene/scene.cpp
index 7c5e1a86f5e..00cb73265f5 100644
--- a/intern/cycles/render/scene.cpp
+++ b/intern/cycles/scene/scene.cpp
@@ -18,25 +18,25 @@
#include "bvh/bvh.h"
#include "device/device.h"
-#include "render/alembic.h"
-#include "render/background.h"
-#include "render/bake.h"
-#include "render/camera.h"
-#include "render/curves.h"
-#include "render/film.h"
-#include "render/integrator.h"
-#include "render/light.h"
-#include "render/mesh.h"
-#include "render/object.h"
-#include "render/osl.h"
-#include "render/particles.h"
-#include "render/procedural.h"
-#include "render/scene.h"
-#include "render/session.h"
-#include "render/shader.h"
-#include "render/svm.h"
-#include "render/tables.h"
-#include "render/volume.h"
+#include "scene/alembic.h"
+#include "scene/background.h"
+#include "scene/bake.h"
+#include "scene/camera.h"
+#include "scene/curves.h"
+#include "scene/film.h"
+#include "scene/integrator.h"
+#include "scene/light.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
+#include "scene/osl.h"
+#include "scene/particles.h"
+#include "scene/procedural.h"
+#include "scene/scene.h"
+#include "scene/shader.h"
+#include "scene/svm.h"
+#include "scene/tables.h"
+#include "scene/volume.h"
+#include "session/session.h"
#include "util/util_foreach.h"
#include "util/util_guarded_allocator.h"
diff --git a/intern/cycles/render/scene.h b/intern/cycles/scene/scene.h
index de7e3c8a99f..9b2502c9361 100644
--- a/intern/cycles/render/scene.h
+++ b/intern/cycles/scene/scene.h
@@ -19,9 +19,9 @@
#include "bvh/bvh_params.h"
-#include "render/film.h"
-#include "render/image.h"
-#include "render/shader.h"
+#include "scene/film.h"
+#include "scene/image.h"
+#include "scene/shader.h"
#include "device/device.h"
#include "device/device_memory.h"
diff --git a/intern/cycles/render/shader.cpp b/intern/cycles/scene/shader.cpp
index 23786a3390f..6b464a77401 100644
--- a/intern/cycles/render/shader.cpp
+++ b/intern/cycles/scene/shader.cpp
@@ -16,21 +16,21 @@
#include "device/device.h"
-#include "render/background.h"
-#include "render/camera.h"
-#include "render/colorspace.h"
-#include "render/graph.h"
-#include "render/integrator.h"
-#include "render/light.h"
-#include "render/mesh.h"
-#include "render/nodes.h"
-#include "render/object.h"
-#include "render/osl.h"
-#include "render/procedural.h"
-#include "render/scene.h"
-#include "render/shader.h"
-#include "render/svm.h"
-#include "render/tables.h"
+#include "scene/background.h"
+#include "scene/camera.h"
+#include "scene/colorspace.h"
+#include "scene/integrator.h"
+#include "scene/light.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
+#include "scene/osl.h"
+#include "scene/procedural.h"
+#include "scene/scene.h"
+#include "scene/shader.h"
+#include "scene/shader_graph.h"
+#include "scene/shader_nodes.h"
+#include "scene/svm.h"
+#include "scene/tables.h"
#include "util/util_foreach.h"
#include "util/util_murmurhash.h"
diff --git a/intern/cycles/render/shader.h b/intern/cycles/scene/shader.h
index 5f9adea3949..7ef3bda15d7 100644
--- a/intern/cycles/render/shader.h
+++ b/intern/cycles/scene/shader.h
@@ -24,7 +24,7 @@
#endif
#include "kernel/kernel_types.h"
-#include "render/attribute.h"
+#include "scene/attribute.h"
#include "graph/node.h"
diff --git a/intern/cycles/render/graph.cpp b/intern/cycles/scene/shader_graph.cpp
index ee1a6e68bcf..116d8335ef8 100644
--- a/intern/cycles/render/graph.cpp
+++ b/intern/cycles/scene/shader_graph.cpp
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-#include "render/graph.h"
-#include "render/attribute.h"
-#include "render/constant_fold.h"
-#include "render/nodes.h"
-#include "render/scene.h"
-#include "render/shader.h"
+#include "scene/shader_graph.h"
+#include "scene/attribute.h"
+#include "scene/constant_fold.h"
+#include "scene/scene.h"
+#include "scene/shader.h"
+#include "scene/shader_nodes.h"
#include "util/util_algorithm.h"
#include "util/util_foreach.h"
diff --git a/intern/cycles/render/graph.h b/intern/cycles/scene/shader_graph.h
index 3584754fad1..3584754fad1 100644
--- a/intern/cycles/render/graph.h
+++ b/intern/cycles/scene/shader_graph.h
diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/scene/shader_nodes.cpp
index d775859d24d..d7fc7ae1c27 100644
--- a/intern/cycles/render/nodes.cpp
+++ b/intern/cycles/scene/shader_nodes.cpp
@@ -14,21 +14,22 @@
* limitations under the License.
*/
-#include "render/nodes.h"
-#include "render/colorspace.h"
-#include "render/constant_fold.h"
-#include "render/film.h"
-#include "render/image.h"
-#include "render/image_sky.h"
-#include "render/integrator.h"
-#include "render/light.h"
-#include "render/mesh.h"
-#include "render/osl.h"
-#include "render/scene.h"
-#include "render/svm.h"
+#include "scene/shader_nodes.h"
+#include "scene/colorspace.h"
+#include "scene/constant_fold.h"
+#include "scene/film.h"
+#include "scene/image.h"
+#include "scene/image_sky.h"
+#include "scene/integrator.h"
+#include "scene/light.h"
+#include "scene/mesh.h"
+#include "scene/osl.h"
+#include "scene/scene.h"
+#include "scene/svm.h"
#include "sky_model.h"
+#include "util/util_color.h"
#include "util/util_foreach.h"
#include "util/util_logging.h"
#include "util/util_transform.h"
diff --git a/intern/cycles/render/nodes.h b/intern/cycles/scene/shader_nodes.h
index 5ac72835ac5..b8a439fa9b9 100644
--- a/intern/cycles/render/nodes.h
+++ b/intern/cycles/scene/shader_nodes.h
@@ -18,8 +18,8 @@
#define __NODES_H__
#include "graph/node.h"
-#include "render/graph.h"
-#include "render/image.h"
+#include "scene/image.h"
+#include "scene/shader_graph.h"
#include "util/util_array.h"
#include "util/util_string.h"
diff --git a/intern/cycles/scene/sobol.cpp b/intern/cycles/scene/sobol.cpp
new file mode 100644
index 00000000000..397c28814ca
--- /dev/null
+++ b/intern/cycles/scene/sobol.cpp
@@ -0,0 +1,94 @@
+/*
+ * Sobol sequence direction vectors.
+ *
+ * This file contains code to create direction vectors for generating sobol
+ * sequences in high dimensions. It is adapted from code on this webpage:
+ *
+ * http://web.maths.unsw.edu.au/~fkuo/sobol/
+ *
+ * From these papers:
+ *
+ * S. Joe and F. Y. Kuo, Remark on Algorithm 659: Implementing Sobol's quasirandom
+ * sequence generator, ACM Trans. Math. Softw. 29, 49-57 (2003)
+ *
+ * S. Joe and F. Y. Kuo, Constructing Sobol sequences with better two-dimensional
+ * projections, SIAM J. Sci. Comput. 30, 2635-2654 (2008)
+ */
+
+/* Copyright (c) 2008, Frances Y. Kuo and Stephen Joe
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the names of the copyright holders nor the names of the
+ * University of New South Wales and the University of Waikato
+ * and its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "util/util_types.h"
+
+#include "scene/sobol.h"
+
+CCL_NAMESPACE_BEGIN
+
+#include "sobol.tables"
+
+void sobol_generate_direction_vectors(uint vectors[][SOBOL_BITS], int dimensions)
+{
+ assert(dimensions <= SOBOL_MAX_DIMENSIONS);
+
+ const uint L = SOBOL_BITS;
+
+ /* first dimension is exception */
+ uint *v = vectors[0];
+
+ for (uint i = 0; i < L; i++)
+ v[i] = 1 << (31 - i); // all m's = 1
+
+ for (int dim = 1; dim < dimensions; dim++) {
+ const SobolDirectionNumbers *numbers = &SOBOL_NUMBERS[dim - 1];
+ const uint s = numbers->s;
+ const uint a = numbers->a;
+ const uint *m = numbers->m;
+
+ v = vectors[dim];
+
+ if (L <= s) {
+ for (uint i = 0; i < L; i++)
+ v[i] = m[i] << (31 - i);
+ }
+ else {
+ for (uint i = 0; i < s; i++)
+ v[i] = m[i] << (31 - i);
+
+ for (uint i = s; i < L; i++) {
+ v[i] = v[i - s] ^ (v[i - s] >> s);
+
+ for (uint k = 1; k < s; k++)
+ v[i] ^= (((a >> (s - 1 - k)) & 1) * v[i - k]);
+ }
+ }
+ }
+}
+
+CCL_NAMESPACE_END
diff --git a/intern/cycles/render/sobol.h b/intern/cycles/scene/sobol.h
index d38857d2b35..d38857d2b35 100644
--- a/intern/cycles/render/sobol.h
+++ b/intern/cycles/scene/sobol.h
diff --git a/intern/cycles/render/sobol.cpp b/intern/cycles/scene/sobol.tables
index c821249b239..24f174dfae2 100644
--- a/intern/cycles/render/sobol.cpp
+++ b/intern/cycles/scene/sobol.tables
@@ -45,11 +45,7 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "util/util_types.h"
-
-#include "render/sobol.h"
-
-CCL_NAMESPACE_BEGIN
+/* Note: this file has a non-standard extension so it is skipped by clang-format. */
#define SOBOL_MAX_NUMBER 32
@@ -58,10 +54,6 @@ typedef struct SobolDirectionNumbers {
uint m[SOBOL_MAX_NUMBER];
} SobolDirectionNumbers;
-/* Note: this file is skipped by clang-format. */
-
-/* Keep simple alignment. */
-/* clang-format off */
static const SobolDirectionNumbers SOBOL_NUMBERS[SOBOL_MAX_DIMENSIONS - 1] = {
{2, 1, 0, {1}},
{3, 2, 1, {1, 3}},
@@ -21264,44 +21256,3 @@ static const SobolDirectionNumbers SOBOL_NUMBERS[SOBOL_MAX_DIMENSIONS - 1] = {
{21200, 18, 131020, {1, 1, 5, 1, 19, 1, 83, 3, 425, 873, 1943, 3935, 4257, 14587, 11829, 55217, 21963, 39683}},
{21201, 18, 131059, {1, 1, 7, 11, 15, 7, 37, 239, 337, 245, 1557, 3681, 7357, 9639, 27367, 26869, 114603, 86317}}
};
-/* clang-format on */
-
-void sobol_generate_direction_vectors(uint vectors[][SOBOL_BITS], int dimensions)
-{
- assert(dimensions <= SOBOL_MAX_DIMENSIONS);
-
- const uint L = SOBOL_BITS;
-
- /* first dimension is exception */
- uint *v = vectors[0];
-
- for (uint i = 0; i < L; i++)
- v[i] = 1 << (31 - i); // all m's = 1
-
- for (int dim = 1; dim < dimensions; dim++) {
- const SobolDirectionNumbers *numbers = &SOBOL_NUMBERS[dim - 1];
- const uint s = numbers->s;
- const uint a = numbers->a;
- const uint *m = numbers->m;
-
- v = vectors[dim];
-
- if (L <= s) {
- for (uint i = 0; i < L; i++)
- v[i] = m[i] << (31 - i);
- }
- else {
- for (uint i = 0; i < s; i++)
- v[i] = m[i] << (31 - i);
-
- for (uint i = s; i < L; i++) {
- v[i] = v[i - s] ^ (v[i - s] >> s);
-
- for (uint k = 1; k < s; k++)
- v[i] ^= (((a >> (s - 1 - k)) & 1) * v[i - k]);
- }
- }
- }
-}
-
-CCL_NAMESPACE_END
diff --git a/intern/cycles/render/stats.cpp b/intern/cycles/scene/stats.cpp
index 73eb7e21ff9..5c3cff232f4 100644
--- a/intern/cycles/render/stats.cpp
+++ b/intern/cycles/scene/stats.cpp
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#include "render/stats.h"
-#include "render/object.h"
+#include "scene/stats.h"
+#include "scene/object.h"
#include "util/util_algorithm.h"
#include "util/util_foreach.h"
#include "util/util_string.h"
diff --git a/intern/cycles/render/stats.h b/intern/cycles/scene/stats.h
index 93d029bba61..ffcc4d55235 100644
--- a/intern/cycles/render/stats.h
+++ b/intern/cycles/scene/stats.h
@@ -17,7 +17,7 @@
#ifndef __RENDER_STATS_H__
#define __RENDER_STATS_H__
-#include "render/scene.h"
+#include "scene/scene.h"
#include "util/util_stats.h"
#include "util/util_string.h"
diff --git a/intern/cycles/render/svm.cpp b/intern/cycles/scene/svm.cpp
index 2379eb775a0..b0b7fb605d1 100644
--- a/intern/cycles/render/svm.cpp
+++ b/intern/cycles/scene/svm.cpp
@@ -16,15 +16,15 @@
#include "device/device.h"
-#include "render/background.h"
-#include "render/graph.h"
-#include "render/light.h"
-#include "render/mesh.h"
-#include "render/nodes.h"
-#include "render/scene.h"
-#include "render/shader.h"
-#include "render/stats.h"
-#include "render/svm.h"
+#include "scene/background.h"
+#include "scene/light.h"
+#include "scene/mesh.h"
+#include "scene/scene.h"
+#include "scene/shader.h"
+#include "scene/shader_graph.h"
+#include "scene/shader_nodes.h"
+#include "scene/stats.h"
+#include "scene/svm.h"
#include "util/util_foreach.h"
#include "util/util_logging.h"
diff --git a/intern/cycles/render/svm.h b/intern/cycles/scene/svm.h
index 0353c393ae4..a3d215218fa 100644
--- a/intern/cycles/render/svm.h
+++ b/intern/cycles/scene/svm.h
@@ -17,9 +17,9 @@
#ifndef __SVM_H__
#define __SVM_H__
-#include "render/attribute.h"
-#include "render/graph.h"
-#include "render/shader.h"
+#include "scene/attribute.h"
+#include "scene/shader.h"
+#include "scene/shader_graph.h"
#include "util/util_array.h"
#include "util/util_set.h"
diff --git a/intern/cycles/render/tables.cpp b/intern/cycles/scene/tables.cpp
index a0813400b1c..39edc5d89cd 100644
--- a/intern/cycles/render/tables.cpp
+++ b/intern/cycles/scene/tables.cpp
@@ -14,10 +14,10 @@
* limitations under the License.
*/
-#include "render/tables.h"
+#include "scene/tables.h"
#include "device/device.h"
-#include "render/scene.h"
-#include "render/stats.h"
+#include "scene/scene.h"
+#include "scene/stats.h"
#include "util/util_logging.h"
#include "util/util_time.h"
diff --git a/intern/cycles/render/tables.h b/intern/cycles/scene/tables.h
index de538e2af78..de538e2af78 100644
--- a/intern/cycles/render/tables.h
+++ b/intern/cycles/scene/tables.h
diff --git a/intern/cycles/render/volume.cpp b/intern/cycles/scene/volume.cpp
index 358ef71d501..757388a4491 100644
--- a/intern/cycles/render/volume.cpp
+++ b/intern/cycles/scene/volume.cpp
@@ -14,10 +14,10 @@
* limitations under the License.
*/
-#include "render/volume.h"
-#include "render/attribute.h"
-#include "render/image_vdb.h"
-#include "render/scene.h"
+#include "scene/volume.h"
+#include "scene/attribute.h"
+#include "scene/image_vdb.h"
+#include "scene/scene.h"
#ifdef WITH_OPENVDB
# include <openvdb/tools/Dense.h>
diff --git a/intern/cycles/render/volume.h b/intern/cycles/scene/volume.h
index 2e9703bf7ed..eae48f78b8c 100644
--- a/intern/cycles/render/volume.h
+++ b/intern/cycles/scene/volume.h
@@ -18,7 +18,7 @@
#include "graph/node.h"
-#include "render/mesh.h"
+#include "scene/mesh.h"
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/session/CMakeLists.txt b/intern/cycles/session/CMakeLists.txt
new file mode 100644
index 00000000000..f441def128e
--- /dev/null
+++ b/intern/cycles/session/CMakeLists.txt
@@ -0,0 +1,48 @@
+# Copyright 2011-2021 Blender Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set(INC
+ ..
+)
+
+set(SRC
+ buffers.cpp
+ denoising.cpp
+ merge.cpp
+ session.cpp
+ tile.cpp
+)
+
+set(SRC_HEADERS
+ buffers.h
+ display_driver.h
+ denoising.h
+ merge.h
+ output_driver.h
+ session.h
+ tile.h
+)
+
+set(LIB
+ cycles_device
+ cycles_integrator
+ cycles_util
+)
+
+include_directories(${INC})
+include_directories(SYSTEM ${INC_SYS})
+
+add_definitions(${GL_DEFINITIONS})
+
+cycles_add_library(cycles_session "${LIB}" ${SRC} ${SRC_HEADERS})
diff --git a/intern/cycles/render/buffers.cpp b/intern/cycles/session/buffers.cpp
index 00b4284c22b..439c0f826ea 100644
--- a/intern/cycles/render/buffers.cpp
+++ b/intern/cycles/session/buffers.cpp
@@ -17,7 +17,7 @@
#include <stdlib.h>
#include "device/device.h"
-#include "render/buffers.h"
+#include "session/buffers.h"
#include "util/util_foreach.h"
#include "util/util_hash.h"
diff --git a/intern/cycles/render/buffers.h b/intern/cycles/session/buffers.h
index 3cf826f14d6..4c261430bb6 100644
--- a/intern/cycles/render/buffers.h
+++ b/intern/cycles/session/buffers.h
@@ -19,7 +19,7 @@
#include "device/device_memory.h"
#include "graph/node.h"
-#include "render/pass.h"
+#include "scene/pass.h"
#include "kernel/kernel_types.h"
diff --git a/intern/cycles/render/denoising.cpp b/intern/cycles/session/denoising.cpp
index bcf8d3fa204..21df068092a 100644
--- a/intern/cycles/render/denoising.cpp
+++ b/intern/cycles/session/denoising.cpp
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#include "render/denoising.h"
+#include "session/denoising.h"
#if 0
diff --git a/intern/cycles/render/denoising.h b/intern/cycles/session/denoising.h
index 097cc570d06..097cc570d06 100644
--- a/intern/cycles/render/denoising.h
+++ b/intern/cycles/session/denoising.h
diff --git a/intern/cycles/render/display_driver.h b/intern/cycles/session/display_driver.h
index 85f305034d7..85f305034d7 100644
--- a/intern/cycles/render/display_driver.h
+++ b/intern/cycles/session/display_driver.h
diff --git a/intern/cycles/render/merge.cpp b/intern/cycles/session/merge.cpp
index 8a58c827e82..97e9c75d5f7 100644
--- a/intern/cycles/render/merge.cpp
+++ b/intern/cycles/session/merge.cpp
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#include "render/merge.h"
+#include "session/merge.h"
#include "util/util_array.h"
#include "util/util_map.h"
diff --git a/intern/cycles/render/merge.h b/intern/cycles/session/merge.h
index 87e5d2d4723..87e5d2d4723 100644
--- a/intern/cycles/render/merge.h
+++ b/intern/cycles/session/merge.h
diff --git a/intern/cycles/render/output_driver.h b/intern/cycles/session/output_driver.h
index b7e980d71d4..b7e980d71d4 100644
--- a/intern/cycles/render/output_driver.h
+++ b/intern/cycles/session/output_driver.h
diff --git a/intern/cycles/render/session.cpp b/intern/cycles/session/session.cpp
index 7fba7ce7552..f8fc892f127 100644
--- a/intern/cycles/render/session.cpp
+++ b/intern/cycles/session/session.cpp
@@ -21,19 +21,19 @@
#include "device/device.h"
#include "integrator/pass_accessor_cpu.h"
#include "integrator/path_trace.h"
-#include "render/background.h"
-#include "render/bake.h"
-#include "render/buffers.h"
-#include "render/camera.h"
-#include "render/display_driver.h"
-#include "render/graph.h"
-#include "render/integrator.h"
-#include "render/light.h"
-#include "render/mesh.h"
-#include "render/object.h"
-#include "render/output_driver.h"
-#include "render/scene.h"
-#include "render/session.h"
+#include "scene/background.h"
+#include "scene/bake.h"
+#include "scene/camera.h"
+#include "scene/integrator.h"
+#include "scene/light.h"
+#include "scene/mesh.h"
+#include "scene/object.h"
+#include "scene/scene.h"
+#include "scene/shader_graph.h"
+#include "session/buffers.h"
+#include "session/display_driver.h"
+#include "session/output_driver.h"
+#include "session/session.h"
#include "util/util_foreach.h"
#include "util/util_function.h"
diff --git a/intern/cycles/render/session.h b/intern/cycles/session/session.h
index 46c964bc98c..5aa6df79ef1 100644
--- a/intern/cycles/render/session.h
+++ b/intern/cycles/session/session.h
@@ -19,10 +19,10 @@
#include "device/device.h"
#include "integrator/render_scheduler.h"
-#include "render/buffers.h"
-#include "render/shader.h"
-#include "render/stats.h"
-#include "render/tile.h"
+#include "scene/shader.h"
+#include "scene/stats.h"
+#include "session/buffers.h"
+#include "session/tile.h"
#include "util/util_progress.h"
#include "util/util_stats.h"
diff --git a/intern/cycles/render/tile.cpp b/intern/cycles/session/tile.cpp
index 3070e93eff3..59332530596 100644
--- a/intern/cycles/render/tile.cpp
+++ b/intern/cycles/session/tile.cpp
@@ -14,15 +14,15 @@
* limitations under the License.
*/
-#include "render/tile.h"
+#include "session/tile.h"
#include <atomic>
#include "graph/node.h"
-#include "render/background.h"
-#include "render/film.h"
-#include "render/integrator.h"
-#include "render/scene.h"
+#include "scene/background.h"
+#include "scene/film.h"
+#include "scene/integrator.h"
+#include "scene/scene.h"
#include "util/util_algorithm.h"
#include "util/util_foreach.h"
#include "util/util_logging.h"
diff --git a/intern/cycles/render/tile.h b/intern/cycles/session/tile.h
index 5872a9a8609..37a02081a53 100644
--- a/intern/cycles/render/tile.h
+++ b/intern/cycles/session/tile.h
@@ -16,7 +16,7 @@
#pragma once
-#include "render/buffers.h"
+#include "session/buffers.h"
#include "util/util_image.h"
#include "util/util_string.h"
#include "util/util_unique_ptr.h"
diff --git a/intern/cycles/subd/subd_dice.cpp b/intern/cycles/subd/subd_dice.cpp
index 4efdb98aa0f..a4019a5d639 100644
--- a/intern/cycles/subd/subd_dice.cpp
+++ b/intern/cycles/subd/subd_dice.cpp
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#include "render/camera.h"
-#include "render/mesh.h"
+#include "scene/camera.h"
+#include "scene/mesh.h"
#include "subd/subd_dice.h"
#include "subd/subd_patch.h"
diff --git a/intern/cycles/subd/subd_patch.cpp b/intern/cycles/subd/subd_patch.cpp
index a975b7b6342..23b3e6d5136 100644
--- a/intern/cycles/subd/subd_patch.cpp
+++ b/intern/cycles/subd/subd_patch.cpp
@@ -16,7 +16,7 @@
/* Parts adapted from code in the public domain in NVidia Mesh Tools. */
-#include "render/mesh.h"
+#include "scene/mesh.h"
#include "subd/subd_patch.h"
diff --git a/intern/cycles/subd/subd_split.cpp b/intern/cycles/subd/subd_split.cpp
index 4d648eb1f77..6b352ab02c3 100644
--- a/intern/cycles/subd/subd_split.cpp
+++ b/intern/cycles/subd/subd_split.cpp
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#include "render/camera.h"
-#include "render/mesh.h"
+#include "scene/camera.h"
+#include "scene/mesh.h"
#include "subd/subd_dice.h"
#include "subd/subd_patch.h"
diff --git a/intern/cycles/test/CMakeLists.txt b/intern/cycles/test/CMakeLists.txt
index 0f6b435813f..efd9cecb877 100644
--- a/intern/cycles/test/CMakeLists.txt
+++ b/intern/cycles/test/CMakeLists.txt
@@ -25,18 +25,19 @@ set(INC
../device
../graph
../kernel
- ../render
+ ../scene
../util
)
set(ALL_CYCLES_LIBRARIES
- cycles_device
cycles_kernel
cycles_integrator
- cycles_render
+ cycles_scene
+ cycles_session
cycles_bvh
cycles_graph
cycles_subd
+ cycles_device
cycles_util
extern_clew
${CYCLES_GL_LIBRARIES}
diff --git a/intern/cycles/test/render_graph_finalize_test.cpp b/intern/cycles/test/render_graph_finalize_test.cpp
index 19c211fe5f7..4a87a382130 100644
--- a/intern/cycles/test/render_graph_finalize_test.cpp
+++ b/intern/cycles/test/render_graph_finalize_test.cpp
@@ -19,9 +19,9 @@
#include "device/device.h"
-#include "render/graph.h"
-#include "render/nodes.h"
-#include "render/scene.h"
+#include "scene/scene.h"
+#include "scene/shader_graph.h"
+#include "scene/shader_nodes.h"
#include "util/util_array.h"
#include "util/util_logging.h"