Commit Graph

135156 Commits

Author SHA1 Message Date
Damien Picard
abc0bf814f UI: Fix and improve a few messages
- "Log Encoding with Chroma inset and rotation": add "of primaries" in
  the description of the AgX Log color space to better explain the
  operation, based on wording in !106355.
- Remove a few double spaces.
- Make Line Art title case everywhere, to convey it's the system /
  brand / product name and not the generic concept.
- "Copy Absolute coordinates or Normal vector" -> "of Normal Vector":
typo.
- "Makes a link between selected output in input sockets" ->
  "Make...", "output and input": typo.
- "Purge Unused Data From This File" -> "from this": title case as per
  HIGs.
- GPencil -> Grease Pencil: no reason to use an abbreviation here.
- "Around Current Frame" -> "Around Frame": actual name of the
  onion-skinning method.
- "... (layer height for layer tool, i.e.)" -> "(i.e. the layer height
  for the layer tool)": put "i.e." at the start of the sentence.
- Expand description of toe-in stereo camera option.
- "Children collections their parent-collection-specific settings" ->
  "Children collections with their...": typo.
- "Generate vertex weights base on..." -> "based on" : typo, lower
  case.
- Expand description of GP modifier properties, based on their mesh
  counterparts.
- "AEnvelope" -> "Envelope": typo.
- "Falloff type the feather" -> "of the feather": typo.
- "usually make transition as long as effect strip": rephrase.
- "When disabled a users extensions directory is created" -> "a
  user's": typo.
- "successfull" -> "successful": typo.
- "Remove all attributes... a single wildcard (*).": remove trailing
  ".".
- "..., use "Save Preferences."": remove trailing ".".

Some issues reported by Marina Veselkova and Tamar Mebonia.

Pull Request: https://projects.blender.org/blender/blender/pulls/120649
2024-04-15 20:02:38 +02:00
Clément Foucault
addb02f239 EEVEE-Next: Bump surfel density for tests
This was really under sampling and some of the
differences between platforms might have come
from this.
2024-04-15 19:55:02 +02:00
Jacques Lucke
00648411ea MEM: support overaligned types in MEM_cnew_array
This is similar to the recent change for `MEM_cnew`: 60a3d85b88.
A new function called `MEM_calloc_arrayN_aligned` is added that is used by both `cnew` functions now.

Pull Request: https://projects.blender.org/blender/blender/pulls/120632
2024-04-15 19:11:06 +02:00
Bastien Montagne
0a7510ebaa Fix #116818: Unlinking an Object in the Scene Collection unlinks all linked objects
Code was assuming that if an object had a Scene parent ID (in Outliner
context), Outliner was in Scene view and object had to be removed from
whole scene.

However, in ViewLayer view, in case an object is in a Scene's main
collection, its parent item is the scene.
2024-04-15 18:42:45 +02:00
Bartosz Kosiorek
dc35737b69 Fix: Move CFL Number parameter for Fluid into Adaptive Time Steps
The CFL Number is only used when Adaptive Time Steps is enabled.

Pull Request: https://projects.blender.org/blender/blender/pulls/120666
2024-04-15 18:39:36 +02:00
Harley Acheson
aae8b956dd Refactor: BLF Extract Function BLF_str_offset_to_cursor
Move into own BLF function, code that returns a text cursor (caret)
position given a string offset. This code is currently just in
interface_widgets.cc but should be a separate BLF function.

Pull Request: https://projects.blender.org/blender/blender/pulls/120622
2024-04-15 18:29:25 +02:00
Jacques Lucke
188123c9ad Fix #111394: crash when deleting node group with active viewer nested inside
The case when the tree-path of a node editor is out of date is handled more
gracefully now. Generally, one should also look into eagerly updating the
tree-path in this case, but that can be done separately.
2024-04-15 18:09:32 +02:00
Jacques Lucke
bd72562ff9 Geometry Nodes: handle matrix to rotation conversion more gracefully
Previously, this conversion would often result in invalid quaternions or
hit an assert in `normalized_to_quat_fast`. It's not super nice to convert
to euler as an intermediate step performance wise, but it seems to be
the easiest solution for now. Extracting rotations from matrices should
not be done all that often anyway.

Pull Request: https://projects.blender.org/blender/blender/pulls/120568
2024-04-15 18:04:19 +02:00
Lukas Stockner
c9c777ddaa Fix #70114: Cycles: Particle systems missing in headless multiview render
The problem here was that `free_data_after_sync` frees the particle cache in headless or locked-UI mode, but the second view doesn't regenerate them.

For multi-view renders, dropping caches is a tradeoff between compute and memory - dropping allows to reduce peak memory usage, but requires recomputation for the next view. With the current design however, dropping is not something that is easily achievable anyways (see the referenced bugs). So until something more reliable and better fitting is implemented, keep the data from Blender side until the last view.

