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 somany 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 tostart with a kind of "quarz_canvas.c" - what would be the minumum set offunctions?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@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel
Attachment:
Screen Shot 2013-10-09 at 21.09.46 .png
Description: PNG image
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel