Fix #119384: Outliner Edit Mode Toggle When Data is Shared #119704

Merged
Harley Acheson merged 2 commits from Harley/blender:fix119384 into blender-v4.1-release 2024-03-22 18:26:40 +01:00
Member

This report includes a file that demonstrates a crash when ctrl-
clicking the "dot" icon to add to the objects in edit mode. This is
because the object has a mesh shared with another object that is
already in edit mode. This PR allows editing only one object at a
time between objects that share data.


In the following, "Suzanne" and "Suzanne.001" share the same mesh. You can bring either into the edit set by ctrl-clicking, but only one at a time with the others looking disabled. Those have a hint of "Shared data already in edit mode"

Screenshot 2024-03-21 at 19.50.47.png

This report includes a file that demonstrates a crash when ctrl- clicking the "dot" icon to add to the objects in edit mode. This is because the object has a mesh shared with another object that is already in edit mode. This PR allows editing only one object at a time between objects that share data. --- In the following, "Suzanne" and "Suzanne.001" share the same mesh. You can bring either into the edit set by ctrl-clicking, but only one at a time with the others looking disabled. Those have a hint of "Shared data already in edit mode" ![Screenshot 2024-03-21 at 19.50.47.png](/attachments/34089c5a-22de-4126-a802-1a44e7495357)
Harley Acheson added this to the User Interface project 2024-03-20 17:00:46 +01:00
Author
Member

@lichtwerk

You were looking at this problem last week. This PR springs from your "The dot should probably not show in the first place" comment. Are you able to take a look at this?

@lichtwerk You were looking at this problem last week. This PR springs from your "The dot should probably not show in the first place" comment. Are you able to take a look at this?
Harley Acheson added this to the 4.1 milestone 2024-03-20 17:15:02 +01:00
Harley Acheson requested review from Hans Goudey 2024-03-20 17:15:10 +01:00
Member

@lichtwerk

You were looking at this problem last week. This PR springs from your "The dot should probably not show in the first place" comment. Are you able to take a look at this?

What I actually meant was that instead of the dot it should show the mode icon.
With this PR we now have to rather inconsistent situation that

  • assuming object A, B (sharing the same mesh with A) and C
  • select A and enter editmode: A and B have the editmode icon
  • select A, then C and enter editmode: A has the icon, B has nothing

I mean of course this is better then crashing and of course it is better than having the "wrong" icon for it (and just for that sake it would probably like to see this in 4.1), but it is not what I actually meant with my comment in #119384 :)

Lets see what Hans thinks...

> @lichtwerk > > You were looking at this problem last week. This PR springs from your "The dot should probably not show in the first place" comment. Are you able to take a look at this? What I actually meant was that instead of the dot it should show the mode icon. With this PR we now have to rather inconsistent situation that - assuming object A, B (sharing the same mesh with A) and C - select A and enter editmode: A and B have the editmode icon - select A, then C and enter editmode: A has the icon, B has nothing I mean of course this is better then crashing and of course it is better than having the "wrong" icon for it (and just for that sake it would probably like to see this in 4.1), but it is not what I actually meant with my comment in #119384 :) Lets see what Hans thinks...
Member

Oh, and this is not only about editmode [checking BKE_object_is_in_editmode], it could be other modes as well, so this is also something that is not totally right in this PR.

Oh, and this is not only about **editmode** [checking `BKE_object_is_in_editmode`], it could be other modes as well, so this is also something that is not totally right in this PR.
Member

Submitted an alternative fix here: #119745

Submitted an alternative fix here: #119745
Harley Acheson added 120 commits 2024-03-21 22:40:04 +01:00
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
5da0363013
Fix #119617: crash because node sockets depend on experimental feature flag
This was caused by 62bd0ea5fd. Now the socket is
always created but made unavailable if the feature is disabled.

Pull Request: #119620
42093bbe3d Nodes: have either input or output socket in declaration
Support for having an input and output socket in the same socket declaration
builder was added for the original node panels to be able to support inline
sockets. However, those were generally disabled for now. As can be seen in the
simulation and repeat zone, inline sockets can work differently too. Having an
input and output in the same socket declaration builder builder makes some
things simpler but makes other things much harder. For example, the current
design wouldn't work all that well if the input and output socket has different
types. This is easier to do with the `align_with_previous_socket` approach.

