July 16, 2021, 04:59 (GMT) |
USD export format changes. |
July 16, 2021, 04:49 (GMT) |
USD export: make prototype roots invisible. Updated instancing export to make the root prims of prototypes invisible. Previously, every prim in the prototype hierarchy was marked invisible, which prevented instances from displaying. |
July 16, 2021, 03:04 (GMT) |
Cleanup: Comment and redundant logic |
July 16, 2021, 02:29 (GMT) |
Merge branch 'master' into curve-nodes-modifier |
July 16, 2021, 01:58 (GMT) |
USD export: skip writing instance subgraphs. When instancing is enabled, no longer creating writers for instance data and children. |
Revision 9063470 by Fabian Schempp (gsoc-2021-porting-modifiers-to-nodes-solidify, soc-2021-porting-modifiers-to-nodes_all) July 15, 2021, 20:33 (GMT) |
- added geometry module - moved solidify to geometry module |
July 15, 2021, 19:44 (GMT) |
Fix incorrect enum |
July 15, 2021, 19:24 (GMT) |
Merge branch 'master' into temp-geometry-nodes-curve-sample |
July 15, 2021, 19:20 (GMT) |
Array Brush: Disable debug drawing |
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, 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. |
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, 13:10 (GMT) |
Added support for multiple resolution curve fillet segments |
|
|
|


Master Commits
MiikaHweb | 2003-2021