Commit Graph

150688 Commits

Author SHA1 Message Date
Jacques Lucke
beae6a050e Geometry Nodes: support creating Evaluate Closure node based on closure
Similar to #140187. This allows creating an Evaluate Closure node with the right
signature for an existing closure when using link-drag-search.

Pull Request: https://projects.blender.org/blender/blender/pulls/140191
2025-06-12 11:28:47 +02:00
Bastien Montagne
bc80ef136e Big Endian Support Removal.
This commit implements #125759.

It removes:
* Blender does not build on big endian systems anymore.
* Support for opening blendfiles written from a big endian system is
  removed.

It keeps:
* Support to generate thumbnails from big endian blendfiles.
* BE support in `extern` or `intern` libraries, including Cycles.
* Support to open big endian versions of third party file formats:
  - PLY files.
  - Some image files (cineon, ...).

Pull Request: https://projects.blender.org/blender/blender/pulls/140138
2025-06-12 10:37:47 +02:00
blend_adarsh
05d0391ed6 Fix #138764: Draw weak grid lines on every second frame
Instead of drawing weak lines halfway between strong lines, they are
drawn at every second strong line as gray lines, skipping one dark line.

This means that lines are always drawn on full frames instead of
sometimes landing in the middle.

Co-authored-by: Adarsh TS <tsadarsh@pop-os.localdomain>
Pull Request: https://projects.blender.org/blender/blender/pulls/139398
2025-06-12 09:16:32 +02:00
Campbell Barton
dc83260f1a UV: split island select into a separate option, support for sync-select
Change island selection from being it's own selection mode,
along side vertex/edge & face modes, to a separate toggle.

This makes it possible to use sync-select without loosing functionality
as previously island selection didn't work when sync-select was enabled.
Now island selection supports sync-select although at the moment this
only works in face-select mode, when !138197 is merged this limitation
will be removed.

In practice this change is subtle, making it possible to toggle island
selection no matter which selection mode is currently active.

Details:

- The UI is mostly unchanged, this option is available
  in the same location in the header & menu as a toggle.
- The shortcut 4-key is kept, toggling instead of switching modes.
- Enabling island selection no longer isolates islands,
  it just acts on selection actions made after being enabled.
2025-06-12 07:09:46 +00:00
Christoph Lendenfeld
b4d82d57c8 Merge branch 'blender-v4.5-release' 2025-06-12 08:17:41 +02:00
Christoph Lendenfeld
283ae193d9 Fix: Autokeying properties does not deselect keys
When autokeying properties, it didn't deselect
keys in editors like it does now for other ways of keying.

------

Part of #138877
Not tagging this PR as a fix because it doesn't completely resolve the issue

Pull Request: https://projects.blender.org/blender/blender/pulls/139886
2025-06-12 07:42:44 +02:00
Christoph Lendenfeld
96daf409c0 Fix: Autokey subframes when editing buttons
Previously, autokeying properties from the UI (outliner, n-panel)
would snap to full frames even when the current frame is a subframe.

This PR also fixes the display of properties in the
outliner when subframes are used. If the property is keyed
on the current subframe it is now yellow.

Found while trying to fix #136372

Pull Request: https://projects.blender.org/blender/blender/pulls/140117
2025-06-12 07:40:42 +02:00
Christoph Lendenfeld
04162c9a93 Fix #138695: Pasting single keyframes not taking NLA offset into account
When pasting single keyframes NLA mapping was not applied.

Pull Request: https://projects.blender.org/blender/blender/pulls/139891
2025-06-12 07:39:11 +02:00
Christoph Lendenfeld
da2a09fe63 Fix #139788: Applying a pose no longer autokeys
When applying a pose asset created with 4.4 and later,
autokeyframing no longer worked. That is because poses
are generated without any FCurve groups now, and the
code assumed there to be an FCurve group for every
bone in the pose action.

I decided to remove that assumption and instead use
`BKE_action_find_fcurves_with_bones` which iterates
fcurves in an action+slot combination
and calls the provided callback. This is the logic that
the code to apply a pose uses as well.

Pull Request: https://projects.blender.org/blender/blender/pulls/139794
2025-06-12 07:34:38 +02:00
Sean Kim
c8e5043999 Merge branch 'blender-v4.5-release' 2025-06-11 21:27:13 -07:00
Sean Kim
98739b6b53 Tests: Add Sculpt tests that verify each brush strength curve preset
This commit adds 9 tests that check each of the default brush curve
strength preset options to ensure that none of them cause NaN
propagation. In total this takes approximately 0.7s to run to run.

