Commit Graph

137921 Commits

Author SHA1 Message Date
Hans Goudey
69e2ca9fb5 Cleanup: Sculpt: Make undo geometry struct definition private 2024-06-21 12:10:06 -04:00
Hans Goudey
581477dd08 Sculpt: Move more constant data out of each undo node
Similar to b3446ef26a833a582e3c96b6366b6c5b40ce317c.
2024-06-21 12:10:06 -04:00
Hans Goudey
e0d9c45276 Sculpt: Move more BMesh information out of sculpt undo nodes
Reduces memory usage while sculpting. The size of undo nodes changes
from 1816 to 768 bytes. Similar to b3446ef26a833a582e3c.
2024-06-21 12:10:06 -04:00
Xavier Hallade
7f9ff321f5 Merge branch 'blender-v4.2-release' 2024-06-21 18:04:55 +02:00
Xavier Hallade
368d6edc3c Cycles: Update ocloc to 101.5518 on Windows
We've seen a ~15% performance regression on Meteor Lake iGPUs since
17f2cdd104608c86c910a937bb277c9f0e342345, this new compiler version
restores it.
No need to bump the minimum supported driver version as it was already
at 101.5518.

Pull Request: https://projects.blender.org/blender/blender/pulls/123562
2024-06-21 18:01:54 +02:00
Brecht Van Lommel
2950098012 Fix: Issue in openimagedenoise cmake config harvest 2024-06-21 17:20:04 +02:00
Brecht Van Lommel
3b4d03968b Build: Fix various issue for 4.2 macOS library update
* Auto patch MaterialX cmake config for stripping version from dylib
* Add x265 library
* Fix harvest of OIDN cmake config

Ref #123348
2024-06-21 17:17:21 +02:00
Jacques Lucke
197c03c633 Merge branch 'blender-v4.2-release' 2024-06-21 15:54:41 +02:00
Jacques Lucke
e72730d763 Fix: assert when switching to sculpt mode
This is an alternative fix to #123524.

This is necessary, because `sculpt_update_object` is run after
the mesh is evaluated, but before the geometry depsgraph operation
is done. Only after this depsgraph node is done, `DEG_object_geometry_is_evaluated`
will return true.

This approach of `unchecked` methods has been preferred for now
over moving the call to `BKE_sculpt_update_object_after_eval`
to a separate depsgraph node or after depsgraph evaluation.
2024-06-21 15:19:10 +02:00
Weizhen Huang
f26e84098a Merge branch 'blender-v4.2-release' 2024-06-21 15:09:47 +02:00
Weizhen Huang
23e497d1af Fix: Memory leak in volume with packed file
Pull Request: https://projects.blender.org/blender/blender/pulls/123556
2024-06-21 15:08:55 +02:00
Alaska
47158e1606 Fix #123528: Cycles viewport denoiser not using GPU for CPU render
Cycles automatic denoiser picker assumed that OIDN could not be
run on the GPU while the CPU was the render device. So if the user was
using their CPU for rendering, the automatic denoiser picker would
"fallback" to a different denoiser (OptiX or CPU OIDN). This was true
in Blender 4.1, but changed in 4.2. The UI assumed that OIDN could run
on the GPU if there was a compatible OIDN GPU device.

This lead to a issue on systems using the CPU for rendering
while having a NVIDIA GPU installed in the system. The
UI suggested that OIDN would be used, and would switch between
CPU and GPU depending on user preferences. But the automatic
denoiser picker in Cycle's backend said OIDN could not run on
the GPU in this situation and would always "fallback" to the
OptiX denoiser running on the NVIDIA GPU.
This created a mismatch between the UI and what Cycles was
acutally doing. This issue did not effect other GPU vendors because
their "fallback" was the OIDN denoiser.

This commit fixes this issue by aligning the Cycles automatic
denoiser picker in the backend with the UI. Using OIDN if a GPU
is supported, falling back to OptiX if it's not supported,
falling back to OIDN CPU if OptiX isn't supported,
then falling back to no denoiser if that's not supported.

