Commit Graph

121449 Commits

Author SHA1 Message Date
Brecht Van Lommel
8392ca915b Cycles: Remove glog dependency, redirect logs to CLOG
* Add own simple logging system to replace glog, which is no longer
  maintained by Google.
* When building in Blender, integrate with CLOG and print all messages
  through that system instead.
* --log cycles now replaces --debug-cycles. The latter still works but
  is no longer documented.

Pull Request: https://projects.blender.org/blender/blender/pulls/140244
2025-07-09 20:59:24 +02:00
Brecht Van Lommel
9a3a090dbc Refactor: Clog: Port to C++
This is the last remaining C file that uses MEM_guardedalloc.h.

Pull Request: https://projects.blender.org/blender/blender/pulls/140244
2025-07-09 20:59:23 +02:00
Hans Goudey
5bdec246ea Cleanup: Fix build error from missing include in threads.cc
`<algorithm>` was missing for me, though the build passed on the
build bots. Also remove some unused includes.
2025-07-09 14:32:30 -04:00
Sean Kim
06efb20b78 Cleanup: Extract paint.sample_color operator to separate file
Pull Request: https://projects.blender.org/blender/blender/pulls/141641
2025-07-09 20:29:11 +02:00
Miguel Pozo
f46aa9a1ea Core: Add BLI_thread_queue priority and cancel support
Add functionality required for using BLI_thread_queue for shader compilation, as
discussed in #140214.

Pull Request: https://projects.blender.org/blender/blender/pulls/140992
2025-07-09 18:04:51 +02:00
Miguel Pozo
6d9ad29c2a Merge branch 'blender-v4.5-release' 2025-07-09 15:16:46 +02:00
Miguel Pozo
88f812bf9a Fix #141253: Bring back the global Draw lock
Alternative solution to #141392 / #141564.