By design, these tests are very broad and are not a replacement for
other testing, but they should help in reducing the chance of potential
regressions.

Related to #140162

Pull Request: https://projects.blender.org/blender/blender/pulls/140242
2025-06-12 06:26:05 +02:00
Campbell Barton
9fff67ba1b Cleanup: rename UV flags for clarity
Use the `UV_FLAG_*` prefix for UV flags.
2025-06-12 13:25:22 +10:00
Richard Antalik
4fc85a202b VSE: Modal mode for strip add operator
Start frame and especially channel picking algorithm was sub optimal. It
is much better to leave final strip placement decision up to the user
in a form of modal operation.

Move Strips property is added to strip add operators. When enabled,
strip is added to position of mouse cursor, strip overlap is allowed
and strip position then can be changed during modal seq_slide
operation, which is invoked automatically.
This property is saved and drag and drop operations do not change it,
thanks to store/restore hack facilitated by operator customdata.

If translation after strips are added is canceled, added strips are
removed.

Effects with inputs do not use this feature, as their placement is
restricted in X axis and 99% of time, it would be placed directly above
the input strip.

Since the strips are to be placed to mouse position after "modal"
filebrowser is closed, `eventstate->xy` of `wmWindow` is used to read
mouse cursor position in operator exec function.

The seq_slide operator is invoked using `WM_operator_name_call_ptr()`,
as macros or other schemes do not fit this use-case.

Ref: #136515

Pull Request: https://projects.blender.org/blender/blender/pulls/138382
2025-06-12 03:06:48 +02:00
YimingWu
f87c821b96 Fix #140082: Line Art: Use original object id to check dupli objects
In 884ef238c0 line art added a safe guard in depsgraph iterator to
properly handle dupli-objects, but it should check original objects id
for inclusion instead of evaluated objects. Now dupli-objects will show
up correctly.

Pull Request: https://projects.blender.org/blender/blender/pulls/140095
2025-06-12 08:35:01 +08:00
Harley Acheson
da82ed18f1 Merge branch 'blender-v4.5-release' 2025-06-11 16:56:00 -07:00
Harley Acheson
1f1c20fa08 Fix: Allow Properties Snap To Min at 2X Scale
Slight adjustment to the minimum area snapping size to ensure that
Properties snaps to a minimum that shows the category tabs. Currently
this snaps nicely at 1X scale but does not show the categories at 2X.

Pull Request: https://projects.blender.org/blender/blender/pulls/140241
2025-06-12 01:54:28 +02:00
Jesse Yurkovich
449b1ca5a7 Merge branch 'blender-v4.5-release' 2025-06-11 15:52:42 -07:00
Jesse Yurkovich
fe0aa375ac Fix: USD: Correctly process point instancers using overs for the prototypes
The canonical way to define Point Instancers in USD is to use "overs"
for the prototype instances[1]. However, our current support was coded
and tested against setups using Scope prims to contain the prototypes
instead.

Both approaches are valid USD, but we need to support the canonical way
which we so far did not; the overs were incorrectly excluded from
processing.

Original patch from Michael Kowalski

[1] https://openusd.org/release/api/class_usd_geom_point_instancer.html#UsdGeomPointInstancer_protoProcessing

Pull Request: https://projects.blender.org/blender/blender/pulls/140232
2025-06-12 00:52:07 +02:00
Sean Kim
d9c0a7c3a7 Merge branch 'blender-v4.5-release' 2025-06-11 14:45:22 -07:00
Sean Kim
633ca37641 Sculpt: Revert recently introduced brush strength curve changes
This commit effectively reverts the changes introduced in
23951e1b12 that changed how the brush
strength curve calculation works. Since that commit, a number of high
severity regressions have been reported, and the decision to remove
filtering from this method now seems dubious and likely to cause further
problems.

Other interim fixes that were made have not been reverted, as they are
generally correct to do, even if they cause an extra loop over all of
a node's factors & distances. In general, all existing unnecessary calls
to `filter_distances_with_radius` are planned to be removed in 5.0.

Finally, to address the original issue that the mentioned commit was
intended to fix, we now check distance for the constant falloff and
zero out the factor if necessary.

Pull Request: https://projects.blender.org/blender/blender/pulls/140181
2025-06-11 23:44:11 +02:00
Pablo Vazquez
23fb5752ed UI: Theme: Add new Outline Selected property
Allow theming the outline of selected elements. This helps to make
active elements more prominent, and allows for flat theme combinations
not possible before.

