[cairo] cairo_paint() with GPU Buffer

Uli Schlachter psychon at znc.in
Tue Feb 5 19:10:47 UTC 2019


On 05.02.19 07:16, Abimathi Natarajan wrote:
> I'm implementing a sample program with Weston to render video (decoded
> using ffmpeg VAAPI)  frames using Cairo graphics.
> Each frame is of 4k size

How complicated is your example program? Do you have a link to it or can
you send it by mail?

> I'm passing GPU buffer directly to cairo_image_surface_create_for_data() to
> create a cairo_surface for each frame.
> When I render the buffer using cairo_paint() , the API is taking
> approximately 400 ms for each buffer.

Uhm, can you tell us more about the cairo_paint() call? I assume you are
copying from the image surface that you created. Where are you copying
to? Is it just the call to cairo_paint() that takes so long or did you
measure more than just that?

Also, what exactly does "I'm passing GPU buffer directly" mean? Is the
GPU memory directly accessible to the CPU? If so, I would expect this to
be uncached and slow, which is why I am asking.

Homophobia - The fear that another man will treat you the way you treat

More information about the cairo mailing list