Commit Graph

150077 Commits

Author SHA1 Message Date
Julian Eisel
11b006e01a UI: Don't spawn asset shelf popup by hovering button
Papercut reported in #132293.

Allow explicitly disabling this behavior for a button, and do so for the
big preview asset shelf popup button. It gets more in the way than it's
useful in this case.
2025-01-06 17:42:29 +01:00
Hans Goudey
c3d7cd0424 Fix #132651: Multires sculpt drawing crash with color attribute overlay
Mistak in 39f7c506b5.

The VBOs need to be allocated! And we can just use a single dummy
type as well, rather than using the type from the attribute request
which is meaningless in this case.
2025-01-06 11:41:52 -05:00
Brecht Van Lommel
faa17e2cc6 OpenShadingLanguage: Compatibility with version 1.14 (beta)
Pull Request: https://projects.blender.org/blender/blender/pulls/132654
2025-01-06 17:21:11 +01:00
Brecht Van Lommel
c3c05559d6 OpenImageIO: Compatibility with version 3.0
Pull Request: https://projects.blender.org/blender/blender/pulls/132654
2025-01-06 17:21:11 +01:00
Brecht Van Lommel
f27cd94a0c OpenVDB: Support build without delay loading 2025-01-06 17:21:11 +01:00
Brecht Van Lommel
d42dd79bdd Cleanup: Compiler warning 2025-01-06 17:21:11 +01:00
Bastien Montagne
927d1b0ef6 Refactor: Assets: Replace custom code writing brush assets with PartialWriteContext.
Also allows to remove any usage of `ID_TAG_NEED_EXPAND` outside of
readfile code, which will be nice to generalize changes being worked on
in #131695 and !132169.

Implements #132301.

Pull Request: https://projects.blender.org/blender/blender/pulls/132305
2025-01-06 16:39:43 +01:00
Julian Eisel
88cc4e9ddf Fix: compile error when building without Audaspace
Rename was missed in 655a17a6ab.
2025-01-06 16:17:19 +01:00
Jeroen Bakker
588087f88e Fix #131943: GPU: Vertex formats for polyline shaders
PR #129315 refactored polylines. The shaders now attaches the vertex
attributes as SSBOs. Adding a workaround for polyline shaders to
extract the correct vertex formats when called via Python.

Pull Request: https://projects.blender.org/blender/blender/pulls/132689
2025-01-06 16:05:50 +01:00
Brecht Van Lommel
26c27e9d80 Fix: Cycles build error with Embree version 3, after recent refactor
Thanks Shane Ambler for finding this.

Ref #132361
2025-01-06 15:56:53 +01:00
Jeroen Bakker
c2b8186b07 Fix #132590: Python/GPU: Builtin clipped shaders messages
Confusing error messages are printed when requesting a clipped builtin
shader via Python that does not exist.

This PR will remove the confusion of the messaging:
- Replaced BLI_assert_unreachable with an assert as it is reachable
  code.
- Adding clipped configuration for POLYLINE_UNIFORM_COLOR

Pull Request: https://projects.blender.org/blender/blender/pulls/132686
2025-01-06 15:42:07 +01:00
Jeroen Bakker
7db07fcc0b Fix #132611: EEVEE: Background disappear when using forward shaded volumes
In case forward shaded volumes are used the background can turn black.
This is because in this case an incorrect framebuffer could be bound.

Pull Request: https://projects.blender.org/blender/blender/pulls/132678
2025-01-06 15:13:58 +01:00
Jeroen Bakker
13b5e4f025 Fix #132454: Channel shuffling image engine
Current code selected incorrect `.push_constant` override and only
uploaded a single float (R).

Pull Request: https://projects.blender.org/blender/blender/pulls/132693
2025-01-06 15:09:44 +01:00
Falk David
655a17a6ab Refactor: VSE: Rename Sequence to Strip
This renames the struct `Sequence` to `Strip`.

