Commit graph

95762 commits

Author SHA1 Message Date
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
Sergey Sharybin
4179be6499 Codesign: Report codesign errors from server to worker
Pass codesign errors (if any) from codesign buildbot server to the
buildbot worker, so that the latter one can abort build process if
the error happens. This solves issues when non-properly-notarized
DMG package gets uploaded to the buildbot website.
2020-11-13 11:37:26 +01:00
Jeroen Bakker
4abfc0bcd5 Blender 2.83.9 release 2020-11-11 07:30:22 +01:00
Bastien Montagne
670ee877d9 Fix own previous commit re testing of BLI_rel_path.
Windows would need its own version of those tests, for now just
disabling them on that platform.
2020-11-10 14:48:55 +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
0ff7d21c27 Fix T81520: Crash setting the Cycles device from Python 2020-10-28 09:37:27 +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
Campbell Barton
70d7863500 Fix T81939: crash calling bmesh.utils.vert_separate()
Missing NULL check in bmesh_kernel_vert_separate.
2020-10-28 09:25:42 +01:00
Bastien Montagne
05b4d8d13a Fix (studio-reported) Armature: bug in handling of custom bone transform.
This specific pose channel pointer was not handled at all during
rebuilding of poses, meaning that it could end up pointing at some freed
pchan.
2020-10-28 09:21:02 +01:00
Campbell Barton
7e39e0a9f6 PyAPI: unregister add-ons when exiting
This lets add-on authors avoid false positive leaks when exiting.
In particular GPUShaders's although it applies to any PyObject that
stores memory allocated by guarded-alloc.

While this does add overhead on exit, on my system it's
under 1/100th of a second with all addons enabled.

See: T71362
2020-10-28 09:16:27 +01:00
Clément Foucault
89b5c9d433 Fix T81633 Workbench: TAA never resolve when enabling both X-Ray and cavity
This was caused by a wrong flag equality check when in xray mode because
the xray mode was masking the effect option flags that are not supported
in this mode. This means the never passed and the TAA was reset before
every redraw, leading to infinite rendering.
2020-10-28 09:05:52 +01:00
Jeroen Bakker
f994c8c707 Blender v2.83.9 beta 2020-10-28 08:49:43 +01:00
Jeroen Bakker
5949b796f0 BuildBot: Select CUDA 10.1 for Blender v2.83 releases
Buildbot has multiple cuda versions installed. Master selects the right
cuda version based on the architecture that is compiled. {D9179}.
When building BlenderLTS it defaults to CUDA 11.1 what isn't able to
compile `sm_30` architecture. This patch selects CUDA 10.1 as default.
2020-10-21 10:12:17 +02:00
Jeroen Bakker
3e104c5c42 Blender v2.83.8 Release 2020-10-21 08:22:15 +02:00
Nathan Letwory
6c9c479048 Windows Release: Script creation of MSIX package
Script create_msix_package.py will download the ZIP file
from the given URL. It will create the MSIX package
with the version number and publisher ID given.

Strongly recommended are the path to a valid PFX file, and the
password to use that PFX file. These are needed for signing
the resulting MSIX package. The signing step is optional though,
but the resulting MSIX package cannot be installed outside of the
Microsoft Store

Example

set VERSION=2.83.2.0
set URL=https://download.blender.org/release/Blender2.83/blender-2.83.2-windows64.zip
set PUBID=CN=PUBIDHERE
set PFX=X:\path\to\cert.pfx
set PFXPW=pwhere

python create_msix_package.py --version %VERSION% --url %URL% --publisher %PUBID% --pfx %PFX% --password %PFXPW%

Requirements:
* Python default from the Microsoft Store should do (3.8)
* requests can be installed with `pip install requests`

Note that for an LTS release that gets uploaded to its own LTS application release
in the store you need to specify the `--lts` switch on the command-line to the script.

Upon completion there will be a file with the
name blender-2.83.2.0-windows64.msix. In case PFX file and its password were
given on the command line MSIX package will also be signed for the Microsoft Store.

Related Wiki page: https://wiki.blender.org/wiki/Process/Release_On_Windows_Store

Reviewed By: jbakker

Maniphest Tasks: T77348, T79356

Differential Revision: https://developer.blender.org/D8310
2020-10-07 10:22:42 +02:00
Sergey Sharybin
23bf3b09dd Cycles: Fix usage of memory barriers in split kernel
On user level this fixes dead-lock of OpenCL render on Intel Iris GPUs.
Note that this patch does not include change in the logic which allows
or disallows OpenCL platforms to be used, that will happen after the
kernel fix is known to be fine for the currently officially supported
platforms.

The dead-lock was caused by wrong usage of memory barriers: as per the
OpenCL specification the barrier is to be executed by the entire work
group. This means, that the following code is invalid:

  void foo() {
    if (some_condition) {
      return;
    }
    barrier(CLK_LOCAL_MEM_FENCE);
  }

  void bar() {
    foo();
  }

The Cycles code was mentioning this as an invalid code on CPU, while in
fact this is invalid as per specification. From the implementation side
this change removes the ifdefs around the CPU-only barrier logic, and
is implementing similar logic in the shader setup kernel.

Tested on NUC8i7HVK NUC.

The root cause of the dead-lock was identified by Max Dmitrichenko.

There is no measurable difference in performance of currently supported
OpenCL platforms.

