http://www.miikahweb.com/feed.php MiikaHweb - Blender Temp_cycles_split_kernel Branch http://www.miikahweb.com/ MiikaHweb - Blender Temp_cycles_split_kernel Branch fi Sun, 25 Aug 19 05:15:31 +0000 MiikaHweb RSS contact at miikahweb.com <![CDATA[[0c70c2e]: Cycles: add single program debug option for split kernel]]> http://www.miikahweb.com/en/blender/git-logs/commit/0c70c2eb5123efa42078a61df313c621f4b734f0 0c70c2e
Branches : temp_cycles_split_kernel
Author : Hristo Gueorguiev (nirved)
----------------------------------------
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.

----------------------------------------
9 Paths Changed]]>
Wed, 08 Mar 2017 16:56:06 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/0c70c2eb5123efa42078a61df313c621f4b734f0Hristo Gueorguiev
<![CDATA[[a4f8766]: Cycles: split kernel_shadow_blocked to AO & DL parts]]> http://www.miikahweb.com/en/blender/git-logs/commit/a4f8766265bf660536dd29468b3d220514760282 a4f8766
Branches : temp_cycles_split_kernel
Author : Hristo Gueorguiev (nirved)
----------------------------------------
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

----------------------------------------
13 Paths Changed]]>
Wed, 08 Mar 2017 16:39:40 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/a4f8766265bf660536dd29468b3d220514760282Hristo Gueorguiev
<![CDATA[[2e42f8e]: Cycles: Speedup transparent shadows in split kernel]]> http://www.miikahweb.com/en/blender/git-logs/commit/2e42f8e73f9a25f53231a37ca3224b006a01a0d5 2e42f8e
Branches : temp_cycles_split_kernel
Author : Hristo Gueorguiev (nirved)
----------------------------------------
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

----------------------------------------
2 Paths Changed]]>
Wed, 08 Mar 2017 16:19:38 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/2e42f8e73f9a25f53231a37ca3224b006a01a0d5Hristo Gueorguiev
<![CDATA[[c33ab5f]: Cycles: SSS and Volume rendering in split kernel]]> http://www.miikahweb.com/en/blender/git-logs/commit/c33ab5fe6b7cdfb360c364b1bf710e6d5cde4b28 c33ab5f
Branches : temp_cycles_split_kernel
Author : Hristo Gueorguiev (nirved)
----------------------------------------
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.

----------------------------------------
47 Paths Changed]]>
Wed, 08 Mar 2017 15:18:04 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/c33ab5fe6b7cdfb360c364b1bf710e6d5cde4b28Hristo Gueorguiev
<![CDATA[[525fc16]: Cycles: Fix building of CUDA split kernel]]> http://www.miikahweb.com/en/blender/git-logs/commit/525fc16a6a9110918d10ecd9b187434fa1439415 525fc16
Branches : temp_cycles_split_kernel
Author : Mai Lavelle (maiself)
----------------------------------------
Cycles: Fix building of CUDA split kernel

----------------------------------------
1 Path Changed]]>
Tue, 07 Mar 2017 10:58:40 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/525fc16a6a9110918d10ecd9b187434fa1439415Mai Lavelle
<![CDATA[[302cf80]: Cycles: Fix indentation]]> http://www.miikahweb.com/en/blender/git-logs/commit/302cf80d4070bdd77650fdd49ed914d7ebc2f7bd 302cf80
Branches : temp_cycles_split_kernel
Author : Mai Lavelle (maiself)
----------------------------------------
Cycles: Fix indentation

----------------------------------------
6 Paths Changed]]>
Tue, 07 Mar 2017 10:58:35 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/302cf80d4070bdd77650fdd49ed914d7ebc2f7bdMai Lavelle
<![CDATA[[6af22fc]: Cycles: Fix strict warning about unused variable]]> http://www.miikahweb.com/en/blender/git-logs/commit/6af22fc311e95a880469476e729dede0c86ad753 6af22fc
Branches : temp_cycles_split_kernel
Author : Mai Lavelle (maiself)
----------------------------------------
Cycles: Fix strict warning about unused variable

----------------------------------------
1 Path Changed]]>
Tue, 07 Mar 2017 10:58:30 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/6af22fc311e95a880469476e729dede0c86ad753Mai Lavelle
<![CDATA[[7f6b0f7]: Cycles: Calculate size of split state buffer kernel side]]> http://www.miikahweb.com/en/blender/git-logs/commit/7f6b0f717c31af47867983d27126759ca7184ba8 7f6b0f7
Branches : temp_cycles_split_kernel
Author : Mai Lavelle (maiself)
----------------------------------------
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.

