Commit Graph

132730 Commits

Author SHA1 Message Date
Miguel Pozo
98231ea880 GPU: Optimize GLStorageBuf::read performance
Add a separate persistent mapped buffer where the main SSBO can be
copied, so its contents can be read from the CPU without stalling the
GPU.

Pull Request: https://projects.blender.org/blender/blender/pulls/117521
2024-02-09 16:11:33 +01:00
Bastien Montagne
c065ef94ee Readfile: Make 'alloc name' for ID type automatically generated.
Avoids having yet another `switch` case over all ID types.

Note that we could also add a string to the IDTypeInfo, but imho this is
a bit too limited in scope/interest to expose this outside of the readfile
code.

Pull Request: https://projects.blender.org/blender/blender/pulls/117958
2024-02-09 16:04:53 +01:00
Miguel Pozo
ee493b3c05 Fix: EEVEE Next: View Layer Motion Blur UI
Outdated properties after
74b8f99b43
2024-02-09 15:45:10 +01:00
Philipp Oeser
c5659e56c5 Merge branch 'blender-v4.1-release' 2024-02-09 15:40:01 +01:00
Damien Picard
990c0ad42c Fix #113803: some cloth weight groups change on reordering
When reordering vertex groups on a mesh, some cloth properties would
get affected by another group, because they were based on group index
instead of name.

This issue was already handled by
`BKE_object_defgroup_remap_update_users()` for some properties, but
not all.

This commit extends the function for missing properties: Shrinking,
Shear, Internal Springs, Pressure, Self Colllisions and Object
Collisions.

Pull Request: https://projects.blender.org/blender/blender/pulls/114032
2024-02-09 15:39:09 +01:00
Brecht Van Lommel
01f2c32700 Merge branch 'blender-v4.1-release' into main 2024-02-09 15:16:55 +01:00
Brecht Van Lommel
a94ecd47f1 Tests: Reduce threshold on denoising now all platforms use OIDN 2.2
Pull Request: https://projects.blender.org/blender/blender/pulls/117994
2024-02-09 15:16:33 +01:00
Philipp Oeser
568c99d191 Fix #117989: GPv3: Cannot move Node(s) in Geo Node Editor in 'Edit Mode'
The transform system reacts to `CTX_GPENCIL_STROKES` in a special way
that is only useful in `SPACE_VIEW3D`.
There was a similar case fixed in 23e9ebfdbd, but there would be
multiple other places to also check the spacetype.

So now do this more generalized and only ever set `CTX_GPENCIL_STROKES`
if we are in editmode (that check existed before) **and** in
`SPACE_VIEW3D`.

Pull Request: https://projects.blender.org/blender/blender/pulls/118042
2024-02-09 15:11:32 +01:00
Brecht Van Lommel
1e1a8d5c8f Fix: Cycles denoise fails with multi tile render and Use GPU off 2024-02-09 15:11:21 +01:00
Brecht Van Lommel
f98468c988 Fix: Cycles uses GPU device for denoise even if disabled for scene 2024-02-09 15:02:46 +01:00
Clément Foucault
fc56ae4e30 Fix: EEVEE-Next: Crashing tests caused by new properties 2024-02-09 15:02:03 +01:00
Sergey Sharybin
c6b6714555 Clang-Format: Ensure new line at the end of files
Not all editors are configured by default to ensure new line at the
end of file.

To reduce noise and make code more uniform ensure the new lines are
ensured by the clang-format.

Pull Request: https://projects.blender.org/blender/blender/pulls/118031
2024-02-09 14:32:07 +01:00
Hans Goudey
91e54fdd83 Cleanup: Move BLO_readfile.h to C++
I added a new BLO_userdef_default.h header to contain declarations of
two global variables that are still defined in C files. Use of designated
initializers for large structs make those files harder to change.
Arguably this is a better header for them anyway.

