June 29, 2021, 09:55 (GMT) |
Cycles X: Remove redundant field in path trace works Render buffers are available via the base class, no need to duplicate it in the derived classes. |
June 29, 2021, 09:55 (GMT) |
Cycles X: Initialize all fields of buffer params Allows to rely on default constructor and follow-up call of modified() without accessing non-initialized fields. |
June 29, 2021, 09:55 (GMT) |
Cycles X: Initial support of multi-GPU and GPU+CPU rendering This change makes it possible to render single frame on multiple GPUs and/or GPU(s)+CPU. (as configured in the User Preferences). Work is split equally along the height of the big tile. In the future this will be looked into to perform better initial guess based on devices performance, dynamic re-scheduling, and interleaving scanlines across devices. The main idea is to move render buffers to per-work basis, so that the ender buffers are always associated with the device work is being done by. And then upon access delegate the read/write to the work, so that it operates with a specific slice in the source/destination, There are some multiple memory and performance improvements possible, like: - Copy render result to GPUDisplay from multiple threads (now when it is clear graphics inetrop can not be mixed in with naive update). - Avoid denoiser buffer re-allocation. - Avoid creation of temporary buffers in the denoisers when we know that we have a copy of real buffers. - Only copy passes needed for denoiser, and results of denoiser. The current state of the `PathTrace::denoise()` is not entirely ideal: it could be split up, and memory usage could be improved. But think it is good enough for the initial implementation. The further improvements would require changes in the Denoiser API. Differential Revision: https://developer.blender.org/D11727 |
June 29, 2021, 09:52 (GMT) |
Fix Cycles X multi-device type generation The info type can not be set to first device type because the device might be ignored. So delay type assignment until we have a device which is known to be used. Fixes issue in viewport when OptiX+OptiX will be considered an OptiX device with 2 sub-devices, and OptiX+OptiX+CPU will be considered a Multi device. The issue with the latter one is that the info IDs in both cases are the same, but not the type, making it a wrong comparison in `DeviceInfo::operator==`. Differential Revision: https://developer.blender.org/D11729 |
June 29, 2021, 09:28 (GMT) |
LineArt: Back face culling. |
June 29, 2021, 08:57 (GMT) |
Merge remote-tracking branch 'origin/master' into temp-lineart-contained |
June 29, 2021, 08:45 (GMT) |
Merge branch 'master' into soc-2021-vse-strip-thumbnails |
June 29, 2021, 07:59 (GMT) |
Merge branch 'master' into tmp-vulkan |
June 29, 2021, 03:47 (GMT) |
Merge branch 'master' into refactor-vertex-group-names |
June 29, 2021, 03:45 (GMT) |
Merge remote-tracking branch 'origin/master' into temp-lineart-contained |
June 29, 2021, 03:45 (GMT) |
Merge branch 'master' into curve-nodes-modifier |
June 29, 2021, 03:23 (GMT) |
Merge branch 'master' into curve-nodes-modifier |
June 29, 2021, 03:13 (GMT) |
LineArt: naming change floating->loose |
June 29, 2021, 02:52 (GMT) |
Merge remote-tracking branch 'origin/master' into temp-lineart-contained |
June 29, 2021, 02:48 (GMT) |
Merge branch 'master' into curve-nodes-modifier |
June 29, 2021, 02:35 (GMT) |
Merge branch 'master' into curve-nodes-modifier |
June 29, 2021, 02:00 (GMT) |
Merge branch 'master' into curve-nodes-modifier |
June 29, 2021, 01:27 (GMT) |
More cleanup, displist still shows up when it shouldn't (no mesh in data_eval) |
June 28, 2021, 22:53 (GMT) |
Cleanup: Rename variables |
June 28, 2021, 22:50 (GMT) |
Merge branch 'master' into curve-nodes-modifier |
|