Blender Git Commit Log

All Blender Git commits.

Page: 838 / 8462

March 12, 2021, 15:25 (GMT)
Merge branch 'master' into temp-gpencil-bezier-v2
March 12, 2021, 15:01 (GMT)
CLOG: add support for substring matching.

So that `--log "*undo*"` matches any log identifier containing `undo`.

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D10647
March 12, 2021, 15:01 (GMT)
LineArt: Add new frames when no frame existed in modifier
March 12, 2021, 14:58 (GMT)
Fix heap buffer overflow appending/linking from a blend file

Add new function `blo_bhead_is_id_valid_type()` to correctly check the
blend file block type.

File block type codes have four bytes, and two of those are only in use
when these blocks contain ID datablocks (like `"OB "`). However,
there are other types defined in `BLO_blend_defs.h` that have four
bytes, like `TEST`, `ENDB`, etc.

The function `BKE_idtype_idcode_is_valid(short idcode)` was used to
check for ID datablocks while reading a blend file. This only takes a
2-byte parameter, and thus its result is invalid for the 4-byte codes.
For `TEST` blocks, it would actually consider it a `TE` block, which is
a valid identifier for a Texture. This caused the heap buffer overflow,
as the datablock is not a valid ID, and thus the bytes that were
expected to form an ID name actually encode something completely
different.

Reviewed By: mont29

Differential Revision: https://developer.blender.org/D10703
March 12, 2021, 14:40 (GMT)
Cryptomatte: Show Name of Object/Material Under The Cursor.
March 12, 2021, 14:36 (GMT)
Fix T82532: Sculpt fails to redo the first sculpt session stroke

Sculpt undo relied on having a mode-changing undo step to properly
apply changes.

However this isn't the case with startup files or when mixing
global undo steps with sculpt (see T82851, also fixed).

Undo stepping logic follows image_undosys_step_decode_undo.
March 12, 2021, 14:29 (GMT)
Cycles: Fix threading issue between scene update and buffers reset

It was possible that scene was updated to use denoising passes prior to
delayed reset which was re-allocating render buffers. Was unlikely, but
still possible: this is because update_scene() was only guarded by the
scene mutex, and buffers reset was not using scene mutex.

Repro was "simple": erratically toggle "Use viewport denoising" while
viewport was rendering.

This change makes it so buffers and scene are always in the consistent
state. It also moves some logic outside of the run() functions, making
it possible to re-use it for both run_cpu() and run_gpu().

Currently the change is limited to run_cpu(), so that it is easier to
verify logic before using it in all codepaths.
March 12, 2021, 14:29 (GMT)
Cycles: Fix parameters modification blocking UI

If any Cycles property which triggers re-synchronization is modified
during viewport rendering the interface could have been blocked until
the current sample is finished.

This was caused by the following factors:

- run_cpu acquires a buffer lock for rendering
- set_denoising also acquires lock, avoiding denoising to be triggered
while settings are modified.

This was not noticeable during run_cpu() rendering with old integrator
because the render buffer was not locked during entire duration of
sample rendering (despite the claim in the comment in the code). So what
was happening instead is that the render buffer was only locked during
scheduling on the path tracing tasks. Waiting for the tasks to be
complete was done outside of the buffers lock.

This was avoiding interface lock, but could have caused other threading
issues (those issues are outside of the scope of this change).

On the run_gpu() rendering it was possible to have interface locked for
no reason if sample takes noticeable amount of time.

This change makes it so there is no render buffer locked acquired
during synchronization unless denoiser settings did actually change.
This is still sub-optimal, but makes interaction more pleasant.
March 12, 2021, 14:29 (GMT)
Cycles: Remove device->task_wait from Session::run_cpu()

Should be no functional changes.

The reason for this is because rendering tasks are handled by the
PathTrace class and the session is not directly interacting with
the device.
March 12, 2021, 14:27 (GMT)
Fix another crash in LibOverride resync code.

Another case where newly overridden ID (stored in `newid` of its linked
reference) gets immediately deleted in old broken overrides.

Re T86501.
March 12, 2021, 14:17 (GMT)
Fix compiler warning when building Cycles without Embree
March 12, 2021, 13:59 (GMT)
LineArt: Baking flags for UI.
March 12, 2021, 13:47 (GMT)
LineArt: Unused variable fix
March 12, 2021, 13:40 (GMT)
Cycles: Initial support of noisy image pass

Is rather quick implementation, which should be enough to have
proper progressive render+denoise in viewport.

Not super happy with the code duplication, and the transparency
I am not sure how to support. But maybe this is acceptable for
the development purposes.
March 12, 2021, 13:39 (GMT)
Cycles: Comment out a lot of logic in TileManager

The actual tricky tiling logic is done in the PathTraceWork and the
TileManager is mainly tracking state of the current resolution and
sample. In the future it can also be used to keep track of big tiles
but the logic will be way more simple.
March 12, 2021, 13:33 (GMT)
Merge branch 'master' into compositor-cryptomatte-workflow
March 12, 2021, 13:32 (GMT)
Cleanup: fix clang-tidy errors when COM_debug is active.
March 12, 2021, 13:28 (GMT)
LineArt: Using object list for baking job
March 12, 2021, 12:42 (GMT)
Merge branch 'master' into compositor-cryptomatte-workflow
March 12, 2021, 12:41 (GMT)
Fix debug asserts and checks in work schedulers

The work size can be the same as the maximum number of path states, as
they are both sizes (not indices in 0-based arrays).
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021