March 8, 2017, 06:33 (GMT) |
Minor edits |
March 8, 2017, 06:31 (GMT) |
Cycles: Fix indentation |
March 8, 2017, 06:31 (GMT) |
Cycles: Fix strict warning about unused variable |
March 8, 2017, 06:31 (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 8, 2017, 06:31 (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 8, 2017, 06:31 (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 8, 2017, 06:31 (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 8, 2017, 06:31 (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 8, 2017, 06:30 (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. |
March 8, 2017, 06:24 (GMT) |
Cycles: Seperate kernel loading time from render time |
March 8, 2017, 06:24 (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. |
March 8, 2017, 06:24 (GMT) |
Cycles: CUDA implementation of split kernel |
March 8, 2017, 05:52 (GMT) |
Cycles: CPU implementation of split kernel |
March 8, 2017, 05:52 (GMT) |
Cycles: Remove ccl_fetch and SOA |
March 8, 2017, 05:52 (GMT) |
Cycles: Report device maximum allocation and detected global size |
March 8, 2017, 05: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. |
March 8, 2017, 05:52 (GMT) |
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 |
March 8, 2017, 05:52 (GMT) |
Cycles: Add OpenCL kernel for zeroing memory buffers Transferring memory to the device was very slow and there's really no need when only zeroing a buffer. |
March 8, 2017, 05:52 (GMT) |
Cycles: Add more atomic operations |
March 8, 2017, 05:52 (GMT) |
Cycles: Expose passes size to device tasks This is needed so devices can know the size of a tile buffer before any tiles are acquired. |
|
|
|


Master Commits
MiikaHweb | 2003-2021