blender/intern/cycles/kernel/split
Hristo Gueorguiev 6bf4115c13 Cycles: Split kernel - sort shaders
Reduce thread divergence in kernel_shader_eval.

Rays are sorted in blocks of 2048 according to shader->id.

On R9 290 Classroom is ~30% faster, and Pabellon Barcelone is ~8% faster.

No sorting for CUDA split kernel.

Reviewers: sergey, maiself

Reviewed By: maiself

Differential Revision: https://developer.blender.org/D2598
2017-05-03 15:30:45 +02:00
..
kernel_branched.h Cycles: Branched path tracing for the split kernel 2017-05-02 14:26:46 -04:00
kernel_buffer_update.h Cycles: Add OpenCL support for shadow catcher feature 2017-03-27 10:46:59 +02:00
kernel_data_init.h Cycles: Branched path tracing for the split kernel 2017-05-02 14:26:46 -04:00
kernel_direct_lighting.h Cycles: Branched path tracing for the split kernel 2017-05-02 14:26:46 -04:00
kernel_do_volume.h Cycles: Branched path tracing for the split kernel 2017-05-02 14:26:46 -04:00
kernel_holdout_emission_blurring_pathtermination_ao.h Cycles: Branched path tracing for the split kernel 2017-05-02 14:26:46 -04:00
kernel_indirect_background.h Cycles: Branched path tracing for the split kernel 2017-05-02 14:26:46 -04:00
kernel_indirect_subsurface.h Cycles: Branched path tracing for the split kernel 2017-05-02 14:26:46 -04:00
kernel_lamp_emission.h Cycles: Avoid some ccl_local in various kernels 2017-03-16 11:27:17 +01:00
kernel_next_iteration_setup.h Cycles: Branched path tracing for the split kernel 2017-05-02 14:26:46 -04:00
kernel_path_init.h Cycles: Remove ccl_addr_space from RNG passed to functions 2017-03-27 10:46:28 +02:00
kernel_queue_enqueue.h Cycles: Define ccl_local variables in kernel functions 2017-03-16 11:27:17 +01:00
kernel_scene_intersect.h Cycles: Fix the AO replacement option in the split kernel 2017-04-11 01:07:49 +02:00
kernel_shader_eval.h Cycles: Split kernel - sort shaders 2017-05-03 15:30:45 +02:00
kernel_shader_setup.h Cycles: Split kernel - sort shaders 2017-05-03 15:30:45 +02:00
kernel_shader_sort.h Cycles: Split kernel - sort shaders 2017-05-03 15:30:45 +02:00
kernel_shadow_blocked_ao.h Cycles: Branched path tracing for the split kernel 2017-05-02 14:26:46 -04:00
kernel_shadow_blocked_dl.h Cycles: Branched path tracing for the split kernel 2017-05-02 14:26:46 -04:00
kernel_split_common.h Cycles: Branched path tracing for the split kernel 2017-05-02 14:26:46 -04:00
kernel_split_data_types.h Cycles: Split kernel - sort shaders 2017-05-03 15:30:45 +02:00
kernel_split_data.h Cycles: Make all #include statements relative to cycles source directory 2017-03-29 13:41:11 +02:00
kernel_subsurface_scatter.h Cycles: Branched path tracing for the split kernel 2017-05-02 14:26:46 -04:00