While the motivation for this partially comes from
the "Sequence Design" #131329, it seems like this
is a good refactor whether the design gets implemented
or not.

The `Sequence` represents what users see as strips in the
VSE. Many places in the code already refere to a `Sequence`
as "strip". It's the C-style "base class" of all strip types.

This also renames the python RNA type `bpy.types.Sequence`
to `bpy.types.Strip` which means that this technically breaks
the python API.

Pull Request: https://projects.blender.org/blender/blender/pulls/132179
2025-01-06 14:19:24 +01:00
Michael Jones
fd06944d15 Fix #131458: Cycles Metal workaround for binary archives crash
There is a macOS bug that causes `[binaryArchive serializeToURL]` to crash sometimes. The fix is coming in macOS 15.4.

Pull Request: https://projects.blender.org/blender/blender/pulls/132688
2025-01-06 14:12:22 +01:00
Sybren A. Stüvel
c6d6efaaa2 Fix #132606: ActionSlots can be created with too long names
The max length of the RNA property `ActionSlot.identifier` was set
incorrectly. The setter code did manage the length properly, but the
getter was checking agains that incorrect max length, and rightfully
complained.

Pull Request: https://projects.blender.org/blender/blender/pulls/132691
2025-01-06 13:55:07 +01:00
Jeroen Bakker
818c886350 Vulkan: Timeline semaphores
This PR will add timeline semaphores to be required. It doesn't use
the timeline semaphores yet, but as multiple developments will
rely on it it is better to add the requirement.

Pull Request: https://projects.blender.org/blender/blender/pulls/132683
2025-01-06 11:44:13 +01:00
Bastien Montagne
92c82415bf I18N: Updated UI translations from git/weblate repository (fe7f15d64d244f98). 2025-01-06 11:43:20 +01:00
YimingWu
b2b73ca489 Fix #132480: Grease Pencil: Length modifier early return on empty filter
If material/layer influence filter causes no stroke to be selected,
return early to prevent crashes due to index errors.

Pull Request: https://projects.blender.org/blender/blender/pulls/132510
2025-01-06 11:36:25 +01:00
Brecht Van Lommel
24e5226ff0 Fix #128186: Invalid GPU framebuffer free from context
Framebuffers are getting freed in the GPUContext base class destructor. But
the framebuffer destructors use the MTL/VK/GLContext derived class, whose
destructor has already completed at this point. So these contexts are no
longer valid to use.

Now free the framebuffers earlier.

This caused ASAN warnings, it's not known to cause actual bugs.

Pull Request: https://projects.blender.org/blender/blender/pulls/132504
2025-01-06 11:32:02 +01:00
Falk David
ca2ed14849 Fix #131839: Crash in dopesheet channel drawing
This code is now only used by annotations but was not updated.
Uses the right properties now and removes the layer mask
one which is not used by annotations.

Pull Request: https://projects.blender.org/blender/blender/pulls/132030
2025-01-06 11:31:09 +01:00
Sybren A. Stüvel
97510267f1 Cleanup: silence compiler warning about unused result of ftruncate()
`ftruncate()` is annotated such that the compiler (at least GCC 13)
warns when the returned status is not used.

This commit adds a `GHOST_ASSERT()` to check that result in debug
builds. In non-debug builds it's discarded without checking, but
explicitly as to not trigger this warning.

No functional changes.

Pull Request: https://projects.blender.org/blender/blender/pulls/132108
2025-01-06 11:29:37 +01:00
Pratik Borhade
c2a54f6858 Fix #132377: Grease Pencil: Toolbar color does not change in context menu
Use unified paint settings for "color" prop in vertex paint context menu.

Pull Request: https://projects.blender.org/blender/blender/pulls/132447
2025-01-06 11:29:01 +01:00
YimingWu
96c6f543ec Fix #131738: Grease Pencil: Use correct textures in acquire_resources.
Apparently the issue was caused by a copy-paste mistake in 37f9ec7235
where in `use_mask_fb` branch it should bind `mask_` textures. Now
mask layer draws correctly.

