Blender Git Loki
Git Commits -> Revision 270f286
Revision 270f286 by Sergey Sharybin (cycles-x) February 25, 2021, 12:42 (GMT) |
Cycles: Simplify render buffers management Avoid per-integrator-queue render buffers, which also avoids copy of render results from one buffer to another. Now on CPU all integrator queues are sharing same render buffer created for the big tile and are writing to different parts of this buffer. For a single-GPU device there will be one integrator queue and one render buffer on the device side. Multi-device would need to have some more tricky buffer management that it originally looked like to me; data transfers are to be avoided as much as possible. So ideally it would be some per-device statically allocated buffers, with possibly some re-arrangement during rendering to balance things better. From the memory ownership point of view it will mean per-device render buffers and multiple integrator queues for CPU. So from this point of view the idea of path tracing context becomes obsolete. Remove the PathTraceContext. Maybe later it can become PathTraceWork with an implementation of "wavefront management". But for now lets keep things more localized to PathTrace for easier refactoring. |
Commit Details:
Full Hash: 270f2862c2e1abeecc9da66fd5fdefeda7119775
Parent Commit: 7da150e
Lines Changed: +50, -171
2 Deleted Paths:
/intern/cycles/integrator/path_trace_context.cpp (+0, -32)
/intern/cycles/integrator/path_trace_context.h (+0, -38)
/intern/cycles/integrator/path_trace_context.h (+0, -38)
6 Modified Paths:
/intern/cycles/device/cpu/device_cpu.cpp (+2, -0) (Diff)
/intern/cycles/device/device.h (+6, -0) (Diff)
/intern/cycles/device/device_queue.h (+1, -1) (Diff)
/intern/cycles/integrator/CMakeLists.txt (+0, -2) (Diff)
/intern/cycles/integrator/path_trace.cpp (+23, -69) (Diff)
/intern/cycles/integrator/path_trace.h (+18, -29) (Diff)
/intern/cycles/device/device.h (+6, -0) (Diff)
/intern/cycles/device/device_queue.h (+1, -1) (Diff)
/intern/cycles/integrator/CMakeLists.txt (+0, -2) (Diff)
/intern/cycles/integrator/path_trace.cpp (+23, -69) (Diff)
/intern/cycles/integrator/path_trace.h (+18, -29) (Diff)