Blender Git Loki

Kaikki Blender Git kommitit.

Page: 4007 / 8462

March 8, 2017, 06:33 (GMT)
Minor edits
Revision 6475155 by Mai Lavelle (master)
March 8, 2017, 06:31 (GMT)
Cycles: Fix indentation
Revision fe7cc94 by Mai Lavelle (master)
March 8, 2017, 06:31 (GMT)
Cycles: Fix strict warning about unused variable
Revision 3060347 by Mai Lavelle (master)
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.
Revision 997e345 by Mai Lavelle (master)
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.
Revision 18e5092 by Mai Lavelle (master)
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.
Revision 223f458 by Mai Lavelle (master)
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.
Revision cd7d566 by Mai Lavelle (master)
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.
Revision 4cf501b by Mai Lavelle (master)
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.
Revision 5b8f1c8 by Mai Lavelle (master)
March 8, 2017, 06:24 (GMT)
Cycles: Seperate kernel loading time from render time
Revision b78e543 by Mai Lavelle (master)
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.
Revision 817873c by Mai Lavelle (master)
March 8, 2017, 06:24 (GMT)
Cycles: CUDA implementation of split kernel
Revision 0892352 by Mai Lavelle (master)
March 8, 2017, 05:52 (GMT)
Cycles: CPU implementation of split kernel
Revision 352ee7c by Mai Lavelle (master)
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
Revision 365a423 by Mai Lavelle (master)
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.
Revision 230c00d by Mai Lavelle (master)
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
Revision 520b533 by Mai Lavelle (master)
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.
Revision dfd6055 by Mai Lavelle (master)
March 8, 2017, 05:52 (GMT)
Cycles: Add more atomic operations
Revision bc65276 by Mai Lavelle (master)
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.
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021