Commit Graph

124429 Commits

Author SHA1 Message Date
Harley Acheson
07dbdd01e8 UI: Temporarily Disable Apple-specific Text Modifier Support
Disable recently-added support for some Apple-specific key modifiers
when  editing UI text. Only until we can add support for same for text
objects, console, and text editor. Keeping consistent between areas.

Pull Request: https://projects.blender.org/blender/blender/pulls/108333
2023-05-26 23:47:19 +02:00
Hans Goudey
93a2e5dbfa Cleanup: Consolidate public point cloud/mesh conversion functions
Exposing these direct conversions separately just confuses
the API, and they're not used anywhere else anyway.
2023-05-26 16:28:16 -04:00
Brecht Van Lommel
9a9209d8e0 Cleanup: consistenly use rnaindex -1 to mean the no or entire array 2023-05-26 21:33:37 +02:00
Josh Maros
6ba0346797 Python API: add bpy.context.property, for property under the mouse cursor
This can be useful for example to add custom operators to the property
context menu.

Pull Request: https://projects.blender.org/blender/blender/pulls/107280
2023-05-26 21:33:26 +02:00
Hans Goudey
ea937b304d Cleanup: Standardize delete geometry code
- Avoid using geometry sets from a different abstraction level
- Deduplicate basic attribute copying propagation code
- Allow more use of implicit sharing when data arrays are unchanged
- Optimize for when a point cloud delete selection is empty
- Handle face corners generically for "only face" case
2023-05-26 15:09:16 -04:00
Hans Goudey
de0f11515e Cleanup: Remove unnecessary namespace specification 2023-05-26 15:09:16 -04:00
Hans Goudey
865f14c641 Curves: Avoid inverting selection when deleting elements
Pass the curves and points to keep instead of delete. In the same test
file as the previous commit, this gave an increase from 50 to 60 FPS
when deleting curves.
2023-05-26 15:09:16 -04:00
Hans Goudey
d7e671028c Curves: Use simpler index mask logic in various places
In several nodes, and sculpt brushes, use the proper `IndexMask` type
instead of a span of ranges to encode a selection. This allows deleting
the duplicate data copying utilities using the second format.
2023-05-26 15:09:16 -04:00
Hans Goudey
f63cfd8e28 Curves: Optmize and simplify point and curve deletion
Using the new index mask implementation, things can be a bit simpler.
It's also simpler to use `complement` instead of `to_ranges_invert`,
which just made everything less standard. Also create the new curve
offsets in place instead of copying, and use implicit sharing to share
attributes when no curves were deleted.

With a version of `IndexMask::complement()` optmized locally, I observed
the following speedups with a 1.2 million point curve system:
- Delete points: 29 FPS -> 45 FPS
- Delete curves: 48 FPS -> 49 FPS
- Delete tip points: 25 FPS -> 32 FPS

Also add a method to apply the "gather" function to all attributes,
mostly as a continued experiment of consolidating attribute propagation.
This can be used more elsewhere in the future.
2023-05-26 15:09:16 -04:00
Hans Goudey
0b0b6a687a Cleanup: Move offset size copying utility to generic header
This shows more clearly that there's nothing specific to curves here.
2023-05-26 15:09:16 -04:00
Bastien Montagne
9c15058d0b Merge branch 'blender-v3.6-release' 2023-05-26 18:53:47 +02:00
Bastien Montagne
4c5998ee0b Unittest: Add very basic 'old file loading' test.
Use existing `lib/tests/libraries_and_linking/library_test_scene.blend`
essentially as 'file loads without error' test. Also does very basic
proxy -> liboverrides conversion check.

This test could be extended a lot, but just opening this file already
allowed to identify three bugs in current 3.6/main code, and an issue in
an upcoming refactor of the readfile code...
2023-05-26 18:43:19 +02:00
Bastien Montagne
ff126ede17 'Fix' (unreported) issue that liboverride code can corrupt Main namemap.
Does not happen very often, but that weak handling of copying linked
data as linked data currently can lead to an invalid namemap in Main.

This is a known issue, fixing it requires addressing #107847.

In the mean time, work around it by re-validating and fixing the namemap
after the problematic liboverride calls.

NOTE: only identified issue currently is the proxy conversion of linked
proxies. The other cases *should* be fine.

Found while investigating issues when opening the
`lib/tests/libraries_and_linking/libraries/main_scene.blend` file.
2023-05-26 18:43:19 +02:00
Bastien Montagne
e260bc64da Fix (unreported) broken 'fixing' code in ID name uniqueness handling.
Logic in `main_namemap_validate_and_fix` could end up re-generating
a thousand of time the names of IDs because of an invalid assumption
about processed IDs being re-processable (in case they get renamed).

Also do not `CLOG_ERROR` when checking and fixing errors, if this code is
called to fix errors, it means errors are expected. Use `CLOG_INFO`
instead, or `CLOG_WARN` when the info is really important (like when IDs
had to be renamed).

And finally, simplify code clearing invalid namemaps, there is now a
function to handle this task, `BKE_main_namemap_clear`.

