Commit Graph

154715 Commits

Author SHA1 Message Date
Hans Goudey
25766a0220 Cleanup: Reorder code in attribute renaming function
Similar to the previous commit, but this one makes more sense
on its own too; there aren't multiple checks for the attribute owner
type anymore. Part of #122398.

Pull Request: https://projects.blender.org/blender/blender/pulls/147662
2025-10-09 03:24:57 +02:00
Hans Goudey
8a903c3eec Refactor: Reorder attribute owner checks to handle mesh first
On its own this change is just noise and not really worth it. The point
is to make a future diff for #122398 smaller and more legible. Also it's
semantically more consistent with the way we usually handle early
returns: the "special case" comes first, then the expected normal path
continues un-indented.
2025-10-09 03:24:56 +02:00
Harley Acheson
a015054589 Merge branch 'blender-v5.0-release' 2025-10-08 16:52:06 -07:00
Harley Acheson
43654059ba Fix #147624: Playhead Drawing While Time Stretching
This PR updated the drawing of the playhead so that it better supports
time stretching, which separates the top from the line. This draws the
shadows as separate pieces and draws the line higher.

Pull Request: https://projects.blender.org/blender/blender/pulls/147658
2025-10-09 01:50:43 +02:00
Campbell Barton
3ce84f89ca Merge branch 'blender-v5.0-release' 2025-10-09 09:42:33 +11:00
Campbell Barton
a920f26920 Cleanup: remove unused doc-strings 2025-10-09 09:40:57 +11:00
Harley Acheson
33457d8723 Merge branch 'blender-v5.0-release' 2025-10-08 14:05:47 -07:00
Harley Acheson
2eaac0ad74 Fix #147574: Icon_Group Use Instead of Icon_Outliner_Collection
We have icons that represent specific individual collections. like
Icon_Outliner_Collection for a default (uncolored) collection, and
Icon_Collection_color_x for ones with colors. For "collections" as a
general thing though we have icon_group. Sometimes we confuse the two,
for example the list of tabs to show in Properties uses a different
icon than the actual category icon. This PR fixes the complaint by
using the correct icon for each of these purposes.

Pull Request: https://projects.blender.org/blender/blender/pulls/147652
2025-10-08 23:04:11 +02:00
Julien Duroure
8dcbf4a527 glTF: Bump addon version to 5.1.0 after 5.0 branch creation 2025-10-08 21:18:32 +02:00
Harley Acheson
d4c5f37421 Merge branch 'blender-v5.0-release' 2025-10-08 12:00:42 -07:00
Harley Acheson
765e38677a Fix: Default Collection Color Always White
With #126307 the default collection color (not set to a specific one),
set in Icon Colors / Collection, is always white. This PR restores the
correct behavior of following the theme color (an error in the SVG
source). And does so immediately (change in property_update).