I'm not yet entirely sure whether we want to use the same approach for
corresponding sockets in the node tree interface, but that can be tried and
decided separately.

Pull Request: #119599
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
516912f741
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
ebf12765a6
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
8945b29762
EEVEE: Overscan/Border mixed resolution rendering
Mixed resolution rendering had some issues with overscan and border
rendering.

- `render_offset` was in display space and not in render space. Is
  now replaced by the `overscan_extent`.
- `overscan_extent` introduced that stored the overscan of the render
  extent.
- Fixed issues to determine the film sample weight when `scaling_factor`
  was used. It didn't match decompose the actual offset making the
  length of the same to large, what blurred the final samples.

NOTE: there are some other issues related to border rendering which was
already in main before mixed resolution rendering was added. I assume
that viewport render image in camera view still adds an additional
offset, which should be ignored.

Fixes #119510
Fixes #119511

Pull Request: #119524
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
0d7ac2542e
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
58eab5e3be
EEVEE-Next: Disable viewport motion blur outside of playback
Avoid motion blur on regular scene editing.

Pull Request: #119484
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
5001a1a4a7
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
061a9ee885
UI: Add Optional Flags for Tooltip Image Fields
Add more flexibility to tooltip images by adding the ability to specify
if (one of two) checkerboards are added, border, premultiplied
blending, or recoloring.

Pull Request: #119437
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
bb4271459f
Fix: Build error from missing include in legacy mesh conversion
The include was removed by a cleanup in main, not in 4.1.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
076b2ecf70
Fix debug argument detection reading arguments after `--command`
8ac9b4ca46 Cleanup: use full sentences for code-comments
Also correct references source files.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
38dc888d7f
Cleanup: use ELEM macro, remove redundant "struct"
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
5319e6af7b
Fix: Geometry Nodes: Separate Transform node
Fix of wrong destination for scale and non-normalized rotation matrix.

Pull Request: #119602
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
a535524fe1
Fix #119500: Installing an Extension via dragging has no feedback
Call the install operators directly instead of using bpy.app.handlers.
Now reports from installing are in the status bar.
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
5e2955d3cd
GPv3: Multithread fill triangulation
This became a bottleneck in one of the test files during playback.

A grease pencil object was using an array modifier which tags the triangle
caches to be invalidated. Then it re computed the fills on every frame, which
was slow (when single threaded).

With this patch, the playback went from ~43fps to 60+fps.

Pull Request: #119531
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
53b9d77109
Fix build error
This error was introuced by 5e2955d3cd.
Instead of trying to use the function name
with `__func__` use a string literal.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
15dbfe54e4
Curves: draw evaluated curves and handles in edit mode
This makes the edit mode drawing for the new curves data more similar
to the old edit mode. Specifically, it draws the evaluated curves now instead
of just a poly curve. Furthermore, it now draws bezier handles as well as
a separate control curve for nurbs curves.

Pull Request: #119053
3334fff801 Fix compiler error on windows
It seems that the compiler on windows struggled to
correctly assign the namespace of the `LocalMemArena`
destructor because the struct was defined locally
in a lambda.

This moves the struct definition out of the lambda.
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
7ec5dab1df
Merge remote-tracking branch 'origin/blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
462437de20
Fix: GPv3: Assert in `LayerTreeView::build_tree()`
This was caused by 745fd2a2cb.
The issue was that there was an attempt at calling
`uncollapse_by_default` on a `LayerViewItem`
which can't be collapsed (because it can't have any children).
This then triggered the assert.

The fix removes the call to `uncollapse_by_default` for
`LayerViewItem`.
3ad4ea81d1 Nodes: rename multi_input_socket_index to multi_input_sort_id
For historical reasons, the `multi_input_socket_index` was actually reversed
(large index comes first). This patch renames it to `multi_input_sort_id` and
adds a comment. This new name makes it less confusing that the id is reversed.

Pull Request: #119652
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
dc762d0914
BLI: avoid compiling same function multiple times for trivial types
For example, copying and moving a trivial type ends is the same.
However, currently we generate the code for both cases independently
instead of reusing the same underlying function.

