Questions about experimental Spice compositor rebase

Fabio Fantoni fabio.fantoni at
Sun Mar 6 21:12:31 UTC 2016

Il 06/03/2016 13:25, Yury Shvedov ha scritto:
> Hi, Fabio!
> I made 3 new commits. First one updates code to work with new Spice 
> API. Here, as I think, must be Spice version check if for example in 
> Debian 8 it less than 0.11.

Debian 8 have spice-server 0.12.5, debian 7 with backports have 0.12.4, 
in any case is good added a check in configure for minimum required 
version, I did a commit with >=0.11.2 check based on your api update, 
from a fast look I didn't saw newer api. Other optional cases (like lz4) 
is/will be with define.
Spice compositor differently from rdp one now should support some stable 
versions. This I think is good to avoid rdp compositor problem that make 
it after some years still unable in some major distros: (was blocked by 
814676 - update freerdp)
There are other cases that make the maintainer of solid distributions 
refractory to support it.

> Second one is regarding your remarks. I hurried too much with editing 
> your commits. I'm sorry. So I left your logic but in another stile. I 
> used "int compression" to handle invalid data. But than found 
> SPICE_IMAGE_COMPRESS_INVALID value and changed the variable type back 
> to spice_image_compression_t. I think this part is OK now, but if you 
> have something to say or change there, fill free to do it =)

Thanks, seems very good, in wan compression options case is also better 
having specific error message on each option.
I did some commits:
Can you cherry-pick since after "Add Spice compositor" if are ok for you.
About the wan compression patch I did it very fast and I only checked 
build (success) but I not tested it and is possible that have error or 
unexpected cases doing it fast, I'll try to do other tests now if I 
haveenough time but I'm not sure.

> Third - I remove some rubbish like dprint from my old code. But I'm 
> afraid, there still much to do in this sphere. Will be perfect if you 
> make the revue, but not now - we have more important things to do.
> For example, next I'm going to read the code of compositor-rdp much 
> closely to understand how it works. This needed to know did we miss 
> something.
> The second thing after that - is to render the screen on the client 
> side. Now whole images composed on the server and sent fully to the 
> client.

If will be possible do rendering and image "difference" with opengl (or 
probably better also with vulkan) I think can be very useful.
Spice developers added recently spice-egl for support rendering of vm 
using virgl with 3d but now is only local.
For remote I don't know if there is something in progress.
I thinked about better possibility to solve improve latency/efficiency 
doing all directly with opengl or vulkan (with vk should be possible 
better manage resources) do directly texture compressed (to avoid some 
software steps in that I fear most are the leading cause of latency and 
inefficiency), I saw bc7 that seems to have high quality, alpha support 
and is mandatory in vulkan but probably still requires too much bandwidth.
Alternative with streaming with lossy codec like gstreamer project in 
development (I already tested in vm) seems too many greedy of resources 
and with too many latency.
So I do not know if my idea can be implemented in practice or is just 
I have too little knowledge to better evaluate.

I suppose start look rdp and trying to improve generic solution 
compatible also without hardware acceleration (to keep it usable for all 
users/cases) is a good/fast thing to do initially as what seems you want 
already do, after we'll think about utopian things.
Another thing to look interesting is screen sharing plugin now usable 
only with rdp, if will be possible add spice support easy/fast probably 
will be good but I not looked its code for now. (I suppose can be very 
useful for user remote assistance thing like teamviewer, I suppose that 
this with spice full features will be better that teamviewer and similar)

> By the way! Thank you again for your help! =)
> P.S. What did you learn about vdagent?

Is very useful (required for mouse client mode, clipboard copy, file 
transfert, ecc...)
I saw the difference for example in xen when now pv domUs can't support 
it and is remarkable.
It is already implemented in xspice but with a fast look seems have xorg 
specific things.
I didn't investigated in detail for now.

Sorry for my bad english.

> Kind regards
> Yury Shvedov
> On 03/04/2016 04:29 PM, Fabio Fantoni wrote:
>> Thanks, another thing I saw only now:
>> "int compression;" I think should return "spice_image_compression_t 
>> compression;" for the better definition. If I'm not wrong (I not 
>> remember for sure) without it the default (compression = 
>> SPICE_IMAGE_COMPRESS_AUTO_GLZ;) will not works correctly.
>> Tomorrow I'll probably added other things, if you did/do something 
>> commit it, to avoid risk of waste time on same part. I'll try to add 
>> and test other compression types and basic authentication. I take a 
>> look to add vdagent support fast/easy from xspice but seems that 
>> there are things xorg specific that I think will be a problem. 
>> Probably it will require changes in upstream "spice/linux/vd_agent" 
>> before trying to use it here.
>> Sorry for my bad english.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the wayland-devel mailing list