Pull Request: https://projects.blender.org/blender/blender/pulls/118015
2024-02-09 13:41:30 +01:00
Pratik Borhade
84aed88b91 Merge branch 'blender-v4.1-release' 2024-02-09 17:34:25 +05:30
Pratik Borhade
8250502b77 UI: Merge Spin and spin duplicate tools
Both tools calls the same operator, only difference is "dupli" bool
property value. So expose the property in tool settings and remove the
spin duplicate tool

Resolves #98094

Pull Request: https://projects.blender.org/blender/blender/pulls/117880
2024-02-09 13:01:55 +01:00
JonasDichelle
f2e27ef7b6 Cycles: Override World option per View Layer
This feature is useful for many production scenarios as it allows for the
creation of separate render passes with specific worlds. This would help
workflows that require different skies or other backgrounds for compositing.

Ref #117919

Pull Request: https://projects.blender.org/blender/blender/pulls/117920
2024-02-09 12:16:16 +01:00
Sybren A. Stüvel
6729a3f77d Anim: Fix animation baking for Armature props creating a group per prop
Baked armature properties are now placed in a single group "Armature
Custom Properties", instead of creating a new group "Group.nnn" for each
custom property.

This bug was not reported.

Pull Request: https://projects.blender.org/blender/blender/pulls/117993
2024-02-09 12:13:36 +01:00
Sybren A. Stüvel
25bdaf026c Fix #117988: Anim, Crash when baking action
When baking custom properties, avoid keeping references to custom
property values that are known to be impossible to animate anyway.

The crash was caused by custom properties containing collections of ID
properties. Keeping Python references around for too long and then
accessing them caused Blender to crash.

My solution is to only keep track of custom property values that might
be keyable. For some this is certain: floats, ints, bools are keyable,
whereas lists, dicts, etc. are not. However, strings can be the RNA
value for an enum property, which is keyed via its integer
representation. So, the new function `can_be_keyed()` can return `True`,
`False`, or `None`. By skipping those values where it returns `False`
the crash is already resolved, making it good enough for now.

Pull Request: https://projects.blender.org/blender/blender/pulls/117993
2024-02-09 12:13:36 +01:00
Omar Emara
9743d6992c Compositor: Unify Variable Size Bokeh Blur node
This patch adjusts the Variable Size Bokeh Blur node such that it
matches between CPU and GPU. The GPU implementation is mostly followed
for the reasons stated below.

The first difference is a bug in the CPU implementation, where the upper
limit of the blur window is not considered, but the lower limit is.

The second difference is due to CPU ignoring outside pixels instead of
clamping them to border, which is done until an option is added to the
node to control the boundary condition.

The third difference is due to CPU ignoring the bounding box input.

The fourth difference is that CPU doesn't allow zero maximum blur
radius, which is a valid option.

The fifth difference is that the threshold option, which is only used
for the Defocus node, was considered in a greater than manner, while it
should be greater than or equal. Since the default threshold of one
should allow a blur size of one.

The GPU implementation now considers the maximum size of its input,
following the CPU implementation.

Pull Request: https://projects.blender.org/blender/blender/pulls/117947
2024-02-09 11:52:41 +01:00
Falk David
1fb113848e Fix: GPv3: Draw tool overwrites hardness value
The draw tool didn't skip over the hardness attribute when
initializing the rest of all the attributes with default values.
2024-02-09 11:30:26 +01:00
Sergey Sharybin
aa051f788d Cleanup: New line at the end of file
Pull Request: https://projects.blender.org/blender/blender/pulls/118032
2024-02-09 11:08:16 +01:00
Sergey Sharybin
a18324ff10 Fix compilation error when WITH_COMPOSITOR_CPU is OFF
The render only uses `ProfilerData` for which it is enough to only
have header. No linking is needed to the bf_compositor for things
to work.

