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:
Diffstat (limited to 'intern/cycles/kernel')
-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
170 files changed, 401 insertions, 338 deletions
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