Cycles X: Use GPUDisplay for non-interactive render [WIP]
This is a part of hi-res image rendering. The goal of this step is to
make it so Cycles takes care of active pass drawing for non-interactive
render, similar to the viewport render. Some top-level overview of the
code side design changes are summarized in T90580.
Benefits and solutions to design limitations which this change brings:
- Allows to lazily allocate render result on Blender side.
- Solves bottleneck of data transfer and color management, which should solve issues like T52360.
- Allows a render engine to take advantage of tiled rendering for memory saving by saving rendered tiles on disk and only keeping display buffer. Leaving display buffer management to an external engine allows the engine to implement logic needed for changing active display pass (which might involve reading from partial tile file).
- Allows to see any pass during rendering.
