November 26, 2021, 12:29 (GMT) |
Fix: error in previous commit Forgot to actually slice the span in rB6b5e1cfacab4c4605ec2d7bfef360389afe849be. |
November 26, 2021, 12:29 (GMT) |
Added API documentation. |
November 26, 2021, 12:05 (GMT) |
CMake mini-rewrite: Sync code check with BKE_blender_version_is_alpha Reproduce the logic we already do in C (BKE_blender_version_is_alpha) and the CMake file. Otherwise it can get out of sync if we add/rename the non-alpha release cycles. No functional change. Differential Revision: https://developer.blender.org/D13379 |
November 26, 2021, 10:46 (GMT) |
Fix T93380: Texture paint clone tool crash without clone image This was crashing using the clone tool without a clone image assigned. Caused by {rB9111ea78acf4}. Since above commit, `BKE_image_acquire_ibuf` was using `ima->runtime` without checking for NULL first. Since callers are not required to check for this, just return early here. note: there is still a memory leak using the clone tool without a clone image assigned (but this was also the case before said commit and needs to be investigated separately). Maniphest Tasks: T93380 Differential Revision: https://developer.blender.org/D13377 |
November 26, 2021, 10:26 (GMT) |
Use enum class for ePartialUpdateIterResult. |
November 26, 2021, 10:21 (GMT) |
Use enum class for ePartialUpdateCollectResult. |
November 26, 2021, 10:13 (GMT) |
Added CPP Api. |
November 26, 2021, 10:08 (GMT) |
BKE_bpath: Add minimal unittests. This is far from a complete coverage, but should catch most of potential issues when rewriting this code. |
November 26, 2021, 10:08 (GMT) |
MaskEditor: draw active layer on top Instead of drawing the mask layers in the sequence of their occurence, draw the active mask *always* on top. Implementation: - move drawing loop for splines to separate static function - draw active mask last Example: lowest layer is active, yet still drawn on top. {F12140355} This is part of an effort to make mask editing more intuitive & easy to use: https://developer.blender.org/T93097 Reviewed By: sergey Differential Revision: https://developer.blender.org/D13372 |
November 26, 2021, 10:06 (GMT) |
Geometry Nodes: refactor multi-threading in field evaluation Previously, there was a fixed grain size for all multi-functions. That was not sufficient because some functions could benefit a lot from smaller grain sizes. This refactors adds a new `MultiFunction::call_auto` method which has the same effect as just calling `MultiFunction::call` but additionally figures out how to execute the specific multi-function efficiently. It determines a good grain size and decides whether the mask indices should be shifted or not. Most multi-function evaluations benefit from this, but medium sized work loads (1000 - 50000 elements) benefit from it the most. Especially when expensive multi-functions (e.g. noise) is involved. This is because for smaller work loads, threading is rarely used and for larger work loads threading worked fine before already. With this patch, multi-functions can specify execution hints, that allow the caller to execute it most efficiently. These execution hints still have to be added to more functions. Some performance measurements of a field evaluation involving noise and math nodes, ordered by the number of elements being evaluated: ``` 1,000,000: 133 ms -> 120 ms 100,000: 30 ms -> 18 ms 10,000: 20 ms -> 2.7 ms 1,000: 4 ms -> 0.5 ms 100: 0.5 ms -> 0.4 ms ``` |
November 26, 2021, 09:57 (GMT) |
Clarify a confusing comment. Affect and effect are too confusing for non-native english speakers (like me). Also BAKING_MASK_MARGIN doesn't exist anymore in the code. Reviewed By: sergey Differential Revision: https://developer.blender.org/D13361 |
November 26, 2021, 09:08 (GMT) |
Geometry Nodes: better devirtualization for sliced virtual arrays Under some circumstances that can lead to more than a 2x performance increase, because math nodes can better optimize for the case when the slice is a single value or span. |
November 26, 2021, 08:59 (GMT) |
Geometry Nodes: avoid allocation when construct varray for single value Previously, `GVArray::ForSingle` would always allocate a copy of the passed in value. Now it only does so when the value is too large or not trivial. |
November 26, 2021, 07:28 (GMT) |
Merge branch 'master' into temp-gpu-texture-partial-updates |
November 26, 2021, 07:16 (GMT) |
November 26, 2021, 07:01 (GMT) |
Merge branch 'master' into temp-gpu-texture-partial-updates |
November 26, 2021, 07:00 (GMT) |
Cleanup: Silence clang-tidy warning. |
November 26, 2021, 06:59 (GMT) |
Cleanup: Silence clang-tidy warnings. |
November 26, 2021, 06:46 (GMT) |
Merge branch 'master' into temp-gpu-texture-partial-updates |
November 25, 2021, 19:34 (GMT) |
Sculpt-dev: sculpt_init_tool_override_channels related fixes Various fixes so sculpt_init_tool_override_channels for shift-smooth can replicate the prior behavior: * Brush spacing will now look up brush channel spacing directly for sculpt, instead of relying on copying the channel data into Brush. * Brush spacing code will now use brush channel pressure for sculpt. Fixes broken shift-smooth pen pressure. * The falloff_curve channel is now automatically added (before it was only used internally by command lists, the code was defaulting to the Brush field otherwise). * BrushCurve now has an option for custom curve presets to have negative slopes. * The Falloff panel now puts the type dropbox inside the panel header. * Falloff panel also now uses brush channel data in sculpt mode. * falloff_shape is now a brush channel In a somewhat unrelated change, I also unnested the Brush Settings subpanels. It's been driving me insane for a very, very long time. Much more usable this way. |
|
|
|


Master Commits
MiikaHweb | 2003-2021