Commit Graph

145147 Commits

Author SHA1 Message Date
Sean Kim
a3f523fd61 Sculpt: Add multires version of current performance benchmarks
This commit modifies the `performance/api/sculpt.py` test to add a new
set of tests that run with the multires modifier present. New tests
have `multires_` prepended to the brush name to group them separately
from the existing mesh tests.

Part of #130772

Pull Request: https://projects.blender.org/blender/blender/pulls/132822
2025-01-08 21:32:57 +01:00
Harley Acheson
5ec2547ab0 Fix #132386: Scale Tree View Hierarchy Lines with 2D Zoom
As the local zoom in changed, scale the vertical start and end of the
hierarchy lines by the 2D aspect value so they remain lining up with
the other content.

Pull Request: https://projects.blender.org/blender/blender/pulls/132817
2025-01-08 21:02:17 +01:00
Sean Kim
56128cdf9a Cleanup: Add developer docs link in benchmark.py for more information
Pull Request: https://projects.blender.org/blender/blender/pulls/132814
2025-01-08 20:35:51 +01:00
Brecht Van Lommel
1210cc5d52 Fix: Cycles random crash loading images
Add mutex lock to avoid accessing vector while it's getting resized.

Found through a flaky test. Thanks Sergey and Alaska for the help
investigating this.

Pull Request: https://projects.blender.org/blender/blender/pulls/132811
2025-01-08 20:32:31 +01:00
Harley Acheson
dbe50711ce Fix #132097: Color Tooltips Without Alpha
Currently the popup tooltips for colors shows the same display whether
the color supports alpha or not. This can be confusing when what is
shown could imply that alpha is changeable when it is not.  This PR
makes it clear by not showing alpha values for RBA colors.

Pull Request: https://projects.blender.org/blender/blender/pulls/132287
2025-01-08 20:23:38 +01:00
Jacques Lucke
db7ff834c9 Refactor: Nodes: remove context argument from propagation function
The part that used the context does not seem to be necessary anymore. If the
given tree has any update tag set, the same notifiers will be sent anyway by the
`tree_changed_fn` callback.

If it turns out that we are now missing some notifier, then we have to change
the caller. It either has to call the proper `BKE_ntree_update_tag_*` function,
or create the notifier directly.

This change helps to generalize the concept of propagating changes in original
data, because the context is rarely available.

Pull Request: https://projects.blender.org/blender/blender/pulls/132810
2025-01-08 19:45:50 +01:00
Harley Acheson
e65b267a2c Fix #118418: Update Info Editor for Non-Owned OPERATOR_FINISHED
The referenced bug report shows the processing of a report by the UI
creating a status bar banner but not informing the Info editor. This is
because for this type of report we are only sending a notifier of
ND_SPACE_INFO_REPORT when the operator finishes with OPERATOR_CANCELLED
and not with OPERATOR_FINISHED. The report is only shown in Info on the
next refresh. This PR just sends the notifier on both canceled and
finished.

Pull Request: https://projects.blender.org/blender/blender/pulls/132315
2025-01-08 19:34:35 +01:00
Jacques Lucke
26609d3282 Fix: typo in group output node ui name
Caused by 2afd946ba6.
2025-01-08 19:32:43 +01:00
Miguel Pozo
da7de66ade Fix #132156: Overlay-Next: Scaled camera selection
Add missing matrix normalization.
2025-01-08 19:24:30 +01:00
Jacques Lucke
0949a54060 Cleanup: remove unused DefNode macro argument 2025-01-08 18:48:10 +01:00
Julian Eisel
cce7a862dc Fix: UI: Incorrect tree view hierarchy line drawing
Scrolling a tree view could result in incorrectly drawn hierarchy lines, see
https://projects.blender.org/blender/blender/issues/132386#issuecomment-1384663

Two issues:
- The index of the last descendant of an item was off by one
- When a hierarchy line was skipped because it was scrolled out of view, the
  following indices would be wrong.
2025-01-08 18:37:18 +01:00
Sebastian Parborg
a01b70f70a Linux: Remove deprecated KDE flag in our .desktop file
This flag was only used in earlier KDE Plasma 5.x releases.
KDE Frameworks 5.86.0 removed this flag which released in 2021.

From what I can tell there are no maintained versions of Kubuntu, Debian,
etc that ships with an older version, so this should be safe to remove.
2025-01-08 18:22:14 +01:00
Harley Acheson
a7334db09b Fix #70246: Don't Clear Tooltips on Timer Events
While processing handlers we are currently clearing tooltips if we
process any keymap handlers. This behavior was added in 8f8e91987b
so that tooltips didn't remain showing after operators started like
walk navigation. However this keeps any tooltips from showing while
animation is playing. This PR just alters the clearing to not do so
if the event is from a timer. That way we clear tooltips only for
deliberate interactive actions.

