Commit Graph

153204 Commits

Author SHA1 Message Date
Brecht Van Lommel
d55ec77e0f Git: Use LFS for binary ICC files 2025-08-21 15:25:19 +02:00
Brecht Van Lommel
1f9f1d0b6e Color Management: Improve wide gamut color buttons and pickers
These should at least show the correct colors and gamut now, following the
color picking space in the OpenColorIO config.

However the ACES config use sRGB as the color_picking role, which means
that the color picker only shows a limited a gamut. There is apparently is
not agreement on the interpretation of this role, so we might have to stop
using it.

Additionally, if you set the color_picking role to something like ACEScg +
sRGB transfer function, the widgets do show all the colors in the gamut,
however the gamut is probably too large to be practical for most uses. So
we need some UI solution for this regardless.

Ref #144911

Pull Request: https://projects.blender.org/blender/blender/pulls/144565
2025-08-21 15:25:15 +02:00
Brecht Van Lommel
13e1c222ee Color Management: Add some heuristics to match display and view names
To improve compatibility when switching between Blender and ACES 2.0 config,
and when there is no exact matching view name when switching displays.

Ref #144911

Pull Request: https://projects.blender.org/blender/blender/pulls/144565
2025-08-21 15:25:13 +02:00
Brecht Van Lommel
c826b0630d Color Management: Group SDR and HDR displays in menu
This helps users discover that they should use Rec.2100 PQ for HDR.

And drop redundant "- Display" suffix from ACES config, makes the menu look
more clean.

Ref #144911

Pull Request: https://projects.blender.org/blender/blender/pulls/144565
2025-08-21 15:25:09 +02:00
Brecht Van Lommel
b0d52c528b Color Management: Remove "High Dynamic Range" setting
This was a temporary solution until we had proper HDR displays.

* Auto detect from the display + view transform if they are HDR, and
  enable it automatically. This is based on encoding hdr-video in the config.
* If a HDR transform is selected and there is no HDR display support, an
  info message will be shown in the color management panel.
* It is now possible to view HDR images in the image editor, without
  needing to use "View as Render".
* There is no versioning to switch to a HDR display, because that also
  affects image saving. So users will have to manually select the
  "Rec.2100 PQ" display to see HDR colors again.

Ref #144911

Pull Request: https://projects.blender.org/blender/blender/pulls/144565
2025-08-21 15:25:06 +02:00
Brecht Van Lommel
62485a760f Color Management: Wide gamut display
* Change meaning of display device to be the device that we are trying
  to emulate, not the monitor configuration.
* The display transform is now:
 * User specified view and display transform
 * Clamp to 0 to limit colors to gamut
 * Inverse untonemapped display transform
 * Convert to extended sRGB
* When using the display space in the color management API, it now needs to
  be specified if it's for drawing (with emulation) or file output or color
  inspection (without).

Like HDR, this only works on macOS and Linux + Wayland + Vulkan currently.
Support for Windows/Vulkan is under development in #144717.

Ref #144911

Pull Request: https://projects.blender.org/blender/blender/pulls/144565
2025-08-21 15:25:01 +02:00
Brecht Van Lommel
ff52b7eef4 Color Management: Base color space interpretation on interop ID
For display and image saving, we need to know certain properties of displays
and view transforms that OpenColorIO does not explicitly provide. In the
upcoming OpenColorIO 2.5 there will be an interop ID for color spaces that
adds more information. This moves towards that design, with heuristics for
configs that don't have the interop IDs.

* Try to use the first colorspace alias as the interop ID. This is used in
  some existing configs, and now the Blender config as well.
* Improve ACES 2.0 config compatibility by interpreting some aliases like
  srgb_display as interop IDs.
* Detect is_srgb and is_wide_gamut through display colorspace interop ID.
  These are now per view rather than per display.
* Detect is_extended where we can't clamp to 0..1 through interop ID.

* Detect untonemapped view as config wide default view transform for converting
  between reference and display space, if "Standard" or "Un-tone-mapped" can
  not be found.
* Detect which display and view transform combination is HDR by checking for
  "hdr-video" encoding on the display colorspace in the OpenColorIO config.

Ref #144911

Pull Request: https://projects.blender.org/blender/blender/pulls/144565
2025-08-21 15:24:56 +02:00
Brecht Van Lommel
55de973b07 Color Management: Add Rec.2100-PQ display and ACES 2.0 view transforms
These are built into OpenColorIO, and will start working well with the upcoming
wide gamut display changes.

