Blender Git Loki

Blenderin Git "master"-kehityshaaran kommitit.

Page: 261 / 5574

May 26, 2021, 16:27 (GMT)
Fix buildbot CUDA/OptiX warnings on macOS

Explicitly disable these, rather than relying on them not being found.
Also, don't duplicates the architectures list.
Revision de3d54e by Falk David
May 26, 2021, 16:23 (GMT)
GPencil: Cleanup - Conform with RNA naming scheme

The newly added `disable_masks_viewlayer` RNA property did not conform
with the RNA naming scheme. This renames it to `use_viewlayer_masks`.
May 26, 2021, 15:52 (GMT)
Cleanup: shadow warning

Move reproject_type into an extern, to avoid declaring multiple times.
May 26, 2021, 15:52 (GMT)
Fix T88111: Skin modifier assets within invalid face normals

The skin modifier was moving vertices without updating normals for the
connected faces, this happened when smoothing and welding vertices.

Reviewed By: mont29

Ref D11397
May 26, 2021, 15:05 (GMT)
ID management: remapping: add flag to enforce refcounting handling.

While indeally we should only skip refcounting when relevant tag is set,
doing this in remapping code is too risky for now.

Related to previous commit and T88555.
May 26, 2021, 15:05 (GMT)
LibOverride: Do not try to generate override data of linked data.

This is obviously not saved, and should never be editable, so was only a
waste of time.
May 26, 2021, 15:05 (GMT)
IDManagement: Shapekey: add a `owner_get` callback.

Even though shepkeys are not strictly speaking an embedded data, they
share quiet a few points with those, and from liboverride perspective
they are embedded, so...
May 26, 2021, 15:05 (GMT)
LibOverride: add helper to retrieve override data from an ID.

Embedded IDs do not own their own override data, but rather use the one
from their owner.
May 26, 2021, 15:05 (GMT)
LibOverride: add recursive resync.

Recursive resync means also resyncing overrides that are linked from
other library files into current working file.

Note that this allows to get 'working' files even when their
dependencies are out of sync. However, since linked data is never
written/saved, this has to be re-done every time the working file is
loaded, until said dependencies are updated properly.

NOTE: This is still missing the 'report' side of things, which is part
of a larger task to enhance reports regarding both linking, and
liboverrides (see T88393).

----------

Technical notes:

Implementing this proved to be slightly more challenging than expected,
mainly because one of the key aspects of the feature was never done in
Blender before: manipulating, re-creating linked data.

This ended up moving the whole resync code to use temp IDs out of bmain,
which is better in the long run anyway (and more aligned with what we
generally want to do when manipulating temp ID data). It should also
give a marginal improvement in performances for regular resync.

This commit also had to carefully 'sort' libraries by level of indirect
usage, as we want to resync first the libraries that are the least directly
used, i.e. libraries that are most used by other libraries.
May 26, 2021, 15:05 (GMT)
ID management: Do not assume that `NO_MAIN` means `NO_USER_REFCOUNT`

While this is still very fuzzy in current code, this old behavior makes
it close to impossible to efficiently use out-of-main temp data, as it
implies that we'd need to update refcounts everytime we add something
back into BMain (an 'un-refcount' ID usages when removing from BMain).

Now that we have two separate flags/tags for those two different things,
let's not merge them anymore.

Note that this is somewhat on-going process, still needs more checks and
cleanup. Related to T88555.
May 26, 2021, 15:03 (GMT)
DrawManager: Use Compute Shader to Update Hair.

This patch will use compute shaders to create the VBO for hair.
The previous implementation uses tranform feedback.

