Commit Graph

123674 Commits

Author SHA1 Message Date
tariqsulley
fb035bfef6 Fix #147472: "Cursor to Selected" on Edit Bone causes assert
Fix assert when using Cursor to Selected on armatures which is
documented to require an evaluated object.

Ref !147526
2025-10-09 17:22:20 +11:00
tariqsulley
68fecf9fa9 Fix #147606: Spin tool causes immediate crash
Resolve regression in [0], remove unintended trailing space passed to
BMO_op_initf, causing a crash when the spin tool was activated.

Ref !147674

[0]: 83097400f0
2025-10-09 05:29:34 +00:00
Campbell Barton
0b1c7fef48 Docs: remove reference to non-existent members in doc-string 2025-10-09 04:43:47 +00:00
Campbell Barton
f9c7c8fdcb Fix #146670: Disabled key-map items lost when loading old preferences
Version patching keymaps was only handling new/changed key-map items.
However it's important to version patch removed key-map items so they
match the key-map items in the updated key-map and disable them.

Regression from [0] which copied the error from [1].

Resolve both by updating all key-map items.

Ref !147668

[0]: 5e2b421996
[1]: 4986f71848
2025-10-09 14:38:41 +11:00
Richard Antalik
a82f3a0fe0 UI: Add tab filter popover to vertical tabs
This adds unobtrusive tab button for selecting displayed tabs to the
tabs region. The idea is, that this way, the filter is much more
discoverable than it being hidden in options popover. The button is
grayed out, when all tabs are visible.

To only draw arrow, is achieved by setting `UILayout.emboss` to `NONE`
or `NONE_OR_STATUS`

Pull Request: https://projects.blender.org/blender/blender/pulls/135132
2025-10-09 04:51:18 +02:00
Harley Acheson
43654059ba Fix #147624: Playhead Drawing While Time Stretching
This PR updated the drawing of the playhead so that it better supports
time stretching, which separates the top from the line. This draws the
shadows as separate pieces and draws the line higher.

Pull Request: https://projects.blender.org/blender/blender/pulls/147658
2025-10-09 01:50:43 +02:00
Campbell Barton
a920f26920 Cleanup: remove unused doc-strings 2025-10-09 09:40:57 +11:00
Harley Acheson
2eaac0ad74 Fix #147574: Icon_Group Use Instead of Icon_Outliner_Collection
We have icons that represent specific individual collections. like
Icon_Outliner_Collection for a default (uncolored) collection, and
Icon_Collection_color_x for ones with colors. For "collections" as a
general thing though we have icon_group. Sometimes we confuse the two,
for example the list of tabs to show in Properties uses a different
icon than the actual category icon. This PR fixes the complaint by
using the correct icon for each of these purposes.

Pull Request: https://projects.blender.org/blender/blender/pulls/147652
2025-10-08 23:04:11 +02:00
Harley Acheson
765e38677a Fix: Default Collection Color Always White
With #126307 the default collection color (not set to a specific one),
set in Icon Colors / Collection, is always white. This PR restores the
correct behavior of following the theme color (an error in the SVG
source). And does so immediately (change in property_update).

