Commit Graph

150877 Commits

Author SHA1 Message Date
Howard Trickey
4236ce7e8d Fix #141026: (again) Previous fix to vertex dissolve was buggy.
In a fix to manifold boolean, commit a20f367379, the code
sometimes dissolved vertices in triangles and then didn't remap
those vertices. This prevents the dissolve in the first place.
2025-06-30 14:31:56 -04:00
Howard Trickey
dd72297680 Fix #140597: Manifold boolean's new faces get material from operand object.
The boolean modifier Exact solver has a solver option "Materials"
with choices "Index Based" and "Transfer". The former uses
only materials that were in the first operand object/mesh.
The Transfer option copies new materials as needed from other
object/mesh operands and uses those on the pieces of faces from
those operands that survive into the output.
Users very often use boolean to cut away from a main mesh, and
in such cases usually don't care about the materials on the cutter
operand, and don't want materials from them transferred, so the
"Index Based" choice is the default in the modifier.
It was regarded as in important bug/lack that the new Manifold
solver did not have such an option, so this commit adds one.

The Boolean Geometry Node at the moment does not have an option
and always uses the "Transfer" method, for all three solvers.
It is a matter of discussion whether such an option should be added
in the node also, so this commit does not include such a change.

The Manifold solver, up to this point, ignored the material_remaps
argument and relied on the realize_instance code to remap the
materials (it uses the Transfer strategy).
This change overrides that remapping with the explicit mapping
handed in through the API, if the mapping has non-zero size.
Since the old way (ignoring the mapping argument) worked fine for
the Boolean Geometry Node, I changed that code to make the map
have size zero in the node, in the case that the solver is Manifold.
This is a little hacky but I couldn't think of anything much better.
Long term it might be nice to have the internal boolean API not take
in remaps at all, but rather a remapping strategy choice. One thing
that makes that difficult right now is that the modifier can get
materials from either the object or the mesh (at least that used
to be true) and the internal boolean api only knows about meshes.
Another thing that would have made this task easier (for me) would
be to have realize_instances take in a material mapping strategy
as a parameter.
2025-06-30 12:49:36 -04:00
Tenkai Raiko
8efcc0475d Fix: Dilate node clamps negative values on GPU
The Dilate node clamps negative values on GPU but works fine on CPU.
This is because the minimum value was used as FLT_MIN, but it should
actually be -FLT_MAX.

