Commit graph

76584 commits

Author SHA1 Message Date
Jeroen Bakker
759fd9e4c2 Version: Blender v2.83.14-release 2021-05-11 08:03:15 +02:00
Jeroen Bakker
ae368ff74b Version bump: Blender 2.83.14 rc 2021-05-07 07:57:22 +02:00
Campbell Barton
9db56e4b7b Fix memory leak in object.mode_set_with_submode 2021-05-07 07:54:56 +02:00
Wannes Malfait
ec0a3ff456 Fix build error: use of unintialized variable
Differential Revision: https://developer.blender.org/D11115
2021-05-07 07:53:38 +02:00
Campbell Barton
0b61b75151 Fix T87863: Bisect fails when edges of an N-gon lie on the plane
Logic for bisect handled edges in the face crossing the plane,
but not concave N-gons containing multiple edges that lie on the plane.
2021-05-07 07:52:43 +02:00
Campbell Barton
1e16662de8 Fix T87592: Mirror fail with bisect, axis object & non-uniform scale
Bisect-plane calculation needed to take non-uniform scale into account.
2021-05-07 07:51:22 +02:00
Campbell Barton
42089fcde0 Fix T86765: Custom properties are included in __dir__
Remove custom properties from `__dir__` method result since these
can't be accessed using `__getattr__`.

Introduced in the 2.5x Python API update.
2021-05-07 07:50:32 +02:00
Campbell Barton
c5c35e9b47 Fix for building with MSVC 2021-05-07 07:49:22 +02:00
Campbell Barton
47cc05471d Fix T86170: Memory leak clearing the Python instance for COW id data
As Python can access COW ID's, ensure it's instance is kept on update.

This could happen when the "Use Self" argument was enabled for a driver.
2021-05-07 07:47:56 +02:00
Campbell Barton
d35974cd87 Fix T87055: Crash applying modifier on mesh with multires data 2021-04-21 14:42:49 +02:00
Jeroen Bakker
93472a2389 Versionbump: blender v2.83.14-beta 2021-04-21 14:42:00 +02:00
Jeroen Bakker
bb50046730 Version: Blender v2.83.13-release 2021-03-09 08:21:36 +01:00
Campbell Barton
2833f2b9bf Fix T84988: Armature symmetries crashes with action constraint
Action constraint without an action pointer set was crashing.
2021-03-03 09:34:17 +01:00
Jeroen Bakker
e954e565e1 Fix T79999: Double color management applied during viewport animation render
In 2.81 there was a change to increase the performance of viewport
animation rendering. This change would perform the color management on the
GPU if the only 8bit was needed. This saved CPU cycles and data
transfer.

The issue is that in the image editor or when saving the image the CM
will be reapplied. Although the speed is desired, exporting the actual
colors has more priority.

In the ticket there is an analysis that shows that shows that this fix
is the correct short term step to take. It would be better that the
render result is aware of the color space of its buffers so the applying
color management could be skipped when saving to disk or drawing in the
image editor.

The issue with this change is the performance penalty it has.

Reviewed By: Brecht van Lommel

Maniphest Tasks: T79999

Differential Revision: https://developer.blender.org/D10371
2021-03-03 09:24:49 +01:00
Jeroen Bakker
7b00b67dfd Version: 2.83.13 rc 2021-02-23 09:50:58 +01:00
Jeroen Bakker
738c38cf29 Version: 2.83.13 beta 2021-02-23 07:22:40 +01:00
Jeroen Bakker
ad0da42751 Version bump: Blender v2.83.12 release
Blender v2.83.11 is skipped due to unable to uploading to the windows
store.
2021-01-26 16:41:14 +01:00
Jeroen Bakker
f897f122cb GPU: Enabled hq normals workaround for any AMD driver on polaris 2021-01-26 12:36:26 +01:00
Jeroen Bakker
949314af2a GPU: Enable HQ normals workaround for AMD 21.1.1 driver.
AMD 21.1.1 still has the same issues as reported in T82856.
2021-01-26 12:35:16 +01:00
Jeroen Bakker
fbddc8d2e4 Version bump: Blender v2.83.11 rc 2021-01-25 10:13:50 +01:00
Stefan Werner
cde858ae98 Particles: Fixed thread work size calculation.
Dividing the workload by number of tasks in float is imprecise and
lead in some cases to particles not being calculated at all
(example: 20000 particles, 144 tasks).

Switching this calculation to integer makes sure we don't lose count.

Differential Revision: https://developer.blender.org/D10157
2021-01-25 10:10:40 +01:00
Jeroen Bakker
b78d373e96 Fix: Update normals when switching scene quality
Recent commits also updated normals for metaballs, curves and volumetric
objects. This change tags will tag to generate geometry for these new
types.
2021-01-13 11:37:33 +01:00
Sergey Sharybin
f6c7da5759 Fix T84397: Creating and removing many objects very quickly causes a crash
The root of the issue was caused by the dependency graph using ID pointer
to map evaluated state from old depsgraph to new one upon relations update.
This was failing when IDs were re-allocated rapidly: was possible that
Object ID's evaluated state assigned to Mesh and vice versa.