----------------------------------------
10 Paths Changed]]>
Tue, 07 Mar 2017 10:58:23 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/7f6b0f717c31af47867983d27126759ca7184ba8Mai Lavelle
<![CDATA[[f8d2dc1]: Cycles: Fix crash after failed kernel build]]> http://www.miikahweb.com/en/blender/git-logs/commit/f8d2dc1a83bf1a576c048494d779b74e869fc6a5 f8d2dc1
Branches : temp_cycles_split_kernel
Author : Mai Lavelle (maiself)
----------------------------------------
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.

----------------------------------------
1 Path Changed]]>
Tue, 07 Mar 2017 10:58:15 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/f8d2dc1a83bf1a576c048494d779b74e869fc6a5Mai Lavelle
<![CDATA[[25ed2c6]: Cycles: Faster building of split kernel]]> http://www.miikahweb.com/en/blender/git-logs/commit/25ed2c63a14a5901aefcae60338e6e6de47c327d 25ed2c6
Branches : temp_cycles_split_kernel
Author : Mai Lavelle (maiself)
----------------------------------------
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.

----------------------------------------
1 Path Changed]]>
Tue, 07 Mar 2017 10:58:03 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/25ed2c63a14a5901aefcae60338e6e6de47c327dMai Lavelle
<![CDATA[[303bc3d]: Cycles: Initialize rng_state for split kernel]]> http://www.miikahweb.com/en/blender/git-logs/commit/303bc3dc9653b8cba7edcd2e17e90c68fbf5aa34 303bc3d
Branches : temp_cycles_split_kernel
Author : Mai Lavelle (maiself)
----------------------------------------
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.

----------------------------------------
1 Path Changed]]>
Fri, 03 Mar 2017 10:55:02 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/303bc3dc9653b8cba7edcd2e17e90c68fbf5aa34Mai Lavelle
<![CDATA[[4c271f2]: Cycles: Remove sum_all_radiance kernel]]> http://www.miikahweb.com/en/blender/git-logs/commit/4c271f2194e5f18b93d5c3ec0fedea779188e98d 4c271f2
Branches : temp_cycles_split_kernel
Author : Mai Lavelle (maiself)
----------------------------------------
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.

----------------------------------------
13 Paths Changed]]>
Fri, 03 Mar 2017 10:44:50 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/4c271f2194e5f18b93d5c3ec0fedea779188e98dMai Lavelle
<![CDATA[[9f728ea]: Cycles: Split path initialization into own kernel]]> http://www.miikahweb.com/en/blender/git-logs/commit/9f728eada8e41ef9ffebf12d13b4a03fb145cbb2 9f728ea
Branches : temp_cycles_split_kernel
Author : Mai Lavelle (maiself)
----------------------------------------
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.

----------------------------------------
8 Paths Changed]]>
Fri, 03 Mar 2017 10:44:50 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/9f728eada8e41ef9ffebf12d13b4a03fb145cbb2Mai Lavelle
<![CDATA[[cc728e7]: Cycles: Seperate kernel loading time from render time]]> http://www.miikahweb.com/en/blender/git-logs/commit/cc728e7f48268a69838b4d38553385f619239f19 cc728e7
Branches : temp_cycles_split_kernel
Author : Mai Lavelle (maiself)
----------------------------------------
Cycles: Seperate kernel loading time from render time

----------------------------------------
1 Path Changed]]>
Wed, 22 Feb 2017 14:56:26 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/cc728e7f48268a69838b4d38553385f619239f19Mai Lavelle
<![CDATA[[a0aa0fc]: Cycles: Add names to buffer allocations]]> http://www.miikahweb.com/en/blender/git-logs/commit/a0aa0fce2afda3706172dfa7099785bc2d66d044 a0aa0fc
Branches : temp_cycles_split_kernel
Author : Mai Lavelle (maiself)
----------------------------------------
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.

----------------------------------------
14 Paths Changed]]>
Wed, 22 Feb 2017 14:56:26 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/a0aa0fce2afda3706172dfa7099785bc2d66d044Mai Lavelle
<![CDATA[[92ce4a8]: Cycles: CUDA implementation of split kernel]]> http://www.miikahweb.com/en/blender/git-logs/commit/92ce4a8f35f991e2c0eb99cebcdcb34ddd942ee4 92ce4a8
Branches : temp_cycles_split_kernel
Author : Mai Lavelle (maiself)
----------------------------------------
Cycles: CUDA implementation of split kernel

----------------------------------------
13 Paths Changed]]>
Wed, 22 Feb 2017 14:56:21 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/92ce4a8f35f991e2c0eb99cebcdcb34ddd942ee4Mai Lavelle
<![CDATA[[de3844a]: Cycles: CPU implementation of split kernel]]> http://www.miikahweb.com/en/blender/git-logs/commit/de3844a25a3e18e443a2c917b24ac2ef03700677 de3844a
Branches : temp_cycles_split_kernel
Author : Mai Lavelle (maiself)
----------------------------------------
Cycles: CPU implementation of split kernel

