Commit Graph

141610 Commits

Author SHA1 Message Date
Falk David
be3e5e979f GPv3: Add function to copy GreasePencil parameters
Adds a kernel function to copy only the `GreasePencil` parameters
and not the layer tree or drawings.
2024-09-30 16:20:43 +02:00
notrudyyy
fcc263162d Fix #128087: EEVEE: Position render pass not in viewport shading panel
Adds Position Render pass to Render Pass enum in Viewport Shading popup for EEVEE.

Pull Request: https://projects.blender.org/blender/blender/pulls/128136
2024-09-30 16:20:14 +02:00
Julian Eisel
2a1004f7af Fix #128335: Activating brush from asset shelf sets tool, but not brush
We'd first set the brush, then change tools, which would again set the
brush to what it was before (switching tools tries to remember its last
used brush). Instead, switch the brush after switching the tool.

Also added a brush API check to test if the brush is valid for the
current mode, so that we don't end up switching tools in that case. This
matches previous behavior where this would be checked as part of setting
the brush already, causing the function to early exit before the tool is
changed.
2024-09-30 16:19:06 +02:00
Dalai Felinto
dc7645ff95 Extensions: Manifest polishing
* Match name with the extension ID.
* More strict double comment for optional parameters.
* Comment out tag since it is optional.
* More complete explanation for the paths_exclude_pattern.
2024-09-30 16:15:43 +02:00
Jacques Lucke
f839266b78 Geometry Nodes: support dynamic sockets and separators in panels 2024-09-30 16:07:36 +02:00
Lukas Stockner
f96f3c33af Cycles: Add some more math optimizations
This enables three additional math optimizations:
-ffp-contract=fast (enables FMA generation)
-freciprocal-math (enables x/y -> x*(1/y))
-fassociative-math (enables e.g. a*b + c*b -> (a+c)*b)

These are used on Windows and HIP anyways, so our code can't expect exact IEEE
semantics in any case.

The only difference between the new set and -ffast-math is that we don't use
-ffinite-math-only since this causes issues with the BVH (see ce1f2e271d) and
breaks e.g. isnan.

This causes a ~1.5% speedup in my very quick test, but might be higher for some
more math-intensive cases.

Pull Request: https://projects.blender.org/blender/blender/pulls/128342
2024-09-30 15:58:40 +02:00
Lukas Stockner
908d3c387f Cleanup: Cycles: Deduplicate math optimization flags
The only difference between Windows+Clang and the others is a prefix, so use
some CMake logic to just prepend that to all flags instead of duplicating them.

Pull Request: https://projects.blender.org/blender/blender/pulls/128342
2024-09-30 15:58:38 +02:00
Lukas Stockner
5f4c18c0bb Cycles: Apply SSE4.2 minimum regardless of compiler
We require it on all x86 platforms, so now it's assumed on all compilers that
support it.

Pull Request: https://projects.blender.org/blender/blender/pulls/128342
2024-09-30 15:58:36 +02:00
Lukas Stockner
de80c24ed4 Cleanup: Cycles: Rename CYCLES_x_KERNEL_FLAGS to CYCLES_x_FLAGS in CMake
Pull Request: https://projects.blender.org/blender/blender/pulls/128342
2024-09-30 15:58:31 +02:00
Lukas Stockner
442d99fe03 Cleanup: Cycles: Split vectorization and optimization CMake build flags
These aren't really related to each other, and not separating it caused
some issues - for example, enabling NATIVE_ONLY would disable math
optimizations.

Pull Request: https://projects.blender.org/blender/blender/pulls/128342
2024-09-30 15:58:29 +02:00
Lukas Stockner
a8ee5485c2 Cleanup: Cycles: Fix flag name
Pull Request: https://projects.blender.org/blender/blender/pulls/128342
2024-09-30 15:58:27 +02:00
Lukas Stockner
9105f9d219 Cleanup: Cycles: Remove obsolete AVX CMake logic
We only compile kernels for SSE4.2 and AVX2 nowadays, no need to keep this.

