Commit Graph

154876 Commits

Author SHA1 Message Date
Clément Foucault
6b0f57facf Fix #142285: 3D cursor placement ignores unselectable objects
This was caused by 3dfec1ff73
which introduce the new behavior. This was to fix workflows
using a lot of semi-transparent objects which made nagivation
difficult.

This patch first roll back to the previous behavior: The
unselectable object will affect depth-aware operators.

This patch introduces a new visibility property to remove
the influence of objects in all depth picking operations
and selection operations. However the object is still
selectable through non-drawing selection operators
(e.g. select by material) and through the outliner.
This is to adress the aforementionned navigation issues.

Pull Request: https://projects.blender.org/blender/blender/pulls/146706
2025-10-16 19:17:18 +02:00
Jeroen Bakker
e2dc63c5de Fix #147618: PyGPU incorrect colors when drawing images
644fb2b679 fixed a long standing issue
that offscreen example showed the wrong colors. However the fix assumes
that input texture color space is always sRGB.

This adds a shader variation that draws textures that are stored in scene referred
linear color space (like all of our Image data-block).

Co-authored-by: Clément Foucault <foucault.clem@gmail.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/147788
2025-10-16 19:12:16 +02:00
quackarooni
ce88d773db Fix: Nodes: bad ui for adding panel toggles
Adding panel toggles in nodegroups have somewhat of a UX antipattern. When
running the operator, it checks for conditions that indicate it should not run,
and if those are hit, it cancels execution and mentions the invalid condition in
the footer bar.

This is not ideal, the user should not have to call the operator to find out
whether it can be called.

Why it got implemented like this is likely a consequence of all interface items
being the same "New Item" operator. Poll functions cannot use operator
properties, so variants of the same operator cannot check for different
conditions for execution.

This is a problem for panel toggles, as they have more restrictions to when they
can be added that don't apply to other interface items.

This patch creates a separate operator for adding panel toggles. This allows the
condition checks to be implemented in the poll function, which enables greying
out the operator buttons and showing on tooltips what condition is invalid.

Pull Request: https://projects.blender.org/blender/blender/pulls/146379
2025-10-16 18:37:22 +02:00
Brecht Van Lommel
a1fde8bed8 Tests: Blocklist failing Storm tests on AMD and Intel
Pull Request: https://projects.blender.org/blender/blender/pulls/148148
2025-10-16 18:03:18 +02:00
Brecht Van Lommel
dbfab80943 Tests: Move GPU vendor query function to module, remove dead code for EEVEE
The implementation of this was broken and not actually used for the EEVEE
tests, as there is currently no separate reference directory for AMD.

Move it to the render report module so it can be reused by different tests.

Pull Request: https://projects.blender.org/blender/blender/pulls/148148
2025-10-16 18:03:17 +02:00
Brecht Van Lommel
74b7d663e1 Build: Avoid excessive number of threads with CUDA split compile
Only use this feature when building for 1 or 2 CUDA architectures.
Otherwise CMake will build the binaries in parallel, and NVCC will then
also launch multiple threads for each binary.

We could add more manual control for this, but the main use case for
this is local builds and an automatic heuristic seems more likely to
help than an option that developers or users might not discover.

For minimal memory usage WITH_CYCLES_CUDA_BUILD_SERIAL still exists
to use only 1 thread for CUDA compilation.

Pull Request: https://projects.blender.org/blender/blender/pulls/147303
2025-10-16 18:00:39 +02:00
Brecht Van Lommel
6e96f1cca8 Fix: Cycles HIP shadow transparency bugs after recent changes
Just tweaking code to sidestep the apparently compiler bug.

This introduces a performance regression, which we'll fix in
another PR.

Ref #147989

Pull Request: https://projects.blender.org/blender/blender/pulls/148155
2025-10-16 17:59:00 +02:00
Habib Gahbiche
c71a7b59f7 Compositor: Update asset thumbnails
It's not very obvious to some people what the effect will be from
looking at the thumbnail alone. Also, we plan to make the thumbnails
smaller (48px vs 64px) by default to match other asset shelves size.

This PR updates the thumbnails by making the effects stronger. See PR
for example images.