Now depsgraph uses Session UUID to identify which IDs to restore evaluated
state to. The session UUID is stored in the IDNode, so that id_orig is not
dereferenced on depsgraph update since the ID might be freed.

The root of the issue is identified by Campbell, original patch was done
by Bastien, thanks! Also thanks to Oliver and Ray and everyone else for
testing!
2021-01-13 11:32:30 +01:00
Jeroen Bakker
fa54bf482c Fix T84459: Wireframe not displaying with AMD GPU
Issue appears to be caused by AMD graphics driver later than 20.11.1 and
affects older GPUs (Polaris/FIJI cards). Wireframe drawing uses the same
OpenGL data type for storing normals what is known to be faulty.

This patch enabled storing the normals using GPU_COMP_I16. It also
solves the normals drawing in edit mode for vertex and loop normals.
2021-01-13 11:02:48 +01:00
Jeroen Bakker
89eda78d88 Fix T84459: Face normals not displaying (AMD GPU)
This is part two of the fix for T84459.
Issue appears to be caused by AMD graphics driver later than 20.11.1 and
affects older GPUs (Polaris/FIJI cards). Drawing normals in edit mode
uses the same OpenGL data type for storing normals that is known to be
faulty.

This change fixes the face dot normals by using GPU_COMP_I16.
2021-01-13 10:14:00 +01:00
Jeroen Bakker
4a61e9ea0f GPU: Enable HQ normal work around for AMD Polaris
THe high quality normals work around is enabled for Polaris cards using
the official drivers. Since driver version 2.11.2 they fail to render
using low quality normals.

The detection of polaris cards is done by matching the opengl renderer.
The renderer strings have been extracted from various reports linked to
{T82856} but isn't complete as some reports are missing the exact
renderer as users don't always report via the help menu.
2021-01-13 09:55:25 +01:00
Jeroen Bakker
db7c7486fd GPU: Add HQ normals workaround.
This change makes it possible for platforms to only support high quality
normal rendering. This is part of {T82856} where current AMD drivers
running on the polaris architecture does not support the low quality
setting due to a driver bug.

In a next commit the work around will be enabled.
2021-01-13 09:49:52 +01:00
Jeroen Bakker
2f3e97b6d3 DrawManager: High quality normals for non meshes
This adds high quality normals for non meshes. These include

* Volumetric Object Wireframe
* Metaballs
* Extracted Curves
* Curves in edit mode

This is in preparation to fix a regression in recent AMD
drivers where the `GL_INT_2_10_10_10_REV` data type isn't
working in Polaris cards.
2021-01-13 09:39:39 +01:00
Jeroen Bakker
6c777ed76b Fix T83625: Shading attribute names cause compilation error.
Some GPU platforms don't support having more than one underscore in
sequence in an attribute name. This change will remove the underscore
as a possible character when encoding to save names.
2021-01-13 09:31:07 +01:00
Campbell Barton
7edf1e64b3 Fix crash sliding effect sequence strips
Off by one error in array access.
2021-01-13 09:25:23 +01:00
Bastien Montagne
350d490a13 Fix T83280: Crash when deleting hair collision collection.
Root of the issue was missing management of ID pointers in the cloth
modifier data stored in ParticleSystem for hair physics, in the
'foreach_id' particle system code.

Using modifier's 'foreach_id' code in psys one unfortunately requires
some ugly conversion gymnastics, but this is still better than having
dedicated code for that case.

Note that this is actually a fairly critical issue, fix should be
backported to 2.91.1 should we do it, and to 2.83 LTS as well I think.
2021-01-13 09:24:13 +01:00
Jeroen Bakker
f59be64867 Version: Blender 2.83.11 beta 2020-12-16 11:08:34 +01:00
Jeroen Bakker
b439a15544 Blender v2.83.10 release
Version bump
2020-12-07 15:09:05 +01:00
Robert Guetzkow
c3c3807b05 Fix T82988: Div by zero with curve deform modifier
In `calc_curve_deform` a factor is calculated without checking if
the divisior is zero or close to zero. This patch adds the missing
checks and sets the factor to zero if the division shouldn't be
computed.

Reviewed By: mont29

Differential Revision: https://developer.blender.org/D9645
2020-12-02 08:40:49 +01:00
Philipp Oeser
a08a08cb4c Fix T82729: Crash in rna_EffectorWeight_path when object has fluid and dynamic paint modifiers
Looks like prior to the introduction of mantaflow, the former
SmokeModifierData always had a domain initialized (even if its type was
set to None). Since mataflow, the FluidModifierData type needs to be set
to MOD_FLUID_TYPE_DOMAIN (otherwise domain is invalid)

Maniphest Tasks: T82729

Differential Revision: https://developer.blender.org/D9644
2020-12-02 08:36:42 +01:00
Philipp Oeser
50e8072708 Fix T83055: setting rna pointer properties can create bogus custom properties
This was reported in the form of the eyedropper of the 'Parent' property
creating a custom property 'parent' if self was picked.

Problem arises when certain checks for setting rna pointer properties
failed (for example: the PROP_ID_SELF_CHECK check) and then a different
code path was entered (which was only meant for IDProperties).

