Blender Git Commit Log

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)

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)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021