Pull Request: https://projects.blender.org/blender/blender/pulls/148192
2025-10-16 17:17:23 +02:00
Jacques Lucke
7ed85bfe17 Fix #148032: vertex/weight paint undo broken
The issue was that the data-blocks of two different undo steps were detected to
be identical, even if the attributes changed. That's because even if the
implicitly-shared data was different, they were turned into the same pointer by
cadb3fe5c5 on write.

This patch makes it so that for undo steps, implicitly shared data does not use
the pointer stability feature (in a sense, implicit-sharing itself provides
pointer stability for undo steps already).

The main tricky aspect is that we need to know if a pointer is implicitly shared
in `writestruct_at_address_nr` and oftentimes that's called before the
corresponding shared data is actually written with `BLO_write_shared`. The
solution is to enforce that the blend-write code has to know what pointers are
implicitly-shared before they are written the first time. The simplest way to
ensure that is to call `BLO_write_shared` first. However, that's not always
possible, especially when the pointer is directly embedded in an ID. Therefore,
there is a new `BLO_write_shared_tag` function that can be used in such cases.

The undo performance for the file in #141262 is still fixed with this change.

Pull Request: https://projects.blender.org/blender/blender/pulls/148144
2025-10-16 17:16:05 +02:00
Damien Picard
0a0d3678a6 Cycles: OSL Camera: Use title case for parameters in the UI
This is an alternate solution to !146889 to improve labels in the
camera UI, while being much less invasive. It doesn't take custom
labels into account, but it simply uses the parameter names with title
case.

Pull Request: https://projects.blender.org/blender/blender/pulls/148141
2025-10-16 15:38:59 +02:00
u3dreal
b597c0f1ed Fix: Cycles: IES interpolation artifacts at angular boundaries
Fixes artifacts in IES data interpolation where edge samples (e.g., v == 0 or
h_i == h_num-1) were clamped to 0.0f instead of valid intensity values.
2025-10-16 15:38:38 +02:00
Sybren A. Stüvel
c22db2251e Fix #111576: Unnecessary write operations on blender_assets.cats.txt
When saving asset catalogs to an already-existing file, only perform
that save when there were local changes to the catalogs. This prevents
unnecessary writes to the catalog definition file, as that can cause
conflicts when multiple Blender instances share the same asset library
(either directly or via Syncthing/Dropbox/etc.)

Pull Request: https://projects.blender.org/blender/blender/pulls/148205
2025-10-16 15:36:52 +02:00
Jorn Visser
7df175c326 Fix: Unused result warning
Check the result of the write function to avoid an unused result
warning.

Pull Request: https://projects.blender.org/blender/blender/pulls/148198
2025-10-16 15:29:03 +02:00
Guillermo Venegas
2c4ecbd536 Fix #146989: Add presentation fences
Swapchains can be destroyed safely after a new image
is presented in a new swapchain or when all submission
and presentation fences are signaled, this last ones
where missing causing issues with some drivers when
recreating swapchains.

Pull Request: https://projects.blender.org/blender/blender/pulls/147226
2025-10-16 13:34:21 +02:00
Campbell Barton
31035ae19f Fix #148189: linking relative paths fails to resolve path
Resolve regression in [0] which would attempt to use `//` when loading library files.

Expand the directories before use.

Ref !148193

[0]: 7bc7b7743b
2025-10-16 10:40:32 +00:00
Lukas Tönne
2588ea685a Fix #147860: Default input setting for node declarations is unintialized
This has ripple effects by making the "hide value" setting ineffective and
always hiding socket values as well as graying out the "hide value" node group
option.

Pull Request: https://projects.blender.org/blender/blender/pulls/148188
2025-10-16 12:14:29 +02:00
Michael Jones
5c3a6745a2 Cycles: Forward compatibility for Metal "FastIntersection" flag
Follow on from PR #141891. The `MTLAccelerationStructureUsagePreferFastIntersection` flag didn't exist until Xcode 26.0, so we ensure that it is defined for forward-compatibility. The runtime `if (@available(macos 26.0, *))` checks still remain.

