Commit Graph

150077 Commits

Author SHA1 Message Date
Harley Acheson
d71ce31122 Merge branch 'blender-v4.4-release' 2025-03-04 09:12:00 -08:00
Harley Acheson
84123446e3 Fix #135324: Data-block selector icon drawn too big
DPI scaling was applied twice. Added an API comment to make this more
clear for the caller of the function. This is exactly the changes to
main committed in 47bbf3fcae, which is a
correction to 1f88645728.

Pull Request: https://projects.blender.org/blender/blender/pulls/135411
2025-03-04 18:11:00 +01:00
Hans Goudey
a2386789da Cleanup: Sculpt: Simplify enabling BVH build debug time prints 2025-03-04 12:04:38 -05:00
Julian Eisel
7e99e575a4 Fix: Fix most cases of asset browser preview flickering on undo/redo
Mitigates #93726.

With this asset previews will no longer flicker in the asset browser
on actions like undo, redo or when using "Adjust Last Operation" if
the asset library doesn't contain assets from the current file.

Previews of assets from the current file would have to be cleared on
undo & redo, because their memory location can change then. However the
file browser's data model didn't allow clearing just these previews, so
previews from external assets would have to be reloaded from disk too,
causing the flickering.

Noticed we can trivially skip clearing of previews if there are no
assets from the current file anyway. This mitigates the issue quite a
bit until preview handling is rewritten, see #122439.
2025-03-04 18:04:28 +01:00
Jacques Lucke
ba4cf3f738 Cleanup: add clarifying comment at assert checking if vbo is empty
I've hit this a couple of times and disabling it always worked fine for me. So
it's good to make it more obvious that there is an actual bug instead of a
missed optimization.

Pull Request: https://projects.blender.org/blender/blender/pulls/135467
2025-03-04 18:03:59 +01:00
Brecht Van Lommel
28f7e2ae91 Merge branch 'blender-v4.4-release' 2025-03-04 17:53:08 +01:00
Brecht Van Lommel
a3baf60df4 Fix: Cycles device info uninitialized variable
It's unclear if this caused an actual bug, detected by ASAN.
2025-03-04 17:46:04 +01:00
Miguel Pozo
d3ee449ca0 Fix: EEVEE: Handle multiple specialization constants variants
Correctly handle cases where multiple scenes with different
specialization constants are rendered concurrently.

Pull Request: https://projects.blender.org/blender/blender/pulls/135270
2025-03-04 17:41:26 +01:00
Hans Goudey
2d12dc4790 Merge branch 'blender-v4.4-release' 2025-03-04 11:40:58 -05:00
Hans Goudey
ebb916aa1e Fix: Missing label for unassigned node tools menu
The label was visually missing in menu search.

Pull Request: https://projects.blender.org/blender/blender/pulls/135461
2025-03-04 17:35:54 +01:00
Sean Kim
5b04b4ac18 Sculpt: Add Mask by Color to menu bar and enable redo panel
This commit adds the `sculpt.mask_by_color` operator to the 'Mask' menu item in Sculpt Mode. This
allows users to access it via operator / property search. Additionally, the Redo panel is exposed
for general usage.

Pull Request: https://projects.blender.org/blender/blender/pulls/135210
2025-03-04 17:33:45 +01:00
Sean Kim
335b9b0388 Cleanup: Minor formatting changes for recently added python tests
* Adds docstrings to `bl_object.py` and `bl_sculpt.py` tests so that
  failure output is more helpful.
* Renames `bl_object.py` class and function to be more inline with other
  test naming

Pull Request: https://projects.blender.org/blender/blender/pulls/135417
2025-03-04 17:32:02 +01:00
Jacques Lucke
c19a1d1fb9 BLI: new add_overwrite methods for Set and VectorSet
These methods can be useful when storing keys that contain more data than just
what affects their hash. This came up in #134000. `Map` already has a method
with the same name.

Pull Request: https://projects.blender.org/blender/blender/pulls/135456
2025-03-04 17:30:54 +01:00
Sean Kim
d6f885c408 Cleanup: Remove #ifdef blocks for Dyntopo edge code
At this point, it is unlikely that we will revert the changes made over
a decade ago to the Dyntopo edge splitting code. The old code will still
exist in the git history, but to improve readability, this commit
flattens out the blocks and removes the `#define` statements.

