Blender Git Loki

Blenderin Git "master"-kehityshaaran kommitit.

Page: 558 / 5574

Revision c1cdde0 by Ankit Meel
September 29, 2020, 19:46 (GMT)
Fix T81100: ccl::Node: ASan SEGV due to bad pointer

`SOCKET_OFFSETOF` was added in the initial commit {rBec51175f1fd6c91d5}
when `offsetof` [1] was not supported well enough. GCC and LLVM
support it since C++17.

Other two changes: type and size check can be done without creating
an invalid address too.

[1] https://cppreference.com/w/cpp/types/offsetof

Reviewed By: campbellbarton, brecht

Maniphest Tasks: T81100

Differential Revision: https://developer.blender.org/D9042
September 29, 2020, 19:07 (GMT)
September 29, 2020, 15:08 (GMT)
Fix unreported Eisenbug leading to a crash when reading a blend file.

This took more than a day to fully investigate and understand, one of
the reasons being that the probability of the issue to show up was
extremely low, and subjected to very specific random factors.

Root of the issue is that, in some very rare cases, a newly read ID
might get the exact same memory address as the one it had when the blend
file was saved.

In that case, `BKE_workspace_active_set` would return immediately, since
the pointer to the active workspace would remain unchanged. But that
lead to having an unset NULL active layout pointer, which would crash
when attempting to get e.g. the active screen.

For the record, I ran into this when running a specific build (master
with one flag added to the `LIB_ID_CREATE` ones, with value `1 << 3`),
using a specific set of options (`--background --factory-startup -noaudio`),
and passing the .blend file from T80090 as argument.
September 29, 2020, 15:08 (GMT)
Fix (unrepported) utterly broken logic in readfile for Workspaces.

Remove the attempt to update the active layout pointers of each window
from whithin `direct_link_workspace`.

This piece of code was a nonsense for at least to critical reasons:
* Do not, never, ever, access data from another datablock within the
direct_link_... functions. Just don't. Don't try to be smart.
* Since it was trying (and failing) to update the active layout of every
window for every workspace, it was effectively setting those
`act_layout` pointers to NULL (remapping can only ever happen once,
trying to remap and already remapped new pointer is bound to fail in
any case).

Luckily (and funnily), this piece of code was actually harmless, since
setting the active layout would be overridden/redone later, in
`lib_link_windowmanager`, when updating their `workspace_hook` in
`lib_link_workspace_instance_hook`.

Note that the similar horror with `WorkSpaceDataRelation->parent` (which
points at a window) is kept for now, because that one is needed. Hope to
refactor it soon though.
Revision ece8f69 by Hans Goudey
September 29, 2020, 14:33 (GMT)
Property Search: Set expansion properly for child panels

Although I haven't seen this cause any visible errors, there is some
incorrect handling for setting panel expansion during search:
- Properly check if child panel is active first
- Don't stop traversal at headerless panels that could theoretically
have children
September 29, 2020, 14:10 (GMT)
Fix T71981: Alembic vertex interpolation can jumble mesh

Add an option to disable Alembic vertex interpolation.
Bump subversion from 5 to 6.

Alembic stores mesh samples at specific time keys; when a frame in
Blender maps to a timecode between two samples, Blender will interpolate
the mesh vertex positions. This interpolation only happens when the mesh
has a constant topology, but sometimes this was not detected properly
when the vertices change order, but the number of mesh elements remains
the same. This would result in a mesh with jumbled up vertices (T71981).
With this patch, users have the ability to disable vertex interpolation.

An alternative would be to have better detection of topology changes,
but that that'll cause a considerable slowdown.

Maniphest Tasks: T71981

Differential Revision: https://developer.blender.org/D9041
September 29, 2020, 14:03 (GMT)
Volumes: new Mesh to Volume modifier

This modifier can only be added to Volume objects. It takes a mesh
as input and generates a "density" grid near the surface or in
the enclosed volume.

Ref T73201.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D9032
September 29, 2020, 10:39 (GMT)
Volumes: support selection and outlines in viewport

