<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Il 14/03/2016 00:09, Fabio Fantoni ha scritto:<br>
<blockquote cite="mid:56E5F33E.8010400@m2r.biz" type="cite">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
Il 12/03/2016 23:13, Fabio Fantoni ha scritto:<br>
<blockquote cite="mid:56E49476.2000805@m2r.biz" type="cite">
<meta content="text/html; charset=utf-8"
http-equiv="Content-Type">
<br>
<br>
<div class="moz-cite-prefix">Il 10/03/2016 22:58, Yury Shvedov
ha scritto:<br>
</div>
<blockquote cite="mid:56E1EDEF.4020908@lvk.cs.msu.su"
type="cite">
<meta content="text/html; charset=utf-8"
http-equiv="Content-Type">
<br>
<div class="moz-cite-prefix">On 03/10/2016 06:04 PM, Fabio
Fantoni wrote:<br>
</div>
<blockquote cite="mid:56E18CF1.7060002@m2r.biz" type="cite">
<meta content="text/html; charset=utf-8"
http-equiv="Content-Type">
<span id="result_box" class="" lang="en"><span class="hps">In
recent</span> <span class="hps">years</span> <span
class="hps">have</span> <span class="hps">done too
little</span> <span class="hps">programming and my</span><span
class="hps"> memory is</span> <span class="hps">bad</span>
<span class="hps">lately.</span></span><br>
</blockquote>
<blockquote cite="mid:56E18CF1.7060002@m2r.biz" type="cite">
About the performance problem I remember something like a
big problem also in xspice that seems improved a lot with
deferred fps:<br>
<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="https://lists.freedesktop.org/archives/spice-devel/2012-August/010276.html">https://lists.freedesktop.org/archives/spice-devel/2012-August/010276.html</a><br>
Can be useful for this project or with wayland/weston is
possible do something similar in a different and/or better
way?<br>
</blockquote>
Of corse this is useful like all the stuff you found in the
net last time. But you chaotically offers me many different
things without any result except my "OK, I will take a look".
Because I have not much time to investigate it with you. You
are looking for the answers on your questions in the internet,
while I have a couple in the code. I see good way for the next
steps and have tried to explain them to you. I'm afraid that
you didn't understand them, so I'll try again at the bottom of
this message.<br>
After that I suggest to decide and fix what we will do next.<br>
<blockquote cite="mid:56E18CF1.7060002@m2r.biz" type="cite">
In the weekend probably I'll look better the weston code but
I not know if I'll have needed freetime and <span
id="result_box" class="short_text" lang="en"><span
class="hps">knowledge for doing something useful for the
mainly problem in a short time.</span></span><br>
</blockquote>
Maybe you better to do something in what you sure? How about
fps tests like ones in your link?<br>
</blockquote>
<br>
I did a fast test with screen-share for see if it can works also
with other compositor instead rdp but was failed and I not found
nothing in weston log about.<br>
I tried to see if was possible have weston working local normal
with drm (3d and good performance) and additionally add spice
session and after check if was possible and better add a
"deferred fps" in screen-share to limit the screen data that
spice-compositor must elaborate.<br>
I take a fast look also to qemu and xspice code trying to
understand the initial improvement to do about image processing
but seems that qemu do operation with vm qxl drivers and xspice
similar copied by it and using qxl driver.<br>
I <span id="result_box" class="short_text" lang="en"><span
class="hps">I do not know</span> <span class="hps">if</span>
<span class="hps">this is possible in other better way with
weston (</span></span><span id="result_box"
class="short_text" lang="en"><span class="hps"><span
id="result_box" class="" lang="en"><span class="hps">I
have no</span> <span class="hps">knowledge to
understand</span> <span class="hps">if it is</span> <span
class="hps">something like</span> <span class="hps">what
you mean</span> <span class="hps">about</span> <span
class="hps">making a</span> <span class="hps">spice_renderer</span></span>).<br>
</span></span><span id="result_box" class="" lang="en"><span
class="hps">Maybe tomorrow</span> <span class="hps">I will
have</span> <span class="hps">a few more hours</span> <span
class="hps">of time</span> <span class="hps">and do not
know</span> <span class="hps">whether to try</span> <span
class="hps">anyway</span> <span class="hps">to</span> <span
class="hps">add</span> <span class="hps">deferred</span> <span
class="hps">fps</span> <span class="hps">quickly from</span>
<span class="hps">xspice or looking something about weston
things you write below.<br>
</span></span></blockquote>
<br>
Unfortunately I must did other things today and I had only short
time to give another fast look to code, I did also another test (<span
id="result_box" class="short_text" lang="en"><span class="hps">to
find</span> <span class="hps">some data</span> <span
class="hps">on how is useful to proceed</span></span> without
waste time), I found high cpu usage (only one core, like one spice
<span id="result_box" class="short_text" lang="en"><span
class="hps">efficiency</span> <span class="hps">problem that</span>
<span class="hps">I had noticed</span> <span class="hps">long
ago instead weston ifself</span></span>) even if without any
spice session, then I enabled spice debug and I see input fps to
967 (with no spice session and without any screen change I
suppose), then deferred fps seems a good fast workaround to do for
start (I'll try to implement it following xspice next weekend) and
try to send only the difference (where possible) seems probably
the best thing as you said.<br>
</blockquote>
<br>
I unfortunately had short time also this weekend.<br>
I tried to search a <span id="result_box" class="short_text"
lang="en"><span class="">more efficient way to limit fps send to
spice (instead of adding another buffer like xspice) and
probably I found something about increase delay with
"wl_event_source_timer_update", I tried to increased delay set
to time_start in spice_output_start_repaint_loop function but
the fps are still up near 1000.<br>
I checked in rdp compositor and seems that delay is in
rdp_output_repaint instead of rdp_output_start_repaint_loop:<br>
"wl_event_source_timer_update(output->finish_frame_timer,
16);"<br>
I suppose that now in spice compositor there a delay only at the
loop starts and/or "b->core->timer_start
(output->wakeup_timer, 1);" in "on_wakeup" (if is this the 1
ms delay will explain the actual fps near to 1000)<br>
Can someone tell me if my </span></span><span id="result_box"
class="short_text" lang="en"><span class="">assumptions are right
and if right what is the better way to add a delay, using it for
limit fps and make it settable (for example max fps </span></span><span
id="result_box" class="short_text" lang="en"><span class=""><span
id="result_box" class="short_text" lang="en"><span class="">minimum
to 10, </span></span></span></span><span id="result_box"
class="short_text" lang="en"><span class=""><span id="result_box"
class="short_text" lang="en"><span class="">maximum</span> <span
class="">to 100 and default to 30</span></span>) without </span></span><span
id="result_box" class="short_text" lang="en"><span class="">negative
effects please?<br>
<br>
I also tried to enable a weston debug to understand something
faster and use it as help in some fast tests, I tried with a
fast google search founding only WAYLAND_DEBUG=1 but seems that
weston debug output is partial or missed, is there another way?<br>
I also found a "#define DEBUG 2" in compositor-spice-conf.h,
this I suppose should force weston debug level using spice
compositor (with COMPOSITOR_SPICE_CONF_H) but I did a grep
without finding something using it, can someone help me to
understand please?<br>
is the file </span></span><span id="result_box"
class="short_text" lang="en"><span class=""><span id="result_box"
class="short_text" lang="en"><span class="">compositor-spice-conf.h
needed or can be removed? (seem used only for change debug
and set spice compositor version but with a grep version
seems unused and I suppose if will be needed can be setted
always and in compositor-spice.c instead)<br>
<br>
For any developer </span></span></span></span><span
id="result_box" class="short_text" lang="en"><span class=""><span
id="result_box" class="short_text" lang="en"><span class=""><span
id="result_box" class="short_text" lang="en"><span>reading</span>
<span>this thread</span> <span class="">for the first
time, here the spice compositor repository:
<a class="moz-txt-link-freetext" href="https://github.com/ein-shved/compositor-spice">https://github.com/ein-shved/compositor-spice</a><br>
And here latest patch to make faster see the spice
compositor additions/changes rebased on recently weston
upstream:
<a class="moz-txt-link-freetext" href="https://github.com/Fantu/compositor-spice/commit/3a75bb84da4650dd186f3f025c3640a65600bc6d">https://github.com/Fantu/compositor-spice/commit/3a75bb84da4650dd186f3f025c3640a65600bc6d</a>
-
<a class="moz-txt-link-freetext" href="https://github.com/Fantu/compositor-spice/commits/rebase/spice-master">https://github.com/Fantu/compositor-spice/commits/rebase/spice-master</a><br>
<br>
<br>
<br>
</span></span>Thanks for any reply and sorry for my bad
english.<br>
<br>
</span></span></span></span>
<blockquote cite="mid:56E5F33E.8010400@m2r.biz" type="cite"> <br>
<blockquote cite="mid:56E49476.2000805@m2r.biz" type="cite"><span
id="result_box" class="" lang="en"><span class="hps"> <br>
</span></span><br>
<blockquote cite="mid:56E1EDEF.4020908@lvk.cs.msu.su"
type="cite">
<blockquote cite="mid:56E18CF1.7060002@m2r.biz" type="cite"> I
started to do small things fast and easy for doing something
in short time and start to watch something about weston and
this project code<br>
Things done I think/hope is still something useful because
make possible do some fast tests (I think useful for a
project in development), remote use (lan or wan) that I
think is the main goal of this project, auth (password) is
needed for at least an essential security (mainly for wan
test without vpn), image compression to make it usable on
<1gbps network <span id="result_box" class="short_text"
lang="en"><span class="hps">and not</span> <span
class="hps">throttle the</span> <span class="hps">network</span></span>,
and additional wan compressions to make it usable on wan
connections (if are not too bad) based on my spice
experience.<br>
</blockquote>
There much more ways to decrease the network usage and
increase fps except compression.<br>
<blockquote cite="mid:56E18CF1.7060002@m2r.biz" type="cite"> I
used/tried many remote access softwares, mainly for virtual
machine but not only, spice is a very good one, with high
quality but <span id="result_box" class="" lang="en"><span
class="hps">with</span> <span class="hps">efficiency</span><span
class="hps">/</span><span class="hps">latency issues</span>
<span class="hps">visible</span> <span class="hps">in
most</span> recent use <span class="hps">cases.<br>
I'm trying to help this project because seems the better
quality and full open source project I found to reach
one of my </span></span><span class="gt-baf-back
gt-baf-hl">purpose: remote access and remote assistance on
linux physical machine; one missed or bad thing on actual
linux machines and one blocking step for windows->linux
migration in many cases. There is also xspice project in </span><span
class="gt-baf-back gt-baf-hl"><span id="result_box"
class="short_text" lang="en"><span class="hps">a more
advanced state but is based on xorg that is old, </span></span></span><span
class="gt-baf-back gt-baf-hl"><span id="result_box"
class="short_text" lang="en"><span class="hps"><span
id="result_box" class="" lang="en"><span class="hps">with
less</span> <span class="hps">potential and</span>
<span class="hps">I suppose it is</span> <span
class="hps">a bad</span> <span class="hps">long-term</span>
<span class="hps">choice.<br>
</span></span></span></span></span></blockquote>
I'm appreciate your help and interest (the windows to linux
migration is really good point!) and I hope one day this
project became something we wand to see.<br>
<blockquote cite="mid:56E18CF1.7060002@m2r.biz" type="cite"><span
class="gt-baf-back gt-baf-hl"><span id="result_box"
class="short_text" lang="en"><span class="hps"><span
id="result_box" class="" lang="en"><span class="hps">
</span></span></span></span>Another thing is that 3d
hw acceration is </span><span class="gt-baf-back
gt-baf-hl"><span id="result_box" class="short_text"
lang="en"><span class="hps">increasingly necessary and
in future will be </span></span>essential for any use
(also basis) on any device (including virtual machine).
Trying to implement the better solution as possible to
have 3d hw support and improve spice </span><span
id="result_box" class="short_text" lang="en"><span
class="hps">efficiency and latency seem more easy and
fast here before instead of doing in virtual machine or
I'm wrong?<br>
</span></span></blockquote>
I'm afraid I didn't catch last sentence. What doing in virtual
machine?<br>
<br>
Returning to our main topic. How do I suppose to increase fps
and decrease network usage?<br>
The main idea is to decrease the amount of image data sended
via network. For example, we have an application window moving
on the desktop background. The bad way is to compose the whole
desktop image on each step on the server and send it to
client. But the better way is to send to client 2 images once
and tell him to change position of one of them when it is
needed. I think this example is obvious for you and you should
know that spice can perfectly handle such tasks (moving images
remotely and much more). This is the first aim I want to
achieve: to cache the per-application surface on the client
side, and left the building of final desktop image to it. <br>
This can be done by creating the spice_renderer and using it
instead of pixman_renderer for distributed painting.<br>
<br>
Another thing I want to do first is to understand, what does
the rdp-compositor do before sending the image data? The
learning how dose rdp_output_repaint and other functions works
will help us to find another one already passed way to
optimisation.<br>
<br>
What do you think? Do you have another suggestions about the
way of this spice-compositor developing?<br>
</blockquote>
<br>
<span id="result_box" class="" lang="en"><span class="hps">I'm
having</span> <span class="hps">difficulty</span> <span
class="hps">to understand</span> <span class="hps">at least
the basics</span> <span class="hps">of</span> <span
class="hps">what is need</span><span class="hps"></span>ed <span
class="hps">in a short time</span><span>, for sure</span> <span
class="hps">you know</span> <span class="hps">much more.</span><br>
<span class="hps">Maybe</span> <span class="hps">about</span>
<span class="hps">tips on what to do</span> <span class="hps">can</span>
<span class="hps">be helpful</span> <span class="hps">to post</span>
<span class="hps">the current</span> <span class="hps">draft
of the</span> <span class="hps">patch</span> <span
class="hps">as an RFC</span> <span class="hps atn">(</span><span>request
for comments</span><span>)</span> <span class="hps">on</span>
<span class="hps">wayland</span><span class="atn">-</span><span
class="">devel</span> <span class="hps">and spice</span><span
class="atn">-</span><span>devel</span> <span class="hps">and</span>
<span class="hps">probably</span> <span class="hps">some</span>
<span class="hps">expert</span> <span class="hps">developers</span>
<span class="hps">about</span> <span class="hps">them</span>
<span class="hps">can</span> <span class="hps">fastly</span>
<span class="hps">give</span> <span class="hps">some</span> <span
class="hps">advices.<br>
I did the same with other things </span></span><span
id="result_box" class="" lang="en"><span class="hps">and they
gave me</span> <span class="hps">useful information to</span>
<span class="hps">make fast</span> <span class="hps">patches</span>
<span class="hps">I needed</span> <span class="hps">analyzing</span>
<span class="hps">a few specific</span> <span class="hps">things</span>
<span class="hps">instead of</span> <span class="hps">read</span><span
class="hps">/</span><span class="hps">understand</span> <span
class="hps">all the code</span> <span class="hps">of</span>
<span class="hps">large pieces. Probably also with this can be
useful to understand something useful I can do </span></span><span
id="result_box" class="" lang="en"><span class="hps"><span
id="result_box" class="short_text" lang="en"><span
class="hps">the first</span> <span class="hps">weekends
instead spent all time to learn, but if learn many
things before is really needed I'll try to do it. </span></span></span></span><span
id="result_box" class="" lang="en"><span class="hps"><span
id="result_box" class="short_text" lang="en"><span
class="hps"><span id="result_box" class="" lang="en"><span
class="hps">It seems that</span> <span class="hps">unfortunately</span>
<span class="hps">I'm no longer</span> <span
class="hps">quick to</span> <span class="hps">learn/</span><span
class="hps">understand</span> <span class="hps">as
I did</span> <span class="hps">years ago (</span></span></span></span></span></span><span
id="result_box" class="" lang="en"><span class="hps"><span
id="result_box" class="short_text" lang="en"><span
class="hps"><span id="result_box" class="" lang="en"><span
class="hps"><span id="result_box" class="" lang="en"><span
class="hps"><span id="result_box" class=""
lang="en"><span class="hps">years ago</span> <span
class="hps">unfortunately</span></span>,
however,</span> <span class="hps">I wasted</span>
<span class="hps">thousands of</span> <span
class="hps">hours</span> <span class="hps">with</span>
<span class="hps">unnecessary</span> <span
class="hps">proprietary projects instead</span></span>)</span></span></span></span></span></span>
:(<span id="result_box" class="" lang="en"><span class="hps"><span
id="result_box" class="short_text" lang="en"><span
class="hps"><br>
<br>
Thanks for any reply and sorry for my bad english.<br>
<br>
</span></span></span></span>
<blockquote cite="mid:56E1EDEF.4020908@lvk.cs.msu.su"
type="cite"> <br>
<pre class="moz-signature" cols="72">Kind regards
Yury Shvedov</pre>
</blockquote>
<br>
</blockquote>
<br>
</blockquote>
<br>
</body>
</html>