On 9/1/11 3:34 AM, Pierre Ossman wrote:
>> I don't follow.  ALR is only ever relevant for one frame at a time.  It
>> won't ever be sent unless the connection is completely idle for a
>> specified period of time, so it can't be sent on multiple frames because
>> there aren't multiple frames for it to piggyback on-- the connection is
>> idle.  Also, that means that no one is "waiting" on ALR.
>>
>
> It doesn't need to piggyback. It could generate its own
> framebuffer updates.

Yes, but I still don't understand why you would want to send multiple 
updates for a single ALR.


>> Arguing hypotheticals on the ALR feature serves no purpose.  It is
>> already out in the field right now, people are using it actively, and it
>> can easily be tested by you and others.  Why not just test it and see
>> how it currently behaves, then give more targeted feedback about its
>> behavior?
>
> This wasn't meant as criticism. I think the ALR feature is an awesome
> improvement. I was just trying to toss up ideas for improving things
> further. :)

I didn't take it as criticism.  I'm just having trouble understanding 
exactly what you're proposing vis-a-vis improving it.


> There is nothing more "official" about this extension than anything we
> can come up with. It's not widely implemented, or even properly
> documented.
>
> It works as a proof of concept, but I don't believe the remaining
> issues can be solved without changing the protocol. So we need a new
> extension anyway.

What remaining issues?


> We don't need to discuss this further right now. I intend to focus on
> this area for the next months. We can resume this when I have something
> more substantial to show.

We do need to discuss this further, because Cendio is paying me to look 
at this problem as well.  If you're going to go off and re-design the 
whole VNC protocol, the rest of the project contributors need to be in 
the loop.


>> So you really think that *any* feature can be implemented without some
>> bugs creeping in?  Since I'm the one likely to be developing the code,
>> why don't you just let me develop it in the way I'm most comfortable?
>
> For the same reason you object to our changes now and then. It causes
> maintenance problems for all of us. Threads are particularly devious at
> this as the concurrency issues often creep into the entire program, and
> not just the section that needed the threads.

My practical experience with the multi-threaded encoder in TurboVNC does 
not bear this out.  In fact, what it bears out is the fact that you need 
to keep the parallel compression threads running for the duration of the 
connection in order to avoid the overhead of creating/destroying them 
for each rectangle that is encoded.  Based on my previous experience 
with OpenMP, I don't think it can do that.  I'm pretty sure it spawns 
threads as needed.


>> I am not proposing to directly port the code from TurboVNC-- such would be
>> impossible, since it's written in C and TigerVNC is written in C++.  I
>> will create a thread wrapper class, of course, so that the resulting
>> code will be easy to maintain.
>
> I have yet to see thread code that doesn't incur a maintenance
> overhead. So colour me sceptical.

I have yet to see OpenMP code that doesn't incur a larger maintenance 
overhead.  The more you abstract things, the more difficult it often 
becomes to diagnose performance issues.

------------------------------------------------------------------------------
Special Offer -- Download ArcSight Logger for FREE!
Finally, a world-class log management solution at an even better 
price-free! And you'll get a free "Love Thy Logs" t-shirt when you
download Logger. Secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsisghtdev2dev
_______________________________________________
Tigervnc-devel mailing list
Tigervnc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tigervnc-devel

Reply via email to