Commit Graph

92149 Commits

Author SHA1 Message Date
Kévin Dietrich
a072a264b6 Fix vertex format for mesh attributes with GPU subdivision
A global variable was mistakenly used here which would accumulate the
vertex attributes (leading to an assertion failure after a while), use
the wrong number of components depending on the attribute data type,
among other issues.
2022-05-25 14:51:29 +02:00
Clément Foucault
c27be07d89 Fix T98365: Overlay: Blender 3.2.0 Beta crashes on startup
This was caused by a wrong mass rename on a piece of code used only on
older hardware.
2022-05-25 14:39:58 +02:00
Kévin Dietrich
98b66dc040 Fix T96080: hiding elements does not work with GPU subdiv
Faces, edges, and vertices are still shown when GPU subdivision is
actived. This is because the related edit mode flags were ignored by the
subdivision code.

The flags are now passed to the various compute shaders mostly as part of
the extra coarse data, also used for e.g. selection. For loose edges, a
temporary buffer is created when extracting them. Loose vertices are
already taken into account as it reuses the routines for coarse mesh
extraction, although `MeshRenderData.use_hide` was not initialized,
which is fixed now.
2022-05-25 14:31:06 +02:00
Bastien Montagne
cb3b9358bf Fix T98344: Crash opening file with proxy.
Weird file where the proxy object has a `proxy_group` pointer, which
does not instantiate any collection...
2022-05-25 11:22:17 +02:00
Bastien Montagne
a4e7a5aa4f Fix link/append code not properly setting correct ID in context items.
When appending an already linked data, `BKE_blendfile_append` would not
properly substitute the `item->new_id` pointer of link/append context
items with the local duplicate of the linked ID.

This would cause drag'n'drop of assets to work incorrectly in some
cases. Fixes part of T95706 and T97320.
2022-05-25 10:32:34 +02:00
Campbell Barton
aab947eb46 Fix T98349: Knife project resulting selection is wrong
Regression in [0] which removed the call to BVH-tree recalculation
before calculating the selection.

Instead of recalculating the BVH-tree, postpone recalculating mesh data
until after the selection has been calculated.

[0]: 6e77afe6ec
2022-05-25 17:16:25 +10:00
Campbell Barton
26c6ec5594 Cleanup: remove context argument from EDBM_mesh_knife
Added in [0] but isn't needed as all needed variables are in the
ViewContext. Avoid passing in the context is it makes debugging
issues with MESH_OT_knife_project more difficult to investigate since
it's possible values written to the ViewContext are ignored.

[0]: 6e77afe6ec
2022-05-25 17:16:23 +10:00
Jeroen Bakker
08324ba2c1 Fix T98350: Crash when using clone tool + sequence.
When no image user is known the last used frame of the image is used to
read a frame. When partial updating an image there is always an image user
that would use a zerod out image user, meaning the frame number is set to 0
when using the clone tool.

This fix syncs the frame with the last used frame of the image to ensure
that the buffer exists. There is a bailout in the overlay_edit_uv.c.
2022-05-25 08:46:18 +02:00
Jeroen Bakker
e69f3d7db1 GPU: Updated comment about HQ normals workaround. 2022-05-25 08:03:52 +02:00
Jeroen Bakker
603d3c90a5 GPU: Fix issue that negated HQ normals workaround.
Thanks Germano for pointing it out.
2022-05-25 08:00:53 +02:00
Julian Eisel
bc3dbf109c Fix T95706: Material asset not applied if appended and then linked
8f79fa9c67 was an attempt to fix this already, but it didn't quite
work. Problem was that the tooltip was messing with the drop-box and
operator properties, setting the name property for its own internal
logic. This name property would then be used rather than the session
UUID to query the material, which gave the wrong material (linking can
result in multiple IDs of the same type with the same name). A followup
commit will further sanitize this.
2022-05-24 15:22:18 +02:00
Julian Eisel
463077a3d5 Fix possible lingering around of ID after asset dropping failed
More and more of the drop operations are being switched to use the ID's
session UUID rather than the name, but the cleanup after a drop operator
was cancelled assumed they would set the name. They will now first
attempt to use the session UUID and fallback to the name if needed.
2022-05-24 15:21:38 +02:00
Bastien Montagne
a40a269062 Fix (studio-reported) bad re-assigning of new liboverride from ID template widget.
Shift-click on the 'linked' button in an ID template widget would fail
to properly remap that usage of the linked ID to the newly created
liboverride.
2022-05-24 15:03:04 +02:00
Sybren A. Stüvel
10aa2fa902 Redraw Motion Paths panel after creating motion path
Add notifier such that the Motion Paths panel in the Object Properties tab
gets redrawn, after using the Create Motion Path button.

