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
path: root/intern
AgeCommit message (Collapse)Author
2019-02-26Merge branch 'blender2.7'Brecht Van Lommel
2019-02-26Cleanup: remove unnecessary assert.Brecht Van Lommel
2019-02-26Cycles: Fix build errorRay Molenkamp
introduced by rBdabe5cd31add8aa55b9ad4bce1b591ed4e98f1a1
2019-02-26Cycles: Fix build errorRay Molenkamp
introduced by rBdabe5cd31add8aa55b9ad4bce1b591ed4e98f1a1
2019-02-26Merge branch 'blender2.7'Jeroen Bakker
2019-02-26T61971: Compilation Displacement/Background KernelJeroen Bakker
Displacement and Background kernels are selectively used, but always compiled. This patch will not compile these kernels when they are not needed. Displacement kernel is only used for true displacement. Background kernel is only used when there is a (Cycles)Light of type `LIGHT_BACKGROUND`. Reviewed By: brecht, #cycles Tags: #cycles Maniphest Tasks: T61971 Differential Revision: https://developer.blender.org/D4412
2019-02-26T61576: Do Not (Re-)Compile OpenCL kernelsJeroen Bakker
The goal of this patch is to have limit the number of times kernels needs to be compiled and are reused as kernels with different compile directives can lead to identical same binaries. The implementation does this by stripping the compile directives. and reshuffling kernels so the output is more likely to be the same. We focussed on the kernels where it was easy to detect and maintain (bundle, bake, displace, do_volume and background). More optimizations could be done but they are probably less obvious. Merged the data_init and state_buffer_size kernels to split_bundle. This patch will also remove empty kernels for do_volume and bake when their features are not enabled. When using the benchmark files there are less background, bake and do_volume kernels compiled. Fix: T61576, T61501, T61466 Reviewed By: brecht, #cycles Differential Revision: https://developer.blender.org/D4390
2019-02-25Fix T61891: Cycles light use nodes button greyed out.Brecht Van Lommel
2019-02-23Cleanup: GCC redundant declarationsCampbell Barton
Previous waning suppression was only tested with clang.
2019-02-23Cleanup: quiet undeclared variable warningsCampbell Barton
2019-02-22C logging: make pthread use optionalCampbell Barton
There is no need for threading for makesrna/makesdna, disable it to avoid hassles linking build time utilities.
2019-02-21Merge branch 'blender2.7'Brecht Van Lommel
2019-02-21Fix T61810: Cycles OpenCL denoising broken after recent changes.Brecht Van Lommel
2019-02-21Cycles OpenCL: Motion Blur Compile DirectivesJeroen Bakker
When using preview rendering through a camera or final rendering the `scene.render.use_motion_blur` was not respected when building the compile directives. This patch will when building the compile directives check if motion blur is enabled at all. This should lead to more efficient kernels when no motion blur is needed. Tags: #cycles Differential Revision: https://developer.blender.org/D4387
2019-02-21Merge branch 'blender2.7'Sergey Sharybin
2019-02-21Fix: Missing closing brackets in includeJeroen Bakker
2019-02-21Codestyle: IndentationJeroen Bakker
2019-02-21Fix: OpenCL Displacement and light samplingJeroen Bakker
The bake kernels are also used during mesh displacement and light importance sampling. We disabled the implementation of these kernels when baking was not enabled.
2019-02-21Fix T61765: thread-unsafe logging usedCampbell Barton
2019-02-21Merge branch 'blender2.7'Sergey Sharybin
2019-02-21Cycles: Fix uninitialized number of hitsSergey Sharybin
Was happening when looking for all intersections for transparent shadow rays in the case the ray is degenerate. Still quesitonable whether we should consider this a transparent or opaque configuraiton. Ideally, we should prevent such rays from happening, but that is another vector of debugging.
2019-02-20cycles/opencl: Fix compile error.Ray Molenkamp
added missing quote, introduced in rB15edda3a8e07003bef695cca939744bbea80ad18
2019-02-20Merge branch 'blender2.7'Brecht Van Lommel
2019-02-20Units: Use pixels for denoising radius property, and set Cycles motion blur ↵William Reynish
duration to factor. Also fix own mistake of using of spaces instead of tabs in RNA.
2019-02-20Cleanup: fix compiler warning.Brecht Van Lommel
2019-02-20Merge branch 'blender2.7'Jeroen Bakker
2019-02-20Cycles OpenCL: Remove OpenCL MegaKernelJeroen Bakker
Using OpenCL MegaKernel has been slow and therefore not usefull. This patch will remove the mega kernel from the OpenCL codebase and the OpenCLDeviceBase class. T61736: removal of mega kernel T61703: baking does not work with mega kernel Tags: #cycles Differential Revision: https://developer.blender.org/D4383
2019-02-20Cycles: Fix wrong vertex color and UV for hairSergey Sharybin
Was introduced by rB03013c23179 and caused by missing occasions of when hair strands are zero length.
2019-02-19Merge branch 'blender2.7'Brecht Van Lommel
2019-02-19T61463: Separate Baking kernelsJeroen Bakker
Cycles OpenCL: Split baking kernels in own program Fix T61463. Before this patch baking was part of the base kernels. There are 3 baking kernels that and all 3 uses shader evaluation. Only for one of these kernels the functionality was wrapped in the __NO_BAKING__ compile directive. When you start baking this leads to long compile times. By separating in individual programs will reduce the compile times. Also wrapped all baking kernels with __NO_BAKING__ to reduce the compilation times. Impact on compilation time job | scene_name | previous | new | percentage --------+-----------------+----------+-------+------------ T61463 | empty | 10.63 | 7.27 | 32% T61463 | bmw | 17.91 | 14.24 | 20% T61463 | fishycat | 19.57 | 15.08 | 23% T61463 | barbershop | 54.10 | 48.18 | 11% T61463 | classroom | 17.55 | 14.42 | 18% T61463 | koro | 18.92 | 17.15 | 9% T61463 | pavillion | 17.43 | 14.23 | 18% T61463 | splash279 | 16.48 | 15.33 | 7% T61463 | volume_emission | 36.22 | 34.19 | 6% Impact on render time job | scene_name | previous | new | percentage --------+-----------------+----------+---------+------------ T61463 | empty | 21.06 | 20.54 | 2% T61463 | bmw | 198.44 | 189.59 | 4% T61463 | fishycat | 394.20 | 388.50 | 1% T61463 | barbershop | 1188.16 | 1185.49 | 0% T61463 | classroom | 341.08 | 339.27 | 1% T61463 | koro | 472.43 | 360.70 | 24% T61463 | pavillion | 905.77 | 902.14 | 0% T61463 | splash279 | 55.26 | 54.92 | 1% T61463 | volume_emission | 62.59 | 39.09 | 38% I don't have a grounded explanation why koro and volume_emission is this much faster; I have done several tests though... Maniphest Tasks: T61463 Differential Revision: https://developer.blender.org/D4376
2019-02-19T61463: Separate Baking kernelsJeroen Bakker
Cycles OpenCL: Split baking kernels in own program Fix T61463. Before this patch baking was part of the base kernels. There are 3 baking kernels that and all 3 uses shader evaluation. Only for one of these kernels the functionality was wrapped in the __NO_BAKING__ compile directive. When you start baking this leads to long compile times. By separating in individual programs will reduce the compile times. Also wrapped all baking kernels with __NO_BAKING__ to reduce the compilation times. Impact on compilation time job | scene_name | previous | new | percentage --------+-----------------+----------+-------+------------ T61463 | empty | 10.63 | 7.27 | 32% T61463 | bmw | 17.91 | 14.24 | 20% T61463 | fishycat | 19.57 | 15.08 | 23% T61463 | barbershop | 54.10 | 48.18 | 11% T61463 | classroom | 17.55 | 14.42 | 18% T61463 | koro | 18.92 | 17.15 | 9% T61463 | pavillion | 17.43 | 14.23 | 18% T61463 | splash279 | 16.48 | 15.33 | 7% T61463 | volume_emission | 36.22 | 34.19 | 6% Impact on render time job | scene_name | previous | new | percentage --------+-----------------+----------+---------+------------ T61463 | empty | 21.06 | 20.54 | 2% T61463 | bmw | 198.44 | 189.59 | 4% T61463 | fishycat | 394.20 | 388.50 | 1% T61463 | barbershop | 1188.16 | 1185.49 | 0% T61463 | classroom | 341.08 | 339.27 | 1% T61463 | koro | 472.43 | 360.70 | 24% T61463 | pavillion | 905.77 | 902.14 | 0% T61463 | splash279 | 55.26 | 54.92 | 1% T61463 | volume_emission | 62.59 | 39.09 | 38% I don't have a grounded explanation why koro and volume_emission is this much faster; I have done several tests though... Maniphest Tasks: T61463 Differential Revision: https://developer.blender.org/D4376
2019-02-19T61513: Refactored Cycles Attribute RetrievalJeroen Bakker
There is a generic function to retrieve float and float3 attributes `primitive_attribute_float` and primitive_attribute_float3`. Inside these functions an prioritised if-else construction checked where the attribute is stored and then retrieved from that location. Actually the calling function most of the time already knows where the data is stored. So we could simplify this by splitting these functions and remove the check logic. This patch splits the `primitive_attribute_float?` functions into `primitive_surface_attribute_float?` and `primitive_volume_attribute_float?`. What leads to less branching and more optimum kernels. The original function is still being used by OSL and `svm_node_attr`. This will reduce the compilation time and render time for kernels. Especially in production scenes there is a lot of benefit. Impact in compilation times job | scene_name | previous | new | percentage -------+-----------------+----------+-------+------------ t61513 | empty | 10.63 | 10.66 | 0% t61513 | bmw | 17.91 | 17.65 | 1% t61513 | fishycat | 19.57 | 17.68 | 10% t61513 | barbershop | 54.10 | 24.41 | 55% t61513 | classroom | 17.55 | 16.29 | 7% t61513 | koro | 18.92 | 18.05 | 5% t61513 | pavillion | 17.43 | 16.52 | 5% t61513 | splash279 | 16.48 | 14.91 | 10% t61513 | volume_emission | 36.22 | 21.60 | 40% Impact in render times job | scene_name | previous | new | percentage -------+-----------------+----------+--------+------------ 61513 | empty | 21.06 | 20.35 | 3% 61513 | bmw | 198.44 | 190.05 | 4% 61513 | fishycat | 394.20 | 401.25 | -2% 61513 | barbershop | 1188.16 | 912.39 | 23% 61513 | classroom | 341.08 | 340.38 | 0% 61513 | koro | 472.43 | 471.80 | 0% 61513 | pavillion | 905.77 | 899.80 | 1% 61513 | splash279 | 55.26 | 54.86 | 1% 61513 | volume_emission | 62.59 | 61.70 | 1% There is also a possitive impact when using CPU and CUDA, but they are small. I didn't split the hair logic from the surface logic due to: * Hair and surface use same attribute types. It was not clear if it could be splitted when looking at the code only. * Hair and surface are quick to compile and to read. So the benefit is quite small. Differential Revision: https://developer.blender.org/D4375
2019-02-19T61513: Refactored Cycles Attribute RetrievalJeroen Bakker
There is a generic function to retrieve float and float3 attributes `primitive_attribute_float` and primitive_attribute_float3`. Inside these functions an prioritised if-else construction checked where the attribute is stored and then retrieved from that location. Actually the calling function most of the time already knows where the data is stored. So we could simplify this by splitting these functions and remove the check logic. This patch splits the `primitive_attribute_float?` functions into `primitive_surface_attribute_float?` and `primitive_volume_attribute_float?`. What leads to less branching and more optimum kernels. The original function is still being used by OSL and `svm_node_attr`. This will reduce the compilation time and render time for kernels. Especially in production scenes there is a lot of benefit. Impact in compilation times job | scene_name | previous | new | percentage -------+-----------------+----------+-------+------------ t61513 | empty | 10.63 | 10.66 | 0% t61513 | bmw | 17.91 | 17.65 | 1% t61513 | fishycat | 19.57 | 17.68 | 10% t61513 | barbershop | 54.10 | 24.41 | 55% t61513 | classroom | 17.55 | 16.29 | 7% t61513 | koro | 18.92 | 18.05 | 5% t61513 | pavillion | 17.43 | 16.52 | 5% t61513 | splash279 | 16.48 | 14.91 | 10% t61513 | volume_emission | 36.22 | 21.60 | 40% Impact in render times job | scene_name | previous | new | percentage -------+-----------------+----------+--------+------------ 61513 | empty | 21.06 | 20.35 | 3% 61513 | bmw | 198.44 | 190.05 | 4% 61513 | fishycat | 394.20 | 401.25 | -2% 61513 | barbershop | 1188.16 | 912.39 | 23% 61513 | classroom | 341.08 | 340.38 | 0% 61513 | koro | 472.43 | 471.80 | 0% 61513 | pavillion | 905.77 | 899.80 | 1% 61513 | splash279 | 55.26 | 54.86 | 1% 61513 | volume_emission | 62.59 | 61.70 | 1% There is also a possitive impact when using CPU and CUDA, but they are small. I didn't split the hair logic from the surface logic due to: * Hair and surface use same attribute types. It was not clear if it could be splitted when looking at the code only. * Hair and surface are quick to compile and to read. So the benefit is quite small. Differential Revision: https://developer.blender.org/D4375
2019-02-19Fix Cycles OpenCL multithreaded compilation not working on Windows.Brecht Van Lommel
2019-02-19Merge branch 'blender2.7'Jeroen Bakker
2019-02-19Revert "Cycles: Change OpenCL split kernel to use single program by default"Jeroen Bakker
This reverts commit c6bf5d47240cebef356276e369881e855dbe7e6d. Related to D2264: When multi process opencl kernel compilation is in place single-program compiles slower then multi-program. c6bf5d47240cebef356276e369881e855dbe7e6d was created as single-program compiled faster, but this is not the case anymore. So let's revert this change. Production scenes like victor and barbershop even render quicker. Change in Cycles OpenCL compilation times > job | scene_name | compilation_time | render_time > Baseline | empty | 22.73 | 20.63 > T61514 | empty | 10.63 | 21.06 > Baseline | bmw | 56.44 | 191.00 > T61514 | bmw | 17.91 | 198.44 > Baseline | fishycat | 59.50 | 393.48 > T61514 | fishycat | 19.57 | 394.20 > Baseline | barbershop | 212.28 | 1623.53 > T61514 | barbershop | 54.10 | 1188.16 > Baseline | victor | 67.51 | 1459.80 > T61514 | victor | 22.06 | 1381.58 > Baseline | classroom | 51.46 | 341.23 > T61514 | classroom | 17.55 | 341.08 > Baseline | koro | 62.48 | 475.96 > T61514 | koro | 18.92 | 472.43 > Baseline | pavillion | 54.37 | 903.48 > T61514 | pavillion | 17.43 | 905.77 > Baseline | splash279 | 47.43 | 52.92 > T61514 | splash279 | 16.48 | 55.26 > Baseline | volume_emission | 145.22 | 62.38 > T61514 | volume_emission | 36.22 | 62.59 Reviewers: #cycles, brecht, sergey Reviewed By: #cycles, brecht Differential Revision: https://developer.blender.org/D4349
2019-02-18Cycles: Keep all hair strandsSergey Sharybin
Previously, hair strands of zero length of too few control points would have been ignored. This is fine for a render without motion blur. But once motion blur is enabled it is becoming more tricky to match topology. Even more, it was causing access (and possibly writes) past the array boundaries in case when time step 0 ignored some strands and steps around it did not. If this is becoming problematic for BVH to do reliable intersections this is to be solved on the BVH builder side. The export from Blender to Cycles shouldn't really make decisions there.
2019-02-18Fix broken Cycles test build after recent commit.Bastien Montagne
Broken by rB4ce9785e0158, please do full complete build before committing!
2019-02-18UI: bake panel layout improvementsWilliam Reynish
All the controls were just really thrown in there without any proper organization. This gives it more structure. - Correct use of sub-panels to communicate hierarchy and sections. - Use flow layout for toggles. - Use consistent names for "Bake Type".
2019-02-18doxygen: add newline after \fileCampbell Barton
While \file doesn't need an argument, it can't have another doxy command after it.
2019-02-18Cleanup: conform headers to have license firstCampbell Barton
Also remove doxy comments for licenses and add missing GPL header.
2019-02-17Merge branch 'blender2.7'Brecht Van Lommel
2019-02-17Fix T54504: Cycles wrong backwards compatibility with linked libraries.Brecht Van Lommel
The code assumed all datablocks were read from .blend files saved with the same version. This restructures the Cycles versioning code to take into account libraries.
2019-02-15Add global control over disabling high-resolution smoke drawSergey Sharybin
Can be found in the viewport's simplify panel, allows to easily disable high-res display for all the smokes in the scene.
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-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. 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-14Merge branch 'blender2.7'Brecht Van Lommel
2019-02-14Cleanup: fix compiler warnings.Brecht Van Lommel
2019-02-14Fix T61470: incorrect saturation clamping in recent bugfix.Brecht Van Lommel
We should clamp the result after multiplication.
2019-02-14Fix Cycles Embree crash on macOS, due to too small thread stack size.Brecht Van Lommel