Commit Graph

121784 Commits

Author SHA1 Message Date
Ray Molenkamp
6c80332f0f Win: Disable bug report button on crash dialog
This workflow has some issues that lead to a large influx of low
quality reports, remove the button for now until a better workflow
has been put in place.

Pull Request: https://projects.blender.org/blender/blender/pulls/142272
2025-07-23 16:57:15 +02:00
Hans Goudey
d6252aa59a Mesh: Slightly optimize edit UV triangles index buffer full selection
It's simple to skip some work when all the triangles will be rendered
in the UV editor (though theoretically the best option would be to
share the non-UV triangle index buffer in this case).
2025-07-23 10:49:01 -04:00
Hans Goudey
e53e736453 Mesh: Parallelize edit UV triangle index buffer creation
Avoid function call overhead, add consistency between BMesh
and Mesh, parallelize filling the data and calculating the selection,
and avoid over-allocation in the cases where not all triangles will
be rendered.

Pull Request: https://projects.blender.org/blender/blender/pulls/142880
2025-07-23 15:24:30 +02:00
Aras Pranckevicius
025019e74d Fix #142853: adding a VSE effect displays stale frame
VSE final image cache invalidation for the newly added effect
strip was invoked before the strip time range values were set,
effectively not invalidating anything.

Pull Request: https://projects.blender.org/blender/blender/pulls/142854
2025-07-23 15:08:50 +02:00
Hans Goudey
61cf76071b Fix #142785: Sculpt mode multires fast navigate artifacts
Part of the index buffer was uninitialized. Don't upload that part.
Similar to d84f10f2a0.

Pull Request: https://projects.blender.org/blender/blender/pulls/142891
2025-07-23 14:38:10 +02:00
YimingWu
59625019b8 Fix #139530: Modeling: Allow adding snap points in increment/grid modes
Previously if only Increment/Grid Snap Targets are selected, transform
tools will not allow adding snap targets, although if there are extra
snapping target type enabled, you are still able to add grid points as
new snap points anyways, thus remove the restriction.

Pull Request: https://projects.blender.org/blender/blender/pulls/139534
2025-07-23 14:31:14 +02:00
Brecht Van Lommel
d8c256da2c Fix #142399: Object dimensions with GPU subdivision off are inaccurate
They are already known not to take into account the subdivision when GPU
subdivision is on, see #96598. When GPU subdivision is off we can keep them
accurate though.

Pull Request: https://projects.blender.org/blender/blender/pulls/142729
2025-07-23 14:24:35 +02:00
Brecht Van Lommel
7f0f8d4e94 PyDoc: Document all app handler arguments
Previously this was only done for a couple handlers.

Ref #142330

Pull Request: https://projects.blender.org/blender/blender/pulls/142873
2025-07-23 14:23:21 +02:00
Hans Goudey
9ea9d3b777 Fix #142087: Use true normals in solidify modifier
The behavior was changed by d3f84449ad.

It's unclear whether considering custom normals is the "correct"
behavior here. Intuitively it makes more sense to use the true normals
for solidify because the purpose is generally to create even offsets
from existing goemetry. It's also valuable to just restore the old
behavior. A hypothetical node-based solidify would probably provide the
option to customize the offset vector.

Pull Request: https://projects.blender.org/blender/blender/pulls/142892
2025-07-23 14:22:15 +02:00
Anthony Roberts
6af07a8abb Vulkan: Update Qualcomm driver version check
Resolves #142859

I have been informed by Qualcomm that this public version should be functional to the same degree as the one given to Jeroen for testing

Pull Request: https://projects.blender.org/blender/blender/pulls/142949
2025-07-23 13:48:10 +02:00
Campbell Barton
5e3db5fbb0 Cleanup: consistent use of back-ticks in code-comments 2025-07-23 20:59:16 +10:00
Campbell Barton
81535a470c Docs: document prepare_fn parameter 2025-07-23 20:59:16 +10:00
Omar Emara
b73d085e88 Fix: Crash when group node has no Group Output node
The compositor crashes when a group node has an output that is connected
to the compositor output, but the group internally has no Group Output
node. That's because the derived node tree structure would return a null
origin socket for this case, but the null socket is not handled by the
code. To fix this, we assume the input socket in such cases.

Pull Request: https://projects.blender.org/blender/blender/pulls/142944
2025-07-23 11:38:33 +02:00
Omar Emara
1ef8822342 Cleanup: Remove confusing statement from Alpha Over tooltip 2025-07-23 12:37:13 +03:00
Campbell Barton
50f60dbe2d Fix #142633: Crash calling bmesh.ops.split from Python
The bmesh.ops.split operator could include deleted edges as the keys
for `boundary_map`.

