[cairo] why cairo is so slow on Windows, is there any plan to improve cairo performance on Windows?

Rainman Lee rainman.lee at gmail.com
Mon Jun 29 19:09:49 PDT 2009


Hi
I have tried to use CAIRO_FILTER_FAST, the render speed was improved
by 2 times, but still slower than GDI+.
Using GDI+ with InterpolationModeLowQuality, it still 2 times faster
than cairo :@(
Will it help to use glitz as backend of cairo on Windows?


On Tue, Jun 30, 2009 at 3:09 AM, Vladimir Vukicevic<vladimir at pobox.com> wrote:
> Note that the original author was referring to GDI+, not GDI -- GDI+ has
> full 2D API semantics, and is also not hardware accelerated anywhere. Cairo
> should always be at least as fast, and ideally faster, than GDI+; otherwise,
> that's a bug.
>
> Is the issue that you're using the default filter, instead of setting the
> filter to FILTER_NEAREST, which is what I think GDI+ does?
>
>    - Vlad
>
> On 6/29/09 4:35 AM, Gerdus van Zyl wrote:
>>
>> The antialiasing has nothing to do with it. Rendering is normally fast
>> when you have integer coordinates which with rotation you never have.
>> Cairo works by falling back to it's own internal rendering if it can't
>> get the correct output using the target backend (GDI). (which in this
>> case is why it's slower than GDI)
>>
>> The cairo from the GTK website should be fine.
>>
>> Depending on what you are trying to render, caching the result in a
>> long lived surface will help a lot. If you can describe what you are
>> drawing we might be of more help.
>>
>> ~Gerdus
>>
>> On Mon, Jun 29, 2009 at 1:04 PM, Rainman Lee<rainman.lee at gmail.com>
>>  wrote:
>>>
>>> I do not need subpixel rendering, but I donot know how to disable it.
>>> My test version is 1.8.6, and I got it from GTK web site.
>>> Did you have tested cario_fill(a png) with rotation transforms from 0
>>> to 360 degree?
>>> It is very slow even if I set antialias with none.
>>>
>>> On Mon, Jun 29, 2009 at 4:38 PM, Gerdus van Zyl<gerdusvanzyl at gmail.com>
>>>  wrote:
>>>>
>>>> Nothing I know about. Firstly do you really need subpixel rendering?
>>>>
>>>> Where did you get your cairo? Newer versions are generally faster also
>>>> check to see if it was compiled with SSE enhancement, etc.
>>>>
>>>> If the speed is a real problem you could always use GDI+ there are
>>>> ways you can mix cairo and GDI rendering, though it won't be that
>>>> easy.
>>>>
>>>> On Mon, Jun 29, 2009 at 6:48 AM, Rainman Lee<rainman.lee at gmail.com>
>>>>  wrote:
>>>>>
>>>>> Hi everyone,
>>>>> I use cairo on windows for a while. I found that cairo was so slow
>>>>> whenever fill a surface to another with scaling, rotating, or even a
>>>>> non-integer translaton. I compared it with GDI+, which is at least 7
>>>>> times faster than cairo :(
>>>>>
>>>>> It seems that if a source pixel can not map to a dest pixel which has
>>>>> an integer coordinate, cairo will use a subpixel algorithm, and it
>>>>> will terribly hurt the performance. I made a filling test, firstly by
>>>>> a 0.5 pixel step horz translation transform, and a 1 pixel step horz
>>>>> translation transform then, each of which looped 100 times. the first
>>>>> case was extremely slow than the second one.
>>>>>
>>>>> Is there any idea to speed up cairo in this case? I tryed to set
>>>>> antialias with none, but it had no effect.
>>>>>
>>>>> Thank you!
>>>>>
>>>>> Rainman.
>>>>> _______________________________________________
>>>>> cairo mailing list
>>>>> cairo at cairographics.org
>>>>> http://lists.cairographics.org/mailman/listinfo/cairo
>>>>>
>>>> _______________________________________________
>>>> cairo mailing list
>>>> cairo at cairographics.org
>>>> http://lists.cairographics.org/mailman/listinfo/cairo
>>>>
>>>
>> _______________________________________________
>> cairo mailing list
>> cairo at cairographics.org
>> http://lists.cairographics.org/mailman/listinfo/cairo
>
>


More information about the cairo mailing list