blender/intern/cycles/util
Mai Lavelle 230c00d872 Cycles: OpenCL split kernel refactor
This does a few things at once:

- Refactors host side split kernel logic into a new device
  agnostic class `DeviceSplitKernel`.
- Removes tile splitting, a new work pool implementation takes its place and
  allows as many threads as will fit in memory regardless of tile size, which
  can give performance gains.
- Refactors split state buffers into one buffer, as well as reduces the
  number of arguments passed to kernels. Means there's less code to deal
  with overall.
- Moves kernel logic out of OpenCL kernel files so they can later be used by
  other device types.
- Replaced OpenCL specific APIs with new generic versions
- Tiles can now be seen updating during rendering
2017-03-08 00:52:41 -05:00
..
CMakeLists.txt Cycles: Implement texture size limit simplify option 2016-11-22 12:00:09 +01:00
util_algorithm.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_aligned_malloc.cpp Cycles: Some cleanup, should be no functional changes 2016-02-16 15:33:00 +01:00
util_aligned_malloc.h Cycles: Use size_t for aligned allocator 2015-02-19 22:19:29 +05:00
util_args.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_atomic.h Cycles: Add more atomic operations 2017-03-08 00:52:41 -05:00
util_avxf.h Cycles: Add AVX intrinsics helpers 2016-12-02 12:23:38 +01:00
util_boundbox.h Cycles: Remove using namespace hell 2017-01-19 14:51:11 +01:00
util_color.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_debug.cpp Cycles: Make CUDA adaptive feature compile a Debug flag. 2016-05-06 23:13:33 +02:00
util_debug.h Cycles: Use static assert to control structures alignment 2016-08-11 10:12:06 +02:00
util_foreach.h Optionally use c++11 stuff instead of boost in cycles where possible. We do and continue to depend on boost though 2015-03-29 22:12:40 +02:00
util_function.h Cycles: Correction to previous commit: non-msvc compilers also should use nullptr 2015-03-30 15:17:09 +05:00
util_guarded_allocator.cpp Cycles: Fix static initialization order fiasco 2016-10-24 13:47:39 +02:00
util_guarded_allocator.h Cycles: Stop rendering when bad_alloc happens 2016-04-20 16:19:49 +02:00
util_half.h Cycles: Fix compilation error on 32bit Linux 2017-02-23 17:30:26 +01:00
util_hash.h Cycles: Initialize the RNG state from the kernel instead of the host 2016-10-30 11:51:20 +01:00
util_image_impl.h Cycles: Fix wrong render results with texture limit and half-float textures 2017-02-23 14:46:22 +01:00
util_image.h Cycles: Implement texture size limit simplify option 2016-11-22 12:00:09 +01:00
util_list.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_logging.cpp Cycles: Be ready for gflags namespace auto-detect 2015-01-01 01:31:08 +05:00
util_logging.h Cycles: Log whch optimizations are used for CPU kernels 2016-01-06 20:25:19 +05:00
util_map.h Optionally use c++11 stuff instead of boost in cycles where possible. We do and continue to depend on boost though 2015-03-29 22:12:40 +02:00
util_math_cdf.cpp Cycles: Support user-defined shutter curve 2015-10-28 02:43:06 +05:00
util_math_cdf.h Cycles: Fix compilation error with MSVC 2015-10-28 17:33:31 +05:00
util_math_fast.h Cycles: Fix three numerical issues in the fresnel, normal map and Beckmann code 2016-07-16 20:54:14 +02:00
util_math.h Cleanup: Grey --> Gray 2017-02-27 19:33:57 -05:00
util_md5.cpp Cycles: Cleanup, indentation and braces 2016-02-03 15:00:55 +01:00
util_md5.h Cycles: add utility function to calculate MD5 hash of a given string 2015-11-21 22:07:59 +05:00
util_opengl.h Cycles: Post-reintegration tweaks to ensure things do compile 2015-01-01 01:31:08 +05:00
util_optimization.h Cycles: Minor cleanup, whitespace around keyword and preprocessor indent 2016-04-13 08:58:52 +02:00
util_param.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_path.cpp Fix Cycles OSL compilation based on modified time not working. 2016-11-12 17:33:07 +01:00
util_path.h Cycles: Improve OpenCL line information handling 2016-09-29 10:20:24 +02:00
util_progress.h Cycles: Refactor Progress system to provide better estimates 2016-12-03 05:02:21 +01:00
util_queue.h Cycles: Avoid recursion when doing constant fold 2015-12-02 16:19:39 +05:00
util_set.h Cycles: Re-implement some utilities to avoid use of boost 2016-02-06 19:19:20 +01:00
util_simd.cpp Cycles: Add an option to build single kernel only which fits current CPU 2016-03-25 16:09:05 +01:00
util_simd.h Cycles: Fix re-definition of some functions on x32 arch 2016-11-22 12:34:45 +01:00
util_sky_model_data.h Cleanup: Move Cycles sky model data to util. 2016-02-13 13:41:40 +01:00
util_sky_model.cpp Fix Cycles compile errors with GCC due to double promotion as errors. 2016-05-22 19:17:22 +02:00
util_sky_model.h Cleanup: Move Cycles sky model data to util. 2016-02-13 13:41:40 +01:00
util_sseb.h Cycles: add better specializations for SSE shuffle function and few more wrappers. 2015-03-07 17:25:21 +00:00
util_ssef.h Cycles: Fix strict -Wpedantic warnings with GCC 2017-03-06 14:18:26 +01:00
util_ssei.h Cycles: add better specializations for SSE shuffle function and few more wrappers. 2015-03-07 17:25:21 +00:00
util_stack_allocator.h Cycles: Fix issues with stack allocator in MSVC 2016-04-25 13:50:27 +02:00
util_static_assert.h Cycles: Fix compilation warning with CUDA on OSX 2017-02-24 14:33:10 +01:00
util_stats.h Atomics: Make naming more obvious about which value is being returned 2016-11-15 12:16:26 +01:00
util_string.cpp Cycles OpenCL: use #line directives for better error messages. 2016-07-30 18:25:52 +02:00
util_string.h Cycles OpenCL: use #line directives for better error messages. 2016-07-30 18:25:52 +02:00
util_system.cpp Cycles: Fix strict compilation warnings 2016-11-23 10:59:54 +01:00
util_system.h Fix T50034: Blender changes processor affinity unauthorized 2016-11-22 16:03:16 +01:00
util_task.cpp Fix T50034: Blender changes processor affinity unauthorized 2016-11-22 16:03:16 +01:00
util_task.h Cycles: Use explicit qualifier for single-argument constructors 2016-05-11 16:51:14 +02:00
util_texture.h Cycles: Add single channel texture support for OpenCL. 2016-08-14 20:21:08 +02:00
util_thread.cpp Cycles: Add support of processor groups 2016-06-06 09:14:37 +02:00
util_thread.h Cycles: Add support of processor groups 2016-06-06 09:14:37 +02:00
util_time.cpp Cycles: Re-implement some utilities to avoid use of boost 2016-02-06 19:19:20 +01:00
util_time.h Cycles: Refactor Progress system to provide better estimates 2016-12-03 05:02:21 +01:00
util_transform.cpp Fix Cycles compile errors with GCC due to double promotion as errors. 2016-05-22 19:17:22 +02:00
util_transform.h Cycles: Disable AVX2 crash workarounds 2016-12-02 10:17:05 +01:00
util_types.h Cycles: OpenCL split kernel refactor 2017-03-08 00:52:41 -05:00
util_vector.h Cycles microdisplacement: Support for Catmull-Clark subdivision via OpenSubdiv 2016-08-07 11:13:11 -04:00
util_version.h Cycles: Update current Cycles version 2017-01-23 10:25:59 +01:00
util_view.cpp Fix Cycles compile errors with GCC due to double promotion as errors. 2016-05-22 19:17:22 +02:00
util_view.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_windows.cpp Fix T50034: Blender changes processor affinity unauthorized 2016-11-22 16:03:16 +01:00
util_windows.h Fix T50034: Blender changes processor affinity unauthorized 2016-11-22 16:03:16 +01:00
util_xml.h Cycles: Fix compilation error when OIIO is compiled with external PugiXML parser 2015-01-01 01:31:07 +05:00