Pull Request: https://projects.blender.org/blender/blender/pulls/139850
2025-06-11 23:20:50 +02:00
Hans Goudey
14a42c0928 Cleanup: Use C++ vector types for convex hull API
Pull Request: https://projects.blender.org/blender/blender/pulls/140233
2025-06-11 22:46:27 +02:00
Hans Goudey
0e52e7f273 Merge branch 'blender-v4.5-release' 2025-06-11 12:46:12 -04:00
Hans Goudey
8b764124c2 Fix #140123: Data-block inputs not drawn in node tools inputs
Caused by 26ce934148

Pull Request: https://projects.blender.org/blender/blender/pulls/140147
2025-06-11 18:45:39 +02:00
Hans Goudey
b6764e77ef Mesh: Extend GPU batch limit from 32 to 64
Some refactors (!140156) require adding a few more batches,
but we're already at the limit for how many we can add. This
commit makes the batch flag into a 64 bit integer. It might be
worth refactoring this more to use some system besides a flag,
but for now this simple change is best.

The atomic combination of requests wasn't actually required
and isn't supported for 64 bit integers, so it's just removed here.

Pull Request: https://projects.blender.org/blender/blender/pulls/140164
2025-06-11 18:17:49 +02:00
Hans Goudey
8f1f509368 Cleanup: GPU: Use smaller backing types for a few enums
This makes a few structs a little bit smaller.

Pull Request: https://projects.blender.org/blender/blender/pulls/140157
2025-06-11 18:17:28 +02:00
Clément Foucault
ad1bb4602d Fix: GPU: Assert on startup in Vulkan caused by polyline
The polyline workarounds were not working as expected
since #139627 as it was not garanteed that the polylines
shader would be correctly initialized with the workaround
tag.

Adding a wrapper class to ensure the initialization fixes
the issue.
2025-06-11 17:28:38 +02:00
YimingWu
ea9ab0ec04 Fix #140082: Line Art: Use original object id to check dupli objects
In 884ef238c0 line art added a safe guard in depsgraph iterator to
properly handle dupli-objects, but it should check original objects id
for inclusion instead of evaluated objects. Now dupli-objects will show
up correctly.

Pull Request: https://projects.blender.org/blender/blender/pulls/140095
2025-06-11 17:03:22 +02:00
Brecht Van Lommel
9a4fdd9b86 Merge branch 'blender-v4.5-release' 2025-06-11 16:15:56 +02:00
Brecht Van Lommel
6b128fb915 Cycles: Disable HIP-RT by default and mark as unstable
In blender-v4.5 some problematic commits were reverted, but for 5.0 we will
keep the changes and wait for the HIP SDK to be upgraded and hopefully fix
these issues.

Ref blender/blender#139836
2025-06-11 16:15:37 +02:00
Brecht Van Lommel
02c1e959cf Fix #139950: OpenColorIO crash running Blender from path with $
As with the previous fix for #119560, this does not address the problem
in OpenColorIO itself but at least catches the exception to avoid crashing.
Which might have also happened with invalid OpenColorIO configurations.

Pull Request: https://projects.blender.org/blender/blender/pulls/140145
2025-06-11 16:15:11 +02:00
Shengyu Qu
a741c8a3fb Color Management: Rename from_reference to from_scene_reference
In OpenColorIO v2 the name changed but remained backwards compatible.

Pull Request: https://projects.blender.org/blender/blender/pulls/139683
2025-06-11 16:14:25 +02:00
Brecht Van Lommel
697d13bbfc Fix #139918: Color management assert displaying render
This buffer can not just be scene linear, but data too.

Pull Request: https://projects.blender.org/blender/blender/pulls/140141
2025-06-11 16:10:03 +02:00
Brecht Van Lommel
899881518e Merge branch 'blender-v4.5-release'
The revert commits this merges in are ommitted, they are only meant for the
blender-v4.5-release branch.
2025-06-11 15:48:39 +02:00
Brecht Van Lommel
142eab27ef Merge branch 'blender-v4.5-release' 2025-06-11 15:47:58 +02:00
Brecht Van Lommel
7f380e0644 Revert "Fix: Cycles: Do not count volume bounds bounce as transparent"
This reverts commit 23c762e388 in the
blender-v4.5-release branch to work around HIP compiler issues. It will
remain in the main branch.

Ref blender/blender#139836
2025-06-11 15:47:07 +02:00
Brecht Van Lommel
45b11a6619 Revert "Fix: Cycles: Inconsistency in transparent bounces for NEE and forward path"
This reverts commit 64dc9cc98c in the
blender-v4.5-release branch to work around HIP compiler issues. It will
remain in the main branch.