Pull Request: https://projects.blender.org/blender/blender/pulls/135410
2025-03-04 17:30:16 +01:00
Julian Eisel
5a29367325 Merge branch 'blender-v4.4-release' 2025-03-04 17:29:51 +01:00
Sean Kim
0dec2b829f Cleanup: Update LayerTypeInfo#free docstring
Pull Request: https://projects.blender.org/blender/blender/pulls/135419
2025-03-04 17:29:28 +01:00
Lukas Stockner
39a6c222b2 Cycles: Split OSLManager out of OSLShaderManager
This is preparation for #129495.

Currently, all of OSL is managed by the OSLShaderManager. This makes it so that the general OSL setup is handled by a general OSLManager, and both the OSLShaderManager and (in the future) the Camera can use it to manage their scripts.

Pull Request: https://projects.blender.org/blender/blender/pulls/135050
2025-03-04 17:27:10 +01:00
Julian Eisel
d0f5f3bd58 Fix #131307: Assert when creating a new brush asset
Adding a new asset will tag asset browsers to clear and reload the
assets from the current file. Since a859ed1130, such changes will also
clear all asset browsers showing the affected asset libraries. So the
clearing of current file assets would happen on an already cleared
asset/file list. This case wasn't considered before, so it would lead to
a failed but harmless assert. Handle this case properly.
2025-03-04 17:21:39 +01:00
Julian Eisel
a308bfca69 Merge branch 'blender-v4.4-release' 2025-03-04 17:20:43 +01:00
Julian Eisel
9122f18393 Fix #135186: Asset browser empty after saving pose asset
Since a859ed1130, changes like adding an asset will cause all visible
asset browsers showing the affected asset library to be cleared. This
should cause the asset browser to trigger a re-load of the asset
libraries, but a logic error made only assets from the current file be
loaded instead of the full library.
2025-03-04 17:18:29 +01:00
Brecht Van Lommel
3dab100860 Fix: ASAN errors after addition of texture pool
Same fix as #132504. Free the texture pool before the derived GPU context
class, as that one is used as part of freeing the texture pool.

Pull Request: https://projects.blender.org/blender/blender/pulls/135444
2025-03-04 16:54:05 +01:00
Sybren A. Stüvel
f980f80dd4 Cleanup: add explanatory comment about action slot auto-assignment
Add more explanation to the current action slot auto-assignment logic.

No functional changes.

Pull Request: https://projects.blender.org/blender/blender/pulls/135445
2025-03-04 16:40:25 +01:00
Alaska
b149388000 Merge branch 'blender-v4.4-release' 2025-03-05 02:56:55 +13:00
Alaska
72437aa87c Release tools: Add a option to ignore certain bug reports in list of bug fixes
While sorting reports for the "list of bug fixes for old bug reports",
occasionally triagers have encountered a report that's too difficult or time consum
ng to track down the correct information for.

In cases like this, it was decided that just ignoring the bug report
was a better option, and so this commit adds a option to do this by
adding the string `skip_for_bug_fix_release_notes` to the report.
preferable as `<!-- skip_for_bug_fix_release_notes -->` since it's
invisible.

Pull Request: https://projects.blender.org/blender/blender/pulls/135218
2025-03-04 14:55:58 +01:00
Nathan Vegdahl
944d9ab634 Fix: missing include in unit test file 2025-03-04 14:19:37 +01:00
Omar Emara
b03e9be22d Refactor: Compositor: Assert for unneeded allocations
This patch refactors how the compositor deals with outputs that are
allocated but not needed. Previously we allowed such allocations and
implicitly release them right after operations are computed. This is a
weak design, so we now require developers to only allocate outputs that
are actually needed and assert otherwise. The release mechanism is
therefore removed.
2025-03-04 15:05:41 +02:00
Sebastian Parborg
0a9dc14c2e Merge branch 'blender-v4.4-release' 2025-03-04 13:56:10 +01:00
Sebastian Parborg
277add8fc9 Add ability to create a test data archive with make_source_archive
This makes it so that we ship the test data for every major release
in its own separate archive. (In case someone wants to easily run the
tests for a specific older release without using git)

Pull Request: https://projects.blender.org/blender/blender/pulls/135293
2025-03-04 13:55:23 +01:00
Sebastian Parborg
7913237d33 Change make_source_archive to include all submodule files
It will not include submodules that are not checked out by default.
It now also has an explicit variable for folders to skip.

Pull Request: https://projects.blender.org/blender/blender/pulls/135293
2025-03-04 13:55:12 +01:00
Nathan Vegdahl
ca980dc4f9 Fix #134746: Action Slot keyframe summary incorrect in Action Editor and Dopesheet
In the Action Editor and Dopesheet, Action/Slot summaries erroneously showed
keys that were hidden in their sub-channels.