Pull Request: https://projects.blender.org/blender/blender/pulls/147651
2025-10-08 20:58:42 +02:00
Hans Goudey
a60e0cd44b Geometry Nodes: Support lists and grids in more function nodes
Now every function node except for "Sample UV Surface" supports
both list and grid outputs. Any grid or list input means the output also
has that type (combinations of grids and lists aren't supported).
However note that some nodes also have inputs that are always fields
evaluated on the target geometry.

There is still plenty of room for optimization. For grids and lists, all
the outputs will be computed, and every function node is evaluated
completely separately. It would be better to build a network similar to
fields and evaluate it lazily (when topology doesn't change anyway).

Pull Request: https://projects.blender.org/blender/blender/pulls/147312
2025-10-08 19:49:03 +02:00
Jacques Lucke
66dd8beef3 Fix #147037: copying node referencing packed id does not work
The solution is to remember the deep hash of the copied data-block pointers
instead of just relying on the library file path.

Pull Request: https://projects.blender.org/blender/blender/pulls/147275
2025-10-08 19:39:53 +02:00
Hans Goudey
dd75c0b5ec Fix #147429: Set Resolution node doesn't use default for unselected curves
The fix in this case is to properly use the stored builtin attribute defaults
when capturing the field on the mesh. I extracted that to a function so
the code would read better with early returns.

Pull Request: https://projects.blender.org/blender/blender/pulls/147646
2025-10-08 19:26:12 +02:00
Jacques Lucke
7422f2ea7a Fix #147559: performance regression due to unnecessary geometry copy
The geometry was copied later on when it was modified because there was still a
reference to it in the modifier. Since this uses implicit sharing, if there is
more than one reference, the data has to be copied before it can be modified.

Pull Request: https://projects.blender.org/blender/blender/pulls/147644
2025-10-08 19:14:37 +02:00
Miguel Pozo
8c425ccd4d Cleanup: Remove unused variables 2025-10-08 16:59:20 +02:00
Miguel Pozo
75f3d8c68f Fix #147483: Crash switching scene while rendering animation in main window
When rendering in the main window and changing the active scene,
RE_FreeUnusedGPUResources can free the resources of an active Render,
since no wmWindow references the Scene anymore.

Active Render instances always reference their Scene, so we check those
directly instead.

Pull Request: https://projects.blender.org/blender/blender/pulls/147553
2025-10-08 16:48:38 +02:00
Miguel Pozo
71f4277467 GPU: Codegen: Native support for repeat zones
Support loops at the GLSL level instead of relying on
NOD_shader_nodes_inline.
This improves compilation and runtime performance, avoids causing
recompilations on iteration count changes, and allows supporting
dynamic iteration counts.

(EEVEE-only)

Pull Request: https://projects.blender.org/blender/blender/pulls/145269
2025-10-08 16:38:14 +02:00
Sergey Sharybin
2998b97d5e Fix #147626: Crash when clicking on the "Rendering" workspace
Make the logic in the image editor drawing robust against configuration
when the image editor has flag "show render result from sequencer scene"
and the sequencer scene being nullptr.

It could happen when user configures image editor is such way and then
removes the sequencer scene.

Or, it could also happen when the image editor has the flag set, which
was exactly the cause of the originally reported issue. So this change
also clears the flag which was expected to be cleared. It could affect
some current files saved in the past day, but since the render operator
sets it based on the way the scene is rendered it is not too bad.

Caused by 76c03744a8

Pull Request: https://projects.blender.org/blender/blender/pulls/147630
2025-10-08 16:28:56 +02:00
Clément Foucault
e5f13a727a Refactor: EEVEE: Make surfel ray list stable and baking workload auto-adjust
This avoid putting too much work in only one thread for building very long surfel lists.

Instead of insertion sort, we use a prefix sum where all surfel scan the whole ray
list to know their position. Only the coplanar surfel patching is dispatched as
one thread per list.
This is currently a bruteforce approach and could be optimized further.

On top of this, we add a heuristic to scale the amount of work from the baking
depending on the scene complexity. Complex scene will have more overhead but
will remain responsive during baking, while simple scene will be faster to bake.
This avoids hitting TDR in most cases.

The update refresh is now limited to 1 per second to avoid the readback overhead.

Fix #142988

Pull Request: https://projects.blender.org/blender/blender/pulls/146848
2025-10-08 15:59:43 +02:00
Bastien Montagne
89efaee069 Fix #147565: Crash in 'make liboverride' due to threading issues in geonodes.
This is the 'safe and simple' aspect of the fix: prevent `node_warnings`
RNA property of the Node modifier to be overridable.

Its access is 100% not thread safe currently - and it makes no sense to
have this reuntime data overridable anyway!

Another side of the issue will be fixed in a separate commit, for main
only, as it affects quite deeply the behavior of viewlayer resync, and
fixes some unrelated logical issues in the current code.
2025-10-08 15:29:26 +02:00
Clément Foucault
ab4c245a7e Fix: EEVEE: Lightprobe Volume backfacing toggle is inverted
The UI property was changed 7b97bc48d8
to a negative boolean but the boolean conversion inside EEVEE was
not inverted.

This mean that since 4.2, the default behavior for Lightprobe
volume has been broken / inverted.

To make an existing scene bake the same as before, all material
needs to have their `BackFace Culling > Light Probe Volume` options
inverted. This is done automatically through the versioning code.

The only test cases broken are the ones using default materials which
do not have their property turned off.

Release Notes should contains the compatibility breakage.

Pull Request: https://projects.blender.org/blender/blender/pulls/147218
2025-10-08 14:55:14 +02:00
Brady Johnston
9a8fb5fe98 Fix: Geometry Nodes: Drag-to-search for Grid Info node
This PR adds the drag-to-search for the **Grid Info** node.

Pull Request: https://projects.blender.org/blender/blender/pulls/147547
2025-10-08 14:09:08 +02:00
Jacques Lucke
14966dfe0f Nodes: skip processing some unlinked outputs in usage inferencing
This is a partial fix for #146949. It speeds up drawing by about 15% for me.

Pull Request: https://projects.blender.org/blender/blender/pulls/147612
2025-10-08 13:55:09 +02:00
Jacques Lucke
8ef6127b70 Nodes: minor speedup for usage inferencing
This reduces some overhead for group input nodes where many sockets are not used.
This helps a bit with resolving the performance regression in #146949.

Pull Request: https://projects.blender.org/blender/blender/pulls/147610
2025-10-08 13:00:38 +02:00
Jacques Lucke
3e0df5d2d7 BLI: inline fast case of CacheMutex.ensure
I can measure a few percent speedup by doing that in the file from #146949.

Pull Request: https://projects.blender.org/blender/blender/pulls/147608
2025-10-08 12:23:22 +02:00
Thomas Dinges
e3e8c283d5 Release: Bump 5.0 to beta 2025-10-08 12:02:49 +02:00
Campbell Barton
850882e4d2 Fix: uninitialized variable use
Correct error in f4308aa2d0
2025-10-08 20:38:43 +11:00
Andrej730
dec032e12e Anim: Indicate Parent Inverse Matrix State in UI
Show the Parent Inverse matrix in the Object properties, Transform
panel. The matrix is shown decomposed as location/rotation/scale.

Pull Request: https://projects.blender.org/blender/blender/pulls/113364
2025-10-08 11:13:24 +02:00
Omar Emara
f113af51ab Compositor: Rename Lift to Offset in Color Correction node
This patch renames the Lift parameters to Offset, which is more accurate
and inline with other software.

Pull Request: https://projects.blender.org/blender/blender/pulls/147543
2025-10-08 11:03:47 +02:00
Omar Emara
d519b189b7 Fix #147551: Cryptomatte not supported in VSE
The Cryptomatte node is not supported in VSE strip modifiers because we
previously limited it to root node trees in scene compositing. This
limitation can be lifted however if the user is using the image mode, so
we remove the poll method and instead give warning when appropriate
based on the mode.

Pull Request: https://projects.blender.org/blender/blender/pulls/147601
2025-10-08 10:45:46 +02:00
Jacques Lucke
a589cb5cf3 Fix #147600: warning pass-through hinders usage inference
The warning node just was not handled in the value inferencer yet.
2025-10-08 10:08:08 +02:00
Christoph Lendenfeld
aef8a05701 Anim: Remove selection rna properties of Bone
With #146102 the selection state of pose bones was moved to
the pose bone itself and syncing code was introduced that
ensures the selection state between pose- and edit mode matches.

While the syncing happens via the `Bone` struct, the flag is
always overridden from either the `EditBone` or the `bPoseChannel`.
Since the selection state of the `Bone` is not  used for  operations anymore
there is no point in keeping it.

In a way this doesn't break backwards compatibility more than
it already was. It's just more visible now because it will actually error.

Pull Request: https://projects.blender.org/blender/blender/pulls/147597
2025-10-08 09:41:51 +02:00
Richard Antalik
7b7b5a5fcd Fix: Crash when prefetching scene strip
Fix done in 7805a4bfe1 introduced another crash - null dereference when
accessing `strip->scene`.

Also the mentioned fix was not quite correct, because it used incorrect
scene and timeline frame to get rendered strips.

Pull Request: https://projects.blender.org/blender/blender/pulls/147595
2025-10-08 08:53:26 +02:00
Campbell Barton
f222916c38 Cleanup: simplify BM_attribute_stored_in_bmesh_builtin 2025-10-08 15:39:26 +11:00
Campbell Barton
99ed1bd46b Cleanup: use doxygen style comments for doc-strings 2025-10-08 15:19:01 +11:00
Campbell Barton
f4308aa2d0 UV: remove per-UV-map selection data
Replace per UV map selection with a single UV selection for all UV's.
This uses the same data as UV sync select, meaning that it's no longer
possible to keep a different selection when sync-select is disabled.

There is a minor improvement to functionality - previously not possible
to de-select a single face surrounding by selected faces.
Now this is possible because true face selection is supported.

The selection from the active UV-map is converted to use the shared
selection data.

Ref !147523

Co-authored-by: Hans Goudey <hans@blender.org>
2025-10-08 15:05:20 +11:00
Campbell Barton
377e3cfca5 Cleanup: use a define for BMUVOffsets that doesn't reference any layers
Reduce the number of places that need to be updated when struct members
change and reduces the binary size a little.
2025-10-08 14:56:43 +11:00
Campbell Barton
37382b7c39 UV: track select sticky & sync options with edit-mesh undo
Since recent UV selection changes (!138197), the meshes UV selection
is closely tied to the scenes selection options.

Track these settings with edit-mesh undo, to prevent undoing into a
state where the selection doesn't match the previous state.

Ref !147591
2025-10-08 13:44:08 +11:00
Richard Antalik
7805a4bfe1 Fix #147477: Crash when prefetching scene strip
Check if 3D render would be done by recursing also into sequencer
timeline used by scene strips.

This PR removes check if the scene strip is cached. This was used to
allow rendering from disk cache, but it was removed.

Pull Request: https://projects.blender.org/blender/blender/pulls/147511
2025-10-08 04:41:33 +02:00
Richard Antalik
01a70ae58f Fix #146682: Swap data operator breaks effect strips
Caused by not invalidating lookup cache, which is used for tracking
relations between effects and inputs.

Pull Request: https://projects.blender.org/blender/blender/pulls/147509
2025-10-08 04:39:50 +02:00
Campbell Barton
a6a8fc9619 Fix: crash creating a BMesh when some UV selection layers are missing
Error in !138197, while all UV selection layers should exist,
don't crash if some are missing.
2025-10-08 11:20:31 +11:00
Campbell Barton
0fcbae8c00 Cleanup: spelling, duplicate terms (check_spelling_*)
Also add colon after argument params.
2025-10-07 23:55:12 +00:00
Campbell Barton
68d280fc36 Build: unbreak building with GCC 15.2 2025-10-08 10:55:06 +11:00
Jesse Yurkovich
60325c7a9c Fix #147465: Distribute Points in Volume node has inaccurate offset
Account for recent changes in how volumes are offset from
blender/blender@12f0bc7736

Pull Request: https://projects.blender.org/blender/blender/pulls/147495
2025-10-07 20:38:23 +02:00
Jesse Yurkovich
8a99ab4463 Fix #145919: Enable BKE_reports to be seen when file is loaded from CLI
There were two issues conspiring to prevent most BKE_reports from
surfacing when loading a file from the command line.

The first is that the "print_level" was left initialized to only
RPT_ERROR which prevents this particular warning from being traced to
the console.

The second is that, in order for us to display reports in the
notification area, we need to give the reports to the window manager.
This is typically all wired up during normal operator execution, but not
when just starting up from the command line.

Pull Request: https://projects.blender.org/blender/blender/pulls/147251
2025-10-07 20:37:15 +02:00
Christoph Lendenfeld
a09d0cfd8c Anim: Move pose bone selection state to bPoseChannel
Move the selection flag for pose bones, from the (edit)bone to the
pose bone.

Previously having multiple instances of armatures in pose mode at the
same time caused issues because selecting a pose bone on one armature
would automatically select it on all instances of it.

This is now fixed since the selection state is stored on the pose bone
(Object level) Doing so breaks API compatibility with 4.5 since the
RNA property on the Bone no longer affects the pose bone. Instead,
there is a new property on the pose bone for that.

Due to this change, some runtime flags for the transform system also
had to be moved to the pose bone. This is due to the fact that these
flags are used by the transform system to pass information between
functions. If we keep the flag at the bone level, this wouldn't work
with armature instances. See `bPoseChannelRuntimeFlag`

Fixes #117892

Pull Request: https://projects.blender.org/blender/blender/pulls/146102
2025-10-07 19:59:36 +02:00
Bastien Montagne
37a676212c Fix: Some undo crashes related to packed data.
The owner library could keep invalid references to removed archive
libraries after undo.

This should fix the immediate issues reported as #147236, #147095 and #147036.

There is still a known crash, although it is harder to reproduce reliably
from the UI, so it will be handled separately. It is tracked by #147317.
2025-10-07 19:48:39 +02:00
Sean Kim
5e6c3e720d BKE: CurveMap: Update more curve presets
Similar to 9b5f23c7a3

This commit updates the remaining three non-trivial preset curve types:
* CURVE_PRESET_ROUND - approximating `sqrtf(2x - x^2)`
* CURVE_PRESET_ROOT - approximating `sqrtf(x)`
* CURVE_PRESET_SHARP - approximating x^2

Like in the above commit, this change only affects the defined presets,
but does not change any existing curves in any files.

Related to #145208

Pull Request: https://projects.blender.org/blender/blender/pulls/147012
2025-10-07 19:47:42 +02:00
Jonas Holzman
043d9e77b0 UI: Slightly shorten 3D cursor colored axis tips
This commit slightly shorten the new 3D cursor colored axis tips,
allowing for a larger part of the dark part of the axis to show,
improving readability. Discussed during the last UI meeting.

Pull Request: https://projects.blender.org/blender/blender/pulls/147563
2025-10-07 19:44:12 +02:00
Jacques Lucke
a73b7f883d Fix #147556: missing volume grid output when accessing subframe of bake
The code attempted to mix the grids as single values. In theory, we could
attempt interpolating between grids, but that can be done separately.

Pull Request: https://projects.blender.org/blender/blender/pulls/147557
2025-10-07 18:45:40 +02:00
Brady Johnston
7921e8a5b1 Geometry Nodes: Change order of sockets for Set Grid Transform
Changes the order of sockets for the Set Grid Transform node.

No other node in GN has a blank gap in the input sockets, this PR moves the `Is Valid`
output above the grids to remove the gap.

Pull Request: https://projects.blender.org/blender/blender/pulls/147380
2025-10-07 18:44:43 +02:00