----------------------------------------
25 Paths Changed]]>
Wed, 22 Feb 2017 14:55:37 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/de3844a25a3e18e443a2c917b24ac2ef03700677Mai Lavelle
<![CDATA[[68f7b26]: Cycles: Remove ccl_fetch and SOA]]> http://www.miikahweb.com/en/blender/git-logs/commit/68f7b26de00f56f1cd29e080b51634ce8b357fbb 68f7b26
Branches : temp_cycles_split_kernel
Author : Mai Lavelle (maiself)
----------------------------------------
Cycles: Remove ccl_fetch and SOA

----------------------------------------
45 Paths Changed]]>
Wed, 22 Feb 2017 14:52:45 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/68f7b26de00f56f1cd29e080b51634ce8b357fbbMai Lavelle
<![CDATA[[16e7e81]: Cycles: Report device maximum allocation and detected global...]]> http://www.miikahweb.com/en/blender/git-logs/commit/16e7e81638f7ddd07e66bb81dd4380dfeb91f0cd 16e7e81
Branches : temp_cycles_split_kernel
Author : Sergey Sharybin (sergey)
Committed By : Mai Lavelle (maiself)
----------------------------------------
Cycles: Report device maximum allocation and detected global size

----------------------------------------
3 Paths Changed]]>
Wed, 22 Feb 2017 14:52:40 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/16e7e81638f7ddd07e66bb81dd4380dfeb91f0cdSergey Sharybin
<![CDATA[[e37473b]: Cycles: Workaround for driver hangs]]> http://www.miikahweb.com/en/blender/git-logs/commit/e37473bb37c409254bd175fb50e8ac922d5932fb e37473b
Branches : temp_cycles_split_kernel
Author : Mai Lavelle (maiself)
----------------------------------------
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.

----------------------------------------
1 Path Changed]]>
Wed, 22 Feb 2017 14:52:35 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/e37473bb37c409254bd175fb50e8ac922d5932fbMai Lavelle
<![CDATA[[148795b]: Cycles: OpenCL split kernel refactor]]> http://www.miikahweb.com/en/blender/git-logs/commit/148795bf0128a1e78f11d8683f2454d3c656d72d 148795b
Branches : temp_cycles_split_kernel
Author : Mai Lavelle (maiself)
----------------------------------------
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

----------------------------------------
41 Paths Changed]]>
Wed, 22 Feb 2017 14:47:56 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/148795bf0128a1e78f11d8683f2454d3c656d72dMai Lavelle
<![CDATA[[6f363fb]: Cycles: Add OpenCL kernel for zeroing memory buffers]]> http://www.miikahweb.com/en/blender/git-logs/commit/6f363fbdf99f6bf49585718de24c6419a66b80b7 6f363fb
Branches : temp_cycles_split_kernel
Author : Mai Lavelle (maiself)
----------------------------------------
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.

----------------------------------------
2 Paths Changed]]>
Wed, 22 Feb 2017 14:30:50 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/6f363fbdf99f6bf49585718de24c6419a66b80b7Mai Lavelle
<![CDATA[[44a50f1]: Cycles: Add more atomic operations]]> http://www.miikahweb.com/en/blender/git-logs/commit/44a50f1760e8c4091c58c5a8c1902543b2ef7e2a 44a50f1
Branches : temp_cycles_split_kernel
Author : Mai Lavelle (maiself)
----------------------------------------
Cycles: Add more atomic operations

----------------------------------------
1 Path Changed]]>
Wed, 22 Feb 2017 14:30:50 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/44a50f1760e8c4091c58c5a8c1902543b2ef7e2aMai Lavelle
<![CDATA[[7387337]: Cycles: Expose passes size to device tasks]]> http://www.miikahweb.com/en/blender/git-logs/commit/7387337067688f1650c41cae4452d8ea5a0a6746 7387337
Branches : temp_cycles_split_kernel
Author : Mai Lavelle (maiself)
----------------------------------------
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.

----------------------------------------
2 Paths Changed]]>
Wed, 22 Feb 2017 14:30:50 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/7387337067688f1650c41cae4452d8ea5a0a6746Mai Lavelle
<![CDATA[[7dc36d9]: Cycles: Allow device_memory to be used directly]]> http://www.miikahweb.com/en/blender/git-logs/commit/7dc36d9dc63581e9f80ce48b2ead83fd29161fb4 7dc36d9
Branches : temp_cycles_split_kernel
Author : Mai Lavelle (maiself)
----------------------------------------
Cycles: Allow device_memory to be used directly

This is useful for when theres no host side memory attched to the buffer

----------------------------------------
4 Paths Changed]]>
Wed, 22 Feb 2017 14:30:50 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/7dc36d9dc63581e9f80ce48b2ead83fd29161fb4Mai Lavelle