The reason it didn't update was that the button actually triggers a popup,
and then executes in the context of that popup. It now actually emits a
`ND_DRAW_ANIMVIZ` notifier, and ensures that the panel redraws on that.
2022-05-24 14:57:30 +02:00
Jacques Lucke
f29ff7fb7e Fix T98152: Named Attribute node changes data type for non-existant attributes
Skip changing the data type in the node if it is not known.
2022-05-24 11:55:44 +02:00
Jeroen Bakker
d1340e1bb2 Fix T97828: Split normals not visible on certain platforms.
It is a know issue that split normals aren't supported when using high
quality normals in the viewport. Some AMD platforms were pushed to use
high quality normals to work around a driver bug where 1010102 texture
formats `GL_INT_2_10_10_10_REV` wasn't uploaded to the GPU.

This change will remove commonly used polaris platforms from the
work-around. This has been tested with a RX480 against the latest AMD
whql drivers (22.5.1). Users need to ensure that they use the latest
drivers that are available on their platform.

Although this change doesn't fix the underlying issue to support edit
normals when high quality normals are enabled. It will not force that
common platforms cannot use a feature as their platform is forced into
using a work-around.
2022-05-24 11:14:10 +02:00
Clément Foucault
ec5b53a018 Fix T98247 EEVEE: Regression: Shader To RGB not displaying textures
This was caused by the nodetree branch duplication not handling incoming
links to the copied node, making all bsdfs nodes use their default values.
2022-05-24 10:35:24 +02:00
Jacques Lucke
174c3ffb4a Fix T98268: replace string node des not handle empty strings correctly
Just use an existing function from blenlib instead of implementing a new version.
2022-05-24 10:21:02 +02:00
Jacques Lucke
2ea6a0dd4d Fix T98328: missing depsgraph update after adding node group
Adding node groups can change depsgraph relations, so the depsgraph
has to be rebuild.
2022-05-24 10:05:52 +02:00
Jacques Lucke
e07b1b8316 Fix T98317: equal vs not-equal modes in compare node are not exact opposites
For vectors and colors to be not equal, it is enough when they are not equal
in one component.
2022-05-24 09:49:58 +02:00
Germano Cavalcante
5744e7d247 Fix GPUIndexBuf not working in python
Since rBb47c5505aa37, Batchs containing GPUIndexBuf initialized via
a PyObject with buffer protocol no longer work.

This was because of an unsafe optimization in the GPUIndexBuf module
for Python.

So remove this micro-optimization.
2022-05-23 22:37:30 -03:00
Campbell Barton
d55e1caa75 Fix T98185: Assertion saving while fullscreen
When saving from the menu the region was not set,
causing the last region in `area->regionbase` to be used
as the region was assigned before comparison.
2022-05-24 10:59:48 +10:00
Brecht Van Lommel
bdab538b30 Fix Eevee blackbody wrong with non-default scene linear color space
* Port over new code tables from Cycles
* Convert Rec.709 to scene linear for lookup table.
* Move code for wavelength and blackbody to IMB so they can access the
  required transforms, which are not in blenlib.
* Remove clamping from blackbody shader to bypass the texture read.
  Since it's variable now easiest to just always read from the texture
  than pass additional parameters.
* Fold XYZ to RGB conversion into the wavelength table.

Ref T68926
2022-05-23 22:09:44 +02:00
Julian Eisel
8f79fa9c67 Fix further issues when mixing link & append for asset drag & drop
917c096be6 applied to objects only, this also applies the same fix for
the general 3D View drop operations, e.g. used for dragging materials,
images, worlds, etc.

This is needed to fix T95706, but apparently something else is still
going on. Needs further investigation.
2022-05-23 21:00:01 +02:00
Julian Eisel
0d6dda4555 Cleanup: Move new utilities for ID lookup operator properties
Move them to a more accessible place, so that other operators in
different files can use them. The following commit needs this.
2022-05-23 20:59:55 +02:00
Julian Eisel
02c5ca2f22 Fix possible issues when mixing link & append for asset drag & drop
The operators to handle object drag and drop (from the asset browser,
outliner, etc.) used the object name to find the object to add and
place. This is problematic with linking and/or library overrides, since
this may lead to multiple objects with the same name. So the wrong
object would be used by the drop operators.

Partially fixes T97320. T95706 probably needs the same fix but for
materials.