Pull Request: https://projects.blender.org/blender/blender/pulls/128342
2024-09-30 15:57:49 +02:00
Omar Emara
161b110746 Fix #127372: Alpha Over has unexpected output size
The Alpha Over node has an unexpected output size in GPU mode. If the
Factor and first Image inputs were connected to the same output, the
size of the output will assume the size of the second Image input, even
though the first Image input has a higher domain priority.

That's because the Alpha Over node is compiled into a Shader Operation
which has a single operation input for all inputs connected to the same
output, but only the domain priority of the first input was considered,
so in the case of the Alpha Over node, the domain priority of the Factor
input was assumed, ignoring the priority of the first Image output.

To fix this, we consider the priority of all inputs connected to the
same output, and assume the highest priority of all.

Pull Request: https://projects.blender.org/blender/blender/pulls/128366
2024-09-30 15:46:09 +02:00
Jacques Lucke
7b79191594 Geometry Nodes: prefer float math node even for integer sockets in link-drag-search
The problem with the Integer Math node is that it is less flexible in common
cases because the other input has to be an integer too. There is no simple way
to switch the node to be a Float Math node (yet), so better insert that
directly. Using the Integer Math node is a more explicit choice now.

Searching for e.g. `iadd` prioritizes the Integer Math node thanks to prefix
search.

Pull Request: https://projects.blender.org/blender/blender/pulls/128370
2024-09-30 15:44:26 +02:00
Jacques Lucke
02ada0d064 Geometry Nodes: use shorter linear gizmo when using box shape
This solves an issue when both linear gizmos happen to be at the same position.
In this case the gizmos became fairly unusable because they overlapped a lot.
They can still overlap of course, but it's more likely that they start at the
same position than that they end at the same position.

Note, when using a transform gizmo, the collision between the scale and
translate gizmo is resolved already. The issue only happens when two independent
Linear Gizmo nodes are used.

Pull Request: https://projects.blender.org/blender/blender/pulls/128371
2024-09-30 15:43:20 +02:00
Sybren A. Stüvel
d58176e1e0 Anim: fix bug in action.fcurves.clear() corrupting F-Curve groups
Calling `action.fcurves.clear()` would clear the F-Curves, but didn't
update the F-Curve groups. This meant that the groups data still had their
original length & offsets into the F-Curves array, causing subsequent
F-Curve creation to crash Blender.

The unit test for this also covers the previous commit.

Pull Request: https://projects.blender.org/blender/blender/pulls/128375
2024-09-30 15:42:58 +02:00
Sybren A. Stüvel
420082d4fe Anim: Fix issue with key insertion for array_index=-1
Fix an issue where Python's `rna_struct.keyframe_insert(path, index=-1)`
would not create any keys. This was caused by the new layered animation
code not taking -1 as an 'all array elements' wild-card.

The accompanying unit test will follow in another commit, as its success
depends on another bugfix as well.
2024-09-30 15:42:57 +02:00
Pablo Vazquez
6b3ce7d664 UI: Graph Editor: Use outline for Y values shadow
Replace the blur shadow on vertical values in the Graph
Editor with an outline to improve readability.

Pull Request: https://projects.blender.org/blender/blender/pulls/128374
2024-09-30 15:42:29 +02:00
Jacques Lucke
675606cbce Fix: wrong enum type in integer math node 2024-09-30 15:40:27 +02:00
Jacques Lucke
fc2b9e3a6b Cleanup: deduplicate switch over socket types to create declarations 2024-09-30 15:39:11 +02:00
Jacques Lucke
267c40db66 Fix #128373: conditional socket visibility in Mesh Line node not working
This was broken by 8027720e51 because
we forget to update the label in the declaration.

This is now reverted for the Mesh Line node, because there is no way to
change the label in the declaration yet. A new patch can be created that properly
updates the Mesh Line node to use the declaration.
2024-09-30 14:54:22 +02:00
Sergey Sharybin
437ca00f92 Fix: Potential memory leak in IK solver
It is possible to have IK solver without actual bones. There was a relation
created for this case, but it was originating from a wrong operation: it
was possible to run into situation when init is not yet done, but cleanup
is already run.

Fix the relation which ensures the order to go from IK initialization and
not the pose initialization. This should ensure proper cleanup order.
There is a relation from pose initialization to IK initialization so this
change should not cause any missing relations.

