February 18, 2017, 12:07 (GMT) |
Cycles: Update tiles less frequently for split kernel Increases the time between tile updates exponentially until theres 10 seconds between updates. By having more time between updates we can push more samples to the device at once and keep the number of threads doing actual work higher. This gives a nice speed up. |
February 18, 2017, 10:53 (GMT) |
Cycles: Add changes that somehow got left out of previous commit |
February 18, 2017, 10:39 (GMT) |
Cycles: Remove remnants of tile splitting |
February 18, 2017, 10:33 (GMT) |
Cycles: Faster version of driver workaround for OpenCL |
February 17, 2017, 13:18 (GMT) |
Merge branch 'master' into cycles_split_kernel |
February 11, 2017, 12:05 (GMT) |
Cycles: Refactor device split kernel code Moved all split kernel related stuff out of `Device` as it doesnt belong there. Those functions are now apart of `DeviceSplitKernel` which now must be implemented for each device type supporting the split kernel. No functional changes. |
February 11, 2017, 11:25 (GMT) |
Cycles: Move kgbuffer allocation out of split kernel code Allocating the buffer is the job of the device implementation, not the split kernel, so makes more sense to separate that code. |
February 9, 2017, 11:14 (GMT) |
Cycles: Fix OpenCL mem_zero loop Was a silly typo that caused the last iteration to be skipped. |
February 9, 2017, 03:10 (GMT) |
Cycles: Fix rendering with CPU split kernel after work stealing changes Not sure whats going on but debugging is taking too long so just using a quick fix for now. |
February 9, 2017, 02:56 (GMT) |
Cycles: Fix OpenCL mem_zero and preview renders Viewport rendering wasn't working, this was caused by two problems in mem_zero: - `mem_zero` was being called before kernels were loaded so the `zero_buffer` kernel was unavailable. Added a fallback for this case. - The global size used for enqueuing the `zero_buffer` kernel was large and causing the kernel to fail on some devices. |
February 3, 2017, 00:46 (GMT) |
Merge branch 'master' into cycles_split_kernel |
January 31, 2017, 11:59 (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. |
January 26, 2017, 07: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. |
January 26, 2017, 07:52 (GMT) |
Cycles: No need for host side memory for split kernel state buffers |
January 26, 2017, 07:52 (GMT) |
Cycles: Allow mem_zero to be called on buffers without host side memory Previous commit did this for OpenCL so only need to update CUDA |
January 26, 2017, 05:33 (GMT) |
Cycles: Zero split kernel state memory outside of kernel Fixes problem seen with CUDA. The global work size wasn't large enough for the data_init kernel to zero the full buffers, so now its done from the host. |
January 24, 2017, 12:30 (GMT) |
Cycles: Set device ideal global work size for split kernel With this the split kernel is running quite a bit faster on some devices. Other devices will still need more testing. |
January 24, 2017, 12:30 (GMT) |
Cycles: Add split_kernel_global_size function This is to allow devices to suggest a good global work size. Only implemented for OpenCL devices right now. |
January 24, 2017, 12:29 (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. |
January 24, 2017, 12:27 (GMT) |
Cycles: Add DeviceSplitKernel::max_elements_for_max_buffer_size Will be used for deciding on a good work size. |
|