The root cause was that the functions for building Action/Slot summary key
lists, `action_to_keylist()` and `action_slot_to_keylist()`, weren't doing
animation filtering *at all*, instead just looping over all f-curves.

This PR fixes the bug by replacing `action_slot_to_keylist()` with a new
`action_slot_summary_to_keylist()` function, which calls into the animation
filtering code to determine which f-curves to include in their key list, and
also using it in place of `action_to_keylist()` at the relevant call sites.
Additionally, properly filtering the channels for the summaries requires both a
`bAnimContext` and the ID that's being animated, so this PR threads those
through to `action_slot_summary_to_keylist()`.

Note that `action_to_keylist()` is still used in some places that actually
*want* an unfiltered list of keys. Those call sites have been left as-is, and
`action_to_keylist()` remains for that purpose.

Pull Request: https://projects.blender.org/blender/blender/pulls/134922
2025-03-04 13:52:03 +01:00
Omar Emara
c55594f0a1 Fix: Z Combine asserts when one output is unused
The Z Combine node asserts if one of its outputs are unused. That's
because we compete both outputs even if they are not needed. To fix
this, we skip outputs that are not needed by splitting the shaders to
compute each output independently.
2025-03-04 14:05:55 +02:00
Clément Foucault
fb6c68aaef Fix: GPU: Shader source log flooding the console on error
This has been commited by mistake in 86b70143d5
2025-03-04 13:05:22 +01:00
Campbell Barton
c7cde524fb Revert "PyAPI: document never none pointer/collection properties"
This reverts commit
48abc7aabc &
62599317dd.

Revert !126755 as it was only meant to impact document generation
but it infact made functional changes, see: !135352.
2025-03-04 22:20:40 +11:00
Omar Emara
b06ed9d406 Compositor: Track update count for cache invalidation
This patch refactors static cache invalidation of images by tracking an
update count. Images now store a runtime update count that is updated
every time the image is tagged for update. Cached images store a copy of
the update count at the moment they were cached, and are invalidated if
if it changed.

Compared to #134878, this is simpler and more robust, since update IDs
are isolated to images only and not to the DEG update count. Though this
only supports images specifically because they are not covered by the
copy-on-evaluation system, which means #134878 will cause multiple
depsgraph to fight over images.

Pull Request: https://projects.blender.org/blender/blender/pulls/134905
2025-03-04 12:04:38 +01:00
Omar Emara
2284b7538a Fix: Keying asserts when Edges output is unused
The Keying node asserts if its Edges output is unused. That's because we
compete the outputs even if it not needed. To fix this, we skip that
output if not needed.
2025-03-04 12:43:08 +02:00
Lukas Tönne
1b18115a33 Fix #135101: Grease Pencil: Eraser crashes when handling multiple layers
Changing the `affected_drawings_` set in a threaded loop is not safe.
Since running the eraser in parallel over multiple drawings is unlikely to
improve performance on top of internal threading, handling layers in a simple
sequential loop is preferable here.

Pull Request: https://projects.blender.org/blender/blender/pulls/135428
2025-03-04 11:19:51 +01:00
Jacques Lucke
f291b116be Cleanup: extract function to capture field on geometry components 2025-03-04 11:00:31 +01:00
Christoph Lendenfeld
fae6f748a5 Merge branch 'blender-v4.4-release' 2025-03-04 10:57:10 +01:00
Christoph Lendenfeld
39fdbded9a Fix #135122: Crash when using pose assets created without slots.
The issue was that the versioning code didn't run when loading the action.
Thus it had no slots and so was crashing trying to get the first slot.

This PR fixes that in 2 ways:
* Check the slot count of the loaded action, and return/notify the user
* Actually make sure the actions are versioned

Point 1 is important anyway because actions can have no slots (though unlikely).
Point 2 ensures that old pose assets can actually be used

Pull Request: https://projects.blender.org/blender/blender/pulls/135232
2025-03-04 10:56:23 +01:00
Omar Emara
7356529895 Cleanup: Remove single value reduction operation
The ReduceToSingleValueOperation has been dead code since 2b2b27abf5, so
remove it.

