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
2021-10-26Cycles: remove prefix from source code file namesBrecht Van Lommel
Remove prefix of filenames that is the same as the folder name. This used to help when #includes were using individual files, but now they are always relative to the cycles root directory and so the prefixes are redundant. For patches and branches, git merge and rebase should be able to detect the renames and move over code to the right file.
2021-09-21Cycles: merge of cycles-x branch, a major update to the rendererBrecht Van Lommel
This includes much improved GPU rendering performance, viewport interactivity, new shadow catcher, revamped sampling settings, subsurface scattering anisotropy, new GPU volume sampling, improved PMJ sampling pattern, and more. Some features have also been removed or changed, breaking backwards compatibility. Including the removal of the OpenCL backend, for which alternatives are under development. Release notes and code docs: https://wiki.blender.org/wiki/Reference/Release_Notes/3.0/Cycles https://wiki.blender.org/wiki/Source/Render/Cycles Credits: * Sergey Sharybin * Brecht Van Lommel * Patrick Mours (OptiX backend) * Christophe Hery (subsurface scattering anisotropy) * William Leeson (PMJ sampling pattern) * Alaska (various fixes and tweaks) * Thomas Dinges (various fixes) For the full commit history, see the cycles-x branch. This squashes together all the changes since intermediate changes would often fail building or tests. Ref T87839, T87837, T87836 Fixes T90734, T89353, T80267, T80267, T77185, T69800
2021-06-23Cleanup: reformat trailing comments that caused line wrappingCampbell Barton
2021-04-29Fix build error after recent changes to CPU name detectionBrecht Van Lommel
2021-04-29Fix missing Cycles CPU name on macOS ArmChristian Baars
Differential Revision: https://developer.blender.org/D11061
2021-04-29Fix missing Cycles CPU name for Arm processorsPatrick Mours
2020-09-16Fix (unreported) buffer overflow in Cycles' system_cpu_brand_string helper.Bastien Montagne
Since this buffer is used as an array of 12 32bits integers, and C++ `string` expect a NULL-terminated C-string, we need an extra char to ensure last one is always NULL. See D8906. Found while investigating T80657.
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2019-08-27Cycles/Windows: Fix over estimation of System RAM.Ray Molenkamp
`system_physical_ram` reported 1024x more System RAM than what was actually available.
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-02-19Fix Cycles OpenCL multithreaded compilation not working on Windows.Brecht Van Lommel
2019-02-15Cycles: Support multithreaded compilation of kernelsBrecht Van Lommel
This patch implements a workaround to get the multithreaded compilation from D2231 working. So far, it only works for Blender, not for Cycles Standalone. Also, I have only tested the Linux codepath in the helper function. Depends on D2231. Patch by lukasstockner97, jbakker, brecht job | scene_name | compilation_time ----------+-----------------+------------------ Baseline | empty | 22.73 D2264 | empty | 13.94 Baseline | bmw | 56.44 D2264 | bmw | 41.32 Baseline | fishycat | 59.50 D2264 | fishycat | 45.19 Baseline | barbershop | 212.28 D2264 | barbershop | 169.81 Baseline | victor | 67.51 D2264 | victor | 53.60 Baseline | classroom | 51.46 D2264 | classroom | 39.02 Baseline | koro | 62.48 D2264 | koro | 49.03 Baseline | pavillion | 54.37 D2264 | pavillion | 38.82 Baseline | splash279 | 47.43 D2264 | splash279 | 37.94 Baseline | volume_emission | 145.22 D2264 | volume_emission | 121.10 This patch reduced compilation time as the split kernels and base kernels are compiled in parallel. In cycles debug mode (256) you can set unmark the opencl single program file, what reduces the compilation time even further (bmw 17 seconds, barbershop 53 seconds). Reviewers: brecht, dingto, sergey, juicyfruit, lukasstockner97 Reviewed By: brecht Subscribers: Loner, jbakker, candreacchio, 3dLuver, LazyDodo, bliblubli Differential Revision: https://developer.blender.org/D2264
2019-02-11Fix build error on macOS after recent changes.Brecht Van Lommel
2019-02-11Cycles: add animation denoising Python operator.Lukas Stockner
This adds a cycles.denoise_animation operator, which denoises an animation sequence or individual file. Renders must be saved as multilayer EXR files with denoising data passes. By default file path and frame range come from the current scene, and EXR files are denoised in-place. Alternatively, a different input and/or output file path can be provided. Denoising settings come from the current view layer. Renders can be denoised again with different settings, as the original noisy image is preserved along with other passes and metadata. There is no user interface yet for this feature, that comes later. Code by Lukas with modifications by Brecht. This feature was originally developed for Tangent Animation, thanks for the support! Differential Revision: https://developer.blender.org/D3889
2019-01-11Fix T60145: Cycles resets manually set affinitySergey Sharybin
This change brings back old original logic which was checking whether worker threads do fit into an active CPU group. But it does it a bit smarter now and is also checking affinity within that group. This way Cycles will use all threads on a Threadripper2 CPU if it's set to automatic number of threads, but on another hand will not change affinity if user requested 16 threads and changed Blender affinity.
2018-12-27Fix T59874: Cycles CPU 25% load only during renderingSergey Sharybin
The issue was introduced by a Threadripper2 commit back in ce927e15e0e3. This boils down to threads inheriting affinity from the parent thread. It is a question how this slipped through the review (we definitely run benchmark round). Quick fix could have been to always set CPU group affinity in Cycles, and it would work for Windows. On other platforms we did not have CPU groups API finished. Ended up making Cycles aware of NUMA topology, so now we bound threads to a specific NUMA node. This required adding an external dependency to Cycles, but made some code there shorter.
2018-11-09Cycles: Cleanup, space after (void)Sergey Sharybin
It was used in like 95% of places.
2018-08-30Cycles: Fix detection of CPU brand string on 32 bit platformsSergey Sharybin
The assembler template was backing up and restoring ebx, which is fair enough. However, this did not prevent compiler for putting result variables to ebx. This was causing data corruption. In order to prevent this easiest solution is to list ebx in clobbers for the assembly.
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-06Cleanup: strip trailing space for cyclesCampbell Barton
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!
2018-01-03Cycles: CUDA support for rendering scenes that don't fit on GPU.Brecht Van Lommel
In that case it can now fall back to CPU memory, at the cost of reduced performance. For scenes that fit in GPU memory, this commit should not cause any noticeable slowdowns. We don't use all physical system RAM, since that can cause OS instability. We leave at least half of system RAM or 4GB to other software, whichever is smaller. For image textures in host memory, performance was maybe 20-30% slower in our tests (although this is highly hardware and scene dependent). Once other type of data doesn't fit on the GPU, performance can be e.g. 10x slower, and at that point it's probably better to just render on the CPU. Differential Revision: https://developer.blender.org/D2056
2017-03-29Cycles: Make all #include statements relative to cycles source directorySergey Sharybin
The idea is to make include statements more explicit and obvious where the file is coming from, additionally reducing chance of wrong header being picked up. For example, it was not obvious whether bvh.h was refferring to builder or traversal, whenter node.h is a generic graph node or a shader node and cases like that. Surely this might look obvious for the active developers, but after some time of not touching the code it becomes less obvious where file is coming from. This was briefly mentioned in T50824 and seems @brecht is fine with such explicitness, but need to agree with all active developers before committing this. Please note that this patch is lacking changes related on GPU/OpenCL support. This will be solved if/when we all agree this is a good idea to move forward. Reviewers: brecht, lukasstockner97, maiself, nirved, dingto, juicyfruit, swerner Reviewed By: lukasstockner97, maiself, nirved, dingto Subscribers: brecht Differential Revision: https://developer.blender.org/D2586
2016-11-23Cycles: Fix strict compilation warningsSergey Sharybin
2016-11-22Fix T50034: Blender changes processor affinity unauthorizedSergey Sharybin
2016-06-06Cycles: Fix compilation error on OSXSergey Sharybin
2016-06-06Cycles: Add support of processor groupsSergey Sharybin
Currently for windows only, this is an initial commit towards native support of NUMA. Current commit makes it so Cycles will use all logical processors on Windows running on system with more than 64 threads. Reviewers: juicyfruit, dingto, lukasstockner97, maiself, brecht Subscribers: LazyDodo Differential Revision: https://developer.blender.org/D2049
2016-02-06Cycles: Re-implement some utilities to avoid use of boostSergey Sharybin
The title says it all actually, the idea is to make Cycles only requiring Boost via 3rd party dependencies like OIIO and OSL. So now there are only few places which still uses Boost: - Foreach, function bindings and threading primitives. Those we can easily get rid with C++11 bump (which seems inevitable sooner or later if we'll want ot use newer LLVM for OSL), - Networking devices There's no quick solution for those currently, but there are some patches around which improves serialization. Reviewers: juicyfruit, mont29, campbellbarton, brecht, dingto Reviewed By: brecht, dingto Differential Revision: https://developer.blender.org/D1764
2016-01-12Cycles: Use special debug panel to fine-tune debug flagsSergey Sharybin
This panel is only visible when debug_value is set to 256 and has no affect in other cases. However, if debug value is not set to this value, environment variables will be used to control which features are enabled, so there's no visible changes to anyone in fact. There are some changes needed to prevent devices re-enumeration on every Cycles session create. Reviewers: juicyfruit, lukasstockner97, dingto, brecht Reviewed By: lukasstockner97, dingto Differential Revision: https://developer.blender.org/D1720
2015-05-22Cycles: Remove TM / R and whitespace from OpenCL device names.Thomas Dinges
Was already done for CPU devices, now we also do this for OpenCL.
2015-05-11Cycles: check for F16C support with __cpuid, as we do for BMI and BMI2Sv. Lockal
2015-02-11Cleanup: Remove unused Cycles cpuid code.Thomas Dinges
2015-02-10Cycles: Control CPU capabilities via environment variablesSergey Sharybin
Purely developers-only feature which allows to disable some of the CPU capabilities. This way it's easier to test different kernels on the same machine.
2014-12-25Cleanup: Fix Cycles Apache header.Thomas Dinges
This was already mixed a bit, but the dot belongs there.
2014-06-14Cycles: Add an AVX2 CPU kernel.Thomas Dinges
This kernel is compiled with AVX2, FMA3, and BMI compiler flags. At the moment only Intel Haswell benefits from this, but future AMD CPUs will have these instructions as well. Makes rendering on Haswell CPUs a few percent faster, only benchmarked with clang on OS X though. Part of my GSoC 2014.
2014-05-04Style cleanup: indentation, bracesCampbell Barton
2014-02-25Fix missing brackets in cpuid bitfield check.Martijn Berger
concern raised by lukas_t (rBef73d547cc7c663ad180721094c81b3c81482ac3)
2014-02-25Fix T38815Martijn Berger
For AVX support we need to check both OS support and CPU support.
2014-01-16Cycles: Add an AVX kernel for CPU rendering.Thomas Dinges
* AVX is available on Intel Sandy Bridge and newer and AMD Bulldozer and newer. * We don't use dedicated AVX intrinsics yet, but gcc auto vectorization gives a 3% performance improvement for Caminandes. Tested on an i5-3570, Linux x64. * No change for Windows yet, MSVC 2008 does not support AVX. Reviewed by: brecht Differential Revision: https://developer.blender.org/D216
2013-12-07Cycles: network render code updated for latest changes and improvedMartijn Berger
This actually works somewhat now, although viewport rendering is broken and any kind of network error or connection failure will kill Blender. * Experimental WITH_CYCLES_NETWORK cmake option * Networked Device is shown as an option next to CPU and GPU Compute * Various updates to work with the latest Cycles code * Locks and thread safety for RPC calls and tiles * Refactored pointer mapping code * Fix error in CPU brand string retrieval code This includes work by Doug Gale, Martijn Berger and Brecht Van Lommel. Reviewers: brecht Differential Revision: http://developer.blender.org/D36
2013-11-22Cycles: test code for sse 4.1 kernel and alignment for some vector types.Martijn Berger
This is mostly work towards enabling the __KERNEL_SSE__ option to start using SIMD operations for vector math operations. This 4.1 kernel performes about 8% faster with that option but overall is still slower than without the option. WITH_CYCLES_OPTIMIZED_KERNEL_SSE41 is the cmake flag for testing this kernel. Alignment of int3, int4, float3, float4 to 16 bytes seems to give a slight 1-2% speedup on tested systems with the current kernel already, so is enabled now.
2013-10-05Better fix for #36935 and 36316:Brecht Van Lommel
* 32 bit GCC builds now have the SSE BVH optimizations turned off, but still compile with SSE flags for better performance. * White color when rendering on Windows seems to have been unrelated to SSE, rather it was a graphics driver not supporting half float textures, added a check for that now.
2013-10-04Attempt to fix #36935: disable SSE optimizations on 32 bit windows too. ↵Brecht Van Lommel
Something strange is going on here, but I don't think it can be fixed before the release, if it is worth at all spending time on this.
2013-10-02Fix #36316: dots in cycles render on certain CPUs with 32 bit linux builds.Brecht Van Lommel
There is some sort of problem with the SSE2 code path, but I couldn't find the cause, maybe a compiler bug due to the large amount of inlining? For now I've disabled SSE2 optimizatons in 32 bit GCC builds.
2013-08-18Cycles: relicense GNU GPL source code to Apache version 2.0.Brecht Van Lommel
More information in this post: http://code.blender.org/ Thanks to all contributes for giving their permission!
2013-06-18Fix cycles crash on some processors. We actually need S-SSE3 support for thisBrecht Van Lommel
new BVH traversal code, not just SSE3.
2013-06-04Fix build error on non-x86 architectures as pointed out by Jochen Schmitt.Brecht Van Lommel
2013-02-04Fix cycles intersection issue with overlapping faces on windows 32 bit and CPUBrecht Van Lommel
without SSE3 support, due to 80 bit precision float register being used for one bounding box but not the one next to it.
2012-06-09style cleanup: block commentsCampbell Barton
2012-06-07style cleanupCampbell Barton