Commit Graph

118328 Commits

Author SHA1 Message Date
Bastien Montagne
9d33dd88d5 Revert "Fix (unreported) invalid mismatch MEM_new/MEM_freeN on but->active."
This reverts commit b22670d927.
2025-02-18 15:39:18 +01:00
Miguel Pozo
f5d56a3124 GPU: Add --profile-gpu
Add a `--profile-gpu` launch argument.

When set, it generates a profile in the Trace Event Format with CPU and
GPU metrics based on GPU debug scopes.
https://profilerpedia.markhansen.co.nz/formats/trace-event-format/

The profiles are best viewed at https://ui.perfetto.dev/

Notes:
- The profiler captures everything form app start to exit.
- Being JSON based the profiles can become relatively large, but they
  compress very well.
- Only OpenGL profiling is supported for now, but the report formatting
  code can be shared across backends.

Pull Request: https://projects.blender.org/blender/blender/pulls/133557
2025-02-18 15:36:50 +01:00
Bastien Montagne
7f43b79af0 Refactor/Fix: WM messagebus: invalid usage of calloc/free on data embedding PointerRNA.
Add a dedicated callback to duplicate the key for each type.

Keeping changes to the minimum necessary ones, the whole code and data
structure could use a serious update using C++ features, but this would
be totally out of scope of this fix.

Pull Request: https://projects.blender.org/blender/blender/pulls/134523
2025-02-18 15:27:48 +01:00
Falk David
c47a4b1e13 Refactor: VSE: Remove scene dependency of SEQ_lookup_* functions
Instead of passing the `scene`, pass a pointer to the `Editing` struct.
This is the struct that owns the `StripLookup` in its `runtime`
so there isn't a good reason to use the `scene` pointer here
anyways.

Pull Request: https://projects.blender.org/blender/blender/pulls/134743
2025-02-18 15:16:20 +01:00
Bastien Montagne
37ecf6d03f Merge branch 'blender-v4.4-release' 2025-02-18 15:12:45 +01:00
Bastien Montagne
b22670d927 Fix (unreported) invalid mismatch MEM_new/MEM_freeN on but->active.
Found by @brecht while reviewing !134463.
2025-02-18 15:10:39 +01:00
Bastien Montagne
43c8239d2f Merge branch 'blender-v4.4-release' 2025-02-18 15:05:49 +01:00
Bastien Montagne
ba1db8392b Fix (unreported) potential memory leak in IMBuf.
Found by @brecht while reviewing !134463.
2025-02-18 14:57:01 +01:00
Bastien Montagne
24a2e0b9ec Cleanup: make format. 2025-02-18 14:47:08 +01:00
Julian Eisel
20ec789889 Merge branch 'blender-v4.4-release' 2025-02-18 14:15:28 +01:00
Julian Eisel
fa4026f2bf Revert "Fix #130372: Implements memory of the previous state of eSpace_Types."
This reverts commit afec64739a.

The commit introduces a regression where opening the Asset Browser opens
the File Browser instead, same for other editor sub-types, see
blender/blender#134630.
blender/blender!134642 proposes a different solution and reverts this,
which I prefer too. Better to the revert separately from trying a
different fix for the initial bug, makes reviewing easier too.
2025-02-18 14:09:42 +01:00
Clément Foucault
da64459aad Cleanup: DRW: Make DRW_viewport_size_get return float2
This simplify a lot of code and remove the usage of the
`DRW_viewport_invert_size_get` function.
2025-02-18 13:58:17 +01:00
Clément Foucault
3b59abbd75 Cleanup: DRW: Remove unused code 2025-02-18 13:58:17 +01:00
Clément Foucault
869ac485fb Cleanup: DRW: Remove old CPU profiling tools
This is not useful anymore. See #133557.
2025-02-18 13:58:17 +01:00
Falk David
54be463b99 Refactor: VSE: Remove scene parameter of some time functions
This removes the `scene` parameter of
`SEQ_time_get_rounded_sound_offset` and
`SEQ_time_media_playback_rate_factor_get`.
Instead, we now pass the `frames_per_second` directly.

This is an attempt at getting less of the code to be
scene dependent.