Pull Request: https://projects.blender.org/blender/blender/pulls/132539
2025-01-08 18:10:02 +01:00
Hans Goudey
2afd946ba6 Refactor: Nodes: Move UI name out of NOD_static_types.h header
As part of an effort to remove this header, reducing the need for macro/
include magic and making node definitions more independent, move
the node UI name and description definitions to each node's file.
The UI name, description, and idname are also moved to std::string
instead of char arrays.

Similar to b43e2168e3.

Pull Request: https://projects.blender.org/blender/blender/pulls/132708
2025-01-08 18:07:11 +01:00
Jacques Lucke
155fae3316 Fix #127056: Reset to default operator does not work for menu inputs
Two places had to be fixed to support this:
* `RNA_property_enum_get_default` needs to handle the case when the property is
  backed by an `IDProperty`. This is just like in
  `RNA_property_float_get_default`.
* The default value has to be copied from the node group interface to the
  geometry nodes modifier inputs.

Pull Request: https://projects.blender.org/blender/blender/pulls/132740
2025-01-08 16:45:10 +01:00
Jacques Lucke
e853978edb Git: ignore compile_commands.json
The guide for using clang suggests to link the `compile_commands.json` file into
the source repo to make it easier for clangd to find it. This works well in my
test but has the problem that git wants to track that file. This patch adds the
`compile_commands.json` file to `.gitignore` to avoid committing it
accidentally.

Pull Request: https://projects.blender.org/blender/blender/pulls/132796
2025-01-08 16:42:50 +01:00
Hans Goudey
13b79072e2 Refactor: Nodes: Use C++ new, std::string in node/socket/tree types
Make the type structs non-trivial, use new and delete for allocation and
freeing, and use std::string for most strings they contain. Also use
StringRef instead of char pointers in a few places. Mainly this improves
ergonomics when working with the strings.

Pull Request: https://projects.blender.org/blender/blender/pulls/132750
2025-01-08 16:34:41 +01:00
Bastien Montagne
b0e5b6810c Fix building on linux with clang 18.
Yet another missing include, caused by 8f8ae302ba presumably.
2025-01-08 15:58:10 +01:00
Bastien Montagne
be936025ea Cleanup: Replace some asserts by static asserts. 2025-01-08 15:50:52 +01:00
Sergey Sharybin
db6606dab9 Buildbot: Allow specifying explicit HIP version for Linux
Previously it was a single version specification which was only
used by Windows.

In practice we actually have two different SDKs for Linux and
Windows. This change makes it possible to specify explicit HIP
version for Linux which could be different from Windows.

No functional changes expected, the same HIP SDK version is
used, just explicitly.

Ref #131976