Differential Revision: https://developer.blender.org/D9039
2020-10-07 10:17:56 +02:00
Jeroen Bakker
dac242b993 Fix T81459: Memory Leak Cycles Rendered Viewport
The external engine in the draw manager wasn't registered correctly.
This did not free the resources after the external engine was used.
2020-10-07 10:17:34 +02:00
Sybren A. Stüvel
3f2b1f1b66 Fix T81218: Crash in pose mode using a driver on bendy bone Segment
The example file in T81218 has a driver that maps a bone's X-location to
the number of BBone segments. This caused a dependency cycle, which
resulted in bad thread serialisation, which caused the crash.

This patch breaks the dependency cycle `BONE_LOCAL` →
`DRIVER(bones["Bone"].bbone_segments)` → `BONE_LOCAL`. The 'Driver Data'
relation now points to `BONE_SEGMENTS` when the driven property starts
with `bbone_`.

Differential Revision: https://developer.blender.org/D9122
2020-10-07 10:15:56 +02:00
Campbell Barton
f7c5296f1d Fix T80885: Texture paint camera project crashes after undo/redo
Unmatched ED_image_undo_push_{begin/end},
add doc-strings noting why this is needed.

Thanks to @Baardaap for the initial fix.
2020-10-07 10:10:13 +02:00
Brecht Van Lommel
38d1bd9cc6 Fix T80630: potential crash in volume grids in Eevee shaders
Found by address sanitizer.
2020-10-07 10:06:27 +02:00
Campbell Barton
055c0f9077 Fix T62504: Crash accessing depsgraph from evaluated view layer
Use correct owner_id types for depsgraph view_layer properties
instead of inheriting from the Depsgraph which is set to NULL.
2020-10-07 10:05:53 +02:00
Clément Foucault
63ed7c19d5 Fix T78653 Workbench: Broken Depth of Field in Viewport (Mac OSX)
The output layout was wrong and it's a mistery why it works on most
implementations since it's clearly a wrong usage.

Thanks @sebbas for helping narrowing down the issue.
2020-10-07 10:04:33 +02:00
Germano Cavalcante
d745d0a7dc Fix T80426: Crash when deleting custom orientation
Indices referencing other orientations were not being updated,
2020-10-07 09:59:17 +02:00
Germano Cavalcante
bfa485a26f Fix T79973: Re-ordering face maps messes up the names of other face maps
Use a remap function instead a swap.

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D8739
2020-10-07 09:58:36 +02:00
mano-wii
394a287714 Fix T80520: Tris to Quads ignores UV delimit option 2020-10-07 09:52:43 +02:00
Campbell Barton
08b938a343 Fix T61985: NLA Bake exception baking pose with non-pose selection 2020-10-07 09:52:07 +02:00
Cody Winchester
3bdf921e82 Fix invert vertex group weight miscalculation for modifiers
Warp & weight vertex-group editing modifiers miscalculated vertex weight
inversion, the weights were multiplied before being subtracted from 1.

Ref D8241
2020-10-07 09:51:07 +02:00
Bastien Montagne
b72df3a4a4 Fix T81168: 2.8x Crash when loading 2.79 file.
Object in the 2.7x file is on no layer at all, while this is not really
expected nor considered valid, better to cope with the case gracefully
than crash.

To be backported to 2.90 and 2.83.
2020-10-07 09:50:01 +02:00
Philipp Oeser
7ac5695b29 Fix T80905: GPencil: bones cannot be selected using Ctrl + LMB (with Left Selection Preference)
Was missing a dedicated entry for LMB select, this is to be consistent
with how it is done for meshes.

Maniphest Tasks: T80905

Differential Revision: https://developer.blender.org/D8935
2020-10-07 09:49:15 +02:00
Brecht Van Lommel
094addfe84 Fix OpenCL render error in large scenes
In scenes such as Cosmos Laundromat, there were memory allocations bigger than
2GB which would overflow.

Problem and solution found by AMD, thanks!
2020-10-07 09:44:01 +02:00
Jeroen Bakker
6144b5bd4e Blender v2.83.8-beta 2020-10-07 09:42:37 +02:00
Jeroen Bakker
192e591af9 Version: Blender 2.83.7 release 2020-09-30 08:12:51 +02:00
Campbell Barton
0016e73eda Fix T71012: Cycles baking crash with locked-UI & background-mode 2020-09-16 14:36:53 +02:00
Campbell Barton
32057453ca Fix T80238: Crash adding properties to material node-trees
The localized node-tree was freeing the materials ID properties twice.

This matches how animation data behaves, setting to NULL after freeing.
2020-09-16 14:35:33 +02:00
Campbell Barton
fe08aa4e2c Fix T80604: BLI_polyfill_calc exceeds stack size allocating points
On systems with 512kb stack this happened at around 13k points.

This happened at times with grease-pencil, although callers that
frequently use complex polygons should be using BLI_polyfill_calc_arena.
2020-09-16 14:34:13 +02:00
Bastien Montagne
bcacd98a6a Fix T80457: Library Override - Custom Property to Drive Child Particles results in Crash.
RNA diffing code was not dealing properly valid NULL PointerRNA (like
the empty texture slots of a ParticleSettings e.g., which were cause of
crash in that report).

To be backported to 2.90 and 2.83.
2020-09-16 14:32:15 +02:00