[Spice-devel] spice-gtk on MAC OSX

Mario Lombardo ml at kernelobjects.org
Thu Oct 10 08:40:27 CEST 2013


Marc,

as I read your message I started to dig deeper into the timings of the 
spicy process. Using the "Instruments" App on OSX I sampled the spicy 
and figured out that the major time while moving a Window within the 
spice session (on the guest VM) seems to be used by calls like 
canvas_draw_alpha_blend (see picture).

On windows this may be replaced by gdi_canvas_draw_alpha_blend but how 
is this drawing realized within a linux client?

I can´t believe Linux is as slow for the renderings as OSX. Just to have 
an example: Opening an Internet Explorer within the guest (fullscreen, 
1024x768) takes about 3 seconds to be redered on OSX. On a Windows build 
of the spice client you cannot even look so fast - on the same VM.

I started to make a skeleton for quartz_canvas.[ch] files. But I didn´t 
find where I can call the init-function to overwrite the OP-Structure 
with my canvas (once I have them ;-) ). How is this implemented for the 
gdi overwriting?

However it seems as you are right regarding SDL - the major calculating 
time seem not be used for cairo calls.

Cheers,
Mario



Am 07.10.2013 14:53, schrieb Marc-André Lureau:
> ----- Original Message -----
>> Marc,
>> 
>> thank you for your message.
>> 
>> Cairo-SDL can be realized in two ways:
>> 
>> // Integrate SDL into cairo
>> http://www.cairographics.org/SDL/
> 
> I wonder why that would make it faster than a cairo quartz surface / 
> backend.
> 
>> // Use the integration (even if this is not up to date - this may help
>> me to understand)
>> http://cgit.freedesktop.org/~joonas/cairosdl/tree/README
>> 
>> Regarding the canvas I did not find any up-to-date implementation of
>> Quarz in C. We will need to use some wrappers in Obj-C exporting the
>> relevant funtions. I would try to make such an implementation, once I
>> understood how this works. But I did not understand why there are so
>> many more funtions implemented in sw_canvas.c compared to 
>> gdi_canvas.c.
>> Is there not the need to implement them all at present? If I want to
>> start with a kind of "quarz_canvas.c" - what would be the minumum set 
>> of
>> functions?
> 
> Disclaimer, I have little experience with canvas code.
> 
> The higher level functions are those listed in first half of
> SpiceCanvasOps struct. If you implement the same as the GDI canvas,
> you should be good.
> 
> The rest of the functions are needed in acase base case: if you don't
> override all higher-level functions, you can use the common code in
> canvas_base.c and implement the simpler functions called from there.
> 
>> Kind reagards,
>> Mario
>> 
>> 
>> Am 07.10.2013 13:12, schrieb Marc-André Lureau:
>> > Hi
>> >
>> > ----- Original Message -----
>> >> Hi,
>> >>
>> >> I just compiled the spice-gtk client (spicy) on OSX
>> >> (http://www.spice-space.org/page/OSX_Client/Build).
>> >>
>> >> I am able to connect to the spice server using this client but it is
>> >> more slow than any VNC client I know.
>> >>
>> >>
>> >> I looked into the code and found two different places where this
>> >> client
>> >> seems to be different than the x11 or GDI versions:
>> >>
>> >> 1.) It uses sw_canvas.c
>> >> 2.) It uses spice-widget-cairo.c
>> >>
>> >> Is it possible that the slow rendering results in the execution time
>> >> one
>> >> of those two files? Which investigation would make more sense: Would
>> >> it
>> >> be better to provide a SDL cairo version or should it accelerate the
>> >
>> > What is "a SDL cairo version"?
>> >
>> >> client when there is a canvas option optimized for OSX (quarz I
>> >> guess)?
>> >
>> > Gtk+ uses Cairo for drawing. If it's slow on OSX, it can probably be
>> > optimized by using the right drawing API.
>> >
>> >> Is it possible to test the gl canvas on OSX? I didn´t found anything
>> >> about the gl implementation in the configure script.
>> >
>> > Spice-gtk doesn't support GL canvas yet. The GL canvas is more limited
>> > that the SW canvas, and it is generally much slower for today
>> > computers.
>> _______________________________________________
>> Spice-devel mailing list
>> Spice-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/spice-devel
>> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Screen Shot 2013-10-09 at 21.09.46 .png
Type: image/png
Size: 129712 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20131010/5c7d4800/attachment-0001.png>


More information about the Spice-devel mailing list