blender/intern/cycles/kernel
Sergey Sharybin 84ad20acef Fix T44833: Can't use ccl_local space in non-kernel functions
This commit re-shuffles code in split kernel once again and makes it so common
parts which is in the headers is only responsible to making all the work needed
for specified ray index. Getting ray index, checking for it's validity and
enqueuing tasks are now happening in the device specified part of the kernel.

This actually makes sense because enqueuing is indeed device-specified and i.e.
with CUDA we'll want to enqueue kernels from kernel and avoid CPU roundtrip.

TODO:
- Kernel comments are still placed in the common header files, but since queue
  related stuff is not passed to those functions those comments might need to
  be split as well.

  Just currently read them considering that they're also covering the way how
  all devices are invoking the common code path.

- Arguments might need to be wrapped into KernelGlobals, so we don't ened to
  pass all them around as function arguments.
2015-05-26 22:54:02 +05:00
..
closure Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
geom Cycles: Make experimental kernel build option more generic 2015-05-15 13:22:47 +05:00
kernels Fix T44833: Can't use ccl_local space in non-kernel functions 2015-05-26 22:54:02 +05:00
osl Cycles: Add CPU compat headers to some of the OSL implementation files 2015-05-09 19:04:16 +05:00
shaders Cleanup: style 2015-04-21 15:53:32 +10:00
split Fix T44833: Can't use ccl_local space in non-kernel functions 2015-05-26 22:54:02 +05:00
svm Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
CMakeLists.txt Fix T44833: Can't use ccl_local space in non-kernel functions 2015-05-26 22:54:02 +05:00
kernel_accumulate.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
kernel_bake.h Correct typo: ifdef'd now, but obviously wrong 2015-05-07 10:12:12 +10:00
kernel_camera.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
kernel_compat_cpu.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
kernel_compat_cuda.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
kernel_compat_opencl.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
kernel_debug.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
kernel_differential.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
kernel_emission.h Cleanup: Remove some outdated comments related to split kernel. 2015-05-21 20:32:20 +02:00
kernel_film.h Cycles: Use native saturate function for CUDA 2015-04-28 00:38:32 +05:00
kernel_globals.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
kernel_jitter.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
kernel_light.h Cleanup: Avoid temp variable in portal sampling code. 2015-05-13 19:54:52 +02:00
kernel_math.h Cycles: Add fast math function module 2015-01-31 01:49:41 +05:00
kernel_montecarlo.h Cycles code refactor: minor refactoring and comments for volume code. 2014-03-29 13:03:49 +01:00
kernel_passes.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
kernel_path_common.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
kernel_path_state.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
kernel_path_surface.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
kernel_path_volume.h Cycles: Simplify volume light connect code. 2015-03-13 00:09:13 +01:00
kernel_path.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
kernel_projection.h Cycles: Add Mirror ball mapping to camera panorama options 2015-04-25 23:51:56 +02:00
kernel_queues.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
kernel_random.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
kernel_shader.h Cycles: Prepare code for OpenCL camera/motion blur 2015-05-14 18:48:56 +05:00
kernel_shaderdata_vars.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
kernel_shadow.h Cleanup: Remove some outdated comments related to split kernel. 2015-05-21 20:32:20 +02:00
kernel_subsurface.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
kernel_textures.h Cycles: Split BVH nodes storage into inner and leaf nodes 2015-04-20 17:29:51 +05:00
kernel_types.h Cycles: Enable advanced shading for NVidia OpenCL kernel 2015-05-26 21:29:21 +05:00
kernel_volume.h Cycles: Record all possible volume intersections for SSS and camera checks 2015-04-29 23:31:06 +02:00
kernel_work_stealing.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
kernel.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
SConscript Cycles: Restructure kernel files organization 2015-05-22 16:31:34 +05:00