Issues & improvements found while working on readfile errors when
opening `lib/tests/libraries_and_linking/libraries/main_scene.blend`.
2023-05-26 18:43:19 +02:00
Bastien Montagne
591936c7ed Fix (unreported) wrong logic in readfile lookup for existing library ID.
In readfile code, when looking up for an already existing Library ID
based on the filepath, the logic handling said file path was wrong.

NOTE: This probably does not have any effect in practice, but better be
safe than sorry.

Found while investigating issues when opening
`lib/tests/libraries_and_linking/libraries/main_scene.blend`.
2023-05-26 18:43:19 +02:00
Sergey Sharybin
82e8f1129c Cleanup: Spelling in Cycles light tree
Pull Request: https://projects.blender.org/blender/blender/pulls/108324
2023-05-26 18:12:57 +02:00
Sergey Sharybin
cc25a37bee Fix #108315: Illegal CUDA address with shadow-linked mesh emitters
A mistake in the intersection picking logic: if a mesh was hit at
least one intersection is to be recorded.

Pull Request: https://projects.blender.org/blender/blender/pulls/108320
2023-05-26 17:36:24 +02:00
Christoph Lendenfeld
074abff87e Merge branch 'blender-v3.6-release' 2023-05-26 17:02:35 +02:00
Christoph Lendenfeld
e233507efd Fix: Channel select keys doesn't add undo step
When double clicking a channel in the Graph Editor, it would select all keyframes but not create an undo step for that.

This is an issue when double clicking to select all keys and then applying an operator.
The redo panel would also revert the selection since it didn't have an undo step

Pull Request: https://projects.blender.org/blender/blender/pulls/107887
2023-05-26 17:00:22 +02:00
Falk David
4492fe3080 Cleanup: rename gpencil rna function to legacy
Renames `RNA_def_main_gpencil` to `RNA_def_main_gpencil_legacy`.
2023-05-26 16:50:41 +02:00
Jason Fielder
9e83211b8d Fix: Implement shared Metal Command queue to resolve sync bugs
Previously, each GHOST Context instantiated its own Metal device
queue. Commands are only synchronized within a queue, this was the
root cause of a number of flickering issues which had previously
been worked-around with synchronization primitives.

New solution uses a shared queue to simplify dependencies and
alleviate possibility of stalls and bugs when resources are modified
or shared across separate GPU command queues.

Authored by Apple: Michael Parkin-White

Pull Request: https://projects.blender.org/blender/blender/pulls/108223
2023-05-26 16:00:20 +02:00
Thomas Dinges
0f3682a88a Merge branch 'blender-v3.6-release' 2023-05-26 15:44:44 +02:00
Thomas Dinges
ccd85688ed Update licence infos for OpenSSL. 2023-05-26 15:44:06 +02:00
Sybren A. Stüvel
eb07e8c37b Merge remote-tracking branch 'origin/blender-v3.6-release' 2023-05-26 15:20:40 +02:00
Sybren A. Stüvel
001e012ea0 Fix crash when selecting all bones in armature
Pressing 'A' to select all pose bones in an armature caused a segfault,
as `id->override_library->runtime->tag` was checked while
`id->override_library->runtime` was `nullptr`. An extra check resolved
the crash.
2023-05-26 15:12:43 +02:00
Sybren A. Stüvel
d36c329e16 Fix crash when selecting all bones in armature
Pressing 'A' to select all pose bones in an armature caused a segfault,
as `id->override_library->runtime->tag` was checked while
`id->override_library->runtime` was `nullptr`. An extra check resolved
the crash.
2023-05-26 14:36:44 +02:00
Nathan Vegdahl
468cadd51c Cleanup: add comments explaining best usage of Sobol dimensions 2023-05-26 14:34:48 +02:00
Sergey Sharybin
4ca39297ab Fix specialized light tree building for distant lights
On a user level this fixes configuration when a spot light is
linked to an object, and a sun light is not linked to anything.
It used to be making non-linked receivers to be very noisy.

This is because the distant light did not update the node's
light linking settings when they are added to the node.

A simple demo file will be added to the tests suit as
light_link_distant_tree.blend.

Pull Request: https://projects.blender.org/blender/blender/pulls/108311
2023-05-26 13:29:47 +02:00
Sergey Sharybin
d6db9e4193 Cycles: Store light name
Similar to objects, store the name of Blender's side light name
on the Cycles side. This allows to have readable logs where a
name and property is logged (while previously in the logs all
lights will be called lamp).

There is no user-measurable change.

Pull Request: https://projects.blender.org/blender/blender/pulls/108310
2023-05-26 13:03:54 +02:00
Sergey Sharybin
5e971e8d7f Fix hiding receiver disabling light/shadow linking
Turns out it is not enough to check for the receiver/blocker set,
as the object might be hidden. This should not change the light
behavior.