The ACES 2.0 view transform provides an alternative to AgX and Filmic, with
similar purpose. It is also useful for those working in an ACES pipeline when
the full ACES OpenColorIO config is not needed.

Rec.2100-PQ display is a HDR display, and will be what you select when wanting
to see HDR (and wide gamut) colors, and export them to HDR video.

Ref #144911

Pull Request: https://projects.blender.org/blender/blender/pulls/144565
2025-08-21 15:24:52 +02:00
Brecht Van Lommel
235fdc6356 Color Management: Fix wrong use of display color space
* PROP_COLOR_GAMMA is sRGB, not display space
* Hex colors are always sRGB
* Image byte buffers are in byte_buffer.colorspace

Fixes for sequencer text, image painting, render stamp and tooltips.
The default display space is sRGB, so this change will not be noticed
in most files.

Ref #144911

Pull Request: https://projects.blender.org/blender/blender/pulls/144565
2025-08-21 15:24:40 +02:00
W_Cloud
24308a9f21 Nodes: Inherit color tag when grouping a single node
The `Ctrl + G` make group operator now inherits the color_tag
from the selected node when only one node is selected.

Pull Request: https://projects.blender.org/blender/blender/pulls/144861
2025-08-21 14:50:19 +02:00
Campbell Barton
fc7141f582 Fix #142137: Dynamic paint crashes when evaluating poses
DEG_add_collision_relations was only adding relationships for objects in
the brush collection, however dynamic paint also updates parent objects
and armature poses which weren't accounted for. Failing to include these
relations meant the evaluating the depsgraph could evaluate a pose
object from multiple threads at once - causing a crash.

Resolve by sharing logic between DEG_add_collision_relations &
BKE_object_modifier_update_subframe so depsgraph relationships match
objects the dynamic-paint modifier updates as part of its evaluation.

Ref !144844
2025-08-21 22:13:18 +10:00
Campbell Barton
cc553739d8 Cleanup: various minor changes BKE_object_modifier_update_subframe
- Rename `parent_recursion` to `parent_recursion_limit`.
- Use a define for the recursion default.
- Use const arguments.
2025-08-21 22:13:18 +10:00
Sybren A. Stüvel
f5ba4dbfe6 Python: Fix parameter name in error message from bpy.data.file_path_map()
When `bpy.data.file_path_map(subset=X)` is called, where `X` has the
wrong type, it now correctly shows `subset` as the erroneous parameter.

Pull Request: https://projects.blender.org/blender/blender/pulls/144914
2025-08-21 14:11:26 +02:00
Sybren A. Stüvel
a7cf8963da Cleanup: better documentation for the Bone struct
Improve the documentation for the Bone coordinate spaces and these struct fields:

- `head` & `tail`
- `bone_mat`
- `arm_head` / `arm_tail`
- `dist`

No functional changes.

Pull Request: https://projects.blender.org/blender/blender/pulls/143729
2025-08-21 14:10:25 +02:00
Jeroen Bakker
bca70c85e7 Cleanup: struct initializers 2025-08-21 12:27:19 +02:00
Jeroen Bakker
5767da3b49 Fix #144758: Python: Inversed unicode comparison in GPUFramebuffer
Regression introduced by d9f38fca5f

Pull Request: https://projects.blender.org/blender/blender/pulls/144908
2025-08-21 11:52:24 +02:00
Pratik Borhade
e196384a68 Fix #144840: Crash unlinking object from outliner unused data mode
When unlinking object from unused data display mode, crash occurred due
to dangling pointer (`id->lib->runtime`) of parent tree element. Here
parent is "Objects" tree element which is not an actual ID. Similar to
other unlink callback, add an extra check to ensure we're unlinking from
valid ID/tree element.