Resolve by replacing deleted edges with so the same edge is used for
the key & value, needed so the boundary_map can access the entire
boundary, even when it's source edges have been deleted.
2025-07-23 09:30:48 +00:00
Jacques Lucke
2e48d33101 Geometry Nodes: improve internal bundle api
This extends the API for bundles in two main ways:
* Adds support for working with paths to reference nested bundles directly.
* Adds support for typed add/lookup, also taking into account implicit conversions.

Some unit tests have been added as well.

Pull Request: https://projects.blender.org/blender/blender/pulls/142942
2025-07-23 11:23:32 +02:00
Campbell Barton
605e6c0bbf Fix: BKE_collection_new_name_get potentially creating non UTF8 strings
Use of `*.%s` in string formatting could cause the name to include
partial UTF8 sequences. While these were stripped before ID creation,
they would be set in operator properties which are expected to be UTF8.

Also remove redundant allocation.
2025-07-23 12:55:50 +10:00
Campbell Barton
d3fd04c816 Fix #142909: SystemError when collections contain non UTF8 names
The Python API wasn't accounting for structs name properties using
path sub-types, which allow non UTF8 byte sequences.

This meant accessing the SpaceFileBrowser.recent_folders collection
could cause unhandled exceptions because
FileBrowserFSMenuEntry.name uses the PROP_FILENAME sub-type.

Resolve by adding a wrapper around the RNA struct name lookup
that handles path properties properly.
2025-07-23 12:38:23 +10:00
John Kiril Swenson
6571236b59 VSE: Clamp retiming key header values and snap drawing
Fixes #142735.

The original clamp patch in #134319 did not add any cases for retiming
key transformation code. A simple solution to the crash would be to
disable the behavior, but this PR opts to bring feature parity to
retiming keys too.

This means that header values are now more accurate, and snap lines do
not erroneously draw when retiming keys get clamped.

It also changes transition key transformation slightly, aligning the
direction of movement with the movement of the two keys. Before, moving
the mouse backwards would have the same effect, which was clunky and
unintuitive.

Pull Request: https://projects.blender.org/blender/blender/pulls/142809
2025-07-23 04:14:07 +02:00
Campbell Barton
336c85957b Fix: match RenderPass::chan_id size with EXR_PASS_MAXCHAN
Missed in [0] which increased the size in openexr_multi.h but didn't
update RE_pipeline.h.

[0]: d5f1b9c2223333e03f2e4994171ad9df8c1c4f21⏎
2025-07-23 10:30:07 +10:00
Campbell Barton
5c7bc1f9c0 Cleanup: use size-comments checked by "make check_size_comments" 2025-07-23 09:59:26 +10:00
Campbell Barton
72a88de9ef Cleanup: use colon after the doxygen params argument & doxygen comments 2025-07-22 23:25:02 +00:00
Campbell Barton
06bb402f22 Cleanup: quiet switch warnings 2025-07-22 23:25:01 +00:00
Leon Schittek
6a10812fb6 UI: Improve consistency of node socket symbols
Several changes to make node socket symbols more consistent across
the UI:
* Explicitly use the node editor's theme when looking up the outline
  color for node sockets so they are consistent across editors.
* Use the proper socket drawing function in `widget_nodesocket`,
  rather than relying on the "widget base" shader to draw a colored
  circle
* `uiTemplateNodesocket` now also works in non-embossed layouts.

Pull Request: https://projects.blender.org/blender/blender/pulls/136612
2025-07-22 23:43:22 +02:00
Sean Kim
9e44e975c1 Fix #142006: Grease Pencil color jitter settings not transferred
The flags were converted with 96e549c092,
but the new values only used the new `Brush` level properties in
b472570875.

Additionally, the `CurveMapping` structs were not initialized inside
the various operations that depended on them, potentially leading to
a crash if custom curves are used.

This commit fixes what was missing from both previous commitsL
* Conversion of the HSV jitter values and their curves to the new
  storage location.
* Correct initialization in relevant operators

Pull Request: https://projects.blender.org/blender/blender/pulls/142104
2025-07-22 23:23:29 +02:00
Aras Pranckevicius
828bd5336b Cleanup: remove unused variables from VSE Editing struct
act_imagedir and act_sounddir were added in 2009 (999d9d146e)
but seemingly never ever used for anything. So remove that; makes
Editing struct go from 3248 bytes down to 1200 bytes as well.

Pull Request: https://projects.blender.org/blender/blender/pulls/142846
2025-07-22 20:15:30 +02:00
John Kiril Swenson
ec4323f95b Cleanup: VSE: Move strip flags to StripRuntime
Quite a few flags in `Strip.flag` were used only at runtime; they were
temporarily set and then cleared thereafter. Move them to
`StripRuntime.flag` instead.

