July 15, 2021, 19:16 (GMT) |
Merge branch 'master' into sculpt-dev |
July 15, 2021, 19:05 (GMT) |
Merge branch 'master' into asset-greasepencil |
July 15, 2021, 19:00 (GMT) |
Array Brush: expose fill holes and orientation lock |
July 15, 2021, 17:40 (GMT) |
Cleanup: Clang tidy |
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. |
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 |
Revision e3ff83a by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) 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`. |
|
|
|


Master Commits
MiikaHweb | 2003-2021