Blender Git Loki

Blenderin Git "master"-kehityshaaran kommitit.

Page: 245 / 5574

June 9, 2021, 14:55 (GMT)
BLI_task: add TLS support to BLI_task_parallel_mempool

Support thread local storage for BLI_task_parallel_mempool,
as well as support for the reduce and free callbacks.

mempool_iter_threadsafe_* functions have been moved into a private
header thats only shared between task_iterator.c and BLI_mempool.c
so the TLS can be made part of the iterator array without having to
rely on passing in struct offsets.

Add test task.MempoolIterTLS that ensures reduce and free
are working as expected.

Reviewed By: mont29

Ref D11548
Revision f546b08 by YimingWu
June 9, 2021, 14:46 (GMT)
GPencil: Add custom normal entry to bGPDspoint.

Also modified existing utility functions to take
care of the new surface normal interpolation and so on.

Reviewed By: Antonio Vazquez (antoniov)

Differential Revision: https://developer.blender.org/D11543
June 9, 2021, 14:33 (GMT)
Fix assigning material to linked object being forbidden in BKE.

While this should not be allowed in general, there are some cases
(library overrides at least) where supporting this is mandatory.

Further more, comment stating that this could crash is from 2011, could
not reproduce any issue with current code. Commit comment was referring
to undo/redo, but in use cases here those should not affect things.

Note that in general, such relatively high-level checks should be
handled by high-level, close to user code (like in ED area e.g.), not in
low-level BKE code anyway.
June 9, 2021, 14:31 (GMT)
Cleanup: Removed unused definition.
Revision 33c4eef by Hans Goudey
June 9, 2021, 14:28 (GMT)
Cleanup: Comment formatting
June 9, 2021, 14:20 (GMT)
T88352: Use threaded ibo.tris extraction for single material meshes.

This patch adds a specific extraction method when the mesh has only
one material. This method is multi-threaded.

There is a trade-off in this patch as the ibo isn't compressed (it adds
restart indexes for hidden faces). So it depends if threading is faster
than the additional GPU buffer upload.

# Subdivided cube
I used a cube subdivided 7 times, modifiers applied. that gives around 400000 faces.

The test is selecting some vertices and move them. During this test the next buffers are updated on each frame:
* vbo.pos_nor
* vbo.lnor
* vbo.edit_data
* ibo.tris
* ibo.points

System info:
|platform| Linux-5.11.0-7614-generic-x86_64-with-glibc2.33|
| renderer| AMD SIENNA_CICHLID (DRM 3.40.0, 5.11.0-7614-generic, LLVM 11.0.1)|
|vendor| AMD|
|version| 4.6 (Core Profile) Mesa 21.0.1|
|cpu| Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz|
|compiler| gcc version 10.3.0|

Timing have been measured using DEBUG_TIME in `draw_cache_extract_mesh`.

master: `rdata 8ms iter 45ms (frame 153ms)`
this patch `rdata 6ms iter 36ms (frame 132ms)`

Reviewed By: mano-wii

Maniphest Tasks: T88352

Differential Revision: https://developer.blender.org/D11290
Revision ec98bb3 by Hans Goudey
June 9, 2021, 14:13 (GMT)
UI: Add the option to not display some socket labels

This commit adds a flag to disable displaying some socket labels which
just redundant eye sores. We still want to have a label, because that
information can potentially be accessed elsewhere in the UI.

The flag is used in a few geometry nodes.

Differential Revision: https://developer.blender.org/D11540
June 9, 2021, 13:59 (GMT)
Fix T88885: Circle select deselects first selections after moving cursor

`is_active_prev` is always set after the first operation.
But this was not the case with `wait_for_input` `false`.
June 9, 2021, 13:28 (GMT)
Tests: temporarily increase threshold for OpenImageDenoise test

Until all platforms have the same version, this helps the tests pass.
June 9, 2021, 12:32 (GMT)
Fix T88998: GPencil not projecting to the most front surface

It was projecting from the stroke position.

The behavior has changed in {rB5400be9ffee2}.
June 9, 2021, 11:58 (GMT)
Draw Cache: use threading for Mesh extract lines

This is an optimization, but the difference is still not that
significant as some extractions are still done in single thread.

**Benchmarking**
||before:|after:
|---|---|---|
|large_mesh_editing:|Average: 14.246502 FPS|Average: 15.438118 FPS
||rdata 9ms iter 31ms (frame 69ms)|rdata 9ms iter 27ms (frame 65ms)
|large_mesh_editing_ledge: |Average: 14.913622 FPS|Average: 15.856538 FPS
||rdata 9ms iter 30ms (frame 67ms)|rdata 9ms iter 26ms (frame 63ms)
|looptris_test:|Average: 3.970774 FPS|Average: 4.095200 FPS
||rdata 11ms iter 90ms (frame 235ms)|rdata 12ms iter 87ms (frame 229ms)

Reviewed By: jbakker

Differential Revision: https://developer.blender.org/D11467
June 9, 2021, 10:52 (GMT)
GPencil: Hide Brush panels for some tools

Some tools don't use brush and the panel must be hidden.

Reviewed By: mendio

Differential Revision: https://developer.blender.org/D11518
June 9, 2021, 10:52 (GMT)
Fix T88983: GPencil toggle caps error in python enum

The value for default option was wrong in the python definition.
June 9, 2021, 10:33 (GMT)
Fix missing free calls for task iterator

A single threaded task with thread data over 8192 bytes would leak.
While this didn't happen in practice, it could cause issues in the
future.

The free call for `task_parallel_iterator_do` wasn't running
if callbacks weren't set, also not an issue in practice but avoids
potential problems in the future too.
June 9, 2021, 09:21 (GMT)
Fix: Compositor test desintegrate failing on arm64

Changes introduced in commit rBe9f2f17e8518
can create different render results when there is
a Math or Mix operation after TextureOperation
on tiled execution model.
This is due to WriteBufferOperation forcing a single pixel
resolution when these operations use a preferred
resolution of 0 to check if their inputs have resolution.
Fixing this behaviour creates different renders too.

This patch keeps previous tiled implementation and
adds the new implementation only for full frame execution.

Reviewed By: Jeroen Bakker (jbakker)

Differential Revision: https://developer.blender.org/D11546
June 9, 2021, 09:02 (GMT)
Compositor: Refactor recursive methods to iterative

In order to reduce stack size this patch converts full frame
recursive methods into iterative.
- No functional changes.
- No performance changes.
- Memory peak may slightly vary depending on the tree because
now breadth-first traversal is used instead of depth-first.

Tests in D11113 have same results except for test1 memory peak:
360MBs instead of 329.50MBs.

Reviewed By: Jeroen Bakker (jbakker)

Differential Revision: https://developer.blender.org/D11515
June 9, 2021, 06:12 (GMT)
Fix failing test case sequence_transform.
Revision 8c3f4f7 by Hans Goudey
June 9, 2021, 04:52 (GMT)
Fix: Incorrect node bezier spline tangent calculation for end points

The code was using the useless dangling handle at each end of the spline
rather than the handle pointing inwards.
June 8, 2021, 21:18 (GMT)
Fix: Prevent small memory leak in VSE indexer

We need to unref the packet to tell ffmpeg it is ok to free it after
use.
June 8, 2021, 17:22 (GMT)
Build: upgrade OpenImageDenoise to 1.4.0

CMake builder and install deps changes, precompiled libraries are still to be
committed.

Ref T88438, T88434

Differential Revision: https://developer.blender.org/D11486
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021