Pull Request: https://projects.blender.org/blender/blender/pulls/123530
2024-06-21 14:06:50 +02:00
Julian Eisel
1c322889fd Refactor: Consistent WM jobs API; avoid function pointers as identifiers
Basically this tries to make the API to stop and kill jobs more explicit &
consistent, so intent is expressed clearly & behavior as expected.

- Remove use of the job start callback address as identifier for the job.
  6887dea786 already removed this pattern from the jobs system internals, this
  commit also removes it from the API.
- Make stop & kill API and implementation consistent. E.g. don't stop/kill jobs
  by either owner **or** type/callback in one function, and by owner (if
  provided) **and** type/callback in another. Causes some small behavior
  changes, documented inline.
- Use the same job type and API for all preview render jobs (change by Brecht).
  There doesn't seem to be a need for the separated types, in fact the
  separation might have caused some issues earlier (and added code complexity).
- Add/improve function documentation.

This does actually have subtle behavior changes that are known, see PR, but
they were investigated carefully and seem like implementing wanted behavior.

Co-authored-by: Brecht Van Lommel <brecht@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/123086
2024-06-21 13:34:14 +02:00
Julian Eisel
6887dea786 Refactor: WM: Suspend new jobs based on same job type, not callback
The callback-based identification was introduced before job types were added in
7b60529517. The job type should be a more predictable/sane way to identify jobs
that should be exclusive. Using anything else is confusing and non-obvious from
the API usage side. In fact it really confused me when working on #123027.

Checked all existing jobs to make sure behavior is unchanged. Found
two issues:
- `WM_JOB_TYPE_OBJECT_SIM_FLUID` is used for both
  `fluid_bake_startjob()` and `fluid_free_startjob()`. It makes sense to
  me that they would be exclusive though, so leaving it this way
  (meaning they are exclusive now).
- Alembic and USD job types were reused, split them up now to not change
  behavior.

Pull Request: https://projects.blender.org/blender/blender/pulls/123033
2024-06-21 13:27:23 +02:00
Jeroen Bakker
dbd04310c7 Vulkan: Fix incorrect layout transition
When many text using BLF the glymp texture could be re-written.
In this case the new upload should be done in a separate render
graph node group. This wasn't the case and resulted in
validation warnings about the glyph texture being in an layout
that wasn't expected.

This PR simplifies the group extraction a bit by looking ahead
when the group ends.

Pull Request: https://projects.blender.org/blender/blender/pulls/123547
2024-06-21 13:26:52 +02:00
Jacques Lucke
bcc42a72aa Merge branch 'blender-v4.2-release' 2024-06-21 13:00:51 +02:00
Jacques Lucke
046a8f92eb Fix #123539: Object Info node incorrectly reports dependency cycle
Previously, the node checked for all possible missing evaluations first.
However, some of the outputs may still work even if using another one
could cause a dependency cycle.
2024-06-21 12:58:15 +02:00
Bastien Montagne
7ba1bab453 Merge branch 'blender-v4.2-release' 2024-06-21 12:29:38 +02:00
Werner, Stefan
9004e7b668 Fix: Compiler warning about format string
Don't pass string class into printf("%s"), only char* allowed.
2024-06-21 12:29:02 +02:00
casey bianco-davis
ddafc57633 GPv3: Primitive use hardness setting.
This makes the all of the primitive tools uses hardness.

Note: there is no UI to change the hardness while using the tool, this matches GPv2.

Pull Request: https://projects.blender.org/blender/blender/pulls/123519
2024-06-21 12:12:27 +02:00
Laurynas Duburas
c9ff4a9e0d Overlay-Next: Speaker
Overlay-Next version of speaker.

Rel #102179

