Blender Git Loki
Git Commits -> Revision 59d83a3
Revision 59d83a3 by Sergey Sharybin (cycles-x) February 19, 2021, 14:54 (GMT) |
Cycles: Properly initialize camera rays The idea is to pass KernelWorkTile to the generate_camera_rays kernel so that it can have access to screen-space coordinates. Some fields of the KernelWorkTile are unused and are either to be removed in the future, or a simplified version of a struct is to be used. The device side of changes is related on making it to queue is aware of where in the bug tile if is operating on. Currently done as an API of DeviceQueue, and with time might become more clear whether such work tile concept should only be done for path tracing related queue. The path tracer change is rather annoying and a bit messy: it evaluates the render graph for every pixel in a progressive refine manner. It is slow and single threaded, and code is not folded very flexible yet. The good thing is that it allows to make it so kernels to output proper data. The output kernels needs an adjustment, so that they write to an offset within the render buffer. Only modified the surface kernel, because otherwise other kernels will override the value and make it so nothing is visible. |
Commit Details:
Full Hash: 59d83a3ac909b2a321e89de7a2c6eebaaed2810f
Parent Commit: 722ce61
Lines Changed: +175, -62
12 Modified Paths:
/intern/cycles/device/device_cpu.cpp (+50, -12) (Diff)
/intern/cycles/device/device_multi.cpp (+2, -1) (Diff)
/intern/cycles/device/device_queue.h (+19, -0) (Diff)
/intern/cycles/integrator/path_trace.cpp (+31, -5) (Diff)
/intern/cycles/integrator/path_trace.h (+8, -0) (Diff)
/intern/cycles/kernel/integrator/integrator_state.h (+7, -2) (Diff)
/intern/cycles/kernel/integrator/kernel_generate_camera_rays.h (+8, -6) (Diff)
/intern/cycles/kernel/integrator/kernel_surface.h (+6, -1) (Diff)
/intern/cycles/kernel/kernels/cpu/kernel_cpu.h (+9, -3) (Diff)
/intern/cycles/kernel/kernels/cpu/kernel_cpu_impl.h (+25, -28) (Diff)
/intern/cycles/kernel/kernel_globals.h (+1, -0) (Diff)
/intern/cycles/kernel/kernel_path_state.h (+9, -4) (Diff)
/intern/cycles/device/device_multi.cpp (+2, -1) (Diff)
/intern/cycles/device/device_queue.h (+19, -0) (Diff)
/intern/cycles/integrator/path_trace.cpp (+31, -5) (Diff)
/intern/cycles/integrator/path_trace.h (+8, -0) (Diff)
/intern/cycles/kernel/integrator/integrator_state.h (+7, -2) (Diff)
/intern/cycles/kernel/integrator/kernel_generate_camera_rays.h (+8, -6) (Diff)
/intern/cycles/kernel/integrator/kernel_surface.h (+6, -1) (Diff)
/intern/cycles/kernel/kernels/cpu/kernel_cpu.h (+9, -3) (Diff)
/intern/cycles/kernel/kernels/cpu/kernel_cpu_impl.h (+25, -28) (Diff)
/intern/cycles/kernel/kernel_globals.h (+1, -0) (Diff)
/intern/cycles/kernel/kernel_path_state.h (+9, -4) (Diff)