Blender Git Loki

Kaikki Blender Git kommitit.

Page: 60 / 8462

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)
Cleanup: Migrate `image_gpu.cc` to CC.

To prepare for future changes {T92613}.
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.
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021