Pull Request: https://projects.blender.org/blender/blender/pulls/123480
2024-06-21 11:19:31 +02:00
Sergey Sharybin
0096c5e461 Merge branch 'blender-v4.2-release' 2024-06-21 10:24:53 +02:00
Sergey Sharybin
a13a116de9 Fix #112804: Compositor movie not rendering if cache is full
The issue is a combination of following aspects:
- Missing null-pointer check in the image operation, which is probably
  why the result was buggy. It is addressed by #123493.
- In certain conditions loading image was wrongfully failing.

The reason for failing to read image were items with a null-pointer
image buffer left by the cache limit enforcer, which was considered
to be an indication of failed load from disk. The reason why the cache
limiter leaves items with null-ptr as an image buffer is kind of a
legacy limitation which was never resolved. Long story short: the
system expects put() to be called on the cache to clear its empty
items.

To solve the original issue of files considered to be unreadable
only set the cache-empty if the image buffer was added empty.

Pull Request: https://projects.blender.org/blender/blender/pulls/123496
2024-06-21 10:24:13 +02:00
Sergey Sharybin
fb8a30986e Merge branch 'blender-v4.2-release' 2024-06-21 10:23:07 +02:00
Sergey Sharybin
320c2e8878 Fix: Compositor crash when second image of Mix node is missing
The first input of the compositor Mix node determines resolution,
leading to situation when the second input will always be attempted
to be evaluated. If the first input is a longer image sequence than
the second input it leads to a crash.

Do a null-pointer check and return transparent image in this cases,
similar to what the Movie Clip operation is doing.

Pull Request: https://projects.blender.org/blender/blender/pulls/123493
2024-06-21 10:22:42 +02:00
Campbell Barton
cebe845da9 Merge branch 'blender-v4.2-release' 2024-06-21 16:53:00 +10:00
Campbell Barton
9cd6520693 Merge branch 'blender-v4.2-release' 2024-06-21 16:52:58 +10:00
Campbell Barton
91d5a639dc Extensions: prevent install/upgrade while sync is in progress
When syncing in the background the UI could refresh immediately
before clicking making it possible for the user to install the wrong
extension. Since install also enables the extension, it meant it was
too easy to accidentally run untrusted code.

Disable install/upgrade while sync runs.

Also tweak text alignment and use round brackets for "(disabled)"
extensions.
2024-06-21 16:51:57 +10:00
Campbell Barton
72af4d0977 Cleanup: use a set to store enabled add-on module names
Was using a dictionary when the value was never used.
2024-06-21 16:03:11 +10:00
Campbell Barton
3b559fdf8a Merge branch 'blender-v4.2-release' 2024-06-21 15:44:26 +10:00
Campbell Barton
bd3c783139 Merge branch 'blender-v4.2-release' 2024-06-21 15:44:24 +10:00
Campbell Barton
5bad967d31 Merge branch 'blender-v4.2-release' 2024-06-21 15:44:21 +10:00
Campbell Barton
78a5ade1be Extensions: remove disabled UI logic 2024-06-21 15:42:11 +10:00
Campbell Barton
c312f20627 Extensions: add an extension menu for each extension
Use a per-extension menu so extra functionality can be accessed from
one place.

- The install/upgrade button remains top-level.
- "Uninstall" and "Visit Website" have been moved into the menu.
- Theme extensions can be set from the menu.
- Installed add-on extensions have a "View Details" menu item
  to switch to the add-ons view (useful to access preferences).

Based on design by Pablo & Dalai.

Co-authored-by: Pablo Vazquez <pablo@blender.org>
Co-authored-by: Dalai Felinto <dalai@blender.org>
2024-06-21 15:41:45 +10:00
Harley Acheson
554400da9a UI: Improved Window Titles
Allow informative titles for separate windows.

