Blender Git Commit Log
Git Commits -> Revision 91d8c84
Revision 91d8c84 by Sergey Sharybin (cycles-x) February 17, 2021, 15:34 (GMT) |
Cycles: Boiler plate code for kernel queues The goal of this change is lay down an initial version of API which will allow path tracer to queue kernels for execution. This is done by introducing new `DeviceQueue` class which is a higher level abstraction over concepts like OpenCL queue or CUDA stream. Its purpose is to take overhead of kernels invocation. The queue is created by a device, and after that it becomes self-sufficient. The queue is implemented as a "stub" for CPU device. This change also contains changes which is basically an initial pass over render graph implementation. In order to have all bits tested had to rake over `Session::render()` function so now render result is always empty. The old code is ifdefed so that it is more visible which parts of code are to be brought back in a proper design. Next steps will include implementation of some resource management so that integrator kernels can be actually invoked. |
Commit Details:
Full Hash: 91d8c84f584dd665887624bd050bab1a64f61840
Parent Commit: b6c390a
Lines Changed: +352, -14
4 Added Paths:
/intern/cycles/device/device_kernel.cpp (+53, -0) (View)
/intern/cycles/device/device_kernel.h (+38, -0) (View)
/intern/cycles/device/device_queue.cpp (+28, -0) (View)
/intern/cycles/device/device_queue.h (+45, -0) (View)
/intern/cycles/device/device_kernel.h (+38, -0) (View)
/intern/cycles/device/device_queue.cpp (+28, -0) (View)
/intern/cycles/device/device_queue.h (+45, -0) (View)
10 Modified Paths:
/intern/cycles/device/CMakeLists.txt (+4, -0) (Diff)
/intern/cycles/device/device.h (+11, -0) (Diff)
/intern/cycles/device/device_cpu.cpp (+23, -0) (Diff)
/intern/cycles/device/device_dummy.cpp (+6, -0) (Diff)
/intern/cycles/device/device_multi.cpp (+14, -0) (Diff)
/intern/cycles/integrator/CMakeLists.txt (+4, -0) (Diff)
/intern/cycles/integrator/path_trace.cpp (+69, -11) (Diff)
/intern/cycles/integrator/path_trace.h (+25, -2) (Diff)
/intern/cycles/render/CMakeLists.txt (+1, -0) (Diff)
/intern/cycles/render/session.cpp (+31, -1) (Diff)
/intern/cycles/device/device.h (+11, -0) (Diff)
/intern/cycles/device/device_cpu.cpp (+23, -0) (Diff)
/intern/cycles/device/device_dummy.cpp (+6, -0) (Diff)
/intern/cycles/device/device_multi.cpp (+14, -0) (Diff)
/intern/cycles/integrator/CMakeLists.txt (+4, -0) (Diff)
/intern/cycles/integrator/path_trace.cpp (+69, -11) (Diff)
/intern/cycles/integrator/path_trace.h (+25, -2) (Diff)
/intern/cycles/render/CMakeLists.txt (+1, -0) (Diff)
/intern/cycles/render/session.cpp (+31, -1) (Diff)