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
2022-01-14Cleanup: compiler warnings with clangBrecht Van Lommel
2022-01-14macOS: silence bundle identifier mismatch Xcode warningAnkit Meel
Blender.xcodeproj User-supplied CFBundleIdentifier value 'org.blenderfoundation.blender' in the Info.plist must be the same as the PRODUCT_BUNDLE_IDENTIFIER build setting value ''. Reviewed By: #platform_macos, brecht Differential Revision: https://developer.blender.org/D13826
2022-01-14Info.plist: Bump LSMinimumSystemVersion to silence warningAnkit Meel
Didn't remove the key-value pair since old Xcode behavior is not known. warning: LSMinimumSystemVersion of '10.9.0' is less than the value of MACOSX_DEPLOYMENT_TARGET '10.13' - setting to '10.13'. (in target 'blender' from project 'Blender') Reviewed By: #platform_macos, brecht Differential Revision: https://developer.blender.org/D13831
2022-01-14blenlib/ Any tests: fix self-assignment warning and typoAnkit Meel
Fix assignment warning source/blender/blenlib/tests/BLI_any_test.cc:56:5: warning: explicitly assigning value of variable of type 'blender::Any<void, 8, 8>' to itself [-Wself-assign-overloaded] c = c; Reviewed By: JacquesLucke Differential Revision: https://developer.blender.org/D13835
2022-01-14Fix T94878: LineArt crease threshold logic error.YimingWu
A coding mistake allows default crease to override object crease, now fixed.
2022-01-14Fix T94089: GPencil Drawing don't Update after paste in DopesheetAntonio Vazquez
When paste new frames, the datablock need to be tagged to update the drawings.
2022-01-14Fix T94903: GPencil: Copying keys doesn't preserve Keyframe TypeAntonio Vazquez
When a new frame is created, ensure the keytype of source key is used.
2022-01-14Cleanup: move attribute operators to c++Jacques Lucke
2022-01-14Fix T94867: viewport render not updating when editing color rampJacques Lucke
The changed node wasn't tagged correctly.
2022-01-14Cleanup: Fix warning when compiling without AudaspaceJulian Eisel
2022-01-14Fix T94837: curve tilt on a 2-point-curve is wrongPhilipp Oeser
2-point-curves are treated separately from 3plus-point-curves (assume a lot of the twisting reduction can be skipped, so there is a dedicated function for single segment curves). And while using the 3plus-point-curves function [`make_bevel_list_3D`] would actually work in this case, the dedicated function `make_bevel_list_segment_3D` would only consider the tilt of the second point and would just copy over the quat to the first point as well. Dont see a reason for this, now consider the first point's tilt as well. Maniphest Tasks: T94837 Differential Revision: https://developer.blender.org/D13813
2022-01-14Cleanup: Reduce indentation in foreach_libblock_remap_callback.Jeroen Bakker
2022-01-14Python API: add "children_recursive" property to Object & CollectionCampbell Barton
This is a convenience property, already available for bones. Simplifies D13821 which in-lined this function.
2022-01-14Cleanup: spelling in comments, C++ style comments for disabled codeCampbell Barton
Also ensure space at end of comment.
2022-01-14Fix crash caused by exception in Python gizmo target get handlerCampbell Barton
2022-01-14Cleanup: Clang tidyHans Goudey
- modernize-deprecated-headers - modernize-use-using - modernize-use-nullptr - modernize-use-bool-literals
2022-01-14CMake: add WITH_LINKER_MOLD option for GCC/Clang Unix platformsCampbell Barton
Can give considerably faster linking, especially on system with many cores. The mold linker recently reached 1.0, see: https://github.com/rui314/mold The current stable release of GCC can't use this linker via -fuse-ld=mold, so this patch uses the "-B" argument to add a binary directory containing an alternate "ld" command that points to "mold" (which is part of the default mold installation). Some timing tests for linking full builds for AMD TR 3970X: - BFD: 20.78 seconds. - LLD: 12.16 seconds. - GOLD: 7.21 seconds. - MOLD: 2.53 seconds. Ref D13807 Reviewed by: sergey, brecht
2022-01-14Fix: Incorrect logic in mesh validation for removing layersHans Goudey
The mask is only used if it's not zero. Adding the normal mask made it not zero, but it didn't include anything else, so all custom data layers except normals were removed. The fix is to only add normals to the mask when it should be used.
2022-01-13Refactor: Move normals out of MVert, lazy calculationHans Goudey
As described in T91186, this commit moves mesh vertex normals into a contiguous array of float vectors in a custom data layer, how face normals are currently stored. The main interface is documented in `BKE_mesh.h`. Vertex and face normals are now calculated on-demand and cached, retrieved with an "ensure" function. Since the logical state of a mesh is now "has normals when necessary", they can be retrieved from a `const` mesh. The goal is to use on-demand calculation for all derived data, but leave room for eager calculation for performance purposes (modifier evaluation is threaded, but viewport data generation is not). **Benefits** This moves us closer to a SoA approach rather than the current AoS paradigm. Accessing a contiguous `float3` is much more efficient than retrieving data from a larger struct. The memory requirements for accessing only normals or vertex locations are smaller, and at the cost of more memory usage for just normals, they now don't have to be converted between float and short, which also simplifies code In the future, the remaining items can be removed from `MVert`, leaving only `float3`, which has similar benefits (see T93602). Removing the combination of derived and original data makes it conceptually simpler to only calculate normals when necessary. This is especially important now that we have more opportunities for temporary meshes in geometry nodes. **Performance** In addition to the theoretical future performance improvements by making `MVert == float3`, I've done some basic performance testing on this patch directly. The data is fairly rough, but it gives an idea about where things stand generally. - Mesh line primitive 4m Verts: 1.16x faster (36 -> 31 ms), showing that accessing just `MVert` is now more efficient. - Spring Splash Screen: 1.03-1.06 -> 1.06-1.11 FPS, a very slight change that at least shows there is no regression. - Sprite Fright Snail Smoosh: 3.30-3.40 -> 3.42-3.50 FPS, a small but observable speedup. - Set Position Node with Scaled Normal: 1.36x faster (53 -> 39 ms), shows that using normals in geometry nodes is faster. - Normal Calculation 1.6m Vert Cube: 1.19x faster (25 -> 21 ms), shows that calculating normals is slightly faster now. - File Size of 1.6m Vert Cube: 1.03x smaller (214.7 -> 208.4 MB), Normals are not saved in files, which can help with large meshes. As for memory usage, it may be slightly more in some cases, but I didn't observe any difference in the production files I tested. **Tests** Some modifiers and cycles test results need to be updated with this commit, for two reasons: - The subdivision surface modifier is not responsible for calculating normals anymore. In master, the modifier creates different normals than the result of the `Mesh` normal calculation, so this is a bug fix. - There are small differences in the results of some modifiers that use normals because they are not converted to and from `short` anymore. **Future improvements** - Remove `ModifierTypeInfo::dependsOnNormals`. Code in each modifier already retrieves normals if they are needed anyway. - Copy normals as part of a better CoW system for attributes. - Make more areas use lazy instead of eager normal calculation. - Remove `BKE_mesh_normals_tag_dirty` in more places since that is now the default state of a new mesh. - Possibly apply a similar change to derived face corner normals. Differential Revision: https://developer.blender.org/D12770
2022-01-13Fix/workaround MSVC compile error with messag-busJulian Eisel
Some of the message-bus macros are not safe to use in C++. This has come up before, but no good solution was found. Now @LazyDodo, @HooglyBoogly and I concluded this is the best duct tape "solution" for the moment. The message-bus API should address this.
2022-01-13Cleanup: Run `make format`Julian Eisel
2022-01-13Fix compilation error caused by missing target relationRay Molenkamp
compositor depends on DNA now so that it can access offsets.
2022-01-13Geometry Nodes: Rename String to Curves socketErik
Today many users seem to think the output from this node is a single curve with multiple splines. This patch renames the geometry output socket from "Curves" to "Curve Instances" to avoid confusion. Differential Revision: https://developer.blender.org/D13693
2022-01-13CMake: fix build issue with gcc+clang-tidyRay Molenkamp
Precompiled headers are in a compiler specific format, when using clang-tidy it tries to read the GCC PCH file and fails at that. Disable PCH's for now when WITH_CLANG_TIDY is enabled since a clean work-around doesn't seem readily available. relevant LLVM/CMake bugs: https://bugs.llvm.org/show_bug.cgi?id=41579 https://gitlab.kitware.com/cmake/cmake/-/issues/22081 Differential Revision: https://developer.blender.org/D13814 Reviewed by: sergey, Blendify
2022-01-13Fix compilation error caused by missing target relationSergey Sharybin
Space clip depends on DNA now so that it can access offsets.
2022-01-13Cleanup: Use `nullptr` in new Outliner C++ filesJulian Eisel
2022-01-13Outliner: Compile all Outliner files in C++Julian Eisel
We want to refactor quite some of the Outliner code using C++, this is a logical step to help the transition to a new architecture. Includes plenty of fixes to make this compile without warnings, trying not to change logic. The usual stuff (casts from `void *`, designated initializers, compound literals, etc.).
2022-01-13Cleanup: Make message-bus utility macros callable from C++Julian Eisel
C++ doesn't support compound literals like used here (GCC does via an extension).
2022-01-13Fix T94874: Drivers using bone custom properties don't work on modifiersSergey Sharybin
2022-01-13Cleanup: fix building all geometry nodes in one translation unitJacques Lucke
There were a couple of function name collisions which were caused by sharing code with the mask modifier. I just removed the dependence on the mask modifier now. The code that I duplicated for that purpose is only in a legacy node, so it can be expected to be removed soonish.
2022-01-13Fix link errors after recent FFMPEG / link_directories changesBrecht Van Lommel
2022-01-13Tests: skip some compositor tests when WITH_LIBMV=OFFBrecht Van Lommel
2022-01-13Fix T94737: Cycles wrong normal map normal with OSLBrecht Van Lommel
Ensure valid reflection was moved elsewhere, should not be done in the node anymore.
2022-01-13Fix T94050, T94570, T94527: Cycles Bevel and AO nodes not working with MetalBrecht Van Lommel
Workaround what may be a compiler bug, solution found by Michael Jones.
2022-01-13Fix Cycles CPU + GPU render not using CPU after recent changesBrecht Van Lommel
In some places the task scheduler was not initialized in time.
2022-01-13Fix T94758: wrong denoising albedo with BSSRDF retro reflectionBrecht Van Lommel
2022-01-13Build: remove usage of link_directoriesBrecht Van Lommel
We are now always using absolute paths for libraries, as recommended by the CMake docs. Followup to D9177.
2022-01-13CMake: use FFmpeg find module on LinuxBrecht Van Lommel
And change install_deps.sh to build shared (instead of static) FFMPEG libraries, for consistency with other library dependencies and to simplify the logic. This may require users of install_deps.sh to rebuild FFMPEG. This is the last step that lets us get rid of LIBPATH variables and link_directories() entirely, as recommended by the CMake docs. Some fixes were needed in the find FFMPEG module to make it actually work, this code was unused up to now. Followup to D8855. Differential Revision: https://developer.blender.org/D9177
2022-01-13Fix T92953: Tool Settings: Drag on Tweak fails with LMB selectCampbell Barton
2022-01-13Cleanup: follow code-style for float suffixCampbell Barton
2022-01-13Cleanup: quiet missing braces warningCampbell Barton
2022-01-12Fix T94624: Object as font instances don't workHans Goudey
The fundamental limitation is that we can only have one instance ("dupli") generator at a time. Because the mesh output of a curve object is output as an instances, the geometry set instances existed, replacing the object as font instances. The "fix" is to reverse the order. The behavior won't be perfect still, but at least the old behavior will be preserved, which is really what matters for a feature like this. One way to take this change further would be completely disabling regular geometry evaluation while this option is active. However, it doesn't seem like that would actually improve the state of the code. Differential Revision: https://developer.blender.org/D13768
2022-01-12Fix T85706: wm_window_make_drawable update DPIHarley Acheson
When drawing windows on monitors that differ in DPI, we can sometimes have UI elements draw at an incorrect scale. This patch just ensures that `wm_window_make_drawable` always updates DPI. See D10483 for more details. Differential Revision: https://developer.blender.org/D10483 Reviewed by Brecht Van Lommel
2022-01-12Revert "CMake: use FFmpeg find module on Linux"Brecht Van Lommel
This reverts commit 62a0de1673302fb7f15fe06efaf6f0f97d92d240. Linux buildbot is giving link errors.
2022-01-12Fix T94071: Area Split ImprovementsHarley Acheson
Allow area Split to be initiated in any area and give better feedback when not allowed. See D13599 for more details and usage examples. Differential Revision: https://developer.blender.org/D13599 Reviewed by Campbell Barton
2022-01-12Fix warnings after bab47b60cb69Julian Eisel
It's not really clear how this part of the defaults code should be used, I think this is fine now and solves the warnings.
2022-01-12Cleanup: Correct indentationJulian Eisel
2022-01-12CMake: use FFmpeg find module on LinuxBrecht Van Lommel
And change install_deps.sh to build shared (instead of static) FFMPEG libraries, for consistency with other library dependencies and to simplify the logic. This may require users of install_deps.sh to rebuild FFMPEG. This is the last step that lets us get rid of LIBPATH variables and link_directories() entirely, as recommended by the CMake docs. Some fixes were needed in the find FFMPEG module to make it actually work, this code was unused up to now. Followup to D8855. Differential Revision: https://developer.blender.org/D9177
2022-01-12DNA: Add space clip editor defaultsSimon Lenz
This is my attempt of adding defaults for the space clip editor struct (in line with https://developer.blender.org/T80164). It adds the default allocation for `SpaceClip` and `node_composite_movieclip.cc`. This also solves the error below (for C++ files using the DNA_default_alloc), which was put forward by Sergey Sharybin. Differential Revision: https://developer.blender.org/D13367 Reviewed by: Julian Eisel
2022-01-12Outliner: Add way to display warning icon for items.Bastien Montagne
While theorically fairly generic, current code is only enabled for bledfile and liboverride views, and only used to display messages from library IDs. Reviewed By: Severin Differential Revision: https://developer.blender.org/D13766