Pull Request: https://projects.blender.org/blender/blender/pulls/147651
2025-10-08 20:58:42 +02:00
Jacques Lucke
f0f0665dbc Merge branch 'blender-v5.0-release' 2025-10-08 20:01:10 +02:00
Jacques Lucke
4ca8cf27aa Fix: quick fur operator reads asset from wrong file
The assets files were moved a couple of days ago.
2025-10-08 20:00:15 +02:00
Hans Goudey
0e43b1b29c Merge branch 'blender-v5.0-release' 2025-10-08 13:49:49 -04:00
Hans Goudey
a60e0cd44b Geometry Nodes: Support lists and grids in more function nodes
Now every function node except for "Sample UV Surface" supports
both list and grid outputs. Any grid or list input means the output also
has that type (combinations of grids and lists aren't supported).
However note that some nodes also have inputs that are always fields
evaluated on the target geometry.

There is still plenty of room for optimization. For grids and lists, all
the outputs will be computed, and every function node is evaluated
completely separately. It would be better to build a network similar to
fields and evaluate it lazily (when topology doesn't change anyway).

Pull Request: https://projects.blender.org/blender/blender/pulls/147312
2025-10-08 19:49:03 +02:00
Jacques Lucke
15a75eff9d Merge branch 'blender-v5.0-release' 2025-10-08 19:40:21 +02:00
Jacques Lucke
66dd8beef3 Fix #147037: copying node referencing packed id does not work
The solution is to remember the deep hash of the copied data-block pointers
instead of just relying on the library file path.

Pull Request: https://projects.blender.org/blender/blender/pulls/147275
2025-10-08 19:39:53 +02:00
Hans Goudey
397e28923b Merge branch 'blender-v5.0-release' 2025-10-08 13:27:08 -04:00
Hans Goudey
dd75c0b5ec Fix #147429: Set Resolution node doesn't use default for unselected curves
The fix in this case is to properly use the stored builtin attribute defaults
when capturing the field on the mesh. I extracted that to a function so
the code would read better with early returns.

Pull Request: https://projects.blender.org/blender/blender/pulls/147646
2025-10-08 19:26:12 +02:00
Jacques Lucke
7422f2ea7a Fix #147559: performance regression due to unnecessary geometry copy
The geometry was copied later on when it was modified because there was still a
reference to it in the modifier. Since this uses implicit sharing, if there is
more than one reference, the data has to be copied before it can be modified.

Pull Request: https://projects.blender.org/blender/blender/pulls/147644
2025-10-08 19:14:37 +02:00
Bastien Montagne
9bb9814862 Fix #147565: Prevent viewlayer resync during threaded liboverride process.
Code executing in parallelized context should never attempt to resync
viewlayers, this is just not safe.

So instead, explicitly call `BKE_main_view_layers_synced_ensure` and
forbid further updates before entering the multi-threaded part of
`BKE_lib_override_library_main_operations_create`.

This should make issues like #147565 less likely to happen in the
future.
2025-10-08 18:39:12 +02:00
Bastien Montagne
a165a324b8 Fix ViewLayer resync wrongly assuming success in some cases.
`BKE_view_layer_synced_ensure` would report success and clear the 'out
of sync' flag of the viewlayer, even if the call to `BKE_layer_collection_sync`
could not actually perform the resync (e.g. because resync is forbidden
by one or more calls to `BKE_layer_collection_resync_forbid`).

While logically fairly bad, this issue did not seem to have any
practical consequences. So would rather not  backport this to the 5.0 beta
branch.

This fix also reveals at least one place where the usage of
`BKE_view_layer_synced_ensure` and related is muddy and not ideal: the
Scene's `foreach_id' code. This is patched as best as possible in this
commit, but is something that will have to be properly fixed at some
point most likely.

Also add some documentation to this API - although the whole thing needs
a real reafctor at some point still, name-wise and organization-wise.

Pull Request: https://projects.blender.org/blender/blender/pulls/147635
2025-10-08 17:16:23 +02:00
Miguel Pozo
ecae6aa800 Merge branch 'blender-v5.0-release' 2025-10-08 16:59:56 +02:00
Miguel Pozo
8c425ccd4d Cleanup: Remove unused variables 2025-10-08 16:59:20 +02:00
Hans Goudey
9a672cbe52 Mesh: Reference UV map and tangents by name in draw requests
Currently UV maps and tangents are referenced by custom data layer index
by the mesh extraction system that decides what attributes are needed on
the GPU for rendering. This system is closely tied to CustomData, and
adds a limit on 8 total UV maps on the mesh (crucially different than
a limit on the supported UV map count for rendering).

The process of detecting which attributes to upload is also directly
tied to CustomData. In particular, `mesh_cd_calc_used_gpu_layers` is
quite complicated.

This commit reimplements that function, and references used UV maps
and UV tangents by name rather than by index. The process is now mostly
separated from `CustomData`, which is important as Mesh moves to
`AttributeStorage` instead.

Overall I noticed this introduces some overhead (a few percent cost to
playback in some extreme cases). `DRW_MeshCDMask` is bigger than before
(it was just an integer), and the attribute API currently has some
overhead that can be removed when it's backed by `AttributeStorage`.
The change still feels worth it to me, given other opportunities for
optimization in this area.

Ref #122398

Pull Request: https://projects.blender.org/blender/blender/pulls/141467
2025-10-08 16:54:12 +02:00
Miguel Pozo
1008e369b9 Merge branch 'blender-v5.0-release' 2025-10-08 16:49:37 +02:00
Miguel Pozo
75f3d8c68f Fix #147483: Crash switching scene while rendering animation in main window
When rendering in the main window and changing the active scene,
RE_FreeUnusedGPUResources can free the resources of an active Render,
since no wmWindow references the Scene anymore.

Active Render instances always reference their Scene, so we check those
directly instead.

Pull Request: https://projects.blender.org/blender/blender/pulls/147553
2025-10-08 16:48:38 +02:00
Miguel Pozo
8cdcb6ba54 Merge branch 'blender-v5.0-release' 2025-10-08 16:39:47 +02:00
Miguel Pozo
71f4277467 GPU: Codegen: Native support for repeat zones
Support loops at the GLSL level instead of relying on
NOD_shader_nodes_inline.
This improves compilation and runtime performance, avoids causing
recompilations on iteration count changes, and allows supporting
dynamic iteration counts.

(EEVEE-only)

Pull Request: https://projects.blender.org/blender/blender/pulls/145269
2025-10-08 16:38:14 +02:00
Hans Goudey
3a82ac0a33 Mesh: Use attribute API in merge by distance code
Split the result mesh generation to work into two loops. The first loop
builds topology maps used for propagating attribute values, and the next
loop mixes attribute values with those maps. This has a few benefits:
The propagation can be done in parallel, and the topology mapping code
can get simpler. Also, we reduce the overhead that comes with iterating
over all attributes for every single element. Overall I didn't measure
a large performance difference though, because the new code has the
downside of needing to allocate two more arrays.

There is a small difference of a propagated byte color (250 vs. 251) in
the geometry nodes test due to a subtle difference in the mixing
implementation.

Part of #122398.

Pull Request: https://projects.blender.org/blender/blender/pulls/147367
2025-10-08 16:37:07 +02:00
Sergey Sharybin
a3f4f832cc Merge branch 'blender-v5.0-release' 2025-10-08 16:30:45 +02:00
Sergey Sharybin
2998b97d5e Fix #147626: Crash when clicking on the "Rendering" workspace
Make the logic in the image editor drawing robust against configuration
when the image editor has flag "show render result from sequencer scene"
and the sequencer scene being nullptr.

It could happen when user configures image editor is such way and then
removes the sequencer scene.

Or, it could also happen when the image editor has the flag set, which
was exactly the cause of the originally reported issue. So this change
also clears the flag which was expected to be cleared. It could affect
some current files saved in the past day, but since the render operator
sets it based on the way the scene is rendered it is not too bad.

Caused by 76c03744a8

Pull Request: https://projects.blender.org/blender/blender/pulls/147630
2025-10-08 16:28:56 +02:00
Hans Goudey
6b55d82ca3 Merge branch 'blender-v5.0-release' 2025-10-08 10:15:37 -04:00
Hans Goudey
085276d8ba UI: Nodes: Sort packed groups below assets in add menu search
Previously items in the "Group" list would usually show up first because
their menu path is shorter. Now, adjust their search weight so they show
up lower than the corresponding asset. That this is just a heuristic,
because we don't have a good way to directly deduplicate groups
that are just packed assets in the add menu currently.

Pull Request: https://projects.blender.org/blender/blender/pulls/147629
2025-10-08 16:15:03 +02:00
Clément Foucault
e5f13a727a Refactor: EEVEE: Make surfel ray list stable and baking workload auto-adjust
This avoid putting too much work in only one thread for building very long surfel lists.

Instead of insertion sort, we use a prefix sum where all surfel scan the whole ray
list to know their position. Only the coplanar surfel patching is dispatched as
one thread per list.
This is currently a bruteforce approach and could be optimized further.

On top of this, we add a heuristic to scale the amount of work from the baking
depending on the scene complexity. Complex scene will have more overhead but
will remain responsive during baking, while simple scene will be faster to bake.
This avoids hitting TDR in most cases.

The update refresh is now limited to 1 per second to avoid the readback overhead.

Fix #142988

Pull Request: https://projects.blender.org/blender/blender/pulls/146848
2025-10-08 15:59:43 +02:00
Bastien Montagne
04ec86437f Merge branch 'blender-v5.0-release' 2025-10-08 15:31:46 +02:00
Bastien Montagne
89efaee069 Fix #147565: Crash in 'make liboverride' due to threading issues in geonodes.
This is the 'safe and simple' aspect of the fix: prevent `node_warnings`
RNA property of the Node modifier to be overridable.

Its access is 100% not thread safe currently - and it makes no sense to
have this reuntime data overridable anyway!

Another side of the issue will be fixed in a separate commit, for main
only, as it affects quite deeply the behavior of viewlayer resync, and
fixes some unrelated logical issues in the current code.
2025-10-08 15:29:26 +02:00
Thomas Dinges
479905057b Revert "Release: Blender 5.0 splash screen"
This reverts commit 615911e430.
2025-10-08 15:24:56 +02:00
Thomas Dinges
ade108a8d8 Merge branch 'blender-v5.0-release' 2025-10-08 15:24:43 +02:00
Clément Foucault
c30c0319ae Merge branch 'blender-v5.0-release' 2025-10-08 15:23:33 +02:00
Hans Goudey
11728f44d6 Merge branch 'blender-v5.0-release' 2025-10-08 09:17:59 -04:00
Thomas Dinges
615911e430 Release: Blender 5.0 splash screen
by Juan Hernández - https://www.artstation.com/donchuan3d
2025-10-08 15:16:34 +02:00
Pablo Vazquez
6a109a75dd Fix: Compositor: Add Asset Shelf toggle to View menu
Add missing Asset Shelf entry in the View menu in the Compositor.

Pull Request: https://projects.blender.org/blender/blender/pulls/147615
2025-10-08 14:57:53 +02:00
Clément Foucault
ab4c245a7e Fix: EEVEE: Lightprobe Volume backfacing toggle is inverted
The UI property was changed 7b97bc48d8
to a negative boolean but the boolean conversion inside EEVEE was
not inverted.

This mean that since 4.2, the default behavior for Lightprobe
volume has been broken / inverted.

To make an existing scene bake the same as before, all material
needs to have their `BackFace Culling > Light Probe Volume` options
inverted. This is done automatically through the versioning code.

The only test cases broken are the ones using default materials which
do not have their property turned off.

Release Notes should contains the compatibility breakage.

Pull Request: https://projects.blender.org/blender/blender/pulls/147218
2025-10-08 14:55:14 +02:00
Brady Johnston
9a8fb5fe98 Fix: Geometry Nodes: Drag-to-search for Grid Info node
This PR adds the drag-to-search for the **Grid Info** node.

Pull Request: https://projects.blender.org/blender/blender/pulls/147547
2025-10-08 14:09:08 +02:00
Jacques Lucke
a53ff2bf7d Merge branch 'blender-v5.0-release' 2025-10-08 13:55:40 +02:00
Jacques Lucke
14966dfe0f Nodes: skip processing some unlinked outputs in usage inferencing
This is a partial fix for #146949. It speeds up drawing by about 15% for me.

Pull Request: https://projects.blender.org/blender/blender/pulls/147612
2025-10-08 13:55:09 +02:00
Jacques Lucke
aee41b4b4e Nodes: skip processing some unlinked outputs in usage inferencing
This is a partial fix for #146949. It speeds up drawing by about 15% for me.

Pull Request: https://projects.blender.org/blender/blender/pulls/147612
2025-10-08 13:54:09 +02:00
Nikita Sirgienko
7364dcc939 Merge branch 'blender-v5.0-release' 2025-10-08 13:37:05 +02:00
Nikita Sirgienko
b133019f9f Cycles: oneAPI: use ocloc 101.8132 on Windows
This new version of the graphics compiler improves performance
for the majority of supported Intel devices and adds support
for upcoming Intel hardware. Such an upgrade also requires
an increase in the minimal supported driver version on Windows,
which is why these changes are combined together with
the ocloc upgrade.

Previously set minimal version 101.6557 was increased to 101.8132.

Pull Request: https://projects.blender.org/blender/blender/pulls/147460
2025-10-08 13:36:08 +02:00