March 8, 2017, 16:56 (GMT) |
Cycles: add single program debug option for split kernel Single program generally compiles kernels faster (2-3 times), loads faster, takes less drive space (2-3 times), and reduces the number of cached kernels. |
March 8, 2017, 16:39 (GMT) |
Cycles: split kernel_shadow_blocked to AO & DL parts Reduces memory allocation for split kernel. This allows for faster rendering due to bigger global size, specially when GPU memory is limited. Perfromance results: R9 290 total render time Before After Change BMW 4:37 4:34 -1.1 % Classroom 14:43 14:30 -1.5 % Fishy Cat 11:20 11:04 -2.4 % Koro 12:11 12:04 -1.0 % Pabellon Barcelona 22:01 20:44 -5.8 % Pabellon Barcelona(*) 15:32 15:09 -2.5 % (*) without glossy connected to volume |
March 8, 2017, 16:19 (GMT) |
Cycles: Speedup transparent shadows in split kernel This commit enables record-all transparent shadows rays. Perfromance results: R9 290 render time (without synchronization), seconds Before After Change BMW 261.5 262.5 +0.4 % Classroom 869.6 867.3 -0.3 % Fishy Cat 657.4 639.8 -2.7 % Koro 1909.8 692.8 -63.7 % Pabellon Barcelona 1633.3 1238.0 -24.2 % Pabellon Barcelona(*) 1158.1 903.8 -22.0 % (*) without glossy connected to volume |
March 8, 2017, 15:18 (GMT) |
Cycles: SSS and Volume rendering in split kernel Decoupled ray marching is not supported yet. Transparent shadows are always enabled for volume rendering. Changes in kernel/bvh and kernel/geom are from Sergey. This simiplifies code significantly, and prepares it for record-all transparent shadow function in split kernel. |
March 7, 2017, 10:58 (GMT) |
Cycles: Fix building of CUDA split kernel |
March 7, 2017, 10:58 (GMT) |
Cycles: Fix indentation |
March 7, 2017, 10:58 (GMT) |
Cycles: Fix strict warning about unused variable |
March 7, 2017, 10:58 (GMT) |
Cycles: Calculate size of split state buffer kernel side By calculating the size of the state buffer in the kernel rather than the host less code is needed and the size actually reflects the requested features. Will also be a little faster in some cases because of larger global work size. |
March 7, 2017, 10:58 (GMT) |
Cycles: Fix crash after failed kernel build Pointers to kernels were uninitialized leading to freeing of random memory addresses. Another reason it would be good to use smart pointers. |
March 7, 2017, 10:58 (GMT) |
Cycles: Faster building of split kernel Simple change to make it so that only kernels that have been modified are rebuilt. Might only be useful during development. |
March 3, 2017, 10:55 (GMT) |
Cycles: Initialize rng_state for split kernel Because the split kernel can render multiple samples in parallel it is necessary to have everything initialized before rendering of any samples begins. The code that normally handles initialization of `rng_state` (`kernel_path_trace_setup()`) only does so for the first sample, which was causing artifacts in the split kernel due to uninitialized `rng_state` for some samples. Note that because the split kernel can render samples in parallel this means that the split kernel is incompatible with the LCG. |
March 3, 2017, 10:44 (GMT) |
Cycles: Remove sum_all_radiance kernel This was only needed for the previous implementation of parallel samples. As we don't have that any more it can be removed. Real reason for removal tho is this: `per_sample_output_buffers` was being calculated too small and artifacts resulted. The tile buffer is already the correct size and calculating the size for `per_sample_output_buffers` is a bit difficult with the current layout of the code. As `per_sample_output_buffers` was only needed for `sum_all_radiance`, removing that kernel and writing output to the tile buffer directly fixes the artifacts. |
March 3, 2017, 10:44 (GMT) |
Cycles: Split path initialization into own kernel This makes it easier to initialize things correctly in the data_init kernel before they are needed by path tracing. |
February 22, 2017, 14:56 (GMT) |
Cycles: Add names to buffer allocations This is to help debug and track memory usage for generic buffers. We have similar for textures already since those require a name, but for buffers the name is only for debugging proposes. |
February 22, 2017, 14:56 (GMT) |
Cycles: Seperate kernel loading time from render time |
February 22, 2017, 14:56 (GMT) |
Cycles: CUDA implementation of split kernel |
February 22, 2017, 14:55 (GMT) |
Cycles: CPU implementation of split kernel |
February 22, 2017, 14:52 (GMT) |
Cycles: Remove ccl_fetch and SOA |
February 22, 2017, 14:52 (GMT) |
Cycles: Report device maximum allocation and detected global size |
February 22, 2017, 14:52 (GMT) |
Cycles: Workaround for driver hangs Simple workaround for some issues we've been having with AMD drivers hanging and rendering systems unresponsive. Unfortunately this makes things a bit slower, but its better than having to do hard reboots. Will be removed when drivers have been fixed. Define CYCLES_DISABLE_DRIVER_WORKAROUNDS to disable for testing purposes. |
|