[cairo] [patch] pixman_fill_rect implementations for specific bpp modes

Aivars Kalvans aivars.kalvans at inbox.lv
Mon Jul 31 05:51:43 PDT 2006


Alexander Larsson wrote:
> On Wed, 2006-07-26 at 14:27 +0000, Aivars Kalvans wrote:
>   
>> pixman_fill_rect_general() is implicitly called from
>> gdk_window_clear_backing_rect() and takes about 20% of gnome-terminal's
>> time when doing `ls -laR /` or `cat large-file` (not counting X). Adding
>> specific implementation for 16bpp mode reduces that to less than 10%.
>>     
>
> gdk_window_clear_backing_rect was changed to use gdk_draw_rectangle. I
> wonder why you are hitting this.
Because setup_backing_rect_method() chooses to use cairo ("else" branch
in gdkwindow.c:1840). Maybe workaround can be extended to cover also
this case?

But, since problem is in cairo, I think it would be better to fix it
there. Calling memcpy() for each pixel (2 or 3 bytes) is an overkill.

-- 
Aivars



More information about the cairo mailing list