Pull Request: https://projects.blender.org/blender/blender/pulls/147561
2025-10-16 11:50:28 +02:00
Christoph Lendenfeld
f4fd52796f Fix #148129: Bone Collection select/deselect not working
The bone collection operator was not updated to handle the new flag
which is now on the `bPoseChannel` instead of the `Bone`.

For this to work, the operator now needs the `bArmature` as well as the `Object`
and they need to be in sync. Additional code was added to the poll function
to ensure this is the case.

As a bonus, when working with multiple armatures this now works as expected
where only the bones of the active armature are selected even if the armature is
shared. The active object is determined by the last bone clicked.

Pull Request: https://projects.blender.org/blender/blender/pulls/148185
2025-10-16 11:34:21 +02:00
Sybren A. Stüvel
3faafe7af5 Fix #147796: Animated Transforms to Deltas resets non-animated props
Instead of always resetting the 'standard' transform, only reset those
array elements that were actually animated (and whose animation has
thus been transfered to the corresponding 'delta' transform).

This approach also has the advantage of using the defaults from RNA,
rather than hard-coding defaults based on the property name.

Pull Request: https://projects.blender.org/blender/blender/pulls/147982
2025-10-16 11:05:50 +02:00
Damien Picard
a989592654 I18n: Manually extract more node socket enum items
These enum items are only used in node socket declarations, not
exposed to RNA, and not extracted automatically for translation.

Reported by Ye Gui in #43295.

Pull Request: https://projects.blender.org/blender/blender/pulls/148083
2025-10-16 10:59:09 +02:00
Damien Picard
6e5d12151d I18n: Translate missing sockets from gather node searches
When connecting node sockets, a search menu opens. Its items need to
be added, and translated manually. This commits adds a few missing
items from recent nodes.

It does the same for sockets coming from node group assets.

Reported by Ye Gui in #43295.

Pull Request: https://projects.blender.org/blender/blender/pulls/148079
2025-10-16 10:58:35 +02:00
Christoph Neuhauser
91e83d94c5 Fix: Tests: Pass noise dependent EEVEE render tests on Intel GPUs
This PR slightly raises the accepted noise level for the following EEVEE
tests that were likely incorrectly marked as failed on Intel GPUs:
- render_layer: aov_transparency
- light: triangle_light_sampling
- bsdf: metallic_thinfilm_physical, metallic_thinfilm_f82
- principled_bsdf: principled_bsdf_transmission
2025-10-16 10:39:24 +02:00
Damien Picard
8bf46781b0 I18n: Translate brush direction enum items
Brush directions are dynamic, the enum can have different options
depending on brush type. This commit manually extracts the options.

The labels use the "Brush" translation context, to disambiguate
"Deflate", the operation, with the compression algorithm.

Also `smooth_direction_items` is moved inside
`rna_Brush_direction_itemf()`, since it is used only there, same as
the other brush direction items.

Reported by Ye Gui in #43295.

Pull Request: https://projects.blender.org/blender/blender/pulls/148081
2025-10-16 10:13:17 +02:00
Campbell Barton
2ca0c50397 Fix #148025: UV Overlap select doesn't work with select sync enabled
- Use uv_select_flush_from_tag_face to handle selection.
- Skip updating objects with no overlapping faces.

Ref !148181
2025-10-16 17:35:16 +11:00
Campbell Barton
5850fad63a Fix: UV box/lasso/circle selection fails with edge & face modes enabled
When select-sync was used with both edge & face modes enabled,
vertex selection logic was used which resulted in no visible selection.

Now edge selection is used when both edge and face modes are enabled.

Ref !148181
2025-10-16 17:35:16 +11:00
Campbell Barton
2808c411d7 Fix #148026: Box select pinned UV's fails with select-sync enabled
Implement pinned with select-sync (technically not a bug),
more an oversight in !138197.

Some subtle functional changes have been made.

- Select pinned now only works in vertex select mode
  since previously it was possible to select vertices in edge/face modes
  where the selection wasn't displayed.
- The island selection option is ignored when selecting pinned.
- The select pinned operator wasn't working with select sync edge/face
  modes. Exits with an error instead.

Ref !148181
2025-10-16 17:35:16 +11:00
Christoph Lendenfeld
174279a2a5 Fix #148164: Rigify hide drivers not generated correctly
Some less obvious uses of the `Bone.hide` property were missed in the last fix.
Since the property was moved to the pose bone this no longer worked
and has been replaced with `PoseBone.hide`

Pull Request: https://projects.blender.org/blender/blender/pulls/148183
2025-10-16 08:31:00 +02:00
Sean Kim
e059c75ef5 Tests: Add delay for UI multi window tests on Windows
Similar to #146143, the `view3d_edit_mode_multi_window` currently fails
on the Windows build bot. This commit extends the platforms that
require an extra delay to avoid failures.

Pull Request: https://projects.blender.org/blender/blender/pulls/148078
2025-10-16 04:30:56 +02:00
Campbell Barton
3099cd2124 Fix #148142: Cannot interact with normal windows (GNOME 48.4)
Resolve regression with GNOME-48 & LIBDECOR caused by fix for GNOME-49
(see !148104).

New normal (non-maximized) windows were not refreshing and ignored
cursor input. Workaround the issue be resetting the title.

See code-comments for details.

Ref !148178
2025-10-16 02:28:38 +00:00
John Kiril Swenson
a8e64f9a22 Fix: VSE: Crash from prefetch scene strip infinite recursion
PRs #147511 and #147595 ensured that any check for scene strip renders
in the prefetch thread would also recurse into "sequencer-type" scene
strips, but this introduced the potential for an infinite recursion.
Fix by using `SeqRenderState` to detect such a recursion.

Also remove unused `seqbasep` context member in `PrefetchJob`, and
add a check for non-nullptr `Editing`, fixing a crash where the scene was
present without an `Editing` counterpart.

Pull Request: https://projects.blender.org/blender/blender/pulls/147949
2025-10-16 01:55:08 +02:00
John Kiril Swenson
60d0cfdfe4 Fix #147701: VSE: Can't select markers when scene and sequencer scene differ
Add a simple check to the Marker keymap poll. Since there's no `bContext`
passed to the function we can reconstruct it from the workspace.

We can exit early if there is no sequencer scene (when no markers are
guaranteed). View layer can remain the same since it only applies in the
`SPACE_ACTION` case.

Pull Request: https://projects.blender.org/blender/blender/pulls/147903
2025-10-16 01:51:01 +02:00
Richard Antalik
8a0622ac68 Fix #148121: Thumbnails are refreshed when adding keyframes to strip
When strip property was animated, all caches were wiped. However, it is
not necessary to wipe raw cache or thumbnail cache.

Pull Request: https://projects.blender.org/blender/blender/pulls/148162
2025-10-15 21:46:30 +02:00
Jonas Holzman
a0de2e2f5d Deps: macOS arm64: OSL dependency rebuild
Ref blender/blender#147620
Ref blender/blender#147727

Pull Request: https://projects.blender.org/blender/blender/pulls/148153
2025-10-15 19:09:06 +02:00
Anthony Roberts
8a35d4e2bf Windows ARM64: 5.0 OSL threading update
As per #147727

Pull Request: https://projects.blender.org/blender/blender/pulls/148151
2025-10-15 18:37:33 +02:00
Ray Molenkamp
b215764842 Win64: Updated OSL Libs
This fixes #147361 and #147642
2025-10-15 10:07:45 -06:00
Sergey Sharybin
969214cba8 Tests: Blocklist known failures for Cycles render tests
This change marks hair_linear_close_up.blend is blocked for Metal-RT.
Linear curves parameterization is different, see #146072

Pull Request: https://projects.blender.org/blender/blender/pulls/148119
2025-10-15 17:13:16 +02:00
YimingWu
db96265568 Fix #148061: Prevent unknown socket type from crashing when reading file
`socket.socket_typeinfo()` can be nullptr when reading blend files that
contains custom socket types that are not registered yet. This fix
prevents crashing when this happenes (but the socket will stay
unregistered).

Pull Request: https://projects.blender.org/blender/blender/pulls/148103
2025-10-15 16:54:08 +02:00
Sergey Sharybin
a3681c98ef Build: Linux libraries for OSL
Ref #147620
Ref #147727

