155156 Commits

Author SHA1 Message Date
Jonas Holzman
e6064b2be3 Fix #134818: macOS: Hidden mouse grab not keeping mouse in window
This commit fixes an issue where WM cursor grabbing, when used
in "hidden" mode (`GHOST_kGrabHide`) would unexpectedly not prevent the
cursor from escaping the Blender window and revealing itself when
hovering over macOS desktop elements like the application Dock.

Looking at the original issue in past Blender versions, testing with the
Walk Navigation operator, this used to work in Blender 3.2, and broke
in Blender 3.3. Bisecting leads to commit 4c4e8cc926 (Fix T99021:
Walk-mode doesn't work in Wayland), which switched the Walk Navigation
mouse warping method from custom `WM_cursor_warp` logic to using
`WM_cursor_grab_{enable/disable}`.

Then, looking at the WM_cursor_grab Cocoa implementation, more
especially at the `GHOST_kGrabHide` case in `handleMouseEvent`, a
comment ("Cursor hidden grab operation : no cursor move") suggests that
hiding the cursor would previously prevent it from moving (possibly in
earlier macOS versions?).

This fix, the simplest I could come up with other than implementing
simple window warping for the `GHOST_kGrabHide` case (similar to what's
done on Windows, see #113066) is to use
`CGAssociateMouseAndMouseCursorPosition` to disable cursor movements
for the duration of the hidden grab, effectively restoring the original
behavior indicated in the comment.

Pull Request: https://projects.blender.org/blender/blender/pulls/148007
2025-10-14 14:31:02 +02:00
Omar Emara
df8683ec2a EEVEE: Support different dimensions vector sockets
This patch adds support for the dimensions property of vector sockets,
support 2D and 4D sockets in addition to the currently supported 3D one.
This just involves assigning the correct GPU type when constructing the
GPU materials from nodes.

The only node that uses 2D sockets for now is the Radial Tilling node,
so we just need to update its interface.

Pull Request: https://projects.blender.org/blender/blender/pulls/148034
2025-10-14 13:24:17 +02:00
Pratik Borhade
bf09f90338 Merge branch 'blender-v5.0-release' 2025-10-14 16:35:51 +05:30
Pratik Borhade
084f04ec09 Fix: Gray out shape key when muted
Missed during migrating shape keys to tree view.

Pull Request: https://projects.blender.org/blender/blender/pulls/147798
2025-10-14 13:03:29 +02:00
Jacques Lucke
12bb51df16 Merge branch 'blender-v5.0-release' 2025-10-14 12:09:00 +02:00
Jacques Lucke
5be95161a4 Fix #147747: Shader Nodes: wrong code gen order
Currently, sometimes shader code generation fails because the code of top-level
nodes is interleaved with the code of a repeat zone. See #147747 for more
details.

Previously, the code-generation order was just the standard toposort of the node
tree, but it does not guarantee that all nodes in a zone are next to each other.
Also, it can't easily, because the zone detection itself depends on the
toposort. This patch implements another sorting step on top of the default
toposort. It packs nodes in zones together without changing the validity of the
toposort.

This is an alternative to #147999.

Pull Request: https://projects.blender.org/blender/blender/pulls/148005
2025-10-14 12:08:32 +02:00
Jacques Lucke
2fc32a2f18 Fix #147747: Shader Nodes: wrong code gen order
Currently, sometimes shader code generation fails because the code of top-level
nodes is interleaved with the code of a repeat zone. See #147747 for more
details.

Previously, the code-generation order was just the standard toposort of the node
tree, but it does not guarantee that all nodes in a zone are next to each other.
Also, it can't easily, because the zone detection itself depends on the
toposort. This patch implements another sorting step on top of the default
toposort. It packs nodes in zones together without changing the validity of the
toposort.

This is an alternative to #147999.

Pull Request: https://projects.blender.org/blender/blender/pulls/148005
2025-10-14 12:06:56 +02:00
Omar Emara
a2146839d7 EEVEE: Unify float2 implicit conversion with other parts of Blender
This patch adjusts the implicit conversion rules involving float2 to
match other parts of Blender, like BKE Conversions, Geometry Nodes, and
the Compositor. The new rules also make much more sense to me on their
own.

The GPU_VEC2 is no currently used for GPU materials as far as I can see,
so this should not be a breaking change.

Pull Request: https://projects.blender.org/blender/blender/pulls/148033
2025-10-14 12:04:40 +02:00
Philipp Oeser
8cb79389de Merge branch 'blender-v5.0-release' 2025-10-14 11:48:52 +02:00
Philipp Oeser
0bcc088a36 Fix #147934: VSE: Reset retiming never active
Caused by 2b53ed9add

The "is not None" check wasnt not working because it was used against a
boolean.
(Also bring two occasions of the "is_retiming" in sync)

Pull Request: https://projects.blender.org/blender/blender/pulls/147960
2025-10-14 11:48:30 +02:00
Philipp Oeser
88aff1400d Compositor: dont show exection time if node is unconnected
This is in line with what Geometry Nodes do

NOTE: this originated as a "workaround" for #147752
( but does not tackle its root cause at all... that one is
already fixed with 577a66aea2 )

Pull Request: https://projects.blender.org/blender/blender/pulls/147802
2025-10-14 11:48:10 +02:00
Jacques Lucke
578f50aaa6 Merge branch 'blender-v5.0-release' 2025-10-14 11:19:05 +02:00
Jacques Lucke
7fd0a5acef Fix #147878: bad usage inferencing when there is a link cycle
The inferencing algorithm does not work reliably when the tree has cycles. So
return early and assume everything is used. The user is expected to fix the bad
link as soon as possible.

Pull Request: https://projects.blender.org/blender/blender/pulls/148009
2025-10-14 11:18:22 +02:00
Falk David
8543083656 Merge branch 'blender-v5.0-release' 2025-10-14 10:53:20 +02:00
Casey Bianco-Davis
2bb7a9f05d Fix #147402: Pen Tool doesn't return to the Aligned type after LeftCtrl
This makes it so that the Pen Tool will return the handle type back
to `Align` after letting go of `LeftCtrl`

This effects Grease Pencil and Curves objects.

Pull Request: https://projects.blender.org/blender/blender/pulls/147943
2025-10-14 10:50:21 +02:00
Sybren A. Stüvel
3a75bae825 Fix #148010: instant crash opening any file with Dopesheet and Keyframes
Fix the code path that left the `color` pointer uninitialized when
drawing.

Pull Request: https://projects.blender.org/blender/blender/pulls/148013
2025-10-14 09:17:03 +02:00
Campbell Barton
cac573c507 Cleanup: unused argument, variable warnings 2025-10-14 16:21:42 +11:00
Nathan Vegdahl
c93d94d2e1 Anim: Add Python unit tests for vertex group Normalize All operator
Follow-up to #147272. These tests are not exhaustive, but protect
against regression of bug #147009.

Pull Request: https://projects.blender.org/blender/blender/pulls/147422
2025-10-14 05:10:13 +02:00
Aaron Carlisle
214f0b9cc0 Merge branch 'blender-v5.0-release' 2025-10-13 21:48:30 -04:00
Aaron Carlisle
624ebd69e5 Docs: Update RNA to user manual URL mapping 2025-10-13 21:46:57 -04:00
Harley Acheson
d6dad498b6 Merge branch 'blender-v5.0-release' 2025-10-13 18:42:31 -07:00
Harley Acheson
1ae52b6bd0 Fix: Quick Tooltip Position Can Jiggle
Quick tooltips immediately show a word or two and then shows more
detailed information after a pause. It is possible to have these two
things shows at differing positions (vertically or horizontally) and
therefore jiggle. Some padding code uses the width and height and half
of a padding amount, which can result in differing values if the first
width or height is an odd amount but the second is even, or vice versa.
This happens quite infrequently and depends on the user scale. This PR
just replaces one line that does the padding in a way that results in
consistent values.

Pull Request: https://projects.blender.org/blender/blender/pulls/148019
2025-10-14 03:40:28 +02:00
Campbell Barton
5cda4b188c Docs: add missing newline to debug_gpu_shader_source doc-string
Also use term "directory" (as used elsewhere) & minor tweak to warning.
2025-10-14 11:27:01 +11:00
Campbell Barton
eedf15e3b7 X11: add support for --no-window-frame 2025-10-14 11:07:50 +11:00
Nathan Vegdahl
63d65bebf0 Fix #147803: Assert triggered on keyframe jump on NLA control curves
The cause was a missed case from #130440 where
`use_nla_remapping = true` was being unconditionally passed to
`fcurve_to_keylist()` rather than determining the value with
`ANIM_nla_mapping_allowed()` as it should have been.

The fix is simply to use `ANIM_nla_mapping_allowed()` instead of
unconditionally passing `true`.

This PR also changes an outdated comment to properly explain why `adt`
was null in the first place (which is precisely to catch bugs like
this).

Pull Request: https://projects.blender.org/blender/blender/pulls/147957
2025-10-14 01:29:01 +02:00
Campbell Barton
14014045fc Cleanup: quiet unused argument warning when building without WAYLAND 2025-10-14 09:37:00 +11:00
Campbell Barton
f058780f6b Merge branch 'blender-v5.0-release' 2025-10-14 09:15:02 +11:00
Campbell Barton
8bb10b2d33 Build: resolve error with Python 3.13
Follow up to !147783, it should have included 3.13 in the version range.
2025-10-14 09:11:07 +11:00
Falk David
0ec4e23fa6 Merge branch 'blender-v5.0-release' 2025-10-13 18:30:17 +02:00
Falk David
1b73a53d0c Fix #139501: VSE: Build separate dependency graph for scene strip previews
Currently, the scene strip preview uses the existing dependency
graph built for that scene. This was not a big issue before
the sequencer scene was introduced, because the user would have
to create two main Blender windows to run into problems.
Now with the sequencer scene, it's possible to look at the scene
of a scene strip within the same window.
When the user is editing the scene (e.g. moving an animated object)
any open sequencer preview will cause the edits to be flushed.
This can e.g. result in visual jumping of animated objects, and more.

This PR attempts to fix the issue in a straightforward way: Use
a separate dependency graph for rendering the sequencer preview.
While this fixes the immediate issues, there are some consequences:
* The memory usage of the scene dependency graph _can_ roughly
  double (since there are now likely two instances of the same
   dependency graph). Because of implicit sharing, unmodified data
   will not be copied. But for example modifiers on meshes would
   currently create two copies of the evaluated data in the two
   dependency graphs.
* Creating the dependency graph can be costly, which will cause the
  first frame that the scene has to render to be slower.

Note: The current code changes some properties of the original scene
like the frame, subframe etc. before rendering and then restores
the original state. In theory, this part of the code can be removed,
but may be a bit too risky for just a fix. This should be improved
at a later stage.

Also resolves #146769, #139501.

Pull Request: https://projects.blender.org/blender/blender/pulls/147457
2025-10-13 18:29:28 +02:00
Harley Acheson
793ebc0b67 Merge branch 'blender-v5.0-release' 2025-10-13 09:27:08 -07:00
Jacques Lucke
51fbcd84ce Merge branch 'blender-v5.0-release' 2025-10-13 18:25:36 +02:00
Harley Acheson
f75658110a UI: Revert Changes to Restriction Icons
Partial revert of c03fdf5d9d, going back to previous versions of the
icons for hide_on (closed eye), restrict_select_on (unfilled mouse
cursor), and the combined versions (vis_sel_xx). These changes are a
bit too contentious to be added so late in the release. Note this
leaves in the changes to the lock icons.

Pull Request: https://projects.blender.org/blender/blender/pulls/147836
2025-10-13 18:25:34 +02:00
Jacques Lucke
d690ffd44f Fix #146949: Geometry Nodes: cache usage inference on modifier
This speeds up drawing of the UI of the Geometry Nodes modifier, especially for
very large node trees like in the files from #146949.

A couple previous commits and #147883 speed up the inferencing significantly
already. However, there is a certain limit to how fast this can be on large
complex node trees. While there is some more optimization potential, this patch
implements a cache on the Geometry Nodes modifier level. This means that as long
as the inputs and the node tree stays the same, the inferencing only has to
happen once, instead of on every redraw.

The main difficulty with this cache is that we don't have a good way to
invalidate it eagerly when any of the modifier inputs changes. That can
hopefully become simpler with #138117. For now, we have to check all input
values on redraw to check if anything has changed compared to the last redraw
and recompute the cache if there is any change.

Pull Request: https://projects.blender.org/blender/blender/pulls/147930
2025-10-13 18:23:50 +02:00
Bastien Montagne
06a7f2bfe9 Merge branch 'blender-v5.0-release' 2025-10-13 18:22:19 +02:00
Bastien Montagne
7d3810a1b5 I18N: Updated UI translations from git/weblate repository (45838df2e6668). 2025-10-13 18:21:53 +02:00
W_Cloud
07205bf441 Nodes: Adjust reroute node label position to reduce overlap
Moved the label closer to the reroute node to reduce overlap.

Pull Request: https://projects.blender.org/blender/blender/pulls/147991
2025-10-13 18:19:14 +02:00
Casey Bianco-Davis
0e44c5d851 Fix #147432: Grease Pencil: Pen tool Assert when Resolution attribute exists
The problem was that the Pen Tool would not set the `Resolution` attribute
and so when the `Resolution` attribute didn't exist, the newly added curve
would default to a value of 0, which would then lead to an Assert.

This problem would also effect `Curves` Objects.

Pull Request: https://projects.blender.org/blender/blender/pulls/147673
2025-10-13 18:13:58 +02:00
Nika Kutsniashvili
75eaecf350 UI: Dope Sheet: Custom theme color for interpolation modes
Split the "Interpolation Line" theme property into three for each
interpolation mode, and use them accordingly. In the current theme
refactor, almost all theme properties of the dope sheet are getting
either removed (unused), or moved (shared). This decluttering opens up
the possibility to allow more theming, and let artists read the Dope
Sheet better.

## Avoiding Confusion

There's two "Bézier" interpolation types:
- Called "Bézier" in the interpolation type menu, and
- Called "Bézier" in the code, for the types that are labeled as
  **"Easing" and "Dynamic"** in the interpolation type menu.

Since this commit is about the interpolation lines, which are **not**
drawn for the former, **this PR only covers Constant, Linear, and the
latter form of Bézier interpolation types.**

Pull Request: https://projects.blender.org/blender/blender/pulls/144255
2025-10-13 18:01:21 +02:00
Omar Emara
97e3fb0e03 Compositor: Add internal support for 2D vectors
This patch adds proper internal support for 2D vectors in GPU materials,
while previously it used a 3D vector with the Z component ignored as a
workaround. This has no user-facing consequences.

The type conversion file was split into an additional code generation
file for easier refactoring.

Pull Request: https://projects.blender.org/blender/blender/pulls/147983
2025-10-13 17:35:23 +02:00
Falk David
2a88d748af Merge branch 'blender-v5.0-release' 2025-10-13 17:33:39 +02:00
Falk David
7026911502 Fix: Core: Crash when trying to link shapekey from driver target
Found while trying to append the scene from this file:
https://studio.blender.org/characters/rain/showcase/1/

Before calling `id_lib_extern` when setting the id in the driver target,
check that the ID is linkable.

Pull Request: https://projects.blender.org/blender/blender/pulls/147829
2025-10-13 17:33:08 +02:00
Bastien Montagne
7fdee5d515 Merge branch 'blender-v5.0-release' 2025-10-13 17:12:15 +02:00
Bastien Montagne
822cc518af I18N: Updated UI translations from git/weblate repository (9e2605390062561). 2025-10-13 17:11:00 +02:00
Hans Goudey
1d372bdc8b Refactor: Split CustomData attribute and newer attribute headers
Avoid including DNA_customdata_types.h everywhere we include the
attributes header. Over time the older attribute header should be
used less and less.

Part of #122398

Pull Request: https://projects.blender.org/blender/blender/pulls/147980
2025-10-13 15:38:26 +02:00
Omar Emara
5517941a60 Compositor: Support implicit conversion across 2D vectors
This patch adds the necessary functions needed to support implicit
conversion in GPU execution across 2D vectors in the compositor.

Pull Request: https://projects.blender.org/blender/blender/pulls/147975
2025-10-13 15:12:56 +02:00
Lukas Stockner
5af14bb572 Merge branch 'blender-v5.0-release' 2025-10-13 15:10:13 +02:00
Raimund Klink
30fd6537b9 Cycles: Disable the render time pass for GPU
Also, extend the description in the UI.

Pull Request: https://projects.blender.org/blender/blender/pulls/147054
2025-10-13 15:09:40 +02:00
Bastien Montagne
8569e73c4b Merge branch 'blender-v5.0-release' 2025-10-13 14:41:15 +02:00
Bastien Montagne
5c88505dde Revert "Fix: Simplify import in VR add-on"
This breaks tests (and the VR addon itself of course).

Needs to be done differently, will create new PR for proper fix.

This reverts commit 0c22ef5ae7.
2025-10-13 14:41:09 +02:00