Ref blender/blender#139836
2025-06-11 15:47:07 +02:00
Brecht Van Lommel
34838a9531 Revert "Cycles: Fix inconsistency in Ng handling between Microfacets and other closures"
This reverts commit a6015e1411 in the
blender-v4.5-release branch to work around HIP compiler issues. It will
remain in the main branch.

Ref blender/blender#139836
2025-06-11 15:47:07 +02:00
Brecht Van Lommel
04e325029f Revert "Cycles: Guiding cleaning up and refactoring the guiding code"
This reverts commit 5abf42012d in the
blender-v4.5-release branch to work around HIP compiler issues. It will
remain in the main branch.

Ref blender/blender#139836
2025-06-11 15:47:06 +02:00
Brecht Van Lommel
501b4641f6 Revert "Cleanup: Unused arguments in Cycles kernel"
This reverts commit 0e7a696819 in the
blender-v4.5-release branch to work around HIP compiler issues. It will
remain in the main branch.

Ref blender/blender#139836
2025-06-11 15:47:06 +02:00
Clément Foucault
20803fb307 Fix: GPU: Mesa driver on AMD GPU matches GPU_DRIVER_OFFICIAL
The check for Mesa needed to be before the more coarse
check about an AMD GPU. Also, it seems the newer drivers
do not have `X.Org` in the vendor string.
Checking for `Mesa` in the version string seems to be
the correct way.

Pull Request: https://projects.blender.org/blender/blender/pulls/140204
2025-06-11 15:43:50 +02:00
Campbell Barton
b6b80b2842 Cleanup: reorder initialization to simplify freeing on early exit 2025-06-11 13:39:22 +00:00
Clément Foucault
2f63488ce9 Fix #140113: White flickering when changing a texture on EEVEE
Fixed by not doing async loading and always stage correct
texture reference.

Unfortunately the code is getting a bit messy since the
texture loading is not done at the GPUMaterial level.
So we need one async and one synchronous path inside
`PassBase<T>::material_set`.

`ImageGPUTextures` now contains references to the location
of the future `GPUTexture *`.

Also fix #140001

Pull Request: https://projects.blender.org/blender/blender/pulls/140203
2025-06-11 15:23:24 +02:00
Jacques Lucke
d83bfee347 Core: support LargeBHead8 in blendfile.py
This indirectly also fixes `blend2json.py` because it's build on top of
`blendfile.py`.

Main changes:
* Update .blend file header parsing to support the different header types.
* Support unpacking `LargeBHead8`.
* Use `namedtuple` instead of index access when accessing block header because
  the order of items is different now.
* Update comments that were either fully redundant or already outdated.

Pull Request: https://projects.blender.org/blender/blender/pulls/140195
2025-06-11 14:30:37 +02:00
Jacques Lucke
4df037e582 Merge branch 'blender-v4.5-release' 2025-06-11 14:26:56 +02:00
Jacques Lucke
7b291de3c3 Fix #140193: error when deleting panel with subpanel as first item 2025-06-11 14:26:00 +02:00
Clément Foucault
db79a2e737 Fix: GPU: Wrong attribute types for UNORM 8bit attributes
This was a mistake inside e57359726f.
Simply replacing SNORM_8 by UNORM_8 fixes the issue.
2025-06-11 14:21:38 +02:00
Clément Foucault
4c655f076c GPU: Shader: Parallel warmup of builtin shaders
This reduces the time needed to get to the first pixel
on screen by multithreading the builtin shader compilation.

We avoid doing this if subprocess compilation is on as
the overhead of potentially partially starting all subprocess
is far greater than the benefit of paralllel compilation.

For some reasons, the compilation is much slower when
done async for these shaders (on Metal ~200ms > ~1.2ms),
so the saving might not be substantial.

Mac M1: First frame 6s > 5s.

Pull Request: https://projects.blender.org/blender/blender/pulls/139627
2025-06-11 14:08:38 +02:00
Jacques Lucke
abe7f8cb13 Geometry Nodes: support creating Separate Bundle node with correct sockets
Similar to #140185. This allows creating a Separate Bundle node using
link-drag-search. All the sockets are created automatically based on the linked
Combine Bundle node.

Pull Request: https://projects.blender.org/blender/blender/pulls/140187
2025-06-11 13:56:56 +02:00
Bastien Montagne
26779c2d67 Merge branch 'blender-v4.5-release' 2025-06-11 13:28:40 +02:00