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
2019-03-17Merge branch 'blender2.7'Brecht Van Lommel
2019-03-17Cleanup: remove Cycles advanced shading features toggle.Brecht Van Lommel
It's effectively always enabled, only not on some unsupported OpenCL devices. For testing those it's not useful to disable these features. This is replaced by the more fine grained feature toggles that we have now.
2019-03-06Merge branch 'blender2.7'Brecht Van Lommel
2019-03-06Fix Cycles build error on non-x86 processors.Brecht Van Lommel
2019-02-06Merge branch 'blender2.7'Brecht Van Lommel
2019-02-06Cycles: animation denoising support in the kernel.Lukas Stockner
This is the internal implementation, not available from the API or interface yet. The algorithm takes into account past and future frames, both to get more coherent animation and reduce noise. Ref D3889.
2019-02-06Cycles: prefilter feature passes separate from denoising.Lukas Stockner
Prefiltering of feature passes will happen during rendering, which can then be used for denoising immediately or written as a render pass for later (animation) denoising. The number of denoising data passes written is reduced because of this, leaving out the feature variance passes. The passes are now Normal, Albedo, Depth, Shadowing, Variance and Intensity. Ref D3889.
2019-01-18Cycles: Fixed uninitialized memoryStefan Werner
Cryptomatte on CPU with accurate mode was hitting uninitialized variables. This is now explicitly initializing them to NULL.
2018-11-30Fix T58183: crash with CPU + GPU rendering after profiling changes.Brecht Van Lommel
Multi-device was not passing along profiler to the CPU.
2018-11-29Cycles: Add sample-based runtime profiler that measures time spent in ↵Lukas Stockner
various parts of the CPU kernel This commit adds a sample-based profiler that runs during CPU rendering and collects statistics on time spent in different parts of the kernel (ray intersection, shader evaluation etc.) as well as time spent per material and object. The results are currently not exposed in the user interface or per Python yet, to see the stats on the console pass the "--cycles-print-stats" argument to Cycles (e.g. "./blender -- --cycles-print-stats"). Unfortunately, there is no clear way to extend this functionality to CUDA or OpenCL, so it is CPU-only for now. Reviewers: brecht, sergey, swerner Reviewed By: brecht, swerner Differential Revision: https://developer.blender.org/D3892
2018-11-25Cleanup: trailing spaceCampbell Barton
2018-11-09Cycles: Cleanup, space after (void)Sergey Sharybin
It was used in like 95% of places.
2018-11-09Cycles: Cleanup, don't use strict C prototypesSergey Sharybin
Those are more like a legacy of language, which is not needed in C++.
2018-11-09Cycles: Cleanup, spacing after preprocessorSergey Sharybin
It is supposed to be two spaces before comment stating which if else/endif statements corresponds to. Was mainly violated in the header guards.
2018-11-07Cycles: Added Embree as BVH option for CPU renders.Stefan Werner
Note that this is turned off by default and must be enabled at build time with the CMake WITH_CYCLES_EMBREE flag. Embree must be built as a static library with ray masking turned on, the `make deps` scripts have been updated accordingly. There, Embree is off by default too and must be enabled with the WITH_EMBREE flag. Using Embree allows for much faster rendering of deformation motion blur while reducing the memory footprint. TODO: GPU implementation, deduplication of data, leveraging more of Embrees features (e.g. tessellation cache). Differential Revision: https://developer.blender.org/D3682
2018-10-31Cycles: Fix wrong BVH used when disabling AVX2 in debug settingsSergey Sharybin
Mainly useful for debugging. Previously, when AVX2 was disabled in the debug panel but BVH layout was kept on BVH8 nothing was rendered. Needed to make it so supported BVH layout mask for devices is queried in "dynamic", so it is possible to use DebugFlags there.
2018-10-28Cycles: Added Cryptomatte output.Stefan Werner
This allows for extra output passes that encode automatic object and material masks for the entire scene. It is an implementation of the Cryptomatte standard as introduced by Psyop. A good future extension would be to add a manifest to the export and to do plenty of testing to ensure that it is fully compatible with other renderers and compositing programs that use Cryptomatte. Internally, it adds the ability for Cycles to have several passes of the same type that are distinguished by their name. Differential Revision: https://developer.blender.org/D3538
2018-10-08Cycles: Reuse existing buffer in the NLM denoising kernels on CPULukas Stockner
2018-10-06Cycles: Implement vectorized NLM kernels for faster CPU denoisingLukas Stockner
2018-08-30Cycles: Cleanup, whitespace after keywordSergey Sharybin
2018-08-29Cycles: Add BVH8 and packeted triangle intersectionSergey Sharybin
This is an initial implementation of BVH8 optimization structure and packated triangle intersection. The aim is to get faster ray to scene intersection checks. Scene BVH4 BVH8 barbershop_interior 10:24.94 10:10.74 bmw27 02:41.25 02:38.83 classroom 08:16.49 07:56.15 fishy_cat 04:24.56 04:17.29 koro 06:03.06 06:01.45 pavillon_barcelona 09:21.26 09:02.98 victor 23:39.65 22:53.71 As memory goes, peak usage raises by about 4.7% in a complex scenes. Note that BVH8 is disabled when using OSL, this is because OSL kernel does not get per-microarchitecture optimizations and hence always considers BVH3 is used. Original BVH8 patch from Anton Gavrikov. Batched triangles intersection from Victoria Zhislina. Extra work and tests and fixes from Maxym Dmytrychenko.
2018-08-25Cycles Denoiser: Allocate a single temporary buffer for the entire denoising ↵Lukas Stockner
process With small tiles, the repeated allocations on GPUs can actually slow down the denoising quite a lot. Allocating the buffer just once reduces rendertime for the default cube with 16x16 tiles and denoising on a mobile 1050 from 22.7sec to 14.0sec.
2018-08-24Cycles: Cleanup, styleSergey Sharybin
I wouldn't mind changing style to have space after keyword, but there was no official code style change proposed.
2018-07-04Cycles Denoising: Pass tile buffers to every OpenCL kernel to conform to ↵Lukas Stockner
standard and get rid of set_tile_info
2018-07-04Cycles Denoising: Cleanup: Rename tiles to tile_infoLukas Stockner
2018-07-04Cycles Denoising: Refactor denoiser tile handlingLukas Stockner
This deduplicates the calls for tile (un)mapping and allows to have a target buffer that is different from the source buffer (needed for baking and animation denoising).
2018-07-04Cycles Denoising: Split main function into logical stepsLukas Stockner
2018-06-26Revert "Turned off clang warnings in third party includes."Stefan Werner
This reverts commit d53093953f8f3b58600cb19020ecbe0b5f254b52.
2018-06-26Turned off clang warnings in third party includes.Stefan Werner
The latest clang compiler (at least the one in Xcode 9.4.1) warns about the register keyword and macro expansions using defined(). Since these warnings come from third party code, we can't address them directly in Blender. Silencing them via #pramgas will at least keep the warnings during a build down to the ones that are relevant to Blender code.
2018-02-06Fix T54001: AMD OpenCL fails with certain resolutions, after recent changes.Brecht Van Lommel
We should actually be using CL_DEVICE_MEM_BASE_ADDR_ALIGN for sub buffers, previous change in this code was incorrect. Renamed the function now to make the specific purpose of this alignment clear, it's not required for data types in general.
2018-01-22Cycles: Replace use_qbvh boolean flag with an enum-based propertySergey Sharybin
This was we can introduce other types of BVH, for example, wider ones, without causing too much mess around boolean flags. Thoughs: - Ideally device info should probably return bitflag of what BVH types it supports. It is possible to implement based on simple logic in device/ and mesh.cpp, rest of the changes will stay the same. - Not happy with workarounds in util_debug and duplicated enum in kernel. Maybe enbum should be stores in kernel, but then it's kind of weird to include kernel types from utils. Soudns some cyclkic dependency. Reviewers: brecht, maxim_d33 Reviewed By: brecht Differential Revision: https://developer.blender.org/D3011
2018-01-19Cycles: Make it more proper check on vectorization flags from DebugFlagsSergey Sharybin
Mimics to checks in system_cpu_support() checks.
2018-01-19Cycles: Cleanup, stop using debug flags in system utilitiesSergey Sharybin
Debug flags are to be controlling render behavior, nothing to do with low level system utilities. it was simple to hack, but logically is wrong. Lets do things where they are supposed to be done!
2017-12-06Cycles: Fix constness for load_kernels in device_cpu.cppLukas Stockner
2017-11-30Cycles: Improve denoising speed on GPUs with small tile sizesLukas Stockner
Previously, the NLM kernels would be launched once per offset with one thread per pixel. However, with the smaller tile sizes that are now feasible, there wasn't enough work to fully occupy GPUs which results in a significant slowdown. Therefore, the kernels are now launched in a single call that handles all offsets at once. This has two downsides: Memory accesses to accumulating buffers are now atomic, and more importantly, the temporary memory now has to be allocated for every shift at once, increasing the required memory. On the other hand, of course, the smaller tiles significantly reduce the size of the memory. The main bottleneck right now is the construction of the transformation - there is nothing to be parallelized there, one thread per pixel is the maximum. I tried to parallelize the SVD implementation by storing the matrix in shared memory and launching one block per pixel, but that wasn't really going anywhere. To make the new code somewhat readable, the handling of rectangular regions was cleaned up a bit and commented, it should be easier to understand what's going on now. Also, some variables have been renamed to make the difference between buffer width and stride more apparent, in addition to some general style cleanup.
2017-11-17Cycles: Add per-tile render time debug passLukas Stockner
Reviewers: sergey, brecht Differential Revision: https://developer.blender.org/D2920
2017-11-09Cycles: avoid reallocating tile denoising memory many times during render.Brecht Van Lommel
2017-11-09Cycles: Replace __MAX_CLOSURE__ build option with runtime integrator variableMai Lavelle
Goal is to reduce OpenCL kernel recompilations. Currently viewport renders are still set to use 64 closures as this seems to be faster and we don't want to cause a performance regression there. Needs to be investigated. Reviewed By: brecht Differential Revision: https://developer.blender.org/D2775
2017-11-05Code refactor: device memory cleanups, preparing for mapped host memory.Brecht Van Lommel
2017-11-03Fix T53247: mixed CPU + GPU render wrong texture limits.Brecht Van Lommel
2017-10-24Code refactor: move more memory allocation logic into device API.Brecht Van Lommel
* Remove tex_* and pixels_* functions, replace by mem_*. * Add MEM_TEXTURE and MEM_PIXELS as memory types recognized by devices. * No longer create device_memory and call mem_* directly, always go through device_only_memory, device_vector and device_pixels.
2017-10-24Code refactor: use device_only_memory and device_vector in more places.Brecht Van Lommel
2017-10-24Code refactor: store device/interp/extension/type in each device_memory.Brecht Van Lommel
2017-10-24Code refactor: pass device to scene, check OSL with device info.Brecht Van Lommel
2017-10-21Code refactor: avoid some unnecessary device memory copying.Brecht Van Lommel
2017-10-21Cycles: combined CPU + GPU rendering support.Brecht Van Lommel
CPU rendering will be restricted to a BVH2, which is not ideal for raytracing performance but can be shared with the GPU. Decoupled volume shading will be disabled to match GPU volume sampling. The number of CPU rendering threads is reduced to leave one core dedicated to each GPU. Viewport rendering will also only use GPU rendering still. So along with the BVH2 usage, perfect scaling should not be expected. Go to User Preferences > System to enable the CPU to render alongside the GPU. Differential Revision: https://developer.blender.org/D2873
2017-10-08Code refactor: use DeviceInfo to enable QBVH and decoupled volume shading.Brecht Van Lommel
2017-10-07Code refactor: make texture code more consistent between devices.Brecht Van Lommel
* Use common TextureInfo struct for all devices, except CUDA fermi. * Move image sampling code to kernels/*/kernel_*_image.h files. * Use arrays for data textures on Fermi too, so device_vector<Struct> works.
2017-10-05Code refactor: split displace/background into separate kernels, remove luma.Brecht Van Lommel
2017-10-04Code refactor: use split variance calculation for mega kernels too.Brecht Van Lommel
There is no significant difference in denoised benchmark scenes and denoising ctests, so might as well make it all consistent.