This reduces the size of the Blender binary from `218.548.896` to
`218.355.552` bytes for me. So it's a reduction of about 200kb.

It's probably possible to reduce this even more, but that's for another day.
The main tricky thing here is telling the compiler that a `const` from a
function parameter can be cast away for trivial types (see code comment).
Maybe there is a better way to do this while making sure the compiler
doesn't generate unnecessary code.

Pull Request: #119601
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
2dcee3d698
Merge branch 'blender-v4.1-release'
02379f3200 Fix #119527: Aliased Wireframe In XRay
This change reverts 14500953ed. This commit improved the performance
but introduced the regression. The wireframe shader checks the normal
buffer to detect if attributes are being rendered. The VBO contains both
positions and normals.

In Blender 4.2 this VBO was separated (#116902)and this solved the rendering. It is
to late and risky to add this separation to 4.1 in the last minute so we
decided to revert the performance improvement as it was already an issue
for several years.

The performance improvement will still be in Blender 4.2 where it doesn't
have these artifacts.

Pull Request: #119656
162fad716e Revert "Fix #119527: Aliased Wireframe In XRay"
This fix should only be committed to blender-v4.1-release branch
Blender 4.2 the pos/nor buffers are separated and doesn't lead
to drawing artifacts.

This reverts commit 02379f3200
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
6ceefe4f23
Revert "Fix #119527: Aliased Wireframe In XRay"
This fix should only be committed to blender-v4.1-release branch
Blender 4.2 the pos/nor buffers are separated and doesn't lead
to drawing artifacts.

This reverts commit 02379f3200
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
8536575263
Fix: Cycles area light ignores some valid samples in volume segment
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
a05adbef28
BLF: optimizations and fixes to font shader
Simplifies/optimizes the "font" shader. It runs faster now too, but primarily
this is so that it loads/initializes faster.

* Instead of doing blur via individual bilinear samples (where each sample is 4
  texel fetches), do raw texel fetches of the kernel footprint and compute final
  result by shifting the kernel weights according to bilinear fraction weight.
  For 5x5 blur, this reduces number of texel fetches from 64 down to 36.
* Instead of checking "is the texel inside the glyph box? if so, then fetch it",
  first fetch it, and then set result to zero if it was outside. Simplifies the
  branching code flow in the compiled GPU shader.
* Avoid costly integer modulo/division for "unwrapping" the font texture. The
  texture width is always power of two size, so division/modulo can be replaced
  by masking and a shift. Setup uniforms to contain the needed data.

### Fixes

* The 3x3 blur was not doing a 3x3 blur, due to a copy-pasta typo (one of the
  sample offsets was repeated twice, and thus another sample offset was
  missing).
* Blur towards left/top edges of the glyphs had artifacts, because float->int
  casting in GLSL rounds towards zero, but the code actually wanted to round
  towards floor.

Image of how the blur has changed in the PR.

### First time initialization

* Windows 10, NVIDIA RTX 3080Ti, OpenGL: 274.4ms -> 51.3ms
* macOS, Apple M1 Max, Metal: 456ms -> 289ms (this is including PSO creation
  time).

### Shader performance/complexity

Performance I only measured on macOS (M1 Max), by making a BLF text that is
scaled up to cover most of screen via Python. Using Xcode Metal profiler,
drawing that text with 5x5 shadow blur: 1.5ms -> 0.3ms.

More performance analysis details in PR.

Pull Request: #119653
4b0ad27d88 Extern libs: Remove info to update THIRD-PARTY-LICENSES
This file is generated by the attribution builder for every release
and it's up to the release team to check the log for extern and others to make sure this is up to date.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
0177c55880
Fix: Curves: Missing check in `get_mutable_attribute`
Same as fd92647f34.
Without this check, the function would try to create a new
attribute even if `num` was 0.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
9b5b1f525f
Cleanup: Limit sculpt gesture RNA operator properties
This PR limits adding the RNA property `use_limit_to_segment`
to `ShapeType::Line` based sculpt gesture operators, as the
property is inapplicable for the other two types.

Pull Request: #119670
f646f4c2b4 EEVEE-Next: Refactor world spherical harmonic extraction
This uses parallel reduction when doing the octahedral map re-mapping.

The goal is not the speedup but the accuracy of the computation (temporal
stability) and to pave the way for sunlight extraction.

This weight each individual samples using texel solid angle for correct
energy.

After optimization, the cost is not so expensive (1024px² octahedral map):
- new: 263µs remap + 12µs sum
- old: 75µs remap + 180µs irradiance update

We could optimize it more, but that feels unecessary given that the first
two filter pass are 7ms and a more pressing optimization.

The old irradiance update was fast because it was using the mip2 which
was already pre-filtered and using way less pixels (which already yield a
temporally stable output).

This new implementation does consider all pixel in the LOD0 which will
allow for more precise sunlight extraction.

This also comes with a cleanup of the update tagging.

Pull Request: #119537
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
b99c1abc3a
BLI: speedup memory bandwidth bound tasks by reducing threading
This improves performance by **reducing** the amounts of threads used for tasks
which require a high memory bandwidth.

This works because the underlying hardware has a certain maximum memory
bandwidth. If that is used up by a few threads already, any additional threads
wanting to use a lot of memory will just cause more contention which actually
slows things down. By reducing the number of threads that can perform certain
tasks, the remaining threads are also not locked up doing work that they can't
do efficiently. It's best if there is enough scheduled work so that these tasks
can do more compute intensive tasks instead.

To use this new functionality, one has to put the parallel code in question into
a `threading::memory_bandwidth_bound_task(...)` block. Additionally, one also
has to provide a (very) rough approximation for how many bytes are accessed. If
the number is low, the number of threads shouldn't be reduced because it's
likely that all touched memory can be in L3 cache which generally has a much
higher bandwidth than main memory.

The exact number of threads that are allowed to do bandwidth bound tasks at the
same time is generally highly context and hardware dependent. It's also not
really possible to measure reliably because it depends on so many static and
dynamic factors. The thread count is now hardcoded to 8. It seems that this many
threads are easily capable of maxing out the bandwidth capacity.

With this technique I can measure surprisingly good performance improvements:
* Generating a 3000x3000 grid: 133ms -> 103ms.
* Generating a mesh line with 100'000'000 vertices: 212ms -> 189ms.
* Realize mesh instances resulting in ~27'000'000 vertices: 460ms -> 305ms.

In all of these cases, only 8 instead of 24 threads are used. The remaining
threads are idle in these cases, but they could do other work if available.

Pull Request: #118939
1e478cf169 Fix #118137: Symmetry buttons on-click state change
Buttons for mesh symmetry on the toolbar, and other buttons of the same
functionality located in other areas of the window, weren't updated when
clicking on them.

Pull Request: #118508
a2bb547b9a Fix: Cycles spot light spread sampling not considering non-uniform scaling
For spherical spot light, when the shading point is close to the light
source, we switch to sampling the light spread instead of the visible
cone from the shading point. This has the benefit of less noise when the
spread is small.
However, the light spread sampling was not considering non-uniform
object scaling, where the actual spread might be different.
This patch switches sampling method only when the smallest enclosing
spread cone is smaller than the visible cone from the shading point.

An alternative method would be to compute the actual solid angle of the
scaled cone, and sample from the scaled cone. However, that involves
ray transformation and modifying the sampling pdf and angle. Since
non-uniform scaling is rather a niche case, it's probably not worth the
computation effort.

Pull Request: #119661
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
893430a2c7
EEVEE-Next: Add correct support for volume anisotropy from probe volumes
This adds the approximation of phase function convolution
of the distant lighting captured inside probe volumes.

This is based on a publication at siggraph from Bartlomiej Wronsky
"Volumetric Fog: Unified compute shader based solution to
atmospheric scattering"

Implementation is quite straightforward. However this isn't as
good as one can expect as there isn't self shadowing from the
volume themself, so the lighting is still quite flat.

To fix this, we have to add support for volumetrics inside
probe volumes baking. But this approach would still be static
so a more general solution is still to be found for dynamic
volumes like smoke simulations.

Pull Request: #119479
23dce15f67 EEVEE-Next: Horizon Scan: Use Spherical harmonics
This uses Spherical Harmonics to store the indirect lighting and
distant lighting visibility.

We can then reuse this information for each closure which divide
the cost of it by 2 or 3 in many cases, doing the scanning once.

The storage cost is higher than previous method, so we split the
resolution scaling to be independant of raytracing.

The spatial filtering has been split to its own pass for performance
reason. Upsampling now only uses 4 bilinearly interpolated samples
(instead of 9) using bilateral weights to avoid bleeding.

This also add a missing dot product (which soften the lighting
around corners) and fixes the blocky artifacts seen at lower
resolution.

Pull Request: #118924
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
787818d21d
EEVEE-Next: Fix shader compilation error caused by resource macro
82f434f444 Nodes: cleanup node declaration finalization
* Extract function for building anonymous attribute references.
* Use is-function-node state directly during building instead of during finalization.

Pull Request: #119677
9fe2e34833 Cleanup: Rename MeshRenderData variables
Use more standard _num suffix and standard mesh variable names.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
76c5587531
Cleanup: Rename mesh render SortedFaceData fields
Try to add a bit more clarity and use more consistent wording.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
2d49cc597f
Fix #119275: Update Sidebar Values with Voxel Size Changes
Add notifier when changing sculpt voxel size so that the new value is
shown in the sidebar.

Pull Request: #119646
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
e53d4e423e
Cleanup: Convert sculpt_trim.cc to enum class
This PR converts the three `enum` definitions to `enum class` in sculpt_trim.cc

Pull Request: #119679
49cd05020c Docs: Python API: Update the version switch to match the user manual
Not quite a 1:1 match, some customizations have to be made for the API URL differences and the face that there are no translations.

This also enables the version switch publicly now that this change fixes a few bugs.
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
4ed06c648d
Fix #119664: Persistent state not set when disabling add-ons
The wrong persistent attribute was set when disabling an add-on,
also correct the message when disabling an already disabled add-on.
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
9b4683fe0a
Tests: update scripts to include SPDX headers
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
130ce5f53d
Cleanup: Remove redundant function prefixes in sculpt_trim.cc
This PR strips the `sculpt_gesture_trim` prefix and other similar
prefixes from the `sculpt_trim.cc` code, as it is already contained
within the `blender::ed::sculpt_paint::trim` namespace.

Pull Request: #119680
729949669e Fix #114667: UI List search broken when class names >32 chars
The list identifier includes the class name and an list_id,
see: WM_uilisttype_to_full_list_id

This requires using UI_MAX_NAME_STR (as noted in doc-string).
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
ee64778cac
Cleanup: code-comments for struct ID's and use backtick quotes
- Prefix comments before members is used practically everywhere,
  remove C99 syntax from inside comments.
- Replace double quotes with backticks for code styling.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
3135e766ec
Cleanup: replace UI_MAX_NAME_STR with BKE_ST_MAXNAME
Since [0] some comments referencing UI_MAX_NAME_STR were incorrect.
Also correct buffer size for preview_id in uiTemplatePreview so newly
created names are guarantee to be the correct size.

[0]: a180314ac5
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
0b13d1f31a
Extensions: suppress noisy "bl_info" prints unless --debug-python is set
Ref !119521
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
31eaa2f5ba
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
7447666c85
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
25a10c211f
Nodes: support accessing socket type directly from declaration
Previously, we haven't added this because there were plans to use these
declarations at a higher abstraction level where one declaration potentially
contains more than one socket. This hasn't happened yet, and we are also using
other ways to achieve dynamic socket amounts (using dynamic declarations).
Therefore, it is reasonable to simplify the code by storing the integer socket
type in the declaration directly.

Pull Request: #119691
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
c250b4bd51
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
3689dfca4f
GPv3: Build Modifer migration
Reimplemented build modifier using the new `CurvesGeometry` logic.

Pull Request: #118739
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
6dc1cffe33
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
6d3ac72a29
Merge branch 'blender-v4.1-release'
0c8b96d1e0 EEVEE-Next: Shadow resolution scale and adaptive filtering
Allow the user to scale shadow-map resolution per-light.
Adapt the PCF scale based on shadow-map to pixel footprint ratio,
since we can no longer assume that higher LODs don't need filtering.
This allows using much lower shadow resolutions, which can yield
quite significant performance improvements, with relatively little
perceptual quality loss (at the cost of softening shadow edges).
The per-light resolution scale is a literal scale, so for example 0.5
means half the resolution. The Scene Simplify Shadows setting has
been updated to match this behavior.

Pull Request: #119436
881fd2dbd5 EEVEE-Next: Jittered Shadow Transparency
Smooth transparent shadows by jittering their opacity threshold every
sample.
Always enabled on final renders, optionally enabled in the viewport with
`scene.eevee.shadow_jittered_transparency`.

Pull Request: #119480
3f10ba244a Cleanup: Use C++ types in view3d_navigate.cc, restore fix from merge
Also restore a fix that was lost in the merge commit from 4.1.
3888bdf8b2 EEVEE-Next: Fix transparent shadows convergence
Replace the hashed alpha function in shadows for a fully random one.
Add pcg functions to `gpu_shader_common_hash.glsl`
(Split from #119480)

Pull Request: #119526
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
e0b413f818
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
b81b0308fd
Fix: `WITH_CYCLES_DEBUG` flag not enabled on Metal
seems to be enabled on other GPUs already

Pull Request: #119701
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
d0eacbd6ba
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
81ceff8e73
Fix: Missing subversion update
Missing from #119436
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
9b1ba4fced
Fix: EEVEE-Next: Metal compilation
Compilation errors after #119436

Pull Request: #119709
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
1f3582bf95
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
0b29a63e38
Merge branch 'blender-v4.1-release'
fbe16bc1eb BLI_delete: assert that dir is true when recursive is true
While this isn't an error avoid ambiguity for recursive deletion
as it's not meaningful to delete a file.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
6a937d646b
Cleanup: remove unused variables
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
2df06a05ae
GPv3: Show stats in edit mode
GPv3 uses `OB_MODE_EDIT` so it falsely shows empty mesh data in stats.
This worked in legacy gp because it had special edit_mode type.
To show correct grease pencil data in edit mode, rearrange if conditions and
add special check for `OB_GREASE_PENCIL`

Pull Request: #119689
f64f3e8524 Extensions: recursively remove custom-directories on repo removal
Even though there is a dialog users must accept when removing a
repository & directory being removed is shown, it's possible users
assume this only removes files which are part of the repository after
pointing the custom-directory to their home directory or similar.

Removing repositories which point to a custom-directory now only
remove packages and server meta-data to prevent accidents.

Resolves #119481.
98a8ed2002 Cleanup: forward event to WM_operator_name_call_ptr
In general it's best practice to forward events when available.
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
03ebef0fad
Cleanup: typos in recent code-comments
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
0d2c4df346
Fix extensions UI showing when developer extras are disabled
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
43e1e88223
Cleanup: use const pointers where possible in ED_view3d API
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
24be7bd99e
Fix #119716: snap in curve editing when mesh is generated by Geometry Nodes
In these cases, the Mesh is defined as an instance of the object.
These instances need to be ignored when in edit mode.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
98fed4f50c
System Info: correct title in background mode
16919ea5f2 Fix addon_utils.enable() error when the module has no __file__
Although this error isn't specific to extensions, extensions containing
a blender_manifest.toml but no __init__.py would import a module
with the __file__ set to None.
While there is logic to handle this case, it didn't account for modules
already in sys.modules with __file__ set to None.

From a user perspective enabling the extension silently failed raising
an error on the second attempt to enable.
3cb687c32c addon_utils: show a useful error when loading a module without a file
When loading an add-on without a __file__ set the "cause" was empty.

Now the modules __path__ is included (when available) which points
to the path that failed to load to help with troubleshooting.
429959e268 UI: always report to the user when an add-ons fail to load
Failure to import the module would print a message but not show
any feedback to the user - failing silently.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
1a1905a639
UI: only show a single exception when enabling an add-on fails
The full stack-trace is mainly useful to developers which is printed
to the console. Only include a single exception in the error report.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
e22eaf8783
Fix #119714: GPv3: Remove cyclic stroke point count limit
It's not necessary to check for `points.size() >= 3` since the extra
point space is always added thus the point should always be filled with
valid attribute to avoid erroneous "closing stroke".

Pull Request: #119727
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
aa03646a74
UI: support layout panels in popups
Enables operators that uses `WM_operator_props_dialog_popup`
or `redo` popup to use layout panels.

Other popups would likely also support layout panels, only
they need to set its dummy panel with `UI_popup_dummy_panel_set`.
Popups don't normally use `Panel`, but that's the type that stores the
layout panel states. Therefore, to use layout panels in a popup, one
currently needs to create a dummy panel whose purpose is to store the
layout panel states for as long as the popup is open.

Alternatively, we could potentially also store the layout panel states
somewhere else in the future for popups, but that might be a more involved
change for now.

See #119519 for an example script that uses layout panels in a popup.

Pull Request: #119519
12d34fed91 BLI: Add step function to math library
This patch adds a step function that is equivalent to the GLSL step
function to the BLI math library.

Needed by #119414.

Pull Request: #119731
bc74bbef0b Fix: GPv3: Empty grease pencil object crash
The `bounds` is `nullopt` when the number of points is 0 at current frame.
The fix uses `value_or()` to make sure we get some bounds.
Also uses `Bounds<float3>` instead of `std::optional<Bounds<float3>>`
in `gpencil_object_cache_add`.

Pull Request: #119690
db23e145db EEVEE-Next: Show world volume properties
The Volume input of the world didn't show up inside the property panel.
Reason was that the panel didn't have EEVEE-Next inside its list of compatible
engines.

Pull Request: #119729
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
475865ddb7
Merge branch 'blender-v4.1-release'
adef64db06 Refactor: BeztMap struct
No functional changes.

The `BeztMap` struct is used when sorting Keyframes during transformations
in the Graph Editor.

Things that were changed:
* Removed unneeded `newIndex`. This was just the index of the
`BeztMap` in the array, which we already have since we iterate with a for loop.
* Access the `BezTriple` array by index instead of pointer offsets.
This makes it a bit easier to see what's happening.
* Renamed struct members to clarify their use.
* Remove forward declaration of certain variables (e.g. loop counter vars)

Pull Request: #119733
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
6db5cf09e0
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
e2bdaf8ec7
Fix #119686: curves editmode handles are displayed in sculptmode
Curves cage overlay for sculpt mode restored to prior #119053 state.

Pull Request: #119717
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
2906ea9785
BLI: Add nearest interpolation with clamped boundary
This patch adds clamped boundaries variants of the nearest interpolation
functions in the BLI module. The naming convention used by the bilinear
functions were followed.

Needed by #119414.

Pull Request: #119732
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
6a55a126e9
Anim: Only sort FCurves that need it
Before this PR the sorting function would receive all FCurves from
the `anim_data` ListBase and sort them + recalculate the handles.

Considering we are already checking
IF an `FCurve` needs sorting we might as well use
that and limit the sorting to FCurves that actually need it.
Doing that gives the following performance uplift.

| - | Before | After |
| - | - | - |
| Moving 1 key only | 109ms | 0.72ms |
| Moving 1 key of each FCurve | ~2000ms | ~2000ms |

Pull Request: #119735
8812be59a4 Compositor: Make Hue Correct node wrap
Compositor: Make Hue Correct node wrap

This patch makes the Hue Correct node as well as the Hue Correct VSE
modifiers to wrap, such that no discontinuities occur for the red hue.
Since it now wraps, the default curve preset now exempts the last point
of the curve.

A new CUMA_USE_WRAPPING flag was added to specify wrapping for curve
maps. The implementation works by adding two virtual points before and
after the terminal points in the curve map, such that their handles
match, and would then produce a continues curve.

This is a breaking change, since existing curves were also adjusted
using versioning. However, the change will not be significant, since in
most realistic cases, the terminal points will be close to each other,
and even with wrapping, the connection will be very sharp, almost
matching the old behavior.

Pull Request: #117114
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
d5cf430a54
Compositor: Update tests for Hue Correct node
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
20b614ab8e
GPv3: Fill texture coordinates system
This is implements the system texture coordinates for GPv3.

This pull request adds:
- System for storing and viewing texture coordinates.
- Texture coordinates are convert when covering from legacy to GPv3,
   (Tested with object and layer transformation)
- Textures are set to the drawing plane.

Pull Request: #119303
f6657db713 Compositor: Add utility for nearest interpolation
This patch adds a utility function for nearest interpolation with
clamped boundaries and normalized coordinates to the MemoryBuffer class.
Similar to the GLSL texture() function.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
d8a89aa972
Compositor: Add MemoryBuffer constructor from size
This patch adds a new MemoryBuffer constructor from width and heights.
Useful for temporary allocations where we don't care about the area.
Harley changed target branch from blender-v4.1-release to main 2024-03-21 22:40:46 +01:00
Harley Acheson changed title from Fix #119384: Outliner Edit Mode Toggle When Instanced to Fix #119384: Outliner Edit Mode Toggle When Data is Shared 2024-03-21 22:49:49 +01:00
Harley Acheson force-pushed fix119384 from 328c637282 to e5a27192e7 2024-03-21 23:34:50 +01:00 Compare
Harley changed target branch from main to blender-v4.1-release 2024-03-21 23:35:20 +01:00
Author
Member

@blender-bot build

@blender-bot build
Author
Member

@lichtwerk

This PR is still dead-simple but I think you will like the result now. It will now show the "dot" or "edit" icon properly when appropriate. But the "edit" will look disabled if the object has a shared mesh that another object is already editing. I updated the first comment and added an animated gif to show it off.

@lichtwerk This PR is still dead-simple but I think you will like the result now. It will now show the "dot" or "edit" icon properly when appropriate. But the "edit" will look disabled if the object has a shared mesh that another object is already editing. I updated the first comment and added an animated gif to show it off.
Hans Goudey approved these changes 2024-03-22 16:55:49 +01:00
Hans Goudey left a comment
Member

Just one small cleanup comment. Looks good.

Longer term maybe we'd want clicking on an object with shared data to take the other objects using that data out of edit mode and putting the new object in edit mode. But for now this is a nice safer approach.

Just one small cleanup comment. Looks good. Longer term maybe we'd want clicking on an object with shared data to take the other objects using that data out of edit mode and putting the new object in edit mode. But for now this is a nice safer approach.
@ -2192,0 +2196,4 @@
/* Another object has our (shared) data in edit mode, so nothing we can change. */
icon = UI_icon_from_object_mode(ob_active->mode);
tip = TIP_("Shared data already in edit mode");
uiBut *but = uiDefIconBut(block,
Member

To avoid the need to reuse icon and tip and move their declarations higher up

    uiBut *but = uiDefIconBut(block,
                              UI_BTYPE_BUT,
                              0,
                              UI_icon_from_object_mode(ob_active->mode),
                              0,
                              te->ys,
                              UI_UNIT_X,
                              UI_UNIT_Y,
                              nullptr,
                              0.0,
                              0.0,
                              0.0,
                              0.0,
                              TIP_("Shared data already in edit mode"));
To avoid the need to reuse `icon` and `tip` and move their declarations higher up ``` uiBut *but = uiDefIconBut(block, UI_BTYPE_BUT, 0, UI_icon_from_object_mode(ob_active->mode), 0, te->ys, UI_UNIT_X, UI_UNIT_Y, nullptr, 0.0, 0.0, 0.0, 0.0, TIP_("Shared data already in edit mode")); ```
Harley marked this conversation as resolved
Member

Oh, and this is not only about editmode [checking BKE_object_is_in_editmode], it could be other modes as well, so this is also something that is not totally right in this PR.

It would still be nice to have this for e.g. Armatures posemode as well (otoh, these dont crash with Ctrl-clicking the "wrong" dot...)

But this seems to be the best we have so far

> Oh, and this is not only about **editmode** [checking `BKE_object_is_in_editmode`], it could be other modes as well, so this is also something that is not totally right in this PR. It would still be nice to have this for e.g. Armatures posemode as well (otoh, these dont crash with Ctrl-clicking the "wrong" dot...) But this seems to be the best we have so far
Harley Acheson added 1 commit 2024-03-22 18:09:10 +01:00
Harley Acheson merged commit 986e4a8b7f into blender-v4.1-release 2024-03-22 18:26:40 +01:00
Harley Acheson deleted branch fix119384 2024-03-22 18:26:46 +01:00
Sign in to join this conversation.
No reviewers
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#119704
No description provided.