As a side-effect, the "Name" button won't show up in the Adjust Last
Operation panel anymore. This isn't really useful, and I doubt this was
ever intentionally exposed in the UI.
2022-05-23 20:59:47 +02:00
Julian Eisel
0e6d70fec9 Fix "Open Clip" operator in Clip Editor broken
Steps to reproduce were:
- Open Clip Editor
- Call "Open Clip" (e.g. Alt+O)
- Select video file

The file wouldn't be loaded into the Clip Editor.

Caused by 7849b56c3c.
2022-05-23 18:01:11 +02:00
Campbell Barton
d91711bc85 Fix for crash opening the file selector multiple times
This is part of a fix for T88570, where the file selector would crash
when activated multiple times.

Calling save multiple times would free the operator, leaving a dangling
pointer which was used when panels were visible that accessed the
"active_operator".

Reviewed By: Severin

Ref D14905
2022-05-23 18:01:11 +02:00
Julian Eisel
bc8e030a84 Fix T88570: Crash when saving after pressing ctrl+S twice.
Existing code to replace the file operation was failing when done from
the window for the file operation itself.

Basically, this patch does two things:
- Implement a well defined window context to use as the "owner" or
  "root" of the File Browser. This will be used for managing the File
  Browser and to execute the file operation, even after the File Browser
  was closed.
- Ensure the context is valid when dealing with file File Browser event
  handlers.

Previously the window context just wasn't well defined and just happened
to work well enough in most cases. Addressing this may unveil further
issues, see T88570#1355740.

Differential Revision: https://developer.blender.org/D13441

Reviewed by: Campbell Barton
2022-05-23 18:01:11 +02:00
Clément Foucault
bce37bc52a Cleanup: GPU: Remove gpu_shader_common_obinfos_lib.glsl
This has been replaced by `draw_object_infos`.
2022-05-23 17:19:37 +02:00
Clément Foucault
7542dc460f Fix T98251: EEVEE: Regression: Wrong normalmaps on scaled objects
This was caused by a missing `normalize`.
2022-05-23 17:16:15 +02:00
Clément Foucault
5565d79057 EEVEE: Fix unreported broken normal map node modes
A compilation error was making it impossible to use normal map modes other
than tangent.
2022-05-23 17:13:57 +02:00
Johannes J
f4d31fbf6c DRW: Fix signed/unsigned mismatches in shader code
Fix the following error messages on Blender startup
since commit 308a12ac64.

This commit fixes T98194.

Reviewed By: fclem
Differential Revision: https://developer.blender.org/D15007
2022-05-23 16:30:18 +02:00
Clément Foucault
aea59428eb Fix T98128: EEVEE: Regression: Inverted surface normal on MacOS Intel GPU
This seems to be caused by the `!` used in conjunction with a macro.
Using the macro directly as condition does not exhibit this issue.
2022-05-23 16:23:50 +02:00
Sybren A. Stüvel
63cf0d0890 Fix T98196: Crash when moving tweaked NLA strip with empty track below
`BKE_nlastrip_find_active()` and `update_active_strip()` now do a more
thorough search for the active strip, by also recursing into
meta-strips.

There were some assumptions in the NLA code that the active strips is
contained in the active track. This assumption turned out to be false:
when there is a meta-strip, the active strip could be inside that, and
then it's not contained in `active_track.strips` directly.

Apart from the above, there are other situations in which the track
pointed to by `AnimData::act_track` does *not* contain the active strip
(even indirectly).

Both these cases can happen when the transform system is moving a strip
that's in tweak mode. Entering tweak mode doesn't just search for the
active track/strip, but also falls back to the last-selected ones. This
means that the track/strip pointers & flags can be out of sync with
what's being tweaked/transformed. Because of this, the assumption that
there is any relation between "active strip" and "active track" has been
removed from the `update_active_strip()` function.

All this searching could be prevented by passing the `AnimData` to the
code that duplicates tracks & strips. That way, when the active
track/strip is dup'ed, the `AnimData` pointers can be updated as well.
That would require more refactoring and thus could introduce other bugs,
so that's left for later.
2022-05-23 16:12:09 +02:00
Brecht Van Lommel
eb5e7d0a31 Cleanup: clarify what is scene linear color space in conversion conversion
* Rename ambiguous rgb to scene_linear in some places
* Precompute matrices to directly go to scene instead of through XYZ
* Make function signatures more consistent
2022-05-23 15:34:50 +02:00
Brecht Van Lommel
469ee7ff15 Python API: add mathutils.Color functions to convert color spaces
Between scene linear and sRGB, XYZ, linear Rec.709 and ACES2065-1.