Pull Request: https://projects.blender.org/blender/blender/pulls/147812
2025-10-15 16:29:48 +02:00
Damien Picard
cf7713aac6 I18n: Disambiguate "Second", the unit, not the ordinal
Reported by Alexandr Fatih in #43295.

Pull Request: https://projects.blender.org/blender/blender/pulls/148085
2025-10-15 16:26:48 +02:00
Damien Picard
90e2dfd2e3 I18n: Translate dynamic operator descriptions
The descriptions for `POSELIB_OT_asset_modify` and
`GEOMETRY_OT_execute_node_group` are dynamic. They were already
extracted, but the translation did not happen in the description
function.

This commit adds the appropriate `TIP_` translation macro.

Reported by Ye Gui in #43295.
2025-10-15 16:26:46 +02:00
Damien Picard
c36c103389 I18n: Translate "Unassigned Node Tools" tool node menu
The "Unassigned Node Tools" menu type is declared manually in a
function, and its label is not automatically translated. This commit
extracts it using `N_()`. Note that its description was already
extracted the same way.

Reported by Ye Gui in #43295.
2025-10-15 16:26:46 +02:00
Damien Picard
5e6ea2fa78 I18n: Disambiguate "Value" in the context of colors 2025-10-15 16:26:46 +02:00
Damien Picard
51a0d1bf1c I18n: Translate curve falloffs using existing context
In particular, "Inverse Square" is only extracted in the Curve
translation context.

Reported by Ye Gui in #43295.
2025-10-15 16:26:46 +02:00
Damien Picard
197d69627d I18n: Fix translation of formatted string in report 2025-10-15 16:26:46 +02:00
Damien Picard
9ff1b4f1ec I18n: Translate error messages in VR add-on 2025-10-15 16:26:46 +02:00
Damien Picard
d1fdc7a0ce I18n: Do not translate Python template menu entries 2025-10-15 16:26:46 +02:00
Julian Eisel
ba71402e24 Fix: Undefined behavior when using UI list or tree-view scrollbar
A scrollbar button would be cast to a number-slider button, and values from
this memory used for scrollbar specific calculations. Looks like an error from
809499a3d0.

In practice the error wouldn't be visible, since the actually used value would
by chance be the intended value, from what I can tell. That's because
`uiButNumberSlider.step_size` and `uiButScrollBar.visual_height` have the same
memory offset within the button memory.
2025-10-15 16:21:58 +02:00
Patrick Mours
d9cce547e6 Fix: OSL shadeops module fails to load in OptiX
The OSL dependency is built with target sm_50 currently, which means
that LLVM defaults to generating PTX version 4.0. However, due to an
apparent bug in LLVM 20 it still uses instructions that were only
introduced in PTX version 6.0. As a result OptiX refuses to load the
shadeops PTX with an `OPTIX_ERROR_INVALID_INPUT` error.

To fix this, raise the PTX version generated by LLVM to 6.0 for both the
shadeops module (which previously used 4.0) and also any generated code
(which previously used 5.0) to be safe. PTX version 6.0 was introduced with
CUDA 9, so it has pretty long driver backwards compatibility still.

This commit contains fixes for the OSL, to fully fix the original report
a recompiled OSL libraries would need to land for the affected platforms.

Ref #147361

Pull Request: https://projects.blender.org/blender/blender/pulls/147620
2025-10-15 16:18:46 +02:00
Sergey Sharybin
1621950441 Build: Fix threading issue in OSL
This change ports the PR from upstream to the build system:
https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/2029

Ref #147642

Pull Request: https://projects.blender.org/blender/blender/pulls/147727
2025-10-15 16:07:45 +02:00
илья _
7b3737f1e9 Fix: Mesh: Wrong corner edge indices in result of edge generation
Instead of reordering edges to be able to map them with hash sets, new
edges order (since 157e7e0351) is kept as-is in order to not
touch edge attributes. In early return in case of correct mesh this new
ordering was missed. This was found in file from #147694.

Pull Request: https://projects.blender.org/blender/blender/pulls/147872
2025-10-15 15:39:11 +02:00