[Spice-devel] spice-gtk on MAC OSX

Marc-André Lureau mlureau at redhat.com
Thu Oct 10 18:36:34 CEST 2013


Hi

----- Original Message -----
> Marc,
> 
> > ----- Original Message -----
> > It's using the same pixman functions. Even on linux, we currently use
> > it.
> > 
> > In your graph, it is showing 100ms of cumulative time, that's not so
> > much. Draw alphablend is an expensive function, and it's used
> > frequently.
> > 
> > Couldn't there be another reason for slowness than purely CPU?
> 
> That is what I would like to figure out. But I tested it on a quite late
> MacMini and on a i5 MacBookPro. Both showed same results.
> 
> > 
> > Is the CPU at 100% when opening IE for 3s?
> > 
> 
> As soon as I move a window or change a window size on the guest the cpu
> consumption goes up to about 60% (but 60% of the host dual core
> ressources).
> 
> > have you tried with spice-gtk git, which has some performance
> > improvement?
> > 
> 
> Not until now. My last message was using the spice-gtk 0.21 but now I
> just built the git version - unfortunately no change.
> I made a recording of the rendering issue. Here you may see what I mean:
> wwwlehre.dhbw-stuttgart.de/~lombardo/spicy_osx.mov

It is really slow indeed.

One thing you could try to discard the non-gtk part, is to run spicy-stats against the replay tool.

You should be able to compile the "replay" branch on https://git.gitorious.org/spice/elmarco-spice.git. Extract http://elmarco.fedorapeople.org/debian.xz. And run server/tests/replay -w debian. Then you can time/profile spicy -p 5000, or spicy-stats -p 5000 (for excluding gtk usage).

> This screen recording was done with the lastest pixman (stable), the
> latest cairo (stable) and the git clone of spice-gtk of today.
> 
> This is my configuration:
> ./configure --prefix /Users/devel/gtk/inst --libdir
> /Users/devel/gtk/inst/lib --disable-usbredir --without-python
> --with-audio=no --with-gtk=3.0 --disable-smartcard --enable-controller
> --with-coroutine=gthread --disable-werror --with-sasl=no --enable-vala
> 
> I tried to keep it as simple as possible. The same guest viewed with a
> windows client is working like a charm. As I have a need for this client
> I would like to support this project by optimizing the client for OSX.
> But at present I have no clue where to begin.

It could be some overhead on other part of the OS?
Is there a profiler for overall system on OSX? (like perf on Linux)

> 
> > 
> > The init function is called from the client.
> > 
> > gtk/channel-display.c
> > 387:    sw_canvas_init();
> > 
> > 
> > Since spice-gtk only supports sw canvas atm, there is no facility to
> > use a different canvas (spicec used to have). You can just try
> > replacing it at build time, or use a runtime selection mechanism.
> > 
> 
> Yes - thank you. I found this point before. But I was confused that
> there is no call prepared for gdi or gl near this.
> 
> Any Ideas?

Well, it's explained above: "spice-gtk only supports sw canvas atm",
"replace it at build time, or use a runtime selection".

Look at how spicec does it for inspiration, if it can help you.


More information about the Spice-devel mailing list