Skip to content

RFC: Screenshot to DMA fd

The existing screenshot implementation makes use of glReadPixels and dumps the contents to a file.

This method seems to be less performant and cannot be used for the following:

  1. 60 fps use case: As glReadPixels is not H/W accelerated, the current implementation takes more than 16.6 ms to generate a screenshot.

  2. 3D animations between applications: It is not currently possible to reuse the screenshot of application surfaces in a performant way as the contents are now dumped to a file.

    e.g. window manager should be able to take the screenshot of all application surfaces and create a 3D animation which shows the tiled(stacked) view of all running applications.

One way to address the above use cases is to copy the screenshot content to a DMA buffer. The window manager should allocate a DMA buffer and sent it to the compositor. The compositor then copies the surface/output content to the DMA buffer and returns it.

I have provided a sample implementation and test based on ivi-shell.

Merge request reports