Problem was introduced in rBa7b3047cefcb.

To solve, now first enter the branch for rna-based pointer properties,
then perform the sanity-checks (and if these fail: dont enter the other
unrelated codepath but instead do nothing)

Maniphest Tasks: T83055

Differential Revision: https://developer.blender.org/D9652
2020-12-02 08:34:19 +01:00
Campbell Barton
d56111383a Fix memory leak writing PNG when opening the file fails 2020-12-02 08:33:56 +01:00
Campbell Barton
13b02a724f ImBuf: replace incorrect strstr use with memcmp
Besides being incorrect as only the first two bytes should be tested,
searching binary data using `strstr` can easily read past buffer bounds.
2020-12-02 08:32:33 +01:00
Campbell Barton
8b59119e10 Fix T82555: Crash using copied object from Python
Also clear `gpd_eval` as this wasn't being copied either.
2020-12-02 08:32:04 +01:00
Campbell Barton
19b85c5f4b Fix T65585: Knife fails when cursor away from the object
Zeroed mouse coordinates were being used making projection fail.
2020-12-02 08:31:42 +01:00
Campbell Barton
22c0555cc5 Fix out of bounds array access in mathutils.noise
Regression in 0b2d1badec.
2020-12-02 08:29:23 +01:00
Jeroen Bakker
712f79b0fe Blender 2.83.10 beta 2020-12-02 08:28:13 +01:00
Jeroen Bakker
4abfc0bcd5 Blender 2.83.9 release 2020-11-11 07:30:22 +01:00
Campbell Barton
ffb220590e Fix T81226: Crash opening 64bit files with endian switching
Endian switching when loading 64bit blend files on a 64bit system was
crashing as the endian switching is only applicable when loading
on 32 bit systems.

This crash goes back to 2.7x, it looks like this never worked
all the way back to the first commit.
2020-10-28 09:49:55 +01:00
Jeroen Bakker
6b1042f45a Fix T81254: Incorrect calculation of EEVEE Transmittance Volumetrics
Regular rendering uses a custom blend mode, but render passes renders to
2 separate textures. This wasn't configured correctly inside the
fragment shaders. This patch adds a switch to configure the fragment
shader with the correct attachments.

Backport to Blender 2.83.

Reviewed By: Clément Foucault

Differential Revision: https://developer.blender.org/D9038
2020-10-28 09:49:37 +01:00
Campbell Barton
c7236ef4f1 Fix T81688: BPY_thread_save crashes with Python 3.9
Calling PyEval_ReleaseLock() was crashing with Python 3.9
because it accessed the NULL pointer set by PyThreadState_Swap().

This happened when calling ViewLayer.update() for example.

While the existing logic could be fixed by swapping the thread-state
back before calling PyEval_ReleaseLock(), this depends on functions
which are tagged to be removed by v4.0.

Replace use of deprecated functions by calling PyEval_SaveThread(),
instead of inlining the logic, using _PyThreadState_UncheckedGet()
to prevent Python aborting.

The call to PyEval_ThreadsInitialized has been removed
as threads are now initialized with Python.
This could be replaced with Py_IsInitialized() however it doesn't look
like this is necessary.

This is compatible with Python 3.7 & 3.9.
2020-10-28 09:39:57 +01:00
Campbell Barton
d5555115e1 Fix T81288:Select Linked fails with multi-object edit mode
Changing options after using select-linked didn't work
when the object being selected wasn't the active object.
2020-10-28 09:34:41 +01:00
Bastien Montagne
0845dc0eec Fix T81854: crash when undoing switch between sculpt and edit mode.
The logic of `BKE_sculpt_update_object_for_edit` was not correct. such
low-level functions should typically never preform depsgraph evaluation
themselves, they should be able to rely on getting a fully evaluated
depsgraph and just get needed data from there.

Supporting that required fixing other broken code higher in the
callstack, namely:
* `ED_object_sculptmode_enter_ex` was freeing evaluated data, for no
  valid reason it would seem.
* `sculpt_undosys_step_decode` was ensuring an evaluated depsgraph
  **before** calling `ED_object_mode_generic_exit`, which would
  invalidate a lot of evaluated data.

Note that it is fairly difficult to track down all code paths leading to
`BKE_sculpt_update_object_for_edit`, so there may be still cases where
this gets called with improperly evaluated depsgraph.

Reviewed By: sergey

Maniphest Tasks: T81854

Differential Revision: https://developer.blender.org/D9270
2020-10-28 09:34:24 +01:00
Bastien Montagne
8926b09fa9 Fix T81421: "Saving As..." a blend file with a Script node file path filled with 1023 symbols crashes Blender.
Usual lack of protection against buffer overflows when manipulating
strings.

Also add some basic tests for `BLI_path_rel`.
2020-10-28 09:26:59 +01:00
Clément Foucault
c2535dff90 Fix T81942 EEVEE: Reflection Plane glitch with low clip distances
This was happening because the raytrace was not even being performed
due to the tracing line being too small after frustum clipping.
2020-10-28 09:26:02 +01:00