Pull Request: https://projects.blender.org/blender/blender/pulls/134741
2025-02-18 13:45:56 +01:00
Brecht Van Lommel
20138318cc Merge branch 'blender-v4.4-release' 2025-02-18 13:21:45 +01:00
Brecht Van Lommel
4e02acf2ba Fix #134607: Sequencer render animation preview not working
This main thread check was introduced in 4536a4c610. At the time OpenGL
only ever worked in the main thread, but that limitation was lifted in
Blender 2.80.

With this operator being converted to use the jobs system, it now needs
to work in non-main threads. Note that this code does not run in parallel
with main thread drawing anyway, because of WM_job_main_thread_lock_acquire
and draw manager locks. What changed is that we can now activate OpenGL
contexts on other threads.

Pull Request: https://projects.blender.org/blender/blender/pulls/134696
2025-02-18 13:21:02 +01:00
Sergey Sharybin
55e45123f5 Merge branch 'blender-v4.4-release' 2025-02-18 13:12:04 +01:00
Bastien Montagne
f8cdd3e65f Fix (unreported) Depsgraph invalid C-style allocation of non-trivial C++ data.
`DEGCustomDataMeshMasks` makes `IDInfo` struct non-trivial, so it should
not be allocated or freed with C-style allocation.

Instead of allocating this data, now use its only persistent user
(the `DepsgraphNodeBuilder::id_info_hash_` map) as owner, move the rest
of the code releasing COW IDs to a new destructor for `IDInfo`, and let
standard C++ destruction do the job.

NOTE: This change seems to give some performances improvements in
affected code (e.g. about 4% improvement in affected area of
`DepsgraphNodeBuilder::begin_build`). However, this does not affect global
performances in a measurable way.

Related to work on improving our memory allocation code in !134463.