This should fix the intermittent failure of blendfile_versioning_1_over_8.

Pull Request: https://projects.blender.org/blender/blender/pulls/128267
2024-09-30 14:53:11 +02:00
Falk David
dfc69eb750 Fix: GPv3: Issues in BKE_grease_pencil_nomain_to_grease_pencil
* Handle the case where `drawing_array_num` is 0.
* Reset the pointer of the active node (because it is no longer valid)
* Cleanup copy-paste error in docstring
2024-09-30 14:48:45 +02:00
Alaska
6c52e4752f Fix #128113: Incorrect display of facing overlay on transparent textures in solid mode
Use DRW_STATE_DEPTH_EQUAL when we know the correct
depth buffer values are available

Pull Request: https://projects.blender.org/blender/blender/pulls/128163
2024-09-30 14:35:42 +02:00
Jacques Lucke
d8319f6f50 Fix: Geometry Nodes: propagate gizmo values through muted nodes 2024-09-30 14:34:51 +02:00
Pratik Borhade
45813afbc0 GPv3: Show select operators in vertex paint mode
They are greyed out due to wrong poll function.

Pull Request: https://projects.blender.org/blender/blender/pulls/128364
2024-09-30 14:31:27 +02:00
Pratik Borhade
6d8e642367 GPv3: Increase minimum rows in layers panel
There is empty space between the layers panel and the properties below.
Increase minimum rows to remove the empty area.

Pull Request: https://projects.blender.org/blender/blender/pulls/128368
2024-09-30 14:30:33 +02:00
Laurynas Duburas
71098ce904 Overlay-Next: Add NURBS edit handles
Draws NURBS edit handles in Overlay-Next.

Rel #102179

Pull Request: https://projects.blender.org/blender/blender/pulls/128093
2024-09-30 14:27:21 +02:00
Clément Foucault
d401b36509 GPU: Metal: Fix background render crash
GHOST_CreateSystemBackground was not being
followed by the now mandatory GPU_backend_ghost_system_set
2024-09-30 14:20:12 +02:00
Jacques Lucke
5163af816d Fix: Geometry Nodes: propagate edit data through foreach zone
Without this, gizmos don't work in some cases.
2024-09-30 14:14:22 +02:00
Jacques Lucke
1b31a44935 Geometry Nodes: support inverse evaluation for Integer Math node for gizmos 2024-09-30 14:00:32 +02:00
Laurynas Duburas
e40c9b414a Overlay-Next: Attribute viewer
Rel #102179

Pull Request: https://projects.blender.org/blender/blender/pulls/127772
2024-09-30 13:55:05 +02:00
Omar Emara
412e07173f Fix #127243: Crash when viewing invalid images
Blender crashes when viewing invalid images in the compositor. That's
because cached images will not be null, but will be unallocated, so to
fix this, we check allocation status as well as nullptr in the image
node.
2024-09-30 14:42:47 +03:00
Clément Foucault
a39a966328 Overlay-Next: Fix glitches with the grid
The vertex array was allocating uninitialized memory.
This fixes the API usage mistake and do the
intended reserve call.
2024-09-30 13:05:02 +02:00
Clément Foucault
5c42dd3ae7 Overlay-Next: Fix wrong uniform size error 2024-09-30 13:05:01 +02:00
Julian Eisel
9c519d8b69 Fix #128349: Right clicking a sculpt brush in tool settings crashes
Getting the active tool from context doesn't work exactly when executed
from the properties editor, which shows the active tool settings of the
3D view. Make the brush tool code fallback to the active tool from the
3D view, so it can be called from the properties.
2024-09-30 12:43:43 +02:00
priera
ce7667f3b1 GPv3: Join Operator
Adds the `Join` operator in edit mode to connect the selected strokes
by their endpoints.

Resolves #113582 and #113570.

Pull Request: https://projects.blender.org/blender/blender/pulls/117916
2024-09-30 12:16:40 +02:00
Jeroen Bakker
91eac6c771 Cleanup: Make format 2024-09-30 12:07:18 +02:00
Jeroen Bakker
ac24912736 Fix #128315: EEVEE: Uneven cryptomatte levels
When using uneven cryptomatte levels the number of cryptomatte layers
weren't sufficient due to rounding error.