Since `free_data_after_sync` doesn't do anything for baking or viewport renders anyways, it's easiest to just move this out into `BlenderSession::render` since that already checks whether another view is still outstanding.

Also fixes #73221 and #107589.

Pull Request: https://projects.blender.org/blender/blender/pulls/120543
2024-04-15 17:40:53 +02:00
Miguel Pozo
65d9311291 Fix: EEVEE-Next: Shadow Ray accumulation
Fix when ray_count > 1.
Regression from 77638a6.
2024-04-15 16:40:59 +02:00
Brecht Van Lommel
67582ed337 Fix: MaterialX export of Noise Texture colored for Fac output
Fixes blender/blender-addons#105266

Pull Request: https://projects.blender.org/blender/blender/pulls/120661
2024-04-15 15:23:26 +02:00
Aras Pranckevicius
e2e6b977a6 Cleanup: Remove pre-SSE4 fallbacks in BLI pixel interpolation functions
Commit 8b9743eb40 already made Blender be compiled with SSE4.2 flags
on x64 architecture, which kicked in the SSE4 code paths in
BLI_math_interp functions.

Which made them faster, e.g. in VSE on Windows/Ryzen5950X, scaling
up an image to 4K resolution:
- Bilinear 5.8ms -> 5.3ms
- Cubic Mitchell 16.3ms -> 15.7ms

This change removes the now-unneeded SSE pre-SSE4 code paths for
_mm_floor_ps, _mm_min_epi32 and _mm_max_epi32 emulation.

Additionally, including BLI_simd.h on SSE4 platform now includes
the necessary SSE4 intrinsics header.

Pull Request: https://projects.blender.org/blender/blender/pulls/120583
2024-04-15 15:21:58 +02:00
Campbell Barton
904d51d6cb RNA: use boolean for function callbacks & "valid" iterator state
Integers were used when the value is logically a boolean.

Ref !120130
2024-04-15 23:04:38 +10:00
Alaska
1dede89eee Refactor: Allow get_apple_gpu_architecture to report non Apple GPUs
get_apple_gpu_architecture will now report if the GPU being checked
is not an Apple GPU.

At the moment this has no functional changes. But it reduces the
chances of mistakes in the future where a developer tries to enable
a feature on newer Apple GPUs using get_apple_gpu_architecture,
and accidentally enables it on unsupported AMD and Intel GPUs.

Pull Request: https://projects.blender.org/blender/blender/pulls/120448
2024-04-15 15:04:23 +02:00
Bartosz Kosiorek
9a0a75eff0 Fix: Prevent liquid leaking through effector with default settings
When a liquid is created together with collision/effector with default
settings, it often happens that the liquid is leaking through the solid
object/effector.

Change the CFL default value to decrease the chance of this happening.
There appears to be no noticeable performance impact in common cases.

Pull Request: https://projects.blender.org/blender/blender/pulls/120355
2024-04-15 14:55:31 +02:00
Bartosz Kosiorek
ddb4aba4ef UI: Add tooltips for inputs of vector shaders nodes
Pull Request: https://projects.blender.org/blender/blender/pulls/119472
2024-04-15 13:40:51 +02:00
Jacques Lucke
e3b8d45c93 Cleanup: move mallocn to c++
Required for a cleaner solution for #120632.
2024-04-15 13:02:17 +02:00
Pratik Borhade
2fefb39e22 GPv3: Wrong object type
Mistake in 658a9ac3a9

Pull Request: https://projects.blender.org/blender/blender/pulls/120653
2024-04-15 12:52:09 +02:00
Bastien Montagne
a39a967f11 I18N: Updated UI translations from git/weblate (0e1a4199cc08b52). 2024-04-15 12:32:29 +02:00
Patrick Mours
33d7fa8cb3 Fix #119959: Enabling "Distribute memory between devices" for Cycles results in error
With the switch to using the primary CUDA context it became possible
for peer access between CUDA devices to already have been enabled for
that context, either by a previous Cycles session or third-party library,
thus causing the call to `cuCtxEnablePeerAccess` to return
`CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED`. This is not a failure
state however, so just needs to be handled like a success return value.

Pull Request: https://projects.blender.org/blender/blender/pulls/120255
2024-04-15 12:17:32 +02:00
Clément Foucault
a772c84341 EEVEE-Next: Changes to thickness output
This contains two thing:
- default (nothing connected to socket) uses the bounding box min axis.
- transform the value plugged to the socket to world space.

We arbitrarly choose to output the axis with the minimum extent since
it is the axis along which the object is usually viewed at.

Rel #120384

