[cairo] Performance problems in evince with ATI video cards
Carlos Garcia Campos
carlosgc at gnome.org
Fri Aug 10 13:07:55 PDT 2007
El vie, 10-08-2007 a las 12:52 -0700, Vladimir Vukicevic escribió:
> Carlos Garcia Campos wrote:
> > Hi all,
> >
> > we have recently ported evince view to cairo, since poppler renders
> > pages into a cairo surface, we avoid conversions from
> > cairo_image_surface to GdkPixbuf by directly using the cairo_surface to
> > paint the page in the evince view. However, since such port to cairo, we
> > have received some complaints about the slowness of evince and the high
> > cpu usage. It seems that the problem is only reproducible with ATI video
> > cards (although, at least, one nvidia user has reported the bug too).
> >
> > The problem has been reported here:
> >
> > http://bugzilla.gnome.org/show_bug.cgi?id=453123
> >
> > and it seems to be related to this one:
> >
> > http://bugs.freedesktop.org/show_bug.cgi?id=4320
> >
> > The problem is not reproducible for me and I even don't know where the
> > problem actually is (cairo, xorg, ati driver, evince, ...), so it's
> > almost impossible to me fixing it.
> >
> > FWIW in evince I'm doing something like this:
> >
> > cr = gdk_cairo_create (view->layout.bin_window);
> > cairo_translate (cr, overlap.x, overlap.y);
> > cairo_surface_set_device_offset (page_surface,
> > overlap.x - real_page_area.x,
> > overlap.y - real_page_area.y);
> > cairo_set_source_surface (cr, page_surface, 0, 0);
> > cairo_paint (cr);
>
> What type of surface is page_surface?
cairo_image_surface
> If you're drawing to the display, you may want to try creating it as an
> image surface and see how that goes. But yes, as Jeff said, profiling
> is your best bet.
I would like it, but the problem is not reproducible for me. Maybe
someone who is affected by the problem could provide more information.
> (Also, setting a device offset before you draw is odd
> -- you really just want to translate to the right place and draw a
> rectangle that you fill, though that shouldn't be affecting performance.)
I've already tried that, but it didn't work. When using cairo_rectangle
and cairo_fill instead of cairo_paint the page is rendered well, however
after scrolling, some parts of page disappear. I don't know why, but the
only way it works as expected is with set_device_offset and
cairo_paint.
> - Vlad
>
Thanks,
--
Carlos Garcia Campos
elkalmail at yahoo.es
carlosgc at gnome.org
http://carlosgc.linups.org
PGP key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x523E6462
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Esta parte del mensaje =?ISO-8859-1?Q?est=E1?= firmada
digitalmente
Url : http://lists.cairographics.org/archives/cairo/attachments/20070810/0a0913c3/attachment.pgp
More information about the cairo
mailing list