Re: Using cairo with image surface backend results hangs system
Chris Wilson <[email protected]>
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <[email protected]> |
On Mon, 12 Nov 2012 14:31:26 -0700, "Carl D. Blake" <[email protected]> wrote: > I'm trying to use cairo with a DM8168 based system. I want to be able > to use it with the framebuffer so I've set it up to use the image > surface backend. I've mmaped the framebuffer to a memory location and > passed that as the data pointer to cairo_image_surface_create_for_data. > It appears to work for a while, but it always hangs the system at some > point when any drawing is being done (cairo_show_text or cairo_stroke). > I realize that cairo is drawing directly to the framebuffer, but I > didn't think this would be a problem. Am I doing something wrong here? It should work, Cairo should not generate out-of-bounds write or reads. So I would suggest something is going wrong at the hardware/driver level if the machine stops responding. However, I can not recommend that you use an UC or WC mapping for a Cairo surface, except for the final blit. Many of the operators that Cairo performs involve a readback from memory, which from a scanout will be very slow and may give the appearance of the machine freezing. (The usual solution is to use a shadow framebuffer for the composition with a blit (CAIRO_OPERATOR_SOURCE) onto the scanout for display.) -Chris -- Chris Wilson, Intel Open Source Technology Centre -- cairo mailing list [email protected] http://lists.cairographics.org/mailman/listinfo/cairo