Pull Request: https://projects.blender.org/blender/blender/pulls/120607
2024-04-15 12:16:51 +02:00
Damien Picard
c306677119 I18n: extract and disambiguate a few messages
Extract
- Statuses for the external text editor
- Newly created enum node item
- Newly created plane track data
- Newly created custom orientation data
- Operator names in drag and drop menu (need to use operator's
  translation context)
- GN attribute statistic node inputs

Disambiguate
- Single-letter colors: A and B can mean Alpha and Blue, or simply A
  and B as in two operands in an operation
- Dissolve: issue reported by Tamar Mebonia in #43295
- Translate in the User Preferences. This introduces a new
  BLT_I18NCONTEXT_EDITOR_PREFERENCES ("Preferences") translation
  context
- Planar (reported by deathblood)
  This one is incomplete, because there is currently no way to
  disambiguate presets or GN fields. I don't see how either could be
  achieved cleanly.
  The former would need to define the context inside the preset and
  evaluate the file prior to showing it in the presets menu, which
  sound bad.
  The latter would need to introduce an additional string inside
  `FieldInput`s, which would be controversial given how little it
  would be used.

Remove
- Unused translation `iface_("%s")` in toolbar
- Remove obsolete N_() tags in a few node descriptions.

Pull Request: https://projects.blender.org/blender/blender/pulls/119065
2024-04-15 12:02:17 +02:00
Sybren A. Stüvel
1315991ecb Anim: add keytype argument to keyframe_insert() RNA function
Add an optional keyword argument `keytype` to the
`rna_struct.keyframe_insert()` function.

This makes it possible to set the new key's type. The code for this was
almost all in place, the only thing that was missing was the RNA
wrapper, which is what this commit adds.

Example: `bpy.context.object.keyframe_insert("location",
keytype='JITTER')`

There is no backward compatibility issue here, because the argument is
optional and defaults to the previously hardcoded value of `KEYFRAME`.

Pull Request: https://projects.blender.org/blender/blender/pulls/120578
2024-04-15 11:36:38 +02:00
Clément Foucault
d8d6925bc7 EEVEE-Next: Update render test files with suboptimal settings 2024-04-15 11:10:17 +02:00
Sybren A. Stüvel
51e1f29a68 Anim: Add new keyframe type 'GENERATED'
Add a new keyframe type named 'generated', which is meant to indicate
that the key was set by some automated tool (like an add-on), rather
than manually by an animator.

This is meant for tooling that needs to create keys in a repeatable way.
With this new key type, the tool can know which keys it generated
before, and thus those can be removed and re-generated.

Pull Request: https://projects.blender.org/blender/blender/pulls/120564
2024-04-15 10:42:54 +02:00
Jesse Yurkovich
411371aa54 Fix: Sanitize filename for collection export
When creating a filename for use with a File Handler, we should guard
against problematic characters like "/" and "\\", among others, which are
not safe to use in paths. Sanitize the incoming name with
`BLI_path_make_safe_filename` to ensure the name can be used.

For empty incoming names, or names containing all spaces, we default to
"untitled" before adding the extension.

Pull Request: https://projects.blender.org/blender/blender/pulls/120652
2024-04-15 06:15:46 +02:00
Campbell Barton
1f44a74947 Fix inverted table wheel on wayland
The tablet wheel direction matches the mouse wheel which also needed
to be inverted.
2024-04-15 11:39:04 +10:00
Campbell Barton
1e6716a903 Fix inverted mouse wheel on wayland after recent changes
Recent change from [0] inverted mouse wheel direction.

[0]: c9a79f9a3c.
2024-04-15 11:06:47 +10:00
Campbell Barton
49bf7ebbdd Cleanup: use const args & variables, remove redundant checks
- Declare const variables & arguments.
- Remove redundant null checks.
- Remove break after return.
- Replace suspicious "&" with "&&".
2024-04-15 09:50:47 +10:00
Hans Goudey
740d1fbc4b Geometry Nodes: Log socket values for node tools
To ease the process of debugging a node group while creating
a node tool, while the group is visible in a node editor, log the socket
values from its last execution. The values are only logged for the
active object is nothing selected. The Viewer node is still not supported
because visualization would probably be very tricky.

Pull Request: https://projects.blender.org/blender/blender/pulls/120596
2024-04-14 16:47:46 +02:00
Clément Foucault
bfd0105213 Fix: EEVEE-Next: Compilation error in forward + sss material 2024-04-14 16:34:08 +02:00
Campbell Barton
c31b4b810c Cleanup: pass by const reference instead of value 2024-04-14 23:09:35 +10:00
dupoxy
1079f0918e Cleanup: use function style cast in MAKE_ID macro
Ref: !120630
2024-04-14 23:08:45 +10:00
Campbell Barton
b405bb3268 GHOST/Wayland: constrain new window size on startup with XDG-decor
On KDE, running "blender -w" (windowed with borders) created window
which was too big: the window contents matched the screen-size
causing the window decorations be outside the screen-bounds.

