Blender Git Commit Log

All Blender Git commits.

Page: 448 / 8462

July 15, 2021, 19:16 (GMT)
Merge branch 'master' into sculpt-dev
July 15, 2021, 19:05 (GMT)
Merge branch 'master' into asset-greasepencil
Revision 3600e90 by aousdfh (sculpt-dev, temp_test_sc_keymap)
July 15, 2021, 19:00 (GMT)
Array Brush: expose fill holes and orientation lock
Revision 7d618b4 by Hans Goudey (master)
July 15, 2021, 17:40 (GMT)
Cleanup: Clang tidy
Revision a566dc2 by Hans Goudey (master)
July 15, 2021, 17:36 (GMT)
Cleanup: Remove use of designated initializers in C++ code

Does not compile on Windows.
July 15, 2021, 17:09 (GMT)
Cleanup: Move UI list template code to own file (C++)

This move was already prepared with 788d38046032 and 26b098c04fbe. The
template is quite big already, better to give it its own file. Plus it
could use some C++ features like RAII and maybe some more object
oriented code. I plan further refactoring there.
Revision 0cc2a72 by Hans Goudey (master)
July 15, 2021, 16:25 (GMT)
Fix failing tests from vertex group name parameter copy

It turns out `BKE_mesh_copy_parameters` can be called while other
tools are running calculations, which meant that it was called at the
same time as `armature_deform_coords_impl`. Beause of that, we
shouldn't do any freeing (of the old vertex group names) there.

Since the materials are copied in the "for_eval" version anyway,
it seems to make sense to copy the vertex group name list there also.

Fixes T89877, and also the failing `deform_modifiers` test.

Differential Revision: https://developer.blender.org/D11936
July 15, 2021, 16:22 (GMT)
Cycles X: Ignore shadow catcher from holdout collection

Differential Revision: https://developer.blender.org/D11937
July 15, 2021, 16:19 (GMT)
Fix wrong render result after cryptomatte commit

Was checking the wrong field to see whether there are any cryptomatte
passes in the scene.
July 15, 2021, 16:07 (GMT)
Cleanup: unused variable capture
July 15, 2021, 15:26 (GMT)
GPUFramebuffer: Bump maximum color attachement to 8

This is needed for EEVEE's new deferred render pipeline.
July 15, 2021, 15:15 (GMT)
Cycles X: Bring back cryptomatte post-processing

Is the non-accurate mode which is used for both CPU and GPU which is
done as a post-processing pass after all samples have finished. This
is happening via render scheduler, as it knows when path tracing did
finish.

Compared to regular Cycles this makes it so the cprypromatte pass is
properly sorted with adaptive sampling enabled.

The accurate CPU implementation which used to be done via the Coverage
class is not yet hooked back. This needs to somehow happen either via
the kernel or via the PathTraceWork. Current state of the patch should
make it trivial to bring accurate implementation back.

This change also fixes missing denoising when rendering when using
constant time rendering.

Differential Revision: https://developer.blender.org/D11934
July 15, 2021, 15:00 (GMT)
Cycles X: Implement path compaction for shadow catcher

The demo file is BMW27 with the ground set as a shadow catcher.
The observed performance improvement is about 5% on RTX5000.

The general idea is to schedule new tiles in a way that we always
leave space for the shadow catcher. Roughly, we first schedule 50%
of path states from the maximum number of paths, then 25% and so on.

Summary of changes:

- Replace constant offset of shadow catcher state with an atomically
incrementing index.

- Add new kernel to count number of states which can still spit.

Could experiment with some atomics so that path split decreases a
value, so does path termination, and increase it when new paths
are added. Not sure this will give better performance.

- Remove terminated paths kernel from scheduling.
The paths are compacted, so we know they are in the beginning of
the array.

Differential Revision: https://developer.blender.org/D11932
July 15, 2021, 14:59 (GMT)
Cycles X: Tweak max number of states seen by tile scheduler

This is required for shadow catchers to make it so the tile scheduler
gives work which can fir into the number of allowed camera rays. Use
a smaller value from the maximum number of states to prepare code for
state compaction of re-scheduling for the shadow catcher.

Interestingly, this has positive effect on regular rendering here with
RTX 5000:
```
new cycles-x
bmw27.blend 12.445 12.2104
classroom.blend 24.4949 24.4508
pabellon.blend 11.3019 11.4407
monster.blend 13.409 13.4491
barbershop_interior.blend 18.6601 18.8364
junkshop.blend 26.3212 27.051
pvt_flat.blend 22.7389 22.9345
```

For the future development we might try to make it so tile scheduler
gives smaller tiles with smaller number of samples, rely on the path
work GPU to request as many tiles as fit into the path states. Need
to be careful though, because there are downsides in terms of memory
bandwidth to pass works tiles to the init_from kernels.
July 15, 2021, 14:59 (GMT)
Fix Cycles X adaptive sampling convergence check

The optimization of atomics and reduction was wrong: the warp voting
functions operate on a threads from a warp (obviously), and the result
of the vote is to be accumulated once for every warp.

Thread index is measured within a block, not within a warp: a block
can have a lot (GPU-dependent) number of threads, while warp has only
32 threads.

Now the code does a voting and atomically adds to the result.

This solves possible too-early sampling stop on GPU, but because the
old code could have finished too soon, there is potential that the
absolute render time number goes up.

Is one of the things which is a bit hard to see on the real file,
but the same approach was giving wrong approach during development of
shadow catcher occupancy improvement. So best visualization of the
problem so far was to force `converged` to be always false and print
number of pixels and active pixels after the running kernel. Before
this change the number of active pixels was much smaller than the
number of pixels, now those values match.
July 15, 2021, 14:19 (GMT)
Animation/add-ons: Enable the poselib add-on by default

The new Asset Browser-based pose library is partially implemented in an
add-on. This commit enables the add-on by default, as the old pose
library was built-in and thus always enabled.

The ability to disable the add-on is there mostly for cases where
people/studios want to use their own custom pose library.
July 15, 2021, 14:12 (GMT)
Fix T88281: Pose Library 'flip pose' sometimes flips wrong

Correct cases where the X-axis of the bone (in pose space) aligns with
the pose-space Y or Z-axis. In these cases the decomposition of the
matrix fails, and a negative scale of the X-axis turns into a 180�
rotation around the Y-axis. An extra -1 scale to the X and Z axes of the
resulting matrix seems to fix things.
July 15, 2021, 14:12 (GMT)
Assets: Add an active asset library per workspace, for the UI to use

This per-workspace active asset library will be used by the asset views
later. Note that Asset Browsers have their own active asset library,
overriding the one from the workspace.

As part of this the `FileSelectAssetLibraryUID` type gets replaced by
`AssetLibraryReference` which is on the asset level now, not the
File/Asset Browser level. But some more work is needed to complete that,
which is better done in a separate commit.
This also moves the asset library from/to enum-value logic from RNA to
the editor asset level, which will later be used by the asset view.
July 15, 2021, 14:12 (GMT)
Assets: Expose active asset library in context

For the Asset Browser, this returns the active asset library of the
Asset Browser, otherwise it returns the one active in the workspace.

This gives simple access to the active asset library from UI code and
Python scripts. For example the upcoming Pose Library add-on uses this,
as well as the upcoming asset view template.
July 15, 2021, 14:12 (GMT)
Assets: AssetHandle type as temporary design to reference assets

With temporary I mean that this is not intended to be part of the
eventual asset system design. For that we are planning to have an
`AssetRepresentation` instead, see T87235. Once the `AssetList` is
implemented (see T88184), that would be the owner of the asset
representations.

However for the upcoming asset system, asset browser, asset view and
pose library commits we need some kind of asset handle to pass around.
That is what this commit introduces.
Idea is a handle to wrap the `FileDirEntry` representing the asset, and
an API to access its data (currently very small, will be extended in
further commits). So the fact that an asset is currently a file
internally is abstracted away. However: We have to expose it as file in
the Python API, because we can't return the asset-handle directly there,
for reasons explained in the code. So the active asset file is exposed
as `bpy.context.asset_file_handle`.
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021