As a recap, the DST global lock (which prevented running drawing code
from multiple threads concurrently) was removed for 4.5 (#134690).
One unforeseen issue is that Images (and their GPUTextures) are shared
across dependency graphs (and therefore multiple threads), meaning we
are running into data race issues with them.

@fclem did #141392 and I continued it #141564. However, this is only a
partial solution, parts of the GPUTexture API and the whole BKE_image
API are still unsafe.
Trying to solve all the possible underlying issues seems unrealistic for
4.5 given the time frame and that the extension of the code affected by
this issue is quite large.

So this PR just brings the 4.4 locking behavior instead, which, while
risky on its own, seems much safer to me than the alternative.

This effectively undoes the improvements from #134690 by disabling
concurrent rendering, but instead of reverting all the code, it just
ensures we hold the lock in the same places we did in 4.4.
This means there's some redundant code that is not technically needed
anymore, like the `submission_mutex`, but it's probably best to make as
few modifications as possible, given how close we are to release and
that this is only intended as a temporary measure.

Pull Request: https://projects.blender.org/blender/blender/pulls/141618
2025-07-09 15:11:29 +02:00
Jeroen Bakker
4d9c5ebd97 Vulkan: Move Wayland/HDR support out of experimental
This PR moves Wayland/HDR support out of experimental.
This allows more people to test and provide feedback. We
can always decide later to disable it for the release, but so
far we only got positive feedback.

Pull Request: https://projects.blender.org/blender/blender/pulls/141666
2025-07-09 13:24:31 +02:00
Thomas Dinges
82f75f22ef Release: Bump 4.5 to release candidate 2025-07-09 12:56:08 +02:00
Omar Emara
fad9223a36 Merge branch 'blender-v4.5-release' 2025-07-09 11:44:54 +03:00
Omar Emara
23d06e9c9a Fix #141568: Implicit convert for single values return zeros
Implicit conversion for single values always return zero in GPU device.
That's because the conversion data was only stored on the CPU and not
uploaded to the GPU, so we ensure it gets uploaded to GPU.

Pull Request: https://projects.blender.org/blender/blender/pulls/141658
2025-07-09 10:43:03 +02:00
Lukas Tönne
bb293e5677 Regression test for armature deformation on lattice
This is a basic armature deformation test for #141535  using Lattices instead of
Mesh as the target object type. Lattice deformation was briefly broken, which is
caught by this test.

The test adds the general-purpose `unit_test_compare` function to lattice object
data. It only compares lattice point counts and positions for now, more data can
be added later if necessary.

The `MeshTest` class did not support lattice object types yet, so needed some
changes. The Curves case was already supported, but only by full conversion to
mesh data, without actually using the `unit_test_compare` function specific for
curves geometry. This is unchanged, because applying constructive modifiers on
curves does not work. If it were not for this limitation the test could do
actual curves comparisons now.

For lattice support the `MeshTest` class comparison function has been
generalized to all supported object data types. It runs the appropriate
`unit_test_compare` api function and validation where supported (only meshes at
this point).

Pull Request: https://projects.blender.org/blender/blender/pulls/141546
2025-07-09 09:53:00 +02:00
Jeroen Bakker
807931166a Merge branch 'blender-v4.5-release' 2025-07-09 08:59:36 +02:00
Jeroen Bakker
2170739ba3 Fix #141628: Vulkan: Crash when index buffer could not be allocated
Added an early exit when the index buffer could not be allocated. Most
likely when there is an out of memory issue.

Pull Request: https://projects.blender.org/blender/blender/pulls/141653
2025-07-09 08:57:57 +02:00
John Kiril Swenson
cfc495bb2e Fix #141332: Add movie operator crashes Blender
PR #141419 gated init behind a `nullptr` check, but it would still try
to run transform engine code, which accesses the unset region. Fix by
preventing any sort of `move_strips` operation when `region` doesn't
exist.

Pull Request: https://projects.blender.org/blender/blender/pulls/141582
2025-07-09 08:38:45 +02:00
Campbell Barton
d3a8bfc83a Cleanup: resolve missing declaration warning 2025-07-09 15:58:29 +10:00
Campbell Barton
93ae46c68b Merge branch 'blender-v4.5-release' 2025-07-09 15:53:30 +10:00
Campbell Barton
35882493f4 Merge branch 'blender-v4.5-release' 2025-07-09 15:53:28 +10:00
Campbell Barton
0d944c16c6 Fix: assertion filling curve caps with a zero normal vector
Don't attempt to fill curve caps when the direction vector is invalid.

This prevents the crash in #141612 however the root cause of that
report isn't directly related to curve filling.
2025-07-09 15:44:22 +10:00
Campbell Barton
3d6e9756c7 Fix #141400: Metaball tessellation unresponsive with a scaled parent
The check to prevent overly complex tessellation checked the objects
scale directly instead of the final evaluated scale.

Also corrects the scale check which wasn't accounting for negative axes.
2025-07-09 15:23:42 +10:00
Omar Emara
0a152ddddf Compositor: Add Djsoint and Conjoint Over operations
This patch adds the Disjoint and Conjoint Over operations to the Alpha
Over node.

Pull Request: https://projects.blender.org/blender/blender/pulls/141439
2025-07-09 06:59:55 +02:00
Campbell Barton
d36ce2fe6d Fix: correct fixed sizes of strings used with MAX_ID_NAME
Resolve warnings raised by "make check_size_comments",
missed from !137196.
2025-07-09 02:55:53 +00:00
Jesse Yurkovich
26a511df7a Merge branch 'blender-v4.5-release' 2025-07-08 19:45:03 -07:00
Jesse Yurkovich
a8f543f6a8 Fix: USD: Add MeshSequenceCache modifier for animated crease values
The mesh importer was only checking for animated positions, velocities,
and primvars when determining if a cache modifier needed to be used.
Extend this to crease values (and normals) too.

The added test ensures a base level of coverage here.

Related to: #141633

Pull Request: https://projects.blender.org/blender/blender/pulls/141643
2025-07-09 04:44:30 +02:00
Campbell Barton
4bc65a9b3f Cleanup: white space warnings from "check_struct_comments" 2025-07-09 02:10:05 +00:00
Campbell Barton
a5eb65bac8 Cleanup: add missing struct-comments for bmesh operator defines 2025-07-09 12:10:00 +10:00
Sean Kim
ab7a30b1bd Refactor: Use std::array and blender::Span instead of pointer array
* Changes pointer array to std::array of optionals
* Returns by value
* Passes blender::Span to dependent functions

Pull Request: https://projects.blender.org/blender/blender/pulls/141586
2025-07-09 02:02:16 +02:00
Sean Kim
feec97bf51 Cleanup: Remove unused paint_utils.cc method
Pull Request: https://projects.blender.org/blender/blender/pulls/141640
2025-07-09 02:01:37 +02:00
Sean Kim
f80a3e5cbc Refactor: Add explicit default initialization to reshape_smooth structs
Pull Request: https://projects.blender.org/blender/blender/pulls/141585
2025-07-09 00:26:37 +02:00
Harley Acheson
37f10aaa4a UI: Fix Cursor Size Truncation Issue
Mouse cursor size calculation must use round rather than trunc.
Otherwise there is a decrease in cursor size from 1X -> 1.01X scale.

Pull Request: https://projects.blender.org/blender/blender/pulls/141637
2025-07-08 23:59:47 +02:00
Jonas Holzman
9fbb5916d5 Merge branch 'blender-v4.5-release' 2025-07-08 21:58:01 +02:00
Jonas Holzman
82dc3f25a7 Fix #137750: Low timeline height when restoring area layout using different DPI
This commit fixes a bug where the timeline area height was clamped to
its minimum value when restoring an area layout saved on a non-HiDPI
screen on a HiDPI screen. In particular, this caused the default Blender
startup file timeline area to be wrongly clamped dwon on macOS when
using a HiDPI/Retina screen.

This was due to the `screen_geom_vertices_scale_pass` function using raw
`area->winy` value in the `facy > 1` case, which ensures the timeline
does not get expanded when resizing the window if its already at its
minimum height. When restoring the area layout, these `winy` values
were not yet refreshed, and still used the DPI scale of the screen
the layout was saved on. Which in case of macOS HiDPI screens caused
them to be two times smaller then the screen / other size values used
in the function.

This was fixed by using the `screen_geom_area_height()` instead, which
computes the area height from its screen geometry coordinates, and was
previously used in this function before being replaced by `winy`. The
comparaison now also uses a fixed value instead of `facy` which was
also subject to DPI differencies, see PR thread for more details

Pull Request: https://projects.blender.org/blender/blender/pulls/141154
2025-07-08 21:55:52 +02:00
Guillermo Venegas
5cc4b4322a Refactor: UI: Move UI_block_layout_resolve to C++ namespace, rename
This renames UI_block_layout API as blender::ui::block_layout_resolve,
following uiLayout refactors.

This simplifies usage by returning block layout size as C++ int2 instead
of using return parameters, in fact some places were providing
unused variables.

Part of: #117604

Pull Request: https://projects.blender.org/blender/blender/pulls/141432
2025-07-08 21:16:57 +02:00
Hans Goudey
fad5b03835 Fix: Geometry Nodes: Show "Structure Type" options in alphabetical order 2025-07-08 14:51:06 -04:00
Germano Cavalcante
ff9cc9c170 Refactor: Transform, reduce array bit size by removing TransData::ext
Now that the `t->data` and `t->data_ext` arrays have the same ordering,
it is no longer necessary to include each member of `t->data_ext` in
`t->data`. Access can be done using the same index.

Pull Request: https://projects.blender.org/blender/blender/pulls/141563
2025-07-08 20:47:56 +02:00
Brecht Van Lommel
145b2173bd Merge branch 'blender-v4.5-release' 2025-07-08 18:40:13 +02:00
Brecht Van Lommel
bfacc42651 Fix: EEVEE/Workbench crash rendering without an active object
Regression from 62568d16e5, this was crashing most of the EEVEE
and Workbench render tests.

Pull Request: https://projects.blender.org/blender/blender/pulls/141624
2025-07-08 18:38:41 +02:00
Falk David
e4e119c9df Merge branch 'blender-v4.5-release' 2025-07-08 18:12:36 +02:00
YimingWu
7c8b8b2457 Fix #141475: LineArt: Prevent image editor drawing when baking strokes
Line art bakes strokes in a separate thread, which will also update
depsgraph, and if an image editor is present, it will try to iterate all
the objects in the view layer and this is unsafe. Now line art will set
region drawing lock to prevent image editor from drawing while baking.

Pull Request: https://projects.blender.org/blender/blender/pulls/141551
2025-07-08 18:11:59 +02:00
Hans Goudey
69537feb57 Curves: Avoid reallocating handle types for every transform operation
Previously we would request the handle types with write access at the
start of every transform operation. Because the attribute arrays are
also used by the latest undo step, this would cause a reallocation of
the data and a copy. Instead only request write access if we're actually
going to modify the handle types.

This also lets us avoid tagging the topology cache unless the handle
types are actually changed.
2025-07-08 11:56:52 -04:00
Sybren A. Stüvel
1e0978f291 Merge remote-tracking branch 'origin/blender-v4.5-release' 2025-07-08 17:11:59 +02:00
Sybren A. Stüvel
fc32c26722 Fix #141323: Copy to Selected doesn't properly update on some Bone props
Fix an issue with Copy to Selected on bones, where an RNA pointer was
given an owner of the wrong type.

A pointer was constructed to a `Bone` (which is owned by the
Armature), but the owner was taken from the corresponding `PoseBone`
(which is owned by the Object), causing Armature "property update"
callbacks to be called without an actual Armature. This caused the
wrong data to be tagged for re-evaluation, which caused the issue.

Also f04bc75f8c affected the Copy to Selected on edit bones.

Co-authored by Philipp Oeser

Pull Request: https://projects.blender.org/blender/blender/pulls/141394
2025-07-08 17:10:54 +02:00
Germano Cavalcante
b8458b85a5 Fix #141614: Crash canceling 'Rotate Normal' operation
For optimization, 58af30f9b9 caused the creation of TransData and
`recalc_data` for the `Rotate Normal` operation to be skipped. However
`recalc_data` may still be called if we cancel the operation thus
causing a crash.
2025-07-08 11:47:13 -03:00
Hans Goudey
13f32fdf6c Merge branch 'blender-v4.5-release' 2025-07-08 10:14:45 -04:00
Hans Goudey
4eefd4d6dc Fix: Potential assert in curves AttributeStorage versioning
The runtime type map needs to be updated even if the CustomData
ends up being empty.
2025-07-08 10:04:01 -04:00
Sean Kim
11a0364495 Merge branch 'blender-v4.5-release' 2025-07-08 06:55:23 -07:00
Sean Kim
62568d16e5 Fix #140621: Multi-object edit mode displays non-active UVs as faded
The feature to display multiple objects in the UV and Image Editor was
added in 24d08e0bae.

This commit did not account the multi-edit mode feature, where there may
be more than one object currently being edited, causing some UVs to
display with a faded opacity.

To fix this, introduce a new `eObjectInfoFlag` flag to indicate this
state, populate it when syncing the object, and use the flag inside the
relevant shaders.

Pull Request: https://projects.blender.org/blender/blender/pulls/141254
2025-07-08 15:51:09 +02:00
Falk David
139cfea4ac Merge branch 'blender-v4.5-release' 2025-07-08 15:49:04 +02:00
Casey Bianco-Davis
46a6641c4d Fix: Grease Pencil: Bezier handle types not updating when transforming
When handles are selected but not the control point this will convert the types `auto` to `align` and `vector` to `free`

This adds `tag_topology_changed` to make sure the handle types are updated.

This also fixes a problem where `free` handle would not be transformed with the control point.

Implement following Curve objects #128638

Pull Request: https://projects.blender.org/blender/blender/pulls/141438
2025-07-08 15:47:38 +02:00
Jeroen Bakker
125726cda0 Merge branch 'blender-v4.5-release' 2025-07-08 15:43:37 +02:00