Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-03-08Cycles: add single program debug option for split kerneltemp_cycles_split_kernelHristo Gueorguiev
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.
2017-03-08Cycles: split kernel_shadow_blocked to AO & DL partsHristo Gueorguiev
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
2017-03-08Cycles: Speedup transparent shadows in split kernelHristo Gueorguiev
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
2017-03-08Cycles: SSS and Volume rendering in split kernelHristo Gueorguiev
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.
2017-03-07Cycles: Fix building of CUDA split kernelMai Lavelle
2017-03-07Cycles: Fix indentationMai Lavelle
2017-03-07Cycles: Fix strict warning about unused variableMai Lavelle
2017-03-07Cycles: Calculate size of split state buffer kernel sideMai Lavelle
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.
2017-03-07Cycles: Fix crash after failed kernel buildMai Lavelle
Pointers to kernels were uninitialized leading to freeing of random memory addresses. Another reason it would be good to use smart pointers.
2017-03-07Cycles: Faster building of split kernelMai Lavelle
Simple change to make it so that only kernels that have been modified are rebuilt. Might only be useful during development.
2017-03-03Cycles: Initialize rng_state for split kernelMai Lavelle
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.
2017-03-03Cycles: Remove sum_all_radiance kernelMai Lavelle
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.
2017-03-03Cycles: Split path initialization into own kernelMai Lavelle
This makes it easier to initialize things correctly in the data_init kernel before they are needed by path tracing.
2017-02-22Cycles: Seperate kernel loading time from render timeMai Lavelle
2017-02-22Cycles: Add names to buffer allocationsMai Lavelle
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.
2017-02-22Cycles: CUDA implementation of split kernelMai Lavelle
2017-02-22Cycles: CPU implementation of split kernelMai Lavelle
2017-02-22Cycles: Remove ccl_fetch and SOAMai Lavelle
2017-02-22Cycles: Report device maximum allocation and detected global sizeSergey Sharybin
2017-02-22Cycles: Workaround for driver hangsMai Lavelle
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.
2017-02-22Cycles: OpenCL split kernel refactorMai Lavelle
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
2017-02-22Cycles: Add OpenCL kernel for zeroing memory buffersMai Lavelle
Transferring memory to the device was very slow and there's really no need when only zeroing a buffer.
2017-02-22Cycles: Add more atomic operationsMai Lavelle
2017-02-22Cycles: Expose passes size to device tasksMai Lavelle
This is needed so devices can know the size of a tile buffer before any tiles are acquired.
2017-02-22Cycles: Allow device_memory to be used directlyMai Lavelle
This is useful for when theres no host side memory attched to the buffer
2017-02-22Fix Cycles still saving render output when error happenedSergey Sharybin
This was fixed ages ago for the interface case but not for the command line. The thing here is that currently external engines are relying on reports system to indicate that error happened so suppressing reports storage in the background mode prevented render pipeline from detecting errors happened. This is all weak and i don't like it, but this is better than delivering black frames from the farm.
2017-02-22Cycles: Fix shading with autosmooth and custom normalsSergey Sharybin
New logic of split_faces was leaving mesh in a proper state from Blender's point of view, but Cycles wanted loop normals to be "flushed" to vertex normals. Now we do such a flush from Cycles side again, so we don't leave bad meshes behind. Thanks Bastien for assistance here!
2017-02-22Cycles: Additionally report all OpenCL cflagsSergey Sharybin
This way we can control exact spaces and such added to the cflags which is crucial to troubleshoot certain drivers.
2017-02-22Refactor Mesh split_faces() code to use loop normal spaces.Bastien Montagne
Finding which loop should share its vertex with which others is not easy with regular Mesh data (mostly due to lack of advanced topology info, as opposed with BMesh case). Custom loop normals computing already does that - and can return 'loop normal spaces', which among other things contain definitions of 'smooth fans' of loops around vertices. Using those makes it easy to find vertices (and then edges) that needs splitting. This commit also adds support of non-autosmooth meshes, where we want to split out flat faces from smooth ones.
2017-02-21Fix Drawing nested box layouts (D2508)raa
2017-02-21Cycles: Speedup by avoiding extra calculations in noise texture when unneededMai Lavelle
Noise texture is now faster when the color socket is unused. Potential for speedup spotted by @nutel. Some performance results: Render Time Before After Difference Gooseberry benchmark 47:51.34 45:55.57 -4% Koro 12:24.92 12:18.46 -0.8% Simple cube (Color socket) 48.53 48.72 +0.3% Simple cube (Fac socket) 48.74 32.78 -32.7% Goethe displacement 1:21.18 1:08.47 -15.6% Cycles brick displacement 3:02.38 2:16.76 -25.0% Large displacement scene 23:54.12 20:09.62 -15.6% Reviewed By: sergey Differential Revision: https://developer.blender.org/D2513
2017-02-21Cleanup: use proper link to the apiAaron Carlisle
2017-02-20Fix T50718: Regression: Split Normals Render Problem with CyclesSergey Sharybin
The issue seems to be caused by vertex normal being re-calculated to something else than loop normal, which also caused wrong loop normals after re-calculation. For now issue is solved by preserving CD_NORMAL for loops after split_faces() is finished, so render engine can access original proper value.
2017-02-20Mesh faces split: Add missing vertex normal copySergey Sharybin
2017-02-20Fix T50719: Memory usage won't reset to zero while re-rendering on two video ↵Sergey Sharybin
cards Was only visible with Persistent Images option ON.
2017-02-19Fix a few compiler warnings with macOS / clang.Brecht Van Lommel
2017-02-19Fix T50564: 3D view panning with scroll wheel inconsistent with dragging.Brecht Van Lommel
2017-02-17Fix T50614: Curve doesn't restore initial form after deleting all its shapekeysBastien Montagne
Logic of handling shapekeys when entering and leaving edit mode for curves was... utterly broken. Was leaving actual curve data with edited shapekey applied to it.
2017-02-17Remove unused functions related to distance between BoundBox and rayGermano Cavalcante
2017-02-17Forgotten in last commit: Check the allocationGermano Cavalcante
2017-02-17Do not release the arrays used in the parameters of the expanded functions ↵Germano Cavalcante
of bvhutils The release of these arrays should be the programmer's discretion since these arrays can continue to be used. Only the expanded functions `bvhtree_from_mesh_edges_ex` and `bvhtree_from_mesh_looptri_ex` are currently being used in blender (in mesh_remap.c), and from what I could to analyze, these changes can prevent a crash.
2017-02-17Make File: Print 'blender.exe' at the end of the path to run fromAaron Carlisle
2017-02-17Cleanup: Spelling, Spaces --> Tabs, WhitespaceAaron Carlisle
2017-02-16UI: Move 'relations extras' right below 'relations'Aaron Carlisle
Differential Revision: https://developer.blender.org/D2218
2017-02-16Fix T50687: Cycles baking time estimate and progress bar doesn't work / ↵Sergey Sharybin
progress when baking with high samples
2017-02-16Register test for mesh.split_faces()Sergey Sharybin
2017-02-16Faces split: Don't leave CD_NORMAL after splitSergey Sharybin
This is supposed to be a temporary layer. If someone needs loop normals after split it should explicitly ask for that.
2017-02-16Cyctes tests: Commit blender.git side changesSergey Sharybin
2017-02-16CDDM Copy: Only tag data layers dirty if we ignored tessellation dataSergey Sharybin
This solves assert failure in CustomData_from_bmeshpoly() happening with broom.blend file from barber shop SVN.
2017-02-16Cleanup: IndentationSergey Sharybin