Pull Request: https://projects.blender.org/blender/blender/pulls/134563
2025-02-18 13:02:41 +01:00
Clément Foucault
7a3ef6a8ab Cleanup: DRW: Remove draw_manager_c from DRW_gpu_wrapper.hh dependencies
This makes dependency on the draw manager clearer and improve
build time.
2025-02-18 12:50:30 +01:00
Clément Foucault
55baac215c Cleanup: DRW: Remove unused DRWTexturePool 2025-02-18 12:50:30 +01:00
Bastien Montagne
607e04c82e Core: Add warning when opening deprecated BigEndian-saved Blendfiles.
As announced in <LINK_TO_DEVTALK_POST> (*[proposed post](https://hackmd.io/@s3W_pRGTTXie8cKWRitZrA/S1SzUhqIkl)*), Big Endian support will be
fully removed from Blender 5.0.

This commit adds deprecation warning when opening such blendfiles, and a
static `#warning` when building on a Big-Endian system.

Implements 4.5-part of #125759.
2025-02-18 12:47:35 +01:00
Bastien Montagne
6b0ad2e16b Refactor: Replace RNA_POINTER_INVALIDATE RNA/BPY macro usages.
Add `PointerRNA::reset()` and `PointerRNA::invalidate()` utils functions
(both simply reset the PointerRNA data to empty state).

Replace `RNA_POINTER_INVALIDATE` macro by `PointerRNA::invalidate()`.

Follow-up to !134393 and e55d478c64.
2025-02-18 12:43:43 +01:00
Pablo Delgado Krämer
94285011b0 MaterialX: Support sheen distribution input for Microfiber/Zeltner
Implement !108869 for MaterialX.

Pull Request: https://projects.blender.org/blender/blender/pulls/134126
2025-02-18 12:16:00 +01:00
Pratik Borhade
42ce049194 Fix: Grease Pencil: vgroup_select operator not working
Mistake in 8c01a59411. Jump to next drawing instead of
exiting the loop when valid group with deformverts is not found.
Found this bug during !134695

Pull Request: https://projects.blender.org/blender/blender/pulls/134734
2025-02-18 11:02:55 +01:00
Pratik Borhade
a03dd37dfe Merge branch 'blender-v4.4-release' 2025-02-18 15:18:23 +05:30
Pratik Borhade
179169d6c7 Fix #134505: Bevel redo panel closes when defining profile
Caused by 1bde901bf2
`UI_BTYPE_CURVEPROFILE` button has undo flag set. see button-layout in:
`edbm_bevel_ui() -> uiTemplateCurveProfile()`.

This  forces an undo push with the help of `ui_apply_but_undo/ui_apply_but_funcs_after`.
To handle the situation, skip undo push for buttons in hud region.

Pull Request: https://projects.blender.org/blender/blender/pulls/134552
2025-02-18 10:43:51 +01:00
Christoph Lendenfeld
996d19d4b3 Fix #129967: Annotations in the VSE not showing in Dope Sheet
The issue was that with the move to Grease Pencil v3,
annotations and normal GP use different IDs and support to show annotations
wasn't added back in.

This makes it so annotation keys are shown if "Only Show Selected" is disabled,
which works in the Dope Sheet and in the timeline.

In order to not show annotations of the scene twice, the scene-specific code is removed.
The annotations are now shown in a more generic way.

Pull Request: https://projects.blender.org/blender/blender/pulls/134565
2025-02-18 10:33:53 +01:00
Pratik Borhade
19631cae8a Fix #134428: Switching Animation Slots does not update node UI
Node region is not tagged to redraw when animation slot is changed.
`action_slot` RNA prop has `NC_ANIMATION`notifier set, use the same in
`node_region_listener` to tag region redraw.

Pull Request: https://projects.blender.org/blender/blender/pulls/134435
2025-02-18 10:33:23 +01:00
Pratik Borhade
73a9a024f9 Fix #134380: Error adding a torus after hiding a collection
This reverts 06a2617107.
Commit has introduced few errors from user perspective (#134277) and
python side (#134380). Best to revert it now then handle the bug fixes later.

The error in #134380 was due to `context.layer_collection` and
`active_layer_collection` returning excluded collection.

Pull Request: https://projects.blender.org/blender/blender/pulls/134546
2025-02-18 10:05:59 +01:00
Harley Acheson
c3a2af00be Merge branch 'blender-v4.4-release' 2025-02-17 20:27:18 -08:00
Harley Acheson
9aeb97ccea Cleanup: Improved Comments in ui_def_but_rna__menu
Nothing but improvements to comments in this area of code to better
explain the complexity of Emum list row and column calculation. These
things change wrapping and column count to suit available space and
needs better explanation.

Pull Request: https://projects.blender.org/blender/blender/pulls/134719
2025-02-18 05:26:12 +01:00
Campbell Barton
a7924c3b65 Cleanup: quiet unused variable warning in release builds 2025-02-18 13:28:36 +11:00
Hans Goudey
4cd3540579 Point Cloud: Implement separate operator
Similar to existing operators, moves the selected
geometry to a new object.
2025-02-17 21:21:14 -05:00
Harley Acheson
f1514b45e3 Merge branch 'blender-v4.4-release' 2025-02-17 18:13:17 -08:00
Harley Acheson
b39bb42b3a Fix #134271: Reflow Non-Categorized Enum Lists Only If Necessary
For non-categorized lists, rather than always trying to find optimal
rows and columns, revert to prior behavior and only reflow if needed,
when the calculated rows are greater than maximum rows. This is less
disruptive, has less changes at small sizes where this doesn't matter.
Yet still does the job when things get too large to fit, or the list
is very long.

Pull Request: https://projects.blender.org/blender/blender/pulls/134713
2025-02-18 03:12:10 +01:00
Jason C. Wenger
59d72a8f7d Mesh: grid-fill now supports replacing existing faces
The existing behavior of the grid fill operator requires a loop of
boundary or wire edges to be selected. This algorithm tries to fit a
grid of quads into the edge loop. It also works if you select two of the
four 'rails' of an edge loop.

This new behavior allows running grid fill after selecting faces.
If the algorithm sees that a set of faces are selected, it separates
all the faces, and then attempts to grid from their exterior boundary
using the exact same logic it normally uses for interior boundaries.
This all assumes the user has selected a set of faces with an outside
border that works with grid fill. (has one clear exterior loop with an
even number of edges) If not, grid fill will halt, and notify the user
of the error, exactly the way that it already did before.
Once the grid fill is complete and successful,
the existing faces which were replaced get deleted.

UVs (including at UV island boundaries) are interpolated properly,
as are custom-data on verts, edges, faces, and face corners.
At the edges of the selection, the edges/faces/face corners that are
selected contribute, but the custom-data outside the selection does not.

This also resolves non-deterministic behavior.
The previous behavior of `edbm_grid_fill_prepare` found the vertex with
the largest angle, then walked the edge loop until it found one out of
the three best remaining corners. This established one edge of the grid
area, and the second edge was found by symmetry.
However, the direction that the algorithm walked the loop
(and therefore which second corner was found) was essentially arbitrary.

The new behavior first finds the vert with the largest angle,
then finds the vert with the second largest angle,
(after excluding the diagonally opposite corner from the first vert),
and selects the edge between those two verts.

Ref !129318.
2025-02-18 12:40:00 +11:00
Jason C. Wenger
6ca324e790 Fix BMesh split-op failing to output boundary & isovert_map slots
These were defined but never written to.

Part of !129318.
2025-02-18 12:24:01 +11:00
Harley Acheson
dda9a30a83 Fix #134594: Show Overlay FPS in a brighter color
With 5956752eb7 the "red alert" color is in the theme. But it is hard
to select a single color that works well for backgrounds and text
colors. This PR lightens the color when used for text overlay showing
the FPS. This must be quite bright as we favor using a contrasting dark
outline.

Pull Request: https://projects.blender.org/blender/blender/pulls/134700
2025-02-18 02:18:19 +01:00
Hans Goudey
b62ba4af33 Fix: CSV import node ignores last character of some columns 2025-02-17 20:14:54 -05:00
Jason C. Wenger
6a4e7edf8a Fix BMesh split-op failing to output boundary & isovert_map slots
These were defined but never written to.

Part of !129318.
2025-02-18 12:09:05 +11:00
Andrej730
48abc7aabc PyAPI: document never none pointer/collection properties
Set never null for pointer props automatically during RNA generation.

Ref: !126755
2025-02-18 11:27:19 +11:00
Hans Goudey
b4c9b3e87f Cleanup: Move transform editors module to C++ namespace
Pull Request: https://projects.blender.org/blender/blender/pulls/134701
2025-02-18 01:27:04 +01:00
Hans Goudey
59fad71a47 Fix: Copy caches in point cloud "nomain to main" function
Previously the bounds and BVH caches were incorrectly not updated.
2025-02-17 18:39:47 -05:00
Dalai Felinto
ec6383de96 Point Cloud: Delete operator
Note: The point cloud bounding box is not being updated once the points are deleted.

This is a known issue with BKE_pointcloud_nomain_to_pointcloud and Hans is looking into it.

Code inspired/built based on the Delete Geometry node.

Pull Request: https://projects.blender.org/blender/blender/pulls/134622
2025-02-18 00:28:14 +01:00
Dalai Felinto
dec8bf8e76 Point Cloud: Implement edit mode undo system
Implement a basic undo system making use of implicit
sharing to avoid copies for stored attribute arrays.

Functionally this has no benefit over memfile undo,
but current undo system architecture requires each
edit mode to implement an undo type.

(Reviewed and co-authored by Hans Goudey)

Pull Request: https://projects.blender.org/blender/blender/pulls/134623
2025-02-17 23:11:31 +01:00
Harley Acheson
b36f9b3f2e Merge branch 'blender-v4.4-release' 2025-02-17 11:04:24 -08:00
Harley Acheson
37c0b2c47d Fix #134592: Node Editor space_*_get Unregistered Tree Type Returns
When needing a friendly title and icon for windows and screen areas we
use SpaceType callbacks. For Node editors this could crash for custom
node trees that are unregistered. node_tree_type_find returns nullptr
since this custom tree type is not in the map. In this case just return
translated "Node Editor".

Pull Request: https://projects.blender.org/blender/blender/pulls/134692
2025-02-17 20:03:22 +01:00
Hans Goudey
947658d1b2 Refactor: Simplify CustomData functions by requiring ImplicitSharingInfo
Previously we generally expected CustomData layers to have implicit
sharing info, but we didn't require it. This PR clarifies that we do
require layers with non-null data to have implicit sharing info. This
generally makes code simpler because we don't have to have a separate
code path for non-shared layers. For example, it makes the "totelem"
arguments for layer freeing functions unnecessary, since shared data
knows how to free itself. Those arguments are removed in this PR.

Pull Request: https://projects.blender.org/blender/blender/pulls/134578
2025-02-17 19:44:54 +01:00
Clément Foucault
a6364eae75 DRW: Make vertex format threadsafe
Wrapping the vertformat into lambda expression to make
them threadsafe.

Pull Request: https://projects.blender.org/blender/blender/pulls/134685
2025-02-17 18:24:31 +01:00