Pull Request: https://projects.blender.org/blender/blender/pulls/132343
2025-01-06 11:22:30 +01:00
Sybren A. Stüvel
2ec1b6887d Core: move short-lived ID_TAG_ID_LINK_PLACEHOLDER to runtime struct
Move the `ID_TAG_ID_LINK_PLACEHOLDER` bit of `id->tag` to
`id->runtime.readfile_data->tags.is_id_link_placeholder`. It also
introduces the necessary stucts and allocation/freeing code.

Old code:

```cpp
if (id_tag & ID_TAG_ID_LINK_PLACEHOLDER) {
```

New code:

```cpp
if (readfile_id_runtime_tags(id).is_id_link_placeholder) {
```

where `readfile_id_runtime_tags(id)` is a getter for
`id->runtime.readfile_data->tags` that is null-safe for
`id->runtime.readfile_data`. The `readfile_data` is not allocated in
these cases:

1. When reading undo steps, because that doesn't have to deal with
   versioning or linking (which are the sole purposes for this
   struct).
2. When linking from another file (for example from the 'Link...'
   operator). The just-linked IDs will have the `readfile_data`
   struct, but already-loaded IDs will already have had those freed.

No functional changes intended.

Pull Request: https://projects.blender.org/blender/blender/pulls/132169

Design Task: #131695
2025-01-06 10:58:56 +01:00
Sybren A. Stüvel
b7d18210e9 Fix #132193: bone snapping fails under specific conditions
Fix bone snapping failure by removing the Armature bounding box check.
That check would go over all the bones, compute the total bounding box,
just to avoid the remaining code (which goes over all the bones anyway).

Not sure why the code is causing these issues, but I'm guessing it's due
to getting the bounding box in the wrong space (could be a bug
introduced in 6212c3c374). Since this call doesn't look like it's an
actual optimization to me, I think it's better to remove it.

Pull Request: https://projects.blender.org/blender/blender/pulls/132602
2025-01-06 10:51:03 +01:00
nutti
313f3ecf98 PyDoc: correct CollectionProperty & PointerProperty type in Python docs
Ref: !132420
2025-01-06 20:29:29 +11:00
nutti
10e3e3b4a0 PyDoc: add bpy_prop_collection_idprop class document
Ref: !132587
2025-01-06 20:29:29 +11:00
nutti
aa81aed109 PyDoc: add 'rtype' field for multiple return values
Ref: !131482
2025-01-06 20:29:29 +11:00
Omar Emara
503e2c46a5 Fix: Compositor crash with group of different typed socket
The compositor crashes if a node inside a node group is connected to a
group input that have a different type and the node group is used
without a connection to that input. That's because the compositor code
assumes the type of the group input without implicit type conversion to
the expected type of the node. To fix this, handle implicit conversion
for unconnected sockets as well.
2025-01-06 11:14:27 +02:00
Omar Emara
b3623feab2 Compositor: Support node integer sockets
This patch adds support for using integer sockets in compositor nodes.
This involves updating the Result class, node tree compiler, implicit
conversion operation, multi-function procedure operation, shader
operation, and some operations that supports multiple types.

Shader operation internally treats integers as floats, doing conversion
to and from int when reading and writing. That's because the GPUMaterial
compiler doesn't support integers. This is also the same workaround used
by the shader system. Though the GPU module are eyeing adding support
for integers, so we will update the code once they do that.

Domain realization is not yet supported for integer types, but this is
an internal limitation so far, as we do not plan to add nodes that
outputs integers soon. We are not yet sure how realization should happen
with regards to interpolation and we do not have base functions to
sample integer images, that's why I decided to delay its implementation
when it is actually needed.