Pull Request: https://projects.blender.org/blender/blender/pulls/111495
2024-06-21 06:06:14 +02:00
Campbell Barton
91ba2e10ba Extensions: avoid duplicate "." for legacy add-on descriptions 2024-06-21 12:48:33 +10:00
Campbell Barton
00f12c4f41 Merge branch 'blender-v4.2-release' 2024-06-21 12:32:54 +10:00
Dalai Felinto
49725106af Fix extensions update not showing on the status bar by default
Ref !123495
2024-06-21 12:30:10 +10:00
Campbell Barton
bfd999401f Merge branch 'blender-v4.2-release' 2024-06-21 11:37:32 +10:00
Campbell Barton
38e25d7838 UI: tweaks to extension & addon items
- Use line separator over box instead of separate boxes.
- Format web-links with a label, then the button instead
  of positioning the buttons side-by-side.

Changes by Brecht with minor edits (see !123420).

Co-authored-by: Brecht Van Lommel <brecht@blender.org>
2024-06-21 11:34:10 +10:00
Campbell Barton
8b9cf02ce9 Merge branch 'blender-v4.2-release' 2024-06-21 10:53:08 +10:00
Campbell Barton
b4213141c2 Merge branch 'blender-v4.2-release' 2024-06-21 10:53:06 +10:00
Campbell Barton
72ef03d5a1 Extensions: split add-ons & extensions into separate preferences
Add back the "Add-ons" preferences, removing add-on logic from
extensions.

- Add support for filtering add-ons by tags
  (separate from extension tags).
- Tags now respect the "Only Enabled" option.
- Remove the ability to enable/disable add-ons from extensions.
- Remove add-on preferences from extensions.
- Remove "Legacy" & "Core" prefix from add-on names.
- Remove "Show Legacy Add-ons" filtering option.

Implements design task #122735.

Details:

- Add-on names and descriptions are no longer translated,
  since it's impractical to translate text which is mostly
  maintained outside of Blender.
- Extensions names have a `[disabled]` suffix when disabled so it's
  possible to identify installed but disabled extensions.
- The add-on "type" is shown in the details,
  so it's possible to tell the difference between an extension,
  a core add-on & a legacy user add-on.
- Icons are also used to differentiate the add-on type.
- User add-on's must be uninstalled from the add-ons section
  (matching 4.1 behavior).
- Simplify logic for filtering tags, move into a function.
2024-06-21 10:42:53 +10:00
Lukas Stockner
bbf7940d34 Cleanup: Memory leak in UI_OT_eyedropper_depth
Shouldn't be triggered by normal operation, but better to fix it just in case.
2024-06-20 22:53:45 +02:00
Aras Pranckevicius
b89c7635d2 Fix: VSE waveform drawing slightly outside strips
Address that by leaving several pixels off the edges.

Image examples in the pull request.

Pull Request: https://projects.blender.org/blender/blender/pulls/123515
2024-06-20 22:10:06 +02:00
Hans Goudey
56904553ec Cleanup: Rename resample attributes utility struct
Simplifies #122155.
2024-06-20 14:56:08 -04:00
Jesse Yurkovich
48b14f817e Merge branch 'blender-v4.2-release' 2024-06-20 11:52:06 -07:00
Jesse Yurkovich
aba1a2b6c2 Fix: incorrect grouping of UI props for USD export
Primarily the `evaluation_mode` enum prop was incorrectly grouped with
the previous `xform_op_mode` enum causing them to combine in the UI.

Additionally, group the `allow_unicode` option under the Blender Data
sub layout as was intended but got lost in a merge.

Pull Request: https://projects.blender.org/blender/blender/pulls/123513
2024-06-20 20:50:37 +02:00
Pablo Vazquez
68766e7308 Merge branch 'blender-v4.2-release'
# Conflicts:
#	source/blender/blenkernel/BKE_blender_version.h
2024-06-20 20:27:44 +02:00
Pablo Vazquez
a4dce75123 VSE: Make waveforms half size by default
Make half-size waveforms default in new files and Video Editing template.
They are more space efficient and display more detail at small sizes.

This does not change existing files.

Pull Request: https://projects.blender.org/blender/blender/pulls/123511
2024-06-20 20:26:17 +02:00