Most of the moves are trivial renames, with some old versioning code for
`SEQ_FLAG_DELETE` deleted. That code fixed a very uncommon edge-case bug
in 2.x which doesn't seem worthwhile to keep deprecated code around for.

Pull Request: https://projects.blender.org/blender/blender/pulls/142776
2025-07-22 19:42:07 +02:00
Harley Acheson
32dd728768 Fix #141313: Clear Screen active_region for Area swap
If screen areas are swapped between windows this can cause an ASAN
heap-use-after-free because of invalid screen->active_region pointer.
That pointer is quickly reassigned as mouse movement indicates the
active region, so just clear them for this operation.

Pull Request: https://projects.blender.org/blender/blender/pulls/142877
2025-07-22 19:35:44 +02:00
Aras Pranckevicius
9c3509bacc VSE: Better default values for newly added Gaussian Blur effect
Previously, newly added Gaussian Blur effect did not blurring at all,
since blur sizes were set to zero. Make them default to 9 pixel size
blur, which is similar to the amount of blur the Glow effect does by
default.

Pull Request: https://projects.blender.org/blender/blender/pulls/142851
2025-07-22 18:53:16 +02:00
Bastien Montagne
ea91025b9a Refactor: Readfile: Modernize/cleanup library expand process.
Make `expand_main` a local static function, there is no need for it to
be in the public API anymore.
(It was used in older, pre-'foreach-id' code, as a way to loop over ID
usages. This is no more relevant for quite some time now.)

Use a std::queue to store IDs to be expanded, instead of looping several
times over all IDs of the current library Main until all have been
expanded.
(Cleaner, and will become necessary in upcoming packed IDs change, where
IDs read/loaded from a same blendfile may end up in several different
Mains).

Pull Request: https://projects.blender.org/blender/blender/pulls/142878
2025-07-22 18:52:37 +02:00
Christoph Lendenfeld
2a68d9a9a8 Refactor: Remove TODO and use constexpr when converting edit bones
No functional changes.

This deals with the TODO
`/* TODO(sergey): How to ensure this is a constexpr? */`
by just making it a `constexpr`.
The line in question was `square_f(0.000001f)`
so the constexpr is just `0.000001f * 0.000001f`

Pull Request: https://projects.blender.org/blender/blender/pulls/142872
2025-07-22 17:38:27 +02:00
Hans Goudey
beb062949b Fix #142814: Incorrect object mode UV overlay with GPU subdivision
Same problem as d84f10f2a0
2025-07-22 10:55:29 -04:00
Bastien Montagne
1955edee15 Readfile: Optimization: Do not attempt to expand nullptr IDs.
These can be quite a significant part of processed ID pointers, no point
in calling the callback on them.
2025-07-22 16:48:01 +02:00
Clément Foucault
1f42ca9be3 Cleanup: GPU: Avoid warning in switch statement
Caused by 32d64d35bb.
2025-07-22 16:45:04 +02:00
Hans Goudey
fff0fd0172 Cleanup: Remove unused variable 2025-07-22 10:30:16 -04:00
Dawid Kurek
e50ced2e80 Hydra: Forward camera custom properties of type double to render delegate
Pull Request: https://projects.blender.org/blender/blender/pulls/142857
2025-07-22 16:28:19 +02:00
Brecht Van Lommel
902f1ebf89 Revert "Cleanup: Compiler warning about unused ntree with node socket tooltips"
This reverts commit f7ae14cd6a. The warning got
fixed another way before I pushed this change.
2025-07-22 16:22:26 +02:00
Brecht Van Lommel
f7ae14cd6a Cleanup: Compiler warning about unused ntree with node socket tooltips 2025-07-22 15:54:29 +02:00
Lukas Tönne
6c959745ee Fix #142325: Grease Pencil: Join Selection removes wrong points
The Join Selection operator can remove the original selected points, but
this often removes the wrong points. The reason is that the point ranges
are removed sequentially, and each removal changes the curve topology,
invalidating subsequent ranges. The solution is to combine the ranges
into a single index mask for each drawing before removing points, so
that each drawing is only modified in a single operation.

Pull Request: https://projects.blender.org/blender/blender/pulls/142834
2025-07-22 15:17:58 +02:00
Tenkai Raiko
4ee4cd8451 Fix: Link dragging Falloff Size doesn't work
Link dragging the Falloff Size input from the Dilate node doesn't work
due to a missing make_available callback, which this patch implements.

Pull Request: https://projects.blender.org/blender/blender/pulls/142829
2025-07-22 15:09:56 +02:00
Clément Foucault
32d64d35bb Refactor: GPU: Texture: Replace eGPUTextureFormat by TextureFormat
This offers better semantic and safety of the API.

Part of #130632

