Blender Git Commit Log

Git Commits -> Revision 60b5410

Revision 60b5410 by Sergey Sharybin (cycles-x)
March 19, 2021, 16:43 (GMT)
Cycles: Avoid explicit CPU-side buffer in GPUDisplay

The idea is to use OpenGL texture and pixel buffer object
to push pixels from PathTrace to the GPU for draw.

The need of the PBO is because updating texture from the
copy_pixels_to_texture() function turned out to be quite
expensive in terms of CPU time spent, degrading viewport
render performance. The downside of this approach is that
the peak memory might be higher when rendering on a multiple
devices compared to partial direct texture updates. Although
this is hard to tell for sure, since it depends on exact way
of how driver schedules updates and manages memory.

The upside of this change is that it makes it so PBO is
there, ready to be used by CUDA's GL graphics for direct
update without CPU memory round-trip.

The performance is a bit hard to measure, since the timing
varies quite a bit, but on the CPU it is the same ballpark.

Commit Details:

Full Hash: 60b54106e9a78098dbc316e2882539a0962f8f91
Parent Commit: b72939a
Lines Changed: +187, -73

2 Modified Paths:

/intern/cycles/blender/blender_gpu_display.cpp (+150, -48) (Diff)
/intern/cycles/blender/blender_gpu_display.h (+37, -25) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021