Un-maximizing the default startup file would also move window to the
same over-sized location.

Resolve by clamping the size of new windows to the requested bounds.
2024-04-14 22:19:24 +10:00
Jacques Lucke
c819d9fdc9 Fix #120579: incorrect compute context hashes
The problem was that `XXH3_128bits` was called on `len` bytes
and not `HashSizeInBytes + len` as before 51f8bf53b2.
This lead to more compute context duplicates that one would expect.

I changed the code a little bit to make this mistake less likely in case
the hash function is ever changed to something else.
2024-04-14 13:20:32 +02:00
Campbell Barton
f6605523e8 cppheck: improvements to checking script
Various changes that simplify running cppcheck, comparing results
from the previous execution.

- Create a summary of the log that groups errors by type,
  useful since some kinds of warnings tend to lead to errors in the
  code more than others.
- Keep a copy of the previous runs logs - useful for comparisons.
- Log the output in the order of the files selected to check.
- Fix non thread-safe output sometimes mixing warnings from different
  processes.
2024-04-14 20:44:03 +10:00
Jacques Lucke
0a192c5da4 Cleanup: fix compilation
Missing from e27889dc12.
2024-04-14 10:50:54 +02:00
Campbell Barton
c9a79f9a3c WM: handle multiple wheel events from GHOST
Scrolling the mouse wheel fast can generate multiple click-steps
which were ignored by window manager events.

This meant scrolling fast with a trackpad (with "Multi-touch gestures"
disabled) for e.g. would zoom less than the gesture made more slowly.
2024-04-14 17:55:20 +10:00
Campbell Barton
c4745a24b2 GHOST/Wayland: bump xdg_toplevel_listener version from 1 to 6 2024-04-14 17:55:17 +10:00
Campbell Barton
cc9edd2d35 GHOST/Wayland: bump zxdg_output_manager_v1 version from 2 to 3 2024-04-14 17:55:15 +10:00
Campbell Barton
dcec5ce635 GHOST/Wayland: bump wl_compositor_interface version from 3 to 6 2024-04-14 17:55:14 +10:00
Campbell Barton
6689053e43 GHOST/Wayland: bump wl_output_listener version from 2 to 4 2024-04-14 17:55:13 +10:00
Campbell Barton
8d86fb43a4 GHOST/Wayland: bump wl_seat_interface version from 5 to 9
This ensures callbacks are called to detect "natural" scroll direction
on the touch-pad, see: #107676.
2024-04-14 17:55:11 +10:00
Campbell Barton
98cb5da6d1 GHOST/Wayland: add an interface version clamping macro
This macro makes it convenient to define a supported version range for
an interface.

Uncommenting USE_VERBOSE_OLD_IFACE_PRINT prints when newer versions
of an interface are supported by the compositor which Blender could
be updated to support.

This makes it more convenient to bump interface versions as they
become available so bumping multiple versions at once doesn't
cause unexpected changes in behavior as happened with #120587.
2024-04-14 17:55:10 +10:00
Campbell Barton
df87770ca1 GHOST/Wayland: resolve mouse wheel being treated like touchpad scroll
Resolves the issue reported in #120587, which occurred when bumping the
supported version of the seat API to 9.

Smooth scrolling values were set in without calling the discrete step
callback. Resolve by calculating discrete values from the:
wl_pointer_listener::axis_value120 handler.

The functional changes from this commit only apply once the version
of the seat API is increased - which isn't part of this commit.
2024-04-14 17:55:09 +10:00
Campbell Barton
e27889dc12 Cleanup: use const references for GWL_RegistryHandler parameters 2024-04-14 17:54:59 +10:00
Campbell Barton
dce8668b1f GHOST/Wayland: use discrete zoom steps with multi-touch disabled
This matches behavior on macOS as well as the property description.

On Wayland, smooth scrolling doesn't use the touchpad API,
so disabling multi-touch gestures doesn't change the behavior as it
does on macOS.

Resolve by converting vertical touch scrolling to mouse-wheel events.
2024-04-14 14:56:30 +10:00
Campbell Barton
f12d20a819 Cleanup: always reset discrete mouse-wheel
A correctness issue, this didn't cause any bugs.
2024-04-14 14:23:36 +10:00
Campbell Barton
a70d6d79dd Cleanup: various non-functional C++ changes 2024-04-14 12:24:17 +10:00
Campbell Barton
6e3eaae299 Cleanup: spelling in comments 2024-04-14 12:13:55 +10:00