Timings master (transform feedback with GPU_USAGE_STATIC between 0.000069s and 0.000362s
Timings transform feedback with GPU_USAGE_DEVICE_ONLY. between 0.000057s and 0.000122s
Timings compute shader between 0.000032 and 0.000092s

Future improvements:
* Generate hair Index buffer using compute shaders: currently done single threaded on CPU, easy to add as compute shader.

Reviewed By: fclem

Differential Revision: https://developer.blender.org/D11057
May 26, 2021, 14:49 (GMT)
GPU: Compute Pipeline.

With the compute pipeline calculation can be offloaded to the GPU.
This patch only adds the framework for compute. So no changes for users at
this moment.

NOTE: As this is an OpenGL4.3 feature it must always have a fallback.

Use `GPU_compute_shader_support` to check if compute pipeline can be used.
Check `gpu_shader_compute*` test cases for usage.

This patch also adds support for shader storage buffer objects and device only
vertex/index buffers.

An alternative that had been discussed was adding this to the `GPUBatch`, this
was eventually not chosen as it would lead to more code when used as part of a
shading group. The idea is that we add an `eDRWCommandType` in the near
future.

Reviewed By: fclem

Differential Revision: https://developer.blender.org/D10913
Revision e459a25 by Falk David
May 26, 2021, 14:46 (GMT)
GPencil: Add option to disable masks in view layer

This patch adds an option in the Layers > Relations panel called "Disable Masks in Render".
When checked, no masks on this layer are included in the render.

Example:
| {F10087680} | {F10087681} |

See T88202 for why this is needed.

Reviewed By: antoniov

Maniphest Tasks: T88202

Differential Revision: https://developer.blender.org/D11234
Revision a6f3bb3 by Falk David
May 26, 2021, 14:34 (GMT)
Merge branch 'blender-v2.93-release'
Revision d5a5575 by Falk David
May 26, 2021, 14:32 (GMT)
Fix: GPencil mask shows in view layer render

Currently when rendering the view layer of a grease pencil layer that has
a mask layer attached, the mask layer would show in the rendered image.
This is inconsistent with the default behaviour with no mask on the
grease pencil layer, because it would only render what's on that
particular layer and not anything from any other layer.

This patch makes the masks invisible in the render.

Note: This might seem like not the best solution, but because masks are
just regular grease pencil layers, it's tricky to pass this edge-case to the
drawing code. The way it is handled right now is the best I could come
up with, without making changes that could affect something else.

Reviewed By: antoniov

Maniphest Tasks: T88202

Differential Revision: https://developer.blender.org/D11403
May 26, 2021, 14:20 (GMT)
Merge branch 'blender-v2.93-release'
May 26, 2021, 14:06 (GMT)
Fix T88250: crash when instancing object in disabled collection

This issue was that `BKE_object_eval_uber_data` was not called for
the text object, because its geometry was not dependent upon
and its `is_directly_visible` tag was `false`. The crash happens in
rendering code, because the evaluated data is missing.

This not only affects text objects, but all object types that have a
geometry component that geometry nodes does not support yet.

The solution is to just add the missing dependencies.

Differential Revision: https://developer.blender.org/D11385
May 26, 2021, 13:43 (GMT)
GPencil: Bake GPencil object transforms into a new GPencil object

This operator is a common request of animators to convert the transformation (inluding modifiers) of one grease pencil object, into a new object, generating strokes.

Reviewed By: pepeland

Maniphest Tasks: T87424

Differential Revision: https://developer.blender.org/D11014
May 26, 2021, 12:19 (GMT)
Nodes: fix threading issues with node ui storage

Calling BKE_nodetree_attribute_hint_add from multiple threads still
was not safe before..
One issue was that context_map embedded its values directly. So
when context_map grows, all NodeUIStorage would move as well.
I could patch around that by using std::unique_ptr in a few places,
but that just becomes too complex for now.
Instead I simplified the locking a bit by adding just locking a mutex
in NodeTreeUIStorage all the time while an attribute hint is added.

Differential Revision: https://developer.blender.org/D11399
May 26, 2021, 10:25 (GMT)
Fix T88588: crash when muting node with multi input socket

The bug existed before the new evaluator already, but the new evaluator
is more sensitive to this kind of error.
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021