Pull Request: https://projects.blender.org/blender/blender/pulls/108307
2023-05-26 12:21:44 +02:00
Brecht Van Lommel
ef6439efb3 Merge branch 'blender-v3.6-release' into main 2023-05-26 12:18:33 +02:00
Brecht Van Lommel
080484a5c8 Fix #108125: Cycles generates NaN in render passes with low roughness
Slightly increase threshold to avoid division by zero.
2023-05-26 12:18:06 +02:00
Brecht Van Lommel
c6aa0217ac Fix #108125: Cycles generates NaN in render passes with low roughness
Slightly increase threshold to avoid division by zero.
2023-05-26 12:16:14 +02:00
Sergey Sharybin
786c599404 Fix assert in light linking when making an asset
Simple steps to reproduce: mark the default cube as an asset.

Pull Request: https://projects.blender.org/blender/blender/pulls/108306
2023-05-26 11:30:48 +02:00
Christoph Lendenfeld
dfb3e0d262 Merge branch 'blender-v3.6-release' 2023-05-26 09:16:50 +02:00
Christoph Lendenfeld
adef3a4556 Animation: Remove collection hotkeys from pose mode
We have been chatting in the Animation&Rigging module meeting that the collection hotkeys (1, 2, 3 etc.) in Pose Mode are unwanted and could be replaced with something more useful.
This patch only removes the hotkeys, we can later decide what should be in their place.

Pull Request: https://projects.blender.org/blender/blender/pulls/105120
2023-05-26 09:04:00 +02:00
Christoph Lendenfeld
e2a75814ac Animation: change Slider Popup menu hotkeys
Since the change in #106113 the Slider menu which was called with the D hotkey was no longer in any menu.
This made it really hard to discover.

Since there is now more than 1 menu popup, it needs more than 1 hotkey.
The idea is that the ALT key is used in combination with keys that are easy to reach with the left hand.
Right now it is ALT+S and ALT+D but if needed in the future it can be extended to f, w and e

Pull Request: https://projects.blender.org/blender/blender/pulls/107866
2023-05-26 09:03:08 +02:00
Campbell Barton
ad6fa96041 BLF: use BLI_path_cmp when comparing path names
There is no reason to use case-sensitive path lookups on MS-Windows.

Also replace BLI_str_endswith with BLI_path_basename since ends-with
checks don't ensure a preceding path separator.
2023-05-26 14:48:53 +10:00
guishe
cd09c91f69 Cleanup: deduplicate code to create menu for flip region
Ref !108302.
2023-05-26 13:31:56 +10:00
Campbell Barton
e7f88c1050 Cleanup: format 2023-05-26 13:30:14 +10:00
Campbell Barton
393d4a6e14 Cleanup: duplicate words in comments
Also use doxygen-comments in files where this is already the convention.
2023-05-26 12:40:06 +10:00
Campbell Barton
6876372974 License headers: add missing license identifier 2023-05-26 12:24:55 +10:00
Campbell Barton
ac74f3b396 Cleanup: refactor cursor jump type check into a function 2023-05-26 11:45:11 +10:00
YimingWu
99df159ce0 Fix #108098: GPencil: Prevent overwriting mvalo
There are other events besides `MOUSEMOVE` that's passed in during modal
handling, causes the `tgpi->mvalo` variable to be overwritten without
moving the stroke in the first place, this results in inaccurate offsets
during mouse/pen grabbing in primitive gizmo `IN_MOVE` mode. Now fixed.

Also fixed the operator hint to include the grab functionality.

Pull Request: https://projects.blender.org/blender/blender/pulls/108172
2023-05-26 03:30:16 +02:00
Jörg Müller
e98c26dece Audaspace: porting changes from upstream. 2023-05-25 23:00:22 +02:00
Chao Li
72309be398 Mesh: Avoid position copying in corrective smooth modifier
This is a place where copying mesh position is not needed. See #103789.

Pull Request: https://projects.blender.org/blender/blender/pulls/108291
2023-05-25 22:12:11 +02:00
Xavier Hallade
c18cafe748 Merge branch 'blender-v3.6-release' 2023-05-25 20:39:27 +02:00
Xavier Hallade
2533576802 EEVEE: Fix non-deterministic codegen preventing shader cache to work
used_libraries was iterated on to generate shader code depending on
pointers order, which was non-deterministic. It prevented shader caching
by graphics drivers to survive across reboots, as reported in
https://techgage.com/article/blender-3-5-performance-deep-dive-cycles-eevee-viewport/

Co-authored-by: Ray Molenkamp <github@lazydodo.com>

Pull Request: https://projects.blender.org/blender/blender/pulls/108289
2023-05-25 20:37:42 +02:00
Jacques Lucke
dc33a8e974 Geometry Nodes: expose simulation bake path in UI
Longer term we want to have a more centralized place where the bake
paths can be managed, but this is what we can still add in bcon3.

Pull Request: https://projects.blender.org/blender/blender/pulls/108220
2023-05-25 18:56:00 +02:00
Germano Cavalcante
c89461a2bc Fix recent change in transform code
fc854fc252 caused the precision modification to be removed after
navigation was complete.

The ideal is when starting navigation.

This is because the precision button can be released during navigation,
thus confirming the precision change.
2023-05-25 13:33:45 -03:00