Pull Request: https://projects.blender.org/blender/blender/pulls/132599
2025-01-06 10:09:26 +01:00
Campbell Barton
77041084cd Cleanup: quiet uninitialised variable warnings in CMake 2025-01-06 17:57:11 +11:00
Campbell Barton
f581ff46a1 CMake: enable CMP0177 policy to normalize desintion paths
The deprecated functionality will be removed eventually,
enable the new functionality.
2025-01-06 17:56:07 +11:00
Campbell Barton
ebf41cf047 Cleanup: quiet mypy warnings 2025-01-06 16:58:56 +11:00
Campbell Barton
4f1817cc18 Cleanup: declare __all__ for Python scripts
Declare all to make public public API's explicit and
help detect unused code.
2025-01-06 16:45:36 +11:00
Campbell Barton
6ac52551d3 Cleanup: edit comments to avoid confusion type-checking commands
These comments caused vulture to fail.
2025-01-06 16:27:27 +11:00
Campbell Barton
2e5e94f34f Fix missing import in PYPI upload-release.py script 2025-01-06 16:08:24 +11:00
Campbell Barton
5303e85b3f Fix #130744: Crash searching menus with Viewport Pie add-on
The logic to expand non menu-type menu buttons was calling panels
draw function without first checking the poll() function succeeded.
2025-01-06 15:44:10 +11:00
YimingWu
18b690dee6 Fix #132325: Decimate fails to convert small faces to quads
Decimate used `is_quad_convex_v3` to check if faces should be converted
to quads, adjust the epsilon since small faces were being skipped.

Ref: !132342
2025-01-06 13:46:41 +11:00
Campbell Barton
4425acf946 Cleanup: suppress pylint/ruff warnings in Python scripts 2025-01-06 12:57:09 +11:00
Campbell Barton
c27bf6bef8 Cleanup: CMake indentation 2025-01-06 12:48:51 +11:00
Campbell Barton
bea3b41fc2 Cleanup: remove disabled IO tests
These have been disabled for years, in general checking the checksum on
exported files is too fragile and isn't a practical way to test IO.
2025-01-06 12:43:14 +11:00
Harley Acheson
df57beb676 UI: Improved User Feedback for Animation Playback Timer
The "Blender" menu contains seven items in "System / "Redraw Timer"
that are for troubleshooting and testing.  Six of the items take far
less than a second, but one takes a long time. "Animation Play" times
how long it takes to play through your current animation ten times. But
there is no way to guess this and some users have run it accidentally
by finding it in menu search. It gives no feedback at all, and there
are no hints on how long it will take. Once it plays through your
animation once you might guess that it runs forever.  This PR shows
the test name and where it is in its ten runs. On platforms that
support it this also shows an app progress bar (on the taskbar icon for
Windows).

Pull Request: https://projects.blender.org/blender/blender/pulls/132648
2025-01-05 02:00:37 +01:00
Brecht Van Lommel
597f279702 Clang Format: disable formatting lib/, same as was done for extern/
Precompiled library headers don't follow Blender code style.
2025-01-04 18:35:11 +01:00
Campbell Barton
c5203ef7fd Cleanup: use context-manager for opening files 2025-01-04 22:26:18 +11:00
Campbell Barton
0f1e1bcdae Fix error adding presets with Python 3.13
A separate name-space from the functions body is cleaner
and avoids unlikely but possible errors if names ever conflict.
2025-01-04 22:24:00 +11:00
Alaska
9aa385174c Tests: Add render tests for sphere lights in volume
In a recent version of Blender, Cycles and EEVEE gained support for
true sphere lights.

This commit adds tests for these sphere lights inside of volumes.

Ref: blender/blender#123012
Ref: blender/blender-test-data!32
2025-01-04 12:18:19 +01:00
Campbell Barton
5f640457d8 Cleanup: suppress various pylint warnings 2025-01-04 21:17:29 +11:00
Campbell Barton
444f1064c9 Cleanup: remove unused functions, imports 2025-01-04 21:09:41 +11:00
Campbell Barton
3091dadfeb Cleanup: declare __all__ for some scripts in build_files/ 2025-01-04 20:37:46 +11:00