Previously, one could only select a volume object in the outliner
or by clicking on the object origin. This patch allows you to click
on the actual volume.

Furthermore, the generated (invisible) mesh that is used for
selection is also used to draw an outline for the volume object now.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D9022
September 29, 2020, 10:29 (GMT)
DNA: optimize struct reconstruction by doing some preprocessing

When loading large files that are more than a couple weeks old
(such that DNA has changed in that time), a significant amount of
time is spent in `DNA_struct_reconstruct`. This function takes a struct
in the old layout and creates a struct in the new layout from it.

This was slow because it was computing the diff between the struct
layouts every time a struct is updated. Now the steps for the struct
reconstruction is computed only once per struct. This information is
then used to actually reconstruct all structs that changed.

I measured about 10-20% speedup when loading Spring files.
E.g. `10.6s -> 8.7s` for `06_055_A.anim.blend` in BKE_blendfile_read`.

This percentage varies a lot based on the number of blocks that have
to be reconstructed and how much DNA has changed since they have
been written. In none of my tests was the new code slower than the
old code.

Reviewers: campbellbarton

Differential Revision: https://developer.blender.org/D8959
September 29, 2020, 10:15 (GMT)
Quiet unused variable warning
September 29, 2020, 10:12 (GMT)
DNA: use better type for SDNA->structs

The data layout remains exactly the same..
This change just gives all the elements in `SDNA->structs` names,
making it more comfortable to work with the data.

Reviewers: campbellbarton

Differential Revision: https://developer.blender.org/D8926
September 29, 2020, 07:53 (GMT)
Revert "Fix T81002: Images drawn with the Python gpu module no longer draw on top in the Image Editor"

This reverts commit 085329f114beb904ed3ef0c8ec6894ee26916704.

It didn't render rendered viewport overlays correctly.
September 29, 2020, 03:58 (GMT)
Cleanup: spelling
September 29, 2020, 00:11 (GMT)
Cleanup: Python API Docs: Text formating
September 29, 2020, 00:11 (GMT)
API Docs: Minor text improvements
Revision d5353ee by Ankit Meel
September 28, 2020, 19:10 (GMT)
Cleanup: CMake/FFmpeg: Fix typo in message/comment

Code added in the last commit {rB2fdbe4d0501114c716fd12bc}.
Revision 2fdbe4d by Ankit Meel
September 28, 2020, 19:03 (GMT)
CMake/Find packages: add FindFFmpeg.cmake module.

The behaviour is a bit different from other find modules:
`FFMPEG_FIND_COMPONENTS` should contain the
list of required libraries before calling `find_package(FFmpeg)`.
If not set, a default set of most common libraries is searched for:
`avcodec avdevice avfilter avformat avutil`
http://ffmpeg.org/download.html

Ref D8855

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D8918
September 28, 2020, 15:13 (GMT)
Fix T80121: Forcefield F-curve modifier changes don't reset cache

Add a dependency graph relation Force Object Animation ? Scene Rigid
Body World Rebuild. This ensures that the rigid body world is rebuilt
when a force object is re-tagged for animation updates.

The extra relation doesn't add any new calculations when the animation
is running, as the Time Source node already had a relation to the
scene's `RIGIDBODY_REBUILD` node.

The relation is created directly to the `RIGIDBODY_REBUILD` Operation. I
would have liked to target the containing Component instead. However,
that has the `RIGIDBODY_SIM` operation as entry node, which isn't enough
to actually fix T80121.

Reviewers: Sergey

Differential Revision: https://developer.blender.org/T80121
September 28, 2020, 13:54 (GMT)
Outliner: Draw hierarchy lines dashed for object children

Draw dashed lines for object child hierarchies in the outliner. This
makes the difference between collection and object hierarchies more
clear. Dashes are also consistent with viewport relationship lines.

Differential Revision: https://developer.blender.org/D8997
September 28, 2020, 12:56 (GMT)
Fix T80657: Not freed memory blocks with Batch-Generate Previews.

`ED_preview_icon_render()` owns the `id_copy` localized ID, so it has to
free it itself.
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021