And add some clarifications about color spaces in the docs.

Fixes T98267

Ref T68926

Differential Revision: https://developer.blender.org/D14989
2022-05-23 15:34:50 +02:00
Jacques Lucke
2f2d13b8c6 Fix T97237: dragging custom node group asset adds broken node
Differential Revision: https://developer.blender.org/D15013
2022-05-23 14:43:20 +02:00
Bastien Montagne
62a2b92b6b Fix T98283: Regression: crash when opening file that has Collision modifier on liboverride object
Some RNA property update callbacks can already generate such modifier,
and only one is allowed per object, so had to adapt code actually adding
new modifiers in liboverride apply codebase.
2022-05-23 12:11:09 +02:00
Jacques Lucke
a5409d2b59 Fix T98316: geometry nodes stop updating after duplication
This was a missing depsgraph update.
2022-05-23 11:29:55 +02:00
YimingWu
c4e5a7d59a Fix T98258: Duplicated last vertex after GPencil sample.
Also fixed an unreported issue of incorrect interpolation of thickness.

Reviewed By: Aleš Jelovčan (frogstomp), Antonio Vazquez (antoniov)

Differential Revision: https://developer.blender.org/D15005
2022-05-23 16:17:00 +08:00
Jacques Lucke
b81f1b8cf1 Fix T98231: missing update when material output is in group
Differential Revision: https://developer.blender.org/D14998
2022-05-23 09:11:17 +02:00
Jeroen Bakker
4418536f69 Fix T98321: Image.update doesn't update the image editor.
Missing call to partial update.
2022-05-23 08:14:38 +02:00
Aaron Carlisle
568b692bcf Compositor: Fix Map Range node To/From Max default value
Mistake from rB5ef5a9fc24668aa264fe0558db9c0fb1246aa37f

Fixes T98322
2022-05-22 21:56:32 -04:00
Antonio Vazquez
84e55e3dc2 Fix T98320: GPencil Crash with Length and Build Modifiers
The length modifiers creates a NULL strokes and this is not handled by Build modifier.
2022-05-22 21:10:08 +02:00
Brecht Van Lommel
bf352df27a Fix wrong USD image color space export with non-default OpenColorIO config
The names of color spaces in OpenColorIO configs can be arbitrary, so don't
use hardcoded names from our default config.
2022-05-20 17:07:37 +02:00
Hans Goudey
d4cdae29c1 Fix T98266: Crash with empty mesh boolean node
The output mesh can be null. Also reorganize the WITH_GMP
check to avoid compiling the rest of the node with GMP off.
2022-05-20 10:10:46 +02:00
Hans Goudey
b8bd20d7e0 Fix T96810: Bitmap race condition in PBVH normal calculation
The final normalization step of sculpt normal calculation iterates over
all unique vertices in each node and marks them as done. However,
storing the done mask in a bitmap meant that multiple threads could
write to a single byte at the same time, because the bits for separate
threads could be stored in the same byte. This is not threadsafe

Fixing this issue seems to improve performance as well. First I tested
just clearing the entire bitmap after the normal calculation. Then I
tested using an array of booleans instead, which turned out to be
slightly better, and simplifies code a bit.

I tested on a Ryzen 3800x, on an 8 million polygon subdivided
Suzanne by using the grab brush with a radius large enough to
affect most of the mesh.

| Original  | Clear Entire Bitmap | Boolean Array |
| --------- | ------------------- | ------------- |
| 67.9 ms   | 59.1 ms             | 57.9 ms       |
| 1.0x      | 1.15x               | 1.17x         |

Differential Revision: https://developer.blender.org/D14985
2022-05-20 09:49:29 +02:00
Campbell Barton
d27f4e8493 Fix popup menu memory activating labels when names matched menu items
When labels in popups (typically headings) matched the name of a button,
the label would be activated instead of the button.

This caused the unwrap menu in the UV editor not to re-select "Unwrap"
when opening a second time.
2022-05-20 16:42:35 +10:00
Germano Cavalcante
bc6965cb98 Fix T98230: Automatic Constraint doesn't work if cursor is not moving
The change was kind of intentional on {rB21e72496a629}.

That commit made mouse movement to "select" the contraint in Auto
Constraint a requirement.

This deduplicated the code a bit, but this requirement is not
comfortable for the first "selection" of the contraint.

So the constraint "selection" is now done in two ways:
- If there is no contraint, the "selection" is done immediately;
- If there is already a constraint, the "selection" is delayed by 1 event to simulate a constraint cancellation if there is no mouse movement.
2022-05-19 12:22:30 -03:00