Pull Request: https://projects.blender.org/blender/blender/pulls/135427
2025-03-04 10:44:16 +01:00
Omar Emara
afcd23fbe2 Fix: Scene Time asserts when one output is unused
The Scene Time node asserts if one of its outputs are unused. That's
because we compete both outputs even if they are not needed. To fix
this, we skip outputs that are not needed.
2025-03-04 10:52:11 +02:00
Sergey Sharybin
0da19b8dab Merge branch 'blender-v4.4-release' 2025-03-04 09:37:06 +01:00
Philipp Oeser
717ddddfa1 Merge branch 'blender-v4.4-release' 2025-03-04 09:35:58 +01:00
Sergey Sharybin
5cd758368a Fix #134992: HIP-RT fails building BVH if Blender path contains space
Quite obscure issue, seemingly caused by the fact that HIP-RT is
passing a large (about 20 MB) global array to a different library
(HIP driver, via hipModuleLoadData). Having global variables of
such size seems to be always problematic as they can not be stored
on stack and, possibly, extra mapping is involved here. It is not
clear whether it is a quirk of the HIP driver, or Linux, or, maybe,
something completely different.

It is possible to work-around the problem by making a temporary
copy of data on heap memory and pass it to the hipModuleLoadData().
This is how other areas are dealing with modules in Blender.

This change contains patch against HIP-RT and the new HIP-RT
library compiled with the patch. It seems to fix the problem
reported in the report.

This change does not resolve OIDN on HIP GPU which seems to have
the same issue. However, it is not a recent regression and the
bug with OIDN GPU denoising can be reproduced using Blender 4.3.

Pull Request: https://projects.blender.org/blender/blender/pulls/135403
2025-03-04 09:35:54 +01:00
Philipp Oeser
7fcb565776 Fix #135330: Incorrect pasted flipped armature keyframes
Caused by 6d832ee5b3

The bone names were flipped correctly, however, we were missing the
actual FCurve BezTriple flipping.
This was caused by passing the wrong FCurve into
`do_curve_mirror_flippping` -- this function is checking for existence
of the FCurve in the `KeyframeCopyBuffer`, so we gotta pass
`fcurve_in_copy_buffer` (instead of the new fcu).

Pull Request: https://projects.blender.org/blender/blender/pulls/135381
2025-03-04 09:35:42 +01:00
Philipp Oeser
64c15823f7 Fix #135355: ops.render.opengl() in the console wont return {'FINISHED'}
Caused by 40ac21e5a5 [does not remember/resore the previous ScrArea &
ARegion anymore].
Without this, the operator reporting might get confused by using the
wrong area/region, so added back

NOTE: I tried to just notify `NC_SPACE | ND_SPACE_INFO_REPORT` in
`screen_opengl_render_end` (same as in `wm_operator_finished` >
`wm_operator_register`), but to no avail...

Think this is quite good pratice to leave us with the original area/
region anyways though.

Thx @brecht for improvements (restoring in `screen_opengl_render_init`
already, also taking care of restoring in some early out cases)

Co-authored-by: Brecht Van Lommel <brecht@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/135394
2025-03-04 09:35:27 +01:00
Philipp Oeser
3589c5489a Fix: Cursor snapping does not work for Curves bezier handles
For this to work, we have to take into account handles in TransVert as
well.

Behavior is the same as in legacy curves (meaning that if the control
point itself is selected, the handles are ignores).

Part of #133448 (same thing for grease pencil, which I plan to also make
part of TransVert, but better solve for Curves first, so we can share
code here).

Pull Request: https://projects.blender.org/blender/blender/pulls/134945
2025-03-04 09:35:12 +01:00
Omar Emara
85a78774da Merge branch 'blender-v4.4-release' 2025-03-04 09:34:41 +02:00
Omar Emara
a50144e55c Fix #134914: Backdrop remain after loading new file
The compositor backdrop is still visible even after a new completely
different file is loaded. This is because compositor contexts cache
things like the backdrop, and contexts are stored on interactive
compositor renders, which are not freed until Blender is closed. To fix
this, we cleanup the interactive compositor renders that were created
upon file load.

Pull Request: https://projects.blender.org/blender/blender/pulls/135390
2025-03-04 08:33:17 +01:00
Jeroen Bakker
4a95c0405c Cleanup: Subdiv: Remove wrapper OpenSubdiv_Buffer
`OpenSubdiv_Buffer` is a wrapper that was introduced at the time
that Blender couldn't use CPP directly. It contains a pointer to
a VertBuf and callbacks to use GPU module on that buffer.

This PR replaces OpenSubdiv_Buffer with `blender::gpu::VertBuf` and
removes the wrapper.

NOTE: OpenSubdiv tests are added to blender_test executable to make the
library dependencies not to complicated.

Pull Request: https://projects.blender.org/blender/blender/pulls/135389
2025-03-04 07:51:15 +01:00