Pull Request: https://projects.blender.org/blender/blender/pulls/142818
2025-07-22 14:58:54 +02:00
Jonas Holzman
144696f7ee Cleanup: Allow ED_screen_temp_space_open() to take a null title argument
This suppreses -Wnonnull compiler warnings that would previously appear
when trying to pass a nullptr title to this function.

Internally, this function passes its `title` argument to `WM_window_open()`,
which in turn passes it to `WM_window_title()`, which can take a nullptr
as a title, in which case the title is computed dynamically from the
window area name.
2025-07-22 14:51:12 +02:00
Nathan Vegdahl
d7c6cbc6bf Core: Sanitize ID/struct names when used in path templates
In #139438 we added three path template variables that get their values
from user-specified names:

- `scene_name`
- `camera_name`
- `node_name`

These names can contain characters that are illegal in filenames on some
systems, and also characters like "/" that would be interpreted as path
separators in a filepath. This can lead to unexpected outcomes.

For example, if a node's name is "Hue/Saturation" and the `{node_name}`
variable is used in a path, it would result in a "Hue" directory which
in turn contains a "Saturation" file. This is almost certainly not what
the user intended, because the slash in that name is not semantically
supposed to be a path separator.

This PR addresses this problem by splitting string variables into two
types: strings and filepaths. The contents of string variables are
sanitized to be valid filenames when substituted into a path template,
but the contents of filepath variables are left as-is.

Variables such as `blend_name`, `blend_dir`, etc. that actually
represent path components are then added as filepath variables, while
variables such as `scene_name` that represent plain strings without path
semantics are added as string variables.

Pull Request: https://projects.blender.org/blender/blender/pulls/142679
2025-07-22 14:47:56 +02:00
Habib Gahbiche
907d023b83 Fix #142811: UV edit cage no longer has corner scale points
The commit `b3a5d03bd0` introduced a new draw option for cage gizmos to
draw corners. This was turned off by default to prevent it being
visible in circular 2d gizmos.

This fix turns the corner draw option back on explicitly. Note: The
relevant 2D gizmo already sets  `ED_GIZMO_CAGE_XFORM_FLAG_SCALE`, so no
 changes in transform options are required.

Pull Request: https://projects.blender.org/blender/blender/pulls/142840
2025-07-22 13:48:55 +02:00
Lukas Tönne
238b845166 Fix #142630: Custom socket polling fails due to missing a "base" type
Adding a custom node socket in a node group fails, because the socket
type no longer passes the poll function.

Socket type polling for generated enum items was changed in #138824:
The socket type enum is based on the position in the socket types list,
but regular sockets generate many subtypes that should not appear in the
enum. Therefore only the "base type" of the socket is used for the enum
entry. Custom sockets, however, do not have a base type and are used
directly. This broke because now any socket type without a base type
is always rejected.

Fixed by handling a missing base type as indicator that the socket type
should be used directly.

Pull Request: https://projects.blender.org/blender/blender/pulls/142816
2025-07-22 11:07:30 +02:00
Clément Foucault
f0254c2dcf Refactor: GPU: Remove unnecessary C wrappers for textures
This is the first step into merging `DRW_gpu_wrapper.hh` into
the GPU module.

This is very similar to #119825.

Pull Request: https://projects.blender.org/blender/blender/pulls/142732
2025-07-22 09:48:10 +02:00
Christoph Lendenfeld
748958f084 Fix #141982: Screenshot drawing incorrect on Mac
The issue was the direct use of `window->size[x/y]`
for drawing. Using `WM_window_native_pixel_size` instead fixes the issue

Pull Request: https://projects.blender.org/blender/blender/pulls/142204
2025-07-22 09:48:02 +02:00
YimingWu
346464d491 Fix #142749: Geometry Nodes: Add float4x4 case in get_field_type_name
When hovering on a matrix field socket, `get_field_type_name` can fail
because of missing `float4x4` case. Now it will properly return a
"Matrix Field" name.

Pull Request: https://projects.blender.org/blender/blender/pulls/142794
2025-07-22 09:36:37 +02:00
Pratik Borhade
29b90af679 Shape Key: Delete selected keyblocks
Now that multi-select works with shape key, support deleting selected
keyblocks. New function `shape_key_is_selected` being introduced that
returns true for selected/active shape keys

Co-authored-by: Sybren A. Stüvel <sybren@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/141881
2025-07-22 09:06:58 +02:00
Germano Cavalcante
66ef7f5621 Fix #142314: Crash popup blocks automation in background mode
Crash popups were being displayed even when Blender was running in
background mode, causing the process to hang and blocking automated
workflows (e.g., render farms).

Therefore, disable the crash popup when running in background mode.

Pull Request: https://projects.blender.org/blender/blender/pulls/142518
2025-07-22 09:04:14 +02:00