Pull Request: https://projects.blender.org/blender/blender/pulls/141144
2025-06-30 18:35:10 +02:00
Alaska
fe346a32ec Cycles: Disable HIP RT by default in Blender 4.5
At the moment there are two main usability issues that make it hard to
recommend to enable HIP RT by default:
- Dramatically increased memory usage during BVH construction on
  high poly meshes compared to BVH2 (#136174)
  - This issue can be fixed by using the "balanced" HIP RT BVH, but
  it requires a HIP RT update that won't make it into 4.5 (!136622)
- Many Blender and GPU driver crashes when modifying objects in the
  viewport. #140763, #140738, #139013, #138043

Pull Request: https://projects.blender.org/blender/blender/pulls/140794
2025-06-30 18:17:01 +02:00
Xavier Hallade
7691e6520b Fix #141171: oneAPI: Rendering artifacts in barbershop scene
max_shaders was not updated when Embree was disabled.

Pull Request: https://projects.blender.org/blender/blender/pulls/141175
2025-06-30 16:39:53 +02:00
Hans Goudey
a06705f41a Fix #141160: String input node in link-drag-search for output sockets
Missing check in 6fb69eeb71
2025-06-30 08:48:41 -04:00
Jeroen Bakker
9ff4328246 Fix #141078: Vulkan: Assert when uploading to large vertex buffers
When vertex buffers cannot be uploaded (buffer is to large) the buffer
will get a null handle. However it can still try to upload data to the
null handle.

Pull Request: https://projects.blender.org/blender/blender/pulls/141218
2025-06-30 13:57:06 +02:00
Jeroen Bakker
e3f2d8804f Fix #139189: Fix incorrect base and vertex offset in index buffers
When drawing batches the base and vertex offset were incorrectly
interpreted leading to artifacts.

Pull Request: https://projects.blender.org/blender/blender/pulls/141214
2025-06-30 13:55:13 +02:00
Bastien Montagne
4257cf7ecb I18N: Updated UI translations from git/weblate repository (21c7a5e78edc183b9). 2025-06-30 12:07:32 +02:00
Nathan Vegdahl
2630fc4978 Anim: Fix incorrect fix for weight paint Smooth Operator
#138435 was an attempt to fix the issue in #138168 where the Smooth
Operator modifies locked vertex groups. Unfortunately, the fix actually
changed some already-correct code to be incorrect to compensate for the
buggy code in the Smooth Operator.

This reverts that fix and applies a correct fix, which is to exclude
locked vertex groups in the Smooth Operator's code itself.

Pull Request: https://projects.blender.org/blender/blender/pulls/141093
2025-06-30 11:53:09 +02:00
Bastien Montagne
b4eeddd113 Doc: Comment about using default i18n context for some mirror operators. 2025-06-30 11:21:04 +02:00
Damien Picard
33f31f1842 I18n: Translate a few messages
I18n: Translate a few messages

- Translate add-on types in the user preferences.
- Translate a report which uses formatting.
- Do not translate scene names in `sequencer.scene_strip_add` operator
  UI.
- Do translate the type of new scene in
  `sequencer.scene_strip_add_new` operator.
- Translate Half and Float image format color depth enum items.
- Translate Mix node header with non-color data types.
- Translate sequencer modifiers' names if data translation is enabled.

Most issues reported by Ye Gui in #43295.

Pull Request: https://projects.blender.org/blender/blender/pulls/141145
2025-06-30 11:12:48 +02:00
Damien Picard
50d7c4917b I18n: Disambiguate "Line"
"Line" can mean several things, but in this cases it means a line of
text.

Reported by Ye Gui in #43295.

Pull Request: https://projects.blender.org/blender/blender/pulls/141147
2025-06-30 11:07:40 +02:00
Damien Picard
8b39f577fe I18n: Disambiguate "Volume Min"
"Volume Min" can mean:
- The volume of a bone when modified by a constraint.
- The audio volume of a speaker object.

Reported by Alexandr Fatih in #43295.
2025-06-30 11:07:39 +02:00
Damien Picard
afa51a5d54 I18n: Disambiguate "Mirror"
"Mirror" can mean:
- To symmetrize something (i.e. generate a new mirrored copy of it or
  edit it in a symmetric fashion).
- To flip something (i.e. invert its values along X, Y or Z axes).
- To repeat a texture in a mirrored fashion outside its bounds.

Reported by Gabriel Gazzán in #43295.
2025-06-30 11:07:39 +02:00
Campbell Barton
0fb80f698a PyDoc: use string literals for enum values
Use literals since their literal values need to be used in code.
2025-06-30 17:12:04 +10:00
Jacques Lucke
42cc65e5b5 Fix #141149: crash when toggling bake node muting
The `StringRef` in `MemoryBlobReader` was referencing data
that was freed under some circumstances. While the actual packed
data is shared between the original object and copy-on-eval object,
the name of the blobs are not.
2025-06-30 08:47:54 +02:00
Jacques Lucke
63894afe19 Fix #141177: crash opening file browser from geometry nodes modifier 2025-06-30 08:19:28 +02:00
Andrej730
b025874666 Fix: Pydocs: EnumProperty items is also allowing iterables
Ref !141134
2025-06-30 14:31:15 +10:00
Aaron Carlisle
03d7ed05b9 Docs: Update RNA to user manual URL mapping 2025-06-29 15:28:46 -04:00
Habib Gahbiche
c8cb24121f Fix #140381: Crash after deleting a node group and redo
The fix in #140381 addressed the crash after redo. This commit fixes
the crash after redo (make group) and deleting the node group.

Pull Request: https://projects.blender.org/blender/blender/pulls/140858
2025-06-28 15:27:30 +02:00
Habib Gahbiche
120c8165fc Fix #141100: Compositor: Duplicated nodes when pressing Setup Tracking Scene
The default nodes were still present in the node tree when Setup
Tracking Scene operator was called.

The issue was that the operator assumed the default tree always has the
same number and types of nodes, which wasn't true anymore after the
default node tree was changed in df6e65dd93

This PR keeps the changes to a minimum by updating the assumption
about the default node tree.

Pull Request: https://projects.blender.org/blender/blender/pulls/141141
2025-06-28 15:26:53 +02:00
Pratik Borhade
9a9d52f550 Fix #141082: UV: Select overlap crash
Mistake in 69a1feabe6

Pull Request: https://projects.blender.org/blender/blender/pulls/141138
2025-06-28 14:39:57 +02:00
Sybren A. Stüvel
dff44f1413 Fix #140962: Vertex Slide with Proportional Editing crashes Blender
Use a separate index for indexing into `Array<TransDataVertSlideVert>
r_sv`, as that only contains the selected items (and not all items
considered for proportional editing).

Since the introduction of the sorted index map (df6d345bb4) the
selected "transform items" are simply visited first, but not sorted to
the front of the array. This means that these array indices cannot be
used to index into other arrays that only contain sorted data, because
they will overflow.

Ref !140976
2025-06-28 08:36:31 +10:00
Brecht Van Lommel
9711efece7 Fix #141085: Cycles adaptive subdivision crash with zero length edges
As produced by booleans in the reported blend file.

Pull Request: https://projects.blender.org/blender/blender/pulls/141105
2025-06-28 00:03:45 +02:00
Sean Kim
0354d2e02c Cleanup: Fix warnings
Introduced in b472570875
2025-06-27 14:00:51 -07:00
Sean Kim
b472570875 Fix #140998: Grease Pencil stroke-level color jitter doesn't work
Introduced with 96e549c092

While the above commit applied versionings to the related flags, it did
not convert either the UI elements or the underlying grease pencil code
to use the now generic `Brush` properties.

Pull Request: https://projects.blender.org/blender/blender/pulls/141001
2025-06-27 22:21:53 +02:00
Hans Goudey
7fe9e87263 Fix: AttributeStorage skips reading attributes from empty domains
This check was meant to catch unknown failure cases but instead it
meant any attribute with an empty array (e.g. from a mesh with no
faces) would not be loaded. Instead the failure case should only be
when there is no data when the array is not meant to be empty.

Pull Request: https://projects.blender.org/blender/blender/pulls/141096
2025-06-27 17:22:01 +02:00
Clément Foucault
3b9525ce7d Fix #141067: EEVEE: Mising UDIM texture Crash the EEVEE
It was missing the error texture for the tile maps.

Pull Request: https://projects.blender.org/blender/blender/pulls/141072
2025-06-27 15:46:37 +02:00
Campbell Barton
db2f8782b5 Fix #141018: Gizmos allow editing linked data
Camera, lamp & object placement gizmos weren't checking ID data was
editable.

Ref !141069
2025-06-27 13:25:31 +00:00
Jeroen Bakker
a74b663bf9 Cleanup: Vulkan: Enable extensions (2)
Missing part of the cleanup done by 225449b96d
2025-06-27 11:26:24 +02:00
Andrej730
6dc0c85de6 Fix: PyDocs: GPUShader, use ref for better navigation
Also note removal version.

Ref !140846
2025-06-27 18:52:53 +10:00
Jeroen Bakker
225449b96d Cleanup: Vulkan: Enable extensions
When the list of extensions is constructed for `vkCreateDevice` it
uses a function that retrieves all extensions just to iterate to
check a specific extension is supported. However there is already a
list cached that is that is the subset of the desired extensions that
are supported by the device.

This cleanup will use that list instead of requiring all supported
extensions.

Pull Request: https://projects.blender.org/blender/blender/pulls/141074
2025-06-27 10:50:58 +02:00
Patryk-Skowronski
5f28ef5574 NDOF: Removed impact of the auto orbit center on Fly Mode
Remove the impact of Auto orbit center preference onto Fly mode.
Until now, it was possible to experience dynamic translation speed
changes in the Fly mode with Auto preference enabled for the orbit
center. This was not desired.

Ref !141035
2025-06-27 08:02:34 +00:00
Jeroen Bakker
d67b705d1c Fix: Vulkan: Validation error Wayland+NVIDIA
This PR fixes a validation error about the swapchain semaphores. When
swapchain maintenance 1 is supported the semaphores can be reused, but
requires a fence. We didn't implement the fence. This PR doesn't reuse
the semaphores as introducing the fence leads to more changes.

Pull Request: https://projects.blender.org/blender/blender/pulls/141066
2025-06-27 08:58:37 +02:00
Howard Trickey
a20f367379 Fix #141026: Degenerate Dissolve crashes Blender.
The code added in commit ffc204d1fa to dissolve redundant 2-edged
vertices after a manifold boolean assumed that after dissolving such
vertices a valid face would remain. This is not true of the face
started out degenerate (all vertices on the same line).
Fixed by checking for such cases and in any case not creating
any faces with less than three vertices.
2025-06-26 13:59:20 -04:00
Sergey Sharybin
5ae21e5518 Fix: Dead-lock in VSE audio waveform preview
The VSE preview job was pushing tasks while holding a lock
which is also used by the task. This could lead to a dead-lock
situation if scheduling decides to run the task immediately.

The easiest way to reproduce the issue is to run Blender with
`-t 1` command line argument and add WAV file.

The solution is to iterate over queue and create tasks while
holding a lock, but push them to the pool after releasing the
lock.

Pull Request: https://projects.blender.org/blender/blender/pulls/140972
2025-06-26 17:31:46 +02:00
Hans Goudey
165c344e98 Fix: Assert in barbershop file calculating GPU subdiv orco buffer
For some reason the orco vertex buffer is requested after the position
buffer, but they are computed together. In case that happens, just
discard the position buffer.

Pull Request: https://projects.blender.org/blender/blender/pulls/141043
2025-06-26 17:17:17 +02:00
YimingWu
516e12c0df Fix: Manifold boolean assert copying vertex group names twice
They will be copied in subsequent `BKE_mesh_copy_parameters_for_eval`,
copying the list again will cause an assert.

Pull Request: https://projects.blender.org/blender/blender/pulls/141031
2025-06-26 17:03:19 +02:00
Clément Foucault
1073abe62f Fix #140152: EEVEE: Crash while playing animation
This happened because the velocity module is referencing
batche to be able to copy them after drawing.

Make sure to call step swap even when shaders are not
ready to ensure we don't dereference these possibly
freed batches on the next draw.

This also fixes the crashing benchmarks.

Pull Request: https://projects.blender.org/blender/blender/pulls/141022
2025-06-26 16:52:50 +02:00
Clément Foucault
ea2284af11 Fix #140762: Overlay: Curve doesn't display Bevel Preview in Edit Mode
This was caused by the retopology visibility check being faulty.

See https://projects.blender.org/blender/blender/issues/140762#issuecomment-1612468
for more detail.

Pull Request: https://projects.blender.org/blender/blender/pulls/141037
2025-06-26 16:40:26 +02:00
Clément Foucault
6fee44760a Fix: Overlay: Missing refresh when toggling retopology overlay
This appear as meshes still present or missing when toggling
the option.

This was caused by the change in update detection from the
overlay properties.
2025-06-26 15:39:10 +02:00
Hans Goudey
8ebb759046 Fix: Realize Instances use-after-free with collections
The calls to `to_geometry_set` in this file can create a temporary
Instances struct for collections. That instances component will contain
two attributes, which are currently referenced in the attributes map
even after the temporary compoment storage goes out of scope. A simple
fix is to avoid adding these attributes to the map in the first place.

An alternative that would also be more efficient would be to handle each
instance reference type explicitly, without converting it to a temporary
geometry set. That seems to significantly complicate the code though;
for now it doesn't seem worth it.

Pull Request: https://projects.blender.org/blender/blender/pulls/140999
2025-06-26 15:07:34 +02:00
Jeroen Bakker
360cf7f2fb Vulkan: Hide WoA message on non Woa devices
This PR only shows the Windows on ARM limitation on Windows
on ARM devices. Also some tweaks to the messages were made.

Has been tested on Linux, Windows x86 and Windows on ARM.

Pull Request: https://projects.blender.org/blender/blender/pulls/141023
2025-06-26 14:59:31 +02:00
Campbell Barton
0417719ae9 Help text: move Vulkan debugging option under "Debug Options" 2025-06-26 21:57:49 +10:00
Campbell Barton
0f590bbfb6 Cleanup: correct flag name for NDOF Y/Z axis swap 2025-06-26 21:50:03 +10:00
Campbell Barton
c3d5e429ac Fix crash assigning non UTF8 path to imbuf.filepath 2025-06-26 19:10:54 +10:00
Sybren A. Stüvel
2ce3e8c877 Fix #140969: Joining armature objects that share their data fails assertion
Add a precondition check that verifies all to-be-joined armatures are
unique. If this is detected, an error is shown and the operator is
aborted.

Joining shared Armatures is non-trivial, because the corresponding
pose bones may actually have different drivers or constraints on them
(because those live on the Object ID, and not the Armature).
Duplicating any shared Armature ID could be a first step, but I am not
convinced this is always the right approach. This is why joining
shared Armatures is not supported for now. Users can choose how to
make each Armature unique, either by deselecting objects or by
duplicating their data.

Pull Request: https://projects.blender.org/blender/blender/pulls/140971
2025-06-26 11:01:41 +02:00
Pratik Borhade
7e17ec5562 Fix #140747: Ignore armature from custom shape list
When armature is selected for custom shape of a bone, we run into
stack overflow due to recursive calls. To prevent this situation,
exclude armature object type from the custom shape list.

This also clears the `pchan->custom` pointer after loading/linking a
blend file. Otherwise a linked Armature object can still be assigned
indirectly, by renaming objects in the library file.

Fixes: #140747
Fixes: #140959

Co-authored-by: Sybren A. Stüvel <sybren@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/140851
2025-06-26 10:48:06 +02:00
Campbell Barton
2355a32017 Fix crash calling bpy.data.file_path_map with non UTF8 paths 2025-06-26 18:35:37 +10:00