Blender Git Commit Log

Git Commits -> Revision ff05f9c

Revision ff05f9c by Sergey Sharybin (cycles-x)
March 18, 2021, 16:33 (GMT)
Cycles: Initial implementation of GPUDisplay

The idea of GPUDisplay is to take care of viewport texture update
and drawing in a way that is the same exact from API point of view
for both CPU and GPU rendering.

This change moves a lot of code and refactors it in a more reusable
and isolated building blocks to implement the GPUDIsplay for Blender
viewport.

The CPU rendering is same exact from users perspective.

The GPU rendering currently does not use CUDA OpenGL buffers, which
can potentially cause degradation in the performance.

There is also a temporary half buffer in BlenderGPUDisplay, because
it is not clear yet how to create OpenGL context, so that we can
update texture from different thread than the drawing.

The update of the GPUDisplay is performed by the Session. Ideally,
this will be done in PathTracer so that it can avoid unnecessary
updates if sample rendered quick enough. This behavior will need a
bit deeper change in a way how TIleManager, Session::render() and
PathTracer are communicating to each other.

Commit Details:

Full Hash: ff05f9c5c2f693a8297655db44a905d7faff78f5
Parent Commit: cf87dc4
Lines Changed: +911, -313

4 Added Paths:

/intern/cycles/blender/blender_gpu_display.cpp (+496, -0) (View)
/intern/cycles/blender/blender_gpu_display.h (+177, -0) (View)
/intern/cycles/render/gpu_display.cpp (+30, -0) (View)
/intern/cycles/render/gpu_display.h (+85, -0) (View)

15 Modified Paths:

/intern/cycles/blender/blender_session.cpp (+7, -12) (Diff)
/intern/cycles/blender/blender_sync.cpp (+0, -3) (Diff)
/intern/cycles/blender/CMakeLists.txt (+2, -0) (Diff)
/intern/cycles/device/cuda/device_cuda_impl.cpp (+13, -0) (Diff)
/intern/cycles/device/cuda/device_cuda_impl.h (+2, -0) (Diff)
/intern/cycles/device/device.cpp (+4, -0) (Diff)
/intern/cycles/device/device.h (+10, -0) (Diff)
/intern/cycles/device/multi/device_multi.cpp (+2, -0) (Diff)
/intern/cycles/integrator/path_trace.cpp (+28, -11) (Diff)
/intern/cycles/integrator/path_trace.h (+5, -3) (Diff)
/intern/cycles/render/buffers.cpp (+2, -0) (Diff)
/intern/cycles/render/buffers.h (+2, -0) (Diff)
/intern/cycles/render/CMakeLists.txt (+2, -0) (Diff)
/intern/cycles/render/session.cpp (+35, -258) (Diff)
/intern/cycles/render/session.h (+9, -26) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021