Pull Request: https://projects.blender.org/blender/blender/pulls/144853
2025-08-21 11:40:38 +02:00
Clément Foucault
5681d41ca5 Fix: GPU: Wrong default size for compute local group size
The doc string was updated by 16430b10f1
but the default were not changed.
2025-08-21 11:32:43 +02:00
Campbell Barton
ca754bc3b2 Help text: tweak for better extraction for the user manual & man page
Use single quotes which are converted to literal text.
2025-08-21 18:19:39 +10:00
Weizhen Huang
28dcb7b04f Cleanup: Quiet compiler warning 2025-08-21 10:16:41 +02:00
Campbell Barton
08eea6b9d4 Help text: group all debug options together 2025-08-21 17:28:15 +10:00
Jeroen Bakker
3b295618f8 Fix #144614: Vulkan: Disable optimization for large shaders
This is a workaround for an issue in SPIRV-Optimizer. When optimizing
large shaders the optimizer can crash. This can be fixed by altering the
maximum object ids and performing a compact ids in the end. However this
part of the API is not accessible via ShaderC.

To work around the issue shader optimizations are being disabled for
large shaders. The issue has been reported upstream.

Pull Request: https://projects.blender.org/blender/blender/pulls/144774
2025-08-21 09:14:56 +02:00
Campbell Barton
b1cd0ff91e Cleanup: add missing headers to source lists 2025-08-21 17:09:18 +10:00
Campbell Barton
66ed599c33 Cleanup: remove Python scripts & directory from CMake source file lists 2025-08-21 17:09:18 +10:00
Jorn Visser
0f8eb1b944 Fix: Vulkan: Submission runner crash on start
In `init_submission_pool`, the submission runner was started before
initializing the queues it uses, leading to a race condition that could
result in a crash.

Pull Request: https://projects.blender.org/blender/blender/pulls/144795
2025-08-21 09:06:23 +02:00
Omar Emara
3d7c8d022e Refactor: Nodes: Generalize node tree subtypes
This patch generalizes node tree subtypes to be usable for node trees
other than Geometry Nodes. In particular, this:

- Renames SpaceNode.geometry_nodes_type to node_tree_sub_type, which now
  store a tree type-specific enum.
- Renames SpaceNode.geometry_nodes_tool_tree to selected_node_group,
  which now stores any context-less tree of any type.

This breaks the python API due to renaming.

Pull Request: https://projects.blender.org/blender/blender/pulls/144544
2025-08-21 09:04:13 +02:00
Jeroen Bakker
40f8a36fd5 Fix #144542: Crash Workbench DoF
Attaching mipviews directly on a framebuffer results in a driver crash.
Letting the backend handle the mipviews works around the issue.

This fixes the crash, but seems to point to an issue when attaching
mipviews directly. It also ensured that the shader bound mipviews
cannot be destroyed when new mipviews are ensured.

Pull Request: https://projects.blender.org/blender/blender/pulls/144796
2025-08-21 08:44:21 +02:00
Campbell Barton
f9bf5841fb Cleanup: correction to mark_as_advanced from last commit 2025-08-21 16:18:57 +10:00
Campbell Barton
ecc5930684 Cleanup: mark library directories as advanced on UNIX 2025-08-21 16:15:06 +10:00
Campbell Barton
c6be1e965c Cleanup: suppress array-bounds warning for GCC 15.2.x
The existing suppression from [0] wasn't working for release builds.
Explicitly suppress the warning instead of using a dummy check.

Ref !144898

[0]: 9ad46ebd2f
2025-08-21 06:06:24 +00:00
W_Cloud
d1511506a0 Cleanup: correct comment
Fix one line outdated comment. `NodeGroupColorTag` was renamed to `NodeColorTag` in #131101.

Pull Request: https://projects.blender.org/blender/blender/pulls/144899
2025-08-21 07:57:33 +02:00
Jeroen Bakker
43a2bfa9c3 Vulkan: Add assert for potential driver crash
Pull Request: https://projects.blender.org/blender/blender/pulls/144782
2025-08-21 07:35:15 +02:00
Campbell Barton
3997e36bdb Cleanup: disable -Wnontrivial-memcall for CLANG with remove_strict_flags
Suppresses noisy warnings in extern/bullet/ & extern/mantaflow/.
2025-08-21 14:23:10 +10:00
Campbell Barton
af0002c242 Fix: don't attempt to load unknown arguments as a blend file
When `--gpu-vsync` & `--gpu-compilation-subprocesses` received invalid
arguments, they weren't skipped (typically an attempt to load them as
a bland file would be made).
2025-08-21 14:16:24 +10:00
Campbell Barton
25ec9729dc Build: correct TBB include
`TBB_INCLUDE_DIR` is not meant to be used directly and isn't declared
on Linux. Replace with `TBB_INCLUDE_DIRS`.
2025-08-21 13:37:33 +10:00
Campbell Barton
be5a4606ff Cleanup: quiet use of unknown variable warning in CMake
Also set variables instead of appending as they won't have been defined.
2025-08-21 12:14:54 +10:00
Campbell Barton
2e6fb3e8e7 Cleanup: suppress deprecated-copy warnings 2025-08-21 02:05:34 +00:00
Campbell Barton
fb28091671 Cleanup: quiet array-bounds GCC warning 2025-08-21 02:05:32 +00:00
Campbell Barton
1070d6b64e Cleanup: use SPDX header in CMakeLists.txt generator 2025-08-21 12:02:33 +10:00
Campbell Barton
6361cedd62 Cleanup: remove tools/utils_build/cmake-flags
Since it's inclusion, we have more convenient ways to enable features
such as ASAN. Remove the script since this hasn't been updated in a long
time and would be better off as a 3rd party tool.
2025-08-21 12:02:33 +10:00
Sean Kim
e648f1fcbc Cleanup: Various changes for calc_area_normal_and_center
* Remove `_r` suffix from internal variable
* Use bitflag instead of two booleans for function parameter

Pull Request: https://projects.blender.org/blender/blender/pulls/144597
2025-08-21 03:36:52 +02:00
Sean Kim
884ab7beb6 Fix: Use correct callback for unified paint setting updates
Introduced in bf7c8f1ef3

Pull Request: https://projects.blender.org/blender/blender/pulls/144830
2025-08-20 23:29:37 +02:00
Colin Basnett
ee43c4c782 Fix #144335: Collection asset drag-and-drop creates two undo operations
This fixes https://projects.blender.org/blender/blender/issues/144335 by surrounding the drag-and-drop handling functionality in an undo group.

<video src="attachments/b8ddcb80-cda2-4f5e-83dd-4736dbe7eddd" title="Screencast_20250815_161525.webm" controls></video>

Pull Request: https://projects.blender.org/blender/blender/pulls/144630
2025-08-20 23:24:51 +02:00
Brecht Van Lommel
1d9bd460fc Fix #144814: Cycles OSL crash accessing geom:name string attribute
This should be a ustring hash now, not a ustring.

Pull Request: https://projects.blender.org/blender/blender/pulls/144881
2025-08-20 21:00:12 +02:00
Sean Kim
abe1b9d895 Cleanup: Rename BKE_paint_brush_poll to BKE_paint_can_use_brush
The prior naming is a bit confusing given that it returns `true` if
`brush` is `nullptr`. My initial expectation on reading the old name is
that it would only return true if both are non-null.

Pull Request: https://projects.blender.org/blender/blender/pulls/144822
2025-08-20 20:59:28 +02:00
Brecht Van Lommel
98e9dd1aa2 Revert "Cycles: Simplify Metal backend with direct bindless resource encoding"
This reverts commit b4be954856.

It is causing render artifacts in the barbershop benchmark. There were some
conflicts to resolve when reverting this, mainly related to the removal of
3D textures.

Fix #144713
Ref #140671, #144712

Pull Request: https://projects.blender.org/blender/blender/pulls/144880
2025-08-20 20:53:40 +02:00
Maxime-Cots
7a01f736a5 Nodes: Make context path breadcrumbs interactive
Make it possible to navigate in/out node groups through the breacrumbs
context path overlay.

See PR for details and screenshots.

Pull Request: https://projects.blender.org/blender/blender/pulls/141292
2025-08-20 17:53:34 +02:00
Hans Goudey
8b9e667eab Revert "Sequencer: Avoid storing un-tracked pointers in blend files"
This reverts commit 58554964e4.
Caused unexpected test failures, may need more review.
2025-08-20 11:31:02 -04:00
Aaron Carlisle
4560e60670 UI: Add Scene/ViewLayer selectors to Properties tabs
Add Scene and View Layer selectors to the Scene and View Layer tabs
in the Properties Editor, matching the existing controls in the topbar.

See PR for details and screenshots.

Pull Request: https://projects.blender.org/blender/blender/pulls/143266
2025-08-20 17:12:46 +02:00
Alaska
41d4b945d3 Fix: Missing space in Unbiased volume tooltip
_No response_

Pull Request: https://projects.blender.org/blender/blender/pulls/144871
2025-08-20 16:51:02 +02:00