Pull Request: https://projects.blender.org/blender/blender/pulls/118030
2024-02-09 10:55:23 +01:00
Pratik Borhade
69e0e9f19f GPv3: Assert drawing before first frame
Assert at `BLI_assert(active_layer.has_drawing_at(current_frame))`
New keyframe is not added when brush draws on a frame which is before
the first frame that actually contains the drawing.

Pull Request: https://projects.blender.org/blender/blender/pulls/117983
2024-02-09 10:48:23 +01:00
Omar Emara
e20b2d2fb9 Merge branch 'blender-v4.1-release' 2024-02-09 11:37:43 +02:00
Omar Emara
bf94b454c4 Fix: Crash in Inpaint node for large images
The Inpaint node crashes for large images. That's because the output
buffer was only allocated for a single chunk. So allocate the entire
output buffer in the tile initialization step.
2024-02-09 11:35:24 +02:00
Bastien Montagne
bdbaff9b31 Merge branch 'blender-v4.1-release' 2024-02-09 10:26:01 +01:00
Andrej730
8144252aa9 Fix return types in docs for matrix.zero, quat's .negate and .identity
Noticed in mathutils docs (and in python type hinter for mathutils) some methods doesn't return anything though docs stated that they return themselves and fixed the docs.
Related to 9c81833430

Pull Request: https://projects.blender.org/blender/blender/pulls/118011
2024-02-09 10:24:44 +01:00
Sergey Sharybin
467a132166 Compositor: Implement per-node execution time report
Visually it is the same as the execution time implemented for the
geometry nodes, and it is to be enabled in the overlay popover.

The implementation is separate from the geometry nodes, as it is
not easy or practical to re-use the geometry nodes implementation.

The execution time is stored in a run-time hash, indexed by a node
instance key. This is similar to the storage of the mode preview
images, but is stored on the scene runtime data and not on the node
tree. Indexing the storage by key allows to easily copy execution
statistics from localized tree to its original version.

The time is only implemented for full-frame compositor, as for the
tiled compositor it could be tricky to calculate reliable time for
pixel processing nodes which process one pixel at a time.

Pull Request: https://projects.blender.org/blender/blender/pulls/117885
2024-02-09 10:19:24 +01:00
Christoph Lendenfeld
afa4391eeb Fix: Issue with Cycle aware keying when inserting second key
Caused by #113504

While basic cycle aware keying works, there is a special case
when inserting the first key. In that case, after the key has been inserted,
it is duplicated and moved around so the FCurve range from
first to last key is exactly the range of the action.
It also auto-creates the Cycle modifier on the FCurve .

Fix the issue by calling the function that does the key duplication
and cover with unit tests.

Pull Request: https://projects.blender.org/blender/blender/pulls/116943
2024-02-09 10:13:28 +01:00
Campbell Barton
67e3704a45 Merge branch 'blender-v4.1-release' 2024-02-09 18:20:21 +11:00
Campbell Barton
bc5a8f33d8 Cleanup: correct misleading name 2024-02-09 18:18:13 +11:00
Campbell Barton
5affe322cc Correct version bump from 41b63ebda2 2024-02-09 18:15:05 +11:00
Campbell Barton
41b63ebda2 Versioning: add missing version update for renamed key-map
Account for the renamed key-map when loading older saved key-maps &
stored user preferences. [0] missed these changes.

[0]: 661e7e451a
2024-02-09 18:11:12 +11:00
Campbell Barton
239f307eb4 Fix missing keymaps for UV editor tools
Regression in fa77e9142d
2024-02-09 17:40:26 +11:00
Campbell Barton
4e93355187 Fix missing keymaps for UV editor tools
Regression in fa77e9142d
2024-02-09 17:38:44 +11:00
Campbell Barton
2ec7ab066f Merge branch 'blender-v4.1-release' 2024-02-09 16:46:35 +11:00
Campbell Barton
ecb0dc0fcb Fix manpage hiding lines beginning with single quotes
Escape single quotes, file formats were not displayed.
2024-02-09 16:45:21 +11:00
Miguel Pozo
ca259f751d Cleanup: Remove unused parameter 2024-02-08 21:13:14 +01:00
Hans Goudey
b2d9f08d5c Merge branch 'blender-v4.1-release' 2024-02-08 14:56:18 -05:00
Hans Goudey
2e6223d90f Geometry Nodes: Move instance reference indices to a builtin attribute
This means the array can be shared between geometries when unchanged,
reducing memory usage and increasing performance. It also means that
handling the data can be done more generically using the attribute
system. In the future the transforms can become attributes too.

