Commit Graph

145842 Commits

Author SHA1 Message Date
Nathan Vegdahl
77f4fd2637 Cleanup: Anim: rename *_move() methods to *_move_to_index()
There were three methods with succinct but slightly unclear names:

- Action::slot_move()
- Channelbag::channel_group_move()
- Channelbag::fcurve_move()

The ambiguity is due to other functions with similar names that e.g.
move fcurves *between* Channelbags, etc. Whereas these methods only move
items to other positions within the array they're already in.

To make this clearer, this PR adds `_to_index` to the end of these
array-oriented methods.

Pull Request: https://projects.blender.org/blender/blender/pulls/133730
2025-01-30 10:24:47 +01:00
Alex
4c7129be72 Cycles: OSL subsurface_bssrdf compatibility for MaterialX
Pull Request: https://projects.blender.org/blender/blender/pulls/133612
2025-01-30 08:51:44 +01:00
Sergey Sharybin
0c4e76fb78 Fix #125642: Cycles OptiX background render crash with GPU compositor
Apple same workaround for driver issue as was done for grease pencil,
the OpenGL context needs to be initialized before OptiX.

Pull Request: https://projects.blender.org/blender/blender/pulls/133759
2025-01-30 08:49:06 +01:00
Philipp Oeser
b1b7e82f25 Fix #97021: Viewroll doesn't respect QuadView's 'Lock Rotation'
The current poll function uses `ED_view3d_context_user_region` [which
falls back to `ED_view3d_area_user_region` if the context region is
flagged `RV3D_LOCK_ROTATION`, so it finds the non-locked region in quad
view]. So in a way it is permissive to do the roll even when we are
within one of the quad regions which is actually locked. This can be
useful if we just want to roll by a specific angle or use one of the
types `V3D_VIEW_STEPLEFT`/`V3D_VIEW_STEPRIGHT` - these are then executed
in the non-locked region.

However for mouse-interacting roll, we should not do this at all when
initiated from a locked region.

To resolve, we could use `view3d_rotation_poll`  (instead of
`ED_operator_rv3d_user_region_poll`), but that would prevent us from the
useful scenarios mentioned above. So instead, once we reach the mouse-
interacting code path, check again if we are really in a non-locked
region and only proceed if we are.

Pull Request: https://projects.blender.org/blender/blender/pulls/133643
2025-01-30 07:30:28 +01:00
Sean Kim
2e7db9c167 Fix: Remove missed device parameter
Missed in ea7d07098b

Pull Request: https://projects.blender.org/blender/blender/pulls/133794
2025-01-30 05:44:20 +01:00
Campbell Barton
7de7ea350c Cleanup: quiet compiler warning 2025-01-30 14:33:25 +11:00
Campbell Barton
c86d3b429e Cleanup: spelling in comments 2025-01-30 14:18:40 +11:00
Campbell Barton
3d68af0cf2 Cleanup: use ELEM macros for clarity
Also use shorter "uchar" type.
2025-01-30 14:18:40 +11:00
Alaska
ea7d07098b Tests: Disable --cycles-device arguments on non-Cycles tests
This commit reworks the RenderReport base class to avoid adding
`--cycles-device` device arguments to non Cycles tests.

This reduces some warnings that can show up with EEVEE and
Workbench tests that accidentally used these arguments.

Pull Request: https://projects.blender.org/blender/blender/pulls/133724
2025-01-30 04:15:27 +01:00
Harley Acheson
d62c143ab7 Refactor: Separated Functions from uiTemplateInputStatus
Just separating out two blocks of code into separate functions to make
it more readable. No functional changes.

Pull Request: https://projects.blender.org/blender/blender/pulls/133785
2025-01-30 00:31:27 +01:00
Habib Gahbiche
4e544a89d6 Fix #133780: Menu search Python error in terminal
`poll()`  method must check properly for space type.

Pull Request: https://projects.blender.org/blender/blender/pulls/133781
2025-01-30 00:28:22 +01:00
Sean Kim
aee2add84a Tests: Error on no test files being found for render_report.py
This commit checks the total number of files being processed for
rendering tests and causes it to emit a failure if none are found. This
has the benefit of loudly failing if there is a configuration error
instead of succeeding.

Pull Request: https://projects.blender.org/blender/blender/pulls/133691
2025-01-29 23:53:31 +01:00
Jesse Yurkovich
7f5965716d USD: Add additional test for scene instancing Import
This pairs with the recently added Export test and reuses the same
.blend file. While there happens to be an instancing related rendering
test, that happens to cover Import, it's better to have a direct test
for it.

Future improvements to both Export and Import to account for the recent
"hidden layer" visibility bug would be good to do as a follow-up.

