[cairo] Very slow CGContextDrawImage in cairo-quartz-surface.c
Mario
ml at kernelobjects.org
Thu Oct 17 08:09:34 CEST 2013
Hi Stefan,
Am 17.10.2013 00:10, schrieb Stefan Salewski:
> On Wed, 2013-10-16 at 22:31 +0200, Mario wrote:
>> Hi,
>>
>> i just try to compile spice-gtk for OSX. But the rendering algorithm
>> does not seem to fit for a remote desktop application.
>
> I never heard about that tool. Did you regard their FAQ about "Poor
> video performance" ?
>
> http://www.spice-space.org/page/FAQ
thank you for your message.
Unfortunately this FAQ is related to something absolutely different :(
It is describing the GFX power of a virtual spice-display adapter
(called QXL-adapter) within a virtual machine on a virtual host.
But I´m talking about the client (to display the virtual monitor). I
don´t want to make sophisticated calculations on my guest VM. I just
move a window (as shown in the video link).
Please let me summarize:
- On Linux spice-gtk runs like a charm but I cannot compare directly as
the linux configuration typical uses the x11 display drawing with its
acceleration.
- On Windows spice-gtk runs as well quite fast. The configuration is
almost the same for spice-gtk (gtk for UI, cario for drawing and pixman
for rendering). The main difference is located in the cairo
configuration on windows. It uses gdi for drawing.
- On Apple OSX spice-gtk works but it is not usable. I debugged the
process and its calls and I figured out that the calls to cairo
(cairo_fill() in this case) are most expensive. On other architectures
that is not the case (no so significant).
(see:
http://wwwlehre.dhbw-stuttgart.de/~lombardo/exp_call_tree_spicy.png)
So back to my origin mail I would like to know if there is any
suggestion to accelerate this drawing. Does Quartz prefer any specific
data format? Or is the way spice-gtk draws the canvas better realized
different?
Spice uses simply the drawing of cairo directly - no curves, polygons,
... - just drawing. The canvas calculation is done by pixman. And pixman
calls are way less expensive than this drawing function.
My goal is to provide spice a patch for upstream to enable the community
to use this client on OSX as well. It would be great to have support.
Thanks!
Mario
More information about the cairo
mailing list