Two other changes are related here:
- The "almost unique ids" are cached with a shared cache so they
  are shared too.
- The reference indices are baked as an attribute now, making the process
  more generic and potentially easier to optimize in the future.

Pull Request: https://projects.blender.org/blender/blender/pulls/117951
2024-02-08 20:55:34 +01:00
Hans Goudey
7f5f37ea65 Cleanup: Simplify asset metadata copying
Use `BLI_strdupn` instead of repeating the same logic a bunch of times.
Use StringRef where StringRefNull isn't necessary, and use StringRefNull
instead of a std::string reference in one case.
2024-02-08 14:51:01 -05:00
Miguel Pozo
7e8fd2cc2c Fix: GPU: Fix closure evaluation order
EEVEE-Next can only store data for a single (global) closure at a time,
which, when combined with ShaderToRGB nodes, requires extra care in the
order that closures are evaluated.
For example:
![image](/attachments/0c56613f-3515-40a2-bf0e-282a8a99d64e)
Here, after `ntree_shader_shader_to_rgba_branch` there will be 2 Diffuse
nodes (the original and a copy for the ShaderToRGB branch).
However, the generated code order will be something like this:
```
Diffuse (original)
Diffuse (copy)
ShaderToRGB // This resets closures
Mix
```
So while the original node is technically "evaluated", the closure data
is reset after ShaderToRGB.
This patch updates the code generation to ensure closure evaluation is
ordered taking ShaderToRGB branches into account, so the generated code
looks like this:
```
Diffuse (copy)
ShaderToRGB // This resets closures
Diffuse (original)
Mix
```
This also fixes ShaderToRGB support for AOVs, removes unused code, and
fixes several bugs that I've found along the way that were harmless for
EEVEE but broke EEVEE Next.

Pull Request: https://projects.blender.org/blender/blender/pulls/117767
2024-02-08 20:43:50 +01:00
Miguel Pozo
a1ceeef2f9 Merge branch 'blender-v4.1-release' 2024-02-08 19:58:07 +01:00
Miguel Pozo
bf0ac755e2 Fix: EEVEE: Volumes don't render
OrcoTexCoFactors were wrong.
Regression from
fa3bd17ae8
2024-02-08 19:57:18 +01:00
Clément Foucault
63a4c03b09 Refactor: EEVEE-Next: Light-probe management and structure
This cleanup and centralize lightprobe object management
into the LightProbeModule as it was always intended.
The other modules are kept for data / rendering management.

A few logic were simplified along the way.

Rename a lot of defines and classes for more consistency.

No functional change expected.

Pull Request: https://projects.blender.org/blender/blender/pulls/117941
2024-02-08 19:48:28 +01:00
Hans Goudey
30f8dfc474 Cleanup: Fix string format warning after recent commit 2024-02-08 12:21:33 -05:00
Falk David
fb6324bdd0 Fix: GPv3: Draw tool not writing hardness attribute 2024-02-08 17:43:19 +01:00
Miguel Pozo
01fbca876d Revert "Disable EEVEE-Next"
This reverts commit a8f29e8e36.
2024-02-08 17:38:18 +01:00
Miguel Pozo
cf27e0f3e1 Merge branch 'blender-v4.1-release' 2024-02-08 17:38:09 +01:00
Miguel Pozo
a8f29e8e36 Disable EEVEE-Next 2024-02-08 17:37:53 +01:00