Pull Request: https://projects.blender.org/blender/blender/pulls/132694
2025-01-08 15:24:35 +01:00
Aras Pranckevicius
29e8c0ac01 Fix #132374: WebM/VP9 videos with transparency do not have alpha channel
A work around ffmpeg issue that everyone (e.g. OBS) seems to be doing.
By default ffmpeg uses built-in VP8/VP9 decoders, however those
do not detect alpha channel (https://trac.ffmpeg.org/ticket/8344 -
the bug filed in 2019, currently still open in ffmpeg 7.1. There's
an older report from 2016 too, https://trac.ffmpeg.org/ticket/5792).

The trick for VP8/VP9 is to explicitly force use of libvpx decoder.
Only do this where alpha_mode=1 metadata is set. Note that in order
to work, the previously initialized format context must be closed
and a fresh one with explicitly requested codec must be created.

Pull Request: https://projects.blender.org/blender/blender/pulls/132795
2025-01-08 15:10:41 +01:00
Aras Pranckevicius
b520ec270a Fix #90406: VSE strip blend mode/opacity reset to default wrong values
Make "reset to default" on these properties do:
- Blend: Alpha Over
- Opacity: 1.0
- Volume: 1.0

Pull Request: https://projects.blender.org/blender/blender/pulls/132764
2025-01-08 15:02:29 +01:00
Hans Goudey
3086a0d6c5 Fix #132760: Node tool image inputs don't work
The input ID evaluation didn't account for data-block types that aren't
handled by the copy-on-evaluation system. For those types, we should
just use the original ID in geometry nodes, just like the modifier.

Pull Request: https://projects.blender.org/blender/blender/pulls/132768
2025-01-08 14:33:58 +01:00
Omar Emara
c37d51f73d Compositor: Allow tinting Glare
This patch adds two new inputs to the Glare node, Saturation and Tint.
Their function is to tint the color of Glare to any color the user
wants.

This is a partial implementation of #124176 to address #131325.

Pull Request: https://projects.blender.org/blender/blender/pulls/132744
2025-01-08 13:18:58 +01:00
Omar Emara
8f8ae302ba Refactor: Compositor: Moved wrapped translation to its own code
This patch moves wrapped translation from a special case of the general
transform algorithm to the Translate node. Since the Translate node is
the only user of this special case, it doesn't make sense to complicate
a generate algorithm with it. This will make future refactors of this
code easier.

Pull Request: https://projects.blender.org/blender/blender/pulls/132793
2025-01-08 12:42:13 +01:00
YimingWu
ba50d5a658 Fix #132241: Grease Pencil: Preserve cyclic state when extruding
When extruding from points on a cyclic stroke (in which case it creates
a new detached stroke), the original stroke should remain cyclic. This
is achieved by gathering curve attributes first then manually set non
cyclic to newly created strokes.

Pull Request: https://projects.blender.org/blender/blender/pulls/132261
2025-01-08 12:35:37 +01:00
Brecht Van Lommel
837648a79d Cleanup: Harmless ASAN warning with Hydra render 2025-01-08 12:14:59 +01:00
Brecht Van Lommel
f20631f313 Cleanup: Compiler warning building without OpenVDB 2025-01-08 12:14:59 +01:00
Brecht Van Lommel
84ae25c957 Fix #132649: Cycles display memory leak when building without OpenColorIO 2025-01-08 12:14:59 +01:00
Brecht Van Lommel
0cbf808593 Fix #124012: Missing DENOISER_NONE option in Cycles integrator API 2025-01-08 12:14:59 +01:00
Habib Gahbiche
55c38c9850 Fix #127254: Compositor crop gizmo suggests there is a valid crop when there isn't one
Prevent users from creating an invalid bounding box for cropping. The user input is checked and is overridden if it will invert the bounding box, i.e. `xmin > xmax` and `ymin > ymax` of gizmos is not allowed.

Pull Request: https://projects.blender.org/blender/blender/pulls/128550
2025-01-08 12:14:31 +01:00
Aras Pranckevicius
368c5b245b Fix #123821: VSE Curves modifier does not update when switching between Standard/Filmic
The issue was that the current frame was already cached, and the cache
was not invalidated when switching CurveMapping "tone"
(standard/filmic) property.

There does not seem to be a good way of doing it, besides scanning
the whole scene searching for which strips use the modified curve
mapping.

Various other properties of curve mapping seem to work right now, as
a byproduct of cache invalidation being done at UI level, not RNA
level. Arguably (see comments on #123821) these should not be done at
UI level, but that's for another day. The reason why "tone" is not
done at UI level is that the UI widget is different (just a button)
and is hard to hook up invalidation logic into that.

Pull Request: https://projects.blender.org/blender/blender/pulls/132742
2025-01-08 11:33:21 +01:00
Aras Pranckevicius
e0044790d3 Fix #115493: AV1 lossless encoding is not actually lossless
All other YUV based codecs switch from default 4:2:0 YUV layout
(which is lossy) to a full resolution 4:4:4 YUV. However AV1 was not
doing that, probably by oversight.

Pull Request: https://projects.blender.org/blender/blender/pulls/132738
2025-01-08 11:26:53 +01:00
Aras Pranckevicius
5839d03c0b Fix #85392: Clarify movie clip theme color labels
Theme color UI labels for both path_before and path_keyframe_before
(and likewise for "after") were identical. Clarify them.

Pull Request: https://projects.blender.org/blender/blender/pulls/132745
2025-01-08 11:25:31 +01:00
Campbell Barton
7e8dcf77db Cleanup: pass UnitSettings as a const reference 2025-01-08 21:22:45 +11:00
Campbell Barton
e949ff7334 Fix unit scale use when when units were disabled
UnitSettings::scale_length was used to scale reported
values for operators (translate, shrink-fatten, voxel-size).

This isn't expected as the value isn't editable when the unit-system
is set to None.

Add BKE_unit_value_as_string_scaled utility function for clarity &
to ensure scaling is only applied when it should be.
2025-01-08 21:07:23 +11:00
Campbell Barton
361e98b09e Cleanup: move BKE_scene_unit_scale to BKE_unit_value_scale
This doesn't use any scene types, move to BKE_unit.hh
2025-01-08 21:03:50 +11:00
Alaska
7a5c46194a Tests: Update Texture coordinate tests so they produce more useful hydra results
The hydra render engine can not render a colour connected directly
to a material output. This was used a lot in the texture coordinate
tests, and as such these tests produced blank results.

This commit adds a emission shader between the colour and the output
so hydra can produce more useful results.

There is no change in the output for Cycles and EEVEE, so those
reference images are not updated.
2025-01-08 10:54:57 +01:00
Aras Pranckevicius
5ef08c2a96 Fix #112586: VSE can't use multi-layer EXR images
The rest of blender does handle multi-layer EXR images, using the
"combined" or RGBA/RGB layers when the visual result is needed. Make
VSE do the same.

While fixing this, I found several issues in other not well tested code
and had to fix them:

- IMB_buffer_float_from_float_threaded was wrongly using source channels
  as destination channels, producing garbage result.
- IMB_scale_into_new was not assigning channels to destination image.

Pull Request: https://projects.blender.org/blender/blender/pulls/132790
2025-01-08 10:45:24 +01:00
Julian Eisel
d7a480e863 Fix #79937: Brush cursor doesn't draw under transparent tool panel
Paint cursor polling and drawing should get the active region via
`bScreen.active_region`, since this handles overlapped regions better.
This way the cursor handling will still get the main region while
hovering transparent parts of the sidebar, headers or other overlapped
regions.

Alternative fix to #132226.

Pull Request: https://projects.blender.org/blender/blender/pulls/132765
2025-01-08 10:34:52 +01:00
Jonas Holzman
b2737510ee Deps: Update Boost library download URL
The current Boost download source we use (boostorg.jfrog.io) was
shut down, this PR replaces it with the new CDN (archives.boost.io)
the official boost.org website has switched to.

Refs:
https://github.com/boostorg/website/pull/900
https://github.com/boostorg/boost/issues/845#issuecomment-2541753013
https://github.com/boostorg/boost/issues/842

Pull Request: https://projects.blender.org/blender/blender/pulls/132774
2025-01-08 10:16:51 +01:00
Campbell Barton
fc6702ccc7 Edit Mesh: increase the hard-max for select similar
For large scenes, a much larger threshold is sometimes needed.

Ref #81542.
2025-01-08 18:25:38 +11:00
Campbell Barton
fbfe88fd80 Fix "Select Similar" faces when building without freestyle
Most options for select similar faces weren't displayed.
2025-01-08 18:25:38 +11:00
Omar Emara
e52bbae2bf Compositor: Only show precision for GPU device
The compositor precision option only matters for GPU device, so hide it
when in CPU mode.

Pull Request: https://projects.blender.org/blender/blender/pulls/132680
2025-01-08 07:41:48 +01:00
Campbell Barton
3f8b482e6d Docs: improve the description of "Correct Aspect"
Clarification to address #131629.
2025-01-08 14:30:21 +11:00
Campbell Barton
7b174109d1 Fix #132734: Follow Active Quads fails with non-manifold meshes
Support walking over non-manifold edge loops since calculating a
per-edge UV length only makes sense if all UV's that use that edge
are taken into account.
2025-01-08 14:02:32 +11:00
Harley Acheson
f71afc6bbb Fix #91360: Remove Printf When Changing Screens
wm_gizmomap_handler_context_op currently prints an error message to the
console when screen layouts change while modal operations are running.
The operations work, and the comment above it says "this is not an
error to print", and it is confusing for users to see a console message
like this. Looks to be a left-over debugging tool.

Pull Request: https://projects.blender.org/blender/blender/pulls/132778
2025-01-08 01:57:17 +01:00
Campbell Barton
64e3bfb485 UI: revert changes to the unwrap menu in 4.3 based on user feedback
Move unwrapping operators from the "Unwrap" sub-menu back into
the top-level menu. Now pressing U twice unwraps as before.

Ref !132719
2025-01-08 11:31:44 +11:00
Campbell Barton
61a2f7a431 Cleanup: resolve check_spelling & check_licenses warnings 2025-01-08 11:31:43 +11:00
Harley Acheson
1717eb1919 Fix 132769: Reset Mouse Cursor In Popups
Changes in 02b1e5a48f don't work correctly in popovers. Which means you
can hover over a numerical input, then off again, and it will show an
incorrect mouse cursor. This PR just uses ED_region_cursor_set which
works there and elsewhere.

Pull Request: https://projects.blender.org/blender/blender/pulls/132775
2025-01-08 00:32:59 +01:00