Issue should be backported to 4.2

Pull Request: https://projects.blender.org/blender/blender/pulls/128358
2024-09-30 12:04:44 +02:00
Sybren A. Stüvel
2d5591b63f Cleanup: mark unused variables as such
Mark two `unassign_ok` variables as unused in non-debug builds. They're
only checked in `BLI_assert` calls.

No functional changes.
2024-09-30 11:59:45 +02:00
Sybren A. Stüvel
259091363f Refactor: Anim, remove use of MutableSpan in layered Actions C++ wrappers
Users of the layered Actions API should never mutate the data via these
spans, and so the functions should always return just a `Span<>`.

No functional changes.

Pull Request: https://projects.blender.org/blender/blender/pulls/128264
2024-09-30 11:51:14 +02:00
Jason Fielder
eb3fe75392 Metal: Add support for parallel compilation and precompilation specialisation
This speeds up EEVEE startup and material compilation time.

Authored by Apple: James McCarthy
Pull Request: https://projects.blender.org/blender/blender/pulls/125657
2024-09-30 11:21:28 +02:00
Jacques Lucke
13391c14d8 Spreadsheet: use more obvious fallback name for geometries
Instead of `Geometry`, the fallback name is now `(Geometry)`. The goal is to
make it more obvious that this is not the actual name, but just a fallback. With
some luck it also motivates people to use better custom names.

The same thing is done for grease pencil layer names.

Pull Request: https://projects.blender.org/blender/blender/pulls/128207
2024-09-30 11:18:01 +02:00
Jacques Lucke
83fa565ec2 Nodes: improve inserting nodes with link-drag-search
This makes link-drag-search more convenient when one wants to insert a new node
between existing nodes. The change currently also affects normal node-insertion
when dragging it. The exact behavior still has to be figured out.

Pull Request: https://projects.blender.org/blender/blender/pulls/128197
2024-09-30 11:14:43 +02:00
Pratik Borhade
866ef5b468 Fix #126587: GPv3: Select less fails if all points in stroke selected
Handle the case separately when end points of strokes are selected.
Always deselect them (i.e. set "true", later array values are inverted)
when executing select less operation.

Pull Request: https://projects.blender.org/blender/blender/pulls/126591
2024-09-30 11:00:34 +02:00
Pratik Borhade
7f226dc8ed Fix: GPv3: Redraw outliner when group is added
Send notifier which outliner space can listen to redraw elements
when group is added.

Pull Request: https://projects.blender.org/blender/blender/pulls/128289
2024-09-30 10:59:20 +02:00
Pratik Borhade
17fc09d5aa Fix: GPv3: Group color tag icons in outliner and dopesheet
Missed in cea18e62c5.

Pull Request: https://projects.blender.org/blender/blender/pulls/128287
2024-09-30 10:58:58 +02:00
Pratik Borhade
99bf9f4534 GPv3: Add keys to all layers in sculpt mode
When auto key is enabled, add keys to all layers in sculpt mode.
After 37458329e2,  `ensure_active_keyframe` accepts layer argument. Run
a loop over all the layers, call above function to handle keyframe/drawing at
current frame.

Resolves #127650.

Pull Request: https://projects.blender.org/blender/blender/pulls/127849
2024-09-30 10:48:54 +02:00
Jeroen Bakker
3bec05518d Vulkan: Remove always failing extension
Since the introduction of vulkan loader in vulkan (not Blender) the
molten vk extension always leads to a failed registration. This
extension is only available when using the loader. Blender doesn't use
the vulkan loader so we should remove it.

Pull Request: https://projects.blender.org/blender/blender/pulls/128354
2024-09-30 10:14:10 +02:00
Jeroen Bakker
ecaa69f9cf Cleanup: Vulkan: Use optional extension for maintenance 4
Maintenance 4 is an optional extension, however it was added to required
extension when the extension is availble. This would also be checked
when adding it as an optional extension.

Detected when reviewing !127995

Pull Request: https://projects.blender.org/blender/blender/pulls/128353
2024-09-30 09:29:58 +02:00