Pull Request: https://projects.blender.org/blender/blender/pulls/133782
2025-01-29 23:15:39 +01:00
Howard Trickey
b2998848c5 Fix #109765 - Prevent Dissolve Edges from dissolving verts...
that are unrelated to the selected edge,
See https://projects.blender.org/blender/blender/issues/109765 .
This comes from PR https://projects.blender.org/blender/blender/pulls/131645
by jcwenger.
2025-01-29 16:26:46 -05:00
Jesse Yurkovich
7754a776e5 Cleanup: USD: Remove unused token values
Remove dead TfToken values that are not used.

Pull Request: https://projects.blender.org/blender/blender/pulls/133777
2025-01-29 21:25:15 +01:00
Lukas Stockner
c997e61414 Cycles: Bump minimum OSL version to 1.13.4
That version has a bunch of API changes, so by dropping support for older
versions we can remove old compatibility code.
Also, that version is required for OptiX support, so building a fully-featured
Cycles wasn't possible with older OSL anyways.

Pull Request: https://projects.blender.org/blender/blender/pulls/133746
2025-01-29 21:17:21 +01:00
Pratik Borhade
71213799b0 Fix #77799: Missing categories for gizmos in keymap hierarchy
Expose generic gizmo keymap in hierarchy.

Pull Request: https://projects.blender.org/blender/blender/pulls/132788
2025-01-29 20:18:10 +01:00
Jesse Yurkovich
a6ad8f4fd9 Cleanup: USD: Pass struct by ref and add more tests for scaling options
- There's only a few unit conversion options, just test all of them
- Use reference instead of pointer when passing export settings struct
- Organize scaling struct fields to keep similar options together

Pull Request: https://projects.blender.org/blender/blender/pulls/133774
2025-01-29 20:03:36 +01:00
Hans Goudey
ca64f2f7e7 Cleanup: Use StringRef instead of StringRefNull 2025-01-29 12:49:41 -05:00
Bartosz Kosiorek
5bcde9cbff UI: Make colorspace tooltips more useful for non English languages
Use longer descriptions for colorspace tooltips that better explain the
meanings of the acronyms.

Pull Request: https://projects.blender.org/blender/blender/pulls/119810
2025-01-29 18:46:38 +01:00
Habib Gahbiche
b51c560f6e Compositor: Implement shortcuts for Viewer nodes
Artists often want to quickly switch back and forth between two or more nodes while compositing.

This patch implements two operators `NODE_OT_viewer_shortcut_set` and `NODE_OT_viewer_shortcut_get` that allow users to map a viewer node to a shortcut. For example, pressing `cltr+1` while a node is selected, assigns that node to the shortcut `1`, creates a viewer node if it has none attached and sets that viewer node to active. Pressing `1` will set the active node with shortcut `1` to active.

Shortcuts are saved in DNA to preserve them after saving/loading blend files.

Limitations:
- Only compositor node tree is supported, because shading editor has no viewer node and geometry nodes viewer works differently.

Pull Request: https://projects.blender.org/blender/blender/pulls/123641
2025-01-29 18:35:26 +01:00
Habib Gahbiche
5eb8101efa UI: Show error if drag and drop of images fail
Adding an image object using drag and drop can fail without an apparent reason.

This patch shows an error when this happens so that the user can react accordingly (in this example switch to object mode, add the image and switch back to edit mode).

Pull Request: https://projects.blender.org/blender/blender/pulls/132994
2025-01-29 18:31:00 +01:00
Harley Acheson
1a2b126d5c UI: Simplification of Grease Pencil Fill Status Bar
Use icons and state highlighting to simplify the status bar display in
“Grease Pencil Fill” (GREASE_PENCIL_OT_fill).

Pull Request: https://projects.blender.org/blender/blender/pulls/133247
2025-01-29 18:19:13 +01:00
Omar Emara
2b2b27abf5 Fix #133565: Single value nodes wrongly return an image
In certain setups, nodes whose inputs are single value and whose outputs
are expected to be single value wrongly return an image. That's because
they wrongly join a pixel operation that operates on images.

To fix this, we split pixel operations by their value types. Single
value sub-trees get compiled into their own pixel operation and none
single value sub-trees get compiled into their own pixel operation.

This might unfortunately break up a long chain of pixel operations if
one of them was single value. This is solvable, but will require more
time and research, so we need to fix the bug first then look into it.

Pull Request: https://projects.blender.org/blender/blender/pulls/133701
2025-01-29 15:13:45 +01:00
Brecht Van Lommel
c4c0c23c5a Fix: Cycles: Always try to alloc MEM_DEVICE_ONLY on device
Regardless of what mem info reports. We can't move this to the host, so
might as well try because the free memory might not be a reliable predictor
of success.

Pull Request: https://projects.blender.org/blender/blender/pulls/132912
2025-01-29 14:12:25 +01:00
Brecht Van Lommel
e8ebcb3ee3 Fix: Cycles: Check if memory is host mapped without access to device_mem_map
This avoids concurrency issues.

Pull Request: https://projects.blender.org/blender/blender/pulls/132912
2025-01-29 14:12:23 +01:00
Brecht Van Lommel
8b7fce492e Refactor: Cycles: Change API so host and device memory are freed together
With host mapped memory these can be shared, and we can't get back the
original host pointer unless we make a copy which is inefficient.

Also add asserts to verify this doesn't happen.

Pull Request: https://projects.blender.org/blender/blender/pulls/132912
2025-01-29 14:12:19 +01:00
Brecht Van Lommel
c0ba800f64 Refactor: Cycles: Avoid double host alloc in HIP-RT
This code should be changed to not modify host pointers directly. But as
long as we are going to do it, avoid unnecessary alloc and immediate free.

Pull Request: https://projects.blender.org/blender/blender/pulls/132912
2025-01-29 14:12:16 +01:00
Brecht Van Lommel
b06def6b3e Refactor: Cycles: Remove confusing test for condition that should not happen
Device shouldn't have to allocate host pointer.

Pull Request: https://projects.blender.org/blender/blender/pulls/132912
2025-01-29 14:12:12 +01:00
Brecht Van Lommel
1ec04e0eec Fix: Cycles: Only move textures to host on one device at a time
This was not thread safe. And it's better to do them one by one to avoid
moving more than is needed, when another thread already freed up enough.

Thanks to Jorn Visser for investigating and finding this problem.

Pull Request: https://projects.blender.org/blender/blender/pulls/132912
2025-01-29 14:12:09 +01:00
Brecht Van Lommel
cd3d3b2646 Refactor: Cycles: Delay load_texture_info() to enqueue
Doing it immediately after moving textures to the host is less efficient, and
interacts in confusing ways.

Pull Request: https://projects.blender.org/blender/blender/pulls/132912
2025-01-29 14:12:06 +01:00
Brecht Van Lommel
fec593ec3b Fix: Cycles: Avoid unnecessary move to host with multi-device
If one of the devices already used host happed memory but another not,
it would previously realloc both.

Thanks to Jorn Visser for investigating and finding this problem.

Pull Request: https://projects.blender.org/blender/blender/pulls/132912
2025-01-29 14:12:02 +01:00
Brecht Van Lommel
2cfe2e0bfe Fix: Cycles: Re-copy memory from host to device without realloc
Should be a bit more efficient, and it fixes host memory fallback bugs,
where host memory was incorrectly freed during re-copy. For the case
where memory should get reallocated on the host, a new mem_move_to_host
was added.

Thanks to Jorn Visser for investigating and finding this problem.

Pull Request: https://projects.blender.org/blender/blender/pulls/132912
2025-01-29 14:11:50 +01:00
Brecht Van Lommel
0e8a7c751a Refactor: Cycles: Simplify util_guarded_mem_alloc/free calls
Pull Request: https://projects.blender.org/blender/blender/pulls/132912
2025-01-29 14:11:47 +01:00
Brecht Van Lommel
1fc73188e3 Cleanup: Code style 2025-01-29 14:10:13 +01:00
Michael Kowalski
e021cf0491 Fix: USD export: missing prototype proxies
The scene graph instancing export code contains logic for
determining which instances need to be converted to prototypes
because the original prototypes are not included in the export
(e.g., because they are not visible).

This commit fixes an error in this logic, which incorrectly
assumed that if the root of the original prototype is included
in the export, then the entire original hierarchy beneath the
root is included as well.

To fix this, the logic in AbstractHierarchyIterator::
determine_duplication_references was updated so that if any
descendants of an instance are converted to prototypes, the
parent instance is converted to a prototype as well.

This addresses the bug noted by Brecht in
https://projects.blender.org/blender/blender/pulls/131707#issuecomment-1403309

Pull Request: https://projects.blender.org/blender/blender/pulls/133750
2025-01-29 14:05:52 +01:00
Brecht Van Lommel
9135929063 Tests: Add back missing memory / time title in benchmark html
Pull Request: https://projects.blender.org/blender/blender/pulls/133763
2025-01-29 13:55:29 +01:00
Omar Emara
c786b385ee Fix #133729: Crash when appending Glare node group
Blender crashes when appending a node group containing a Glare node from
older versions. That's because the Glare node is versioned taking the
scene resolution into account, and in case of appending a node group,
there is associated scene, and accessing a nullptr scene causes the
crash.

To fix this, assume some default resolution in cases where the node
can't be associated with a scene.
2025-01-29 14:19:02 +02:00
Sergey Sharybin
c70a38798d API: Better documentation of scene.frame_set()
Make it explicit that it updates all view layers.

Ref #133379

Pull Request: https://projects.blender.org/blender/blender/pulls/133536
2025-01-29 12:13:59 +01:00
Jacques Lucke
e1753900b7 BLI: improve UTF-8 safety when copying StringRef to char buffers
Previously, there was a `StringRef.copy` method which would copy the string into
the given buffer. However, it was not defined for the case when the buffer was
too small. It moved the responsibility of making sure the buffer is large enough
to the caller.

Unfortunately, in practice that easily hides bugs in builds without asserts
which don't come up in testing much. Now, the method is replaced with
`StringRef.copy_utf8_truncated` which has much more well defined semantics and
also makes sure that the string remains valid utf-8.

This also renames `unsafe_copy` to `copy_unsafe` to make the naming more similar
to `copy_utf8_truncated`.

Pull Request: https://projects.blender.org/blender/blender/pulls/133677
2025-01-29 12:12:27 +01:00
Philipp Oeser
bf2264a3b8 Cleanup: typo 2025-01-29 10:09:59 +01:00
Philipp Oeser
8703317b81 Fix #133687: editbone transform wrong with hidden connected parent bone
If the parent editbone is hidden, it will (rightfully) not be taken into
account in `createTransArmatureVerts`.
In `recalcData_edit_armature` though, there was the assumption in a
particular code path that "this bone has a parent tip that has been
moved" even though it wasnt (because it was hidden -- see above).

To resolve, guard this code path with a `EBONE_VISIBLE` check.

Pull Request: https://projects.blender.org/blender/blender/pulls/133707
2025-01-29 10:07:27 +01:00
Philipp Oeser
0b97b60b2a Fix #133614: Grease Pencil: Handles wrong after Selection to cursor
Just missing the re-calculating of the handles [we already have a
function for this, just call it]

Pull Request: https://projects.blender.org/blender/blender/pulls/133649
2025-01-29 10:01:30 +01:00
Philipp Oeser
a77e0ccd78 Fix: Curves "Warp" and "Randomize" dont update properly
Resolve by tagging positions as changed.

With this and !133544 (which fixes #133537) we can also expose those operators in the menu.

Pull Request: https://projects.blender.org/blender/blender/pulls/133548
2025-01-29 10:00:05 +01:00
Philipp Oeser
8a45c24f57 Fix: "Affect only origins" does not work for Curves
For this to work, we need to properly support `XFormObjectData` for
`Curves`.

Similar to 50770bd8f5

Part of #103680

Also fixes #133537

Pull Request: https://projects.blender.org/blender/blender/pulls/133544
2025-01-29 09:57:36 +01:00
Campbell Barton
1fdb91c766 License Headers: quiet "check_licenses" warnings 2025-01-29 17:22:51 +11:00
Michael B Johnson
662c1b815c Fix #131459: Treat USD DomeLight options as Lights rather than Materials
This commit moves the Convert World Material checkbox under Materials to
a World Dome Light option "under" Lights. Based on feedback this is more
intuitive for artists. Previously artists would try unchecking "Lights"
and be confused why a DomeLight would still be in their scene.

This is only a UI layout change, API remains unchanged.

Authored by Apple

Co-authored-by: Dhruv Govil <dgovil2@apple.com>

Pull Request: https://projects.blender.org/blender/blender/pulls/131829
2025-01-29 06:56:40 +01:00
Campbell Barton
91fc1c7fac Refactor: split viewport bounds calculation into utility functions
Move 3D viewport bounds calculation out of the operator callbacks
into utility functions, needed for !129594.

Some minor renaming:

- `ok` -> `changed`.
- `ok_dist` -> `do_zoom`.
2025-01-29 14:39:33 +11:00
Harley Acheson
867e9d879a Fix #59358: Don't Show Status Bar Impossible Confirms & Cancels
When performing a transform operation that drags or tweaks, do not show
the Cancel or Confirm keymap item on the Status Bar if they use the
same mouse button that initiated the operation. For example if you are
RCS and are tweaking an object, don't show Cancel on status bar since
that requires right click. If LCS then don't show Confirm (requires
left click) when tweaking, dragging gizmo parts, etc.

Pull Request: https://projects.blender.org/blender/blender/pulls/131336
2025-01-29 03:57:08 +01:00
Campbell Barton
bd1ded952b Cleanup: spelling in comments 2025-01-29 12:31:19 +11:00