CEF offscreen rendering, incomplete image buffers at high resolution

388 views
Skip to first unread message

mez...@gmail.com

unread,
Oct 19, 2017, 5:06:48 PM10/19/17
to paint-dev
Hi, 

apologies if the question addresses the wrong audience but I don't know who to task from the Chromium team.

We are currently using a recent version of Chromium via CEF (3.2987.1601.gf035232) on Windows and Linux to produce offscreen screenshots of web pages.
For this purpose we use CEF osr (offscreen rendering).
The renderer parameters (command line switches) are:

disable-gpu
disable-gpu-compositing
off-screen-rendering-enabled
enable-begin-frame-scheduling
disable-d3d11

We capture the BGRA image buffers provided by the CEF OnPaint event (CefRenderHandler), which apparently stems from the Chromium compositor.

All works fine on both Windows and Linux up to a certain pixel area, say around 5000px x 5000px (width x height), then the image buffers arrive incomplete, so only certain tiles are drawn, starting from the top-left corner apparently. 
Chromium does not seem capable of producing all the required tiles.
Tweaking the tile size makes little difference, eg:

command_line->AppendSwitchWithValue("default-tile-height", "256");
command_line->AppendSwitchWithValue("default-tile-width", "256");

Also increasing the minimum tile width to cover the whole surface generates always blank images, ie:

command_line->AppendSwitchWithValue("max-untiled-layer-width", "10000");
command_line->AppendSwitchWithValue("max-untiled-layer-height", "10000");

We would like to take snapshots of images up to 10000px x 10000px, 

- is this an intrinsic CEF/Chromium limitation or a setting we are missing?
- if it is a limitation is this machine related?
- if this is unavoidable is there a workaround without resorting to software upscaling/image stitching?

Thank you

Reply all
Reply to author
Forward
0 new messages