From: Anthony Liguori <anthony@codemonkey.ws>
To: xen-devel@lists.xensource.com
Subject: Re: [PATCH 2/2] Virtual frame buffer: user space backend
Date: Fri, 07 Jul 2006 20:49:50 -0500 [thread overview]
Message-ID: <pan.2006.07.08.01.49.49.657743@codemonkey.ws> (raw)
In-Reply-To: 3d8eece20607071810g6b03cf2ah5682320fbea00673@mail.gmail.com
On Sat, 08 Jul 2006 02:10:09 +0100, Christian Limpach wrote:
>> I know, I added support for it. It was really painful to get right too
>> since the vga memory has to be flushed before the copyrect occurs (and
>> the system has to disallow more writes until the copyrect completes).
>
> Indeed, it was actually still a bit broken, relying on being able to send
> updates to the client even when the client hadn't requested an update yet.
> Also the case where the source or destination rects are not within the
> client's area is not really handled.
Actually, neither is really a problem. The VNC protocol does not specify
which FramebufferUpdates correspond to which FramebufferUpdateRequests.
There is a nasty race condition present in the VNC protocol related to
this caused by SetPixelFormat.
>> It's going to be even more painful in Xen since the cost of that
>> serialization is going to be greater.
>
> We thought we could pass the copyrect information as a hint and then only
> vnc-copyrect the areas which are still intact.
Yeah, I'm not convinced this will work all that well. The most common
CopyRect is window dragging. For X, the whole window is moved at once.
Under Windows, the window is broken into smaller rectangles and each are
moved individually. Because CopyRects always come in groups, and tend to
overlap, things get pretty nasty quickly. Plus, Windows tends to redraw
the border of a Window when it moves so depending on when you check,
things can be way off.
That's not to say that it won't work for some cases. A framebuffer
protocol is just a whole lot more deterministic.
>> >> Instead of switching bitmaps, why not just have the backend and
>> >> frontend share a bitmap and do atomic get/sets on it?
>> >
>> > Because we'd like to avoid atomic operations.
>>
>> Why? That seems odd to me.
>
> They're expensive on SMP systems?
Are they that expensive compared to what else is going on here? We're
talking about updates that occur at rather coarse granularities (10-15
times a second). Seems like the cost wouldn't make much of a difference.
> Not sure, it could be an option. Might as well use VNC as the protocol
> then?
Perhaps. VNC is a little rough around the edges (things like the
SetPixelFormat race are a real pain). Would be nice to have something
that supported more advanced features though like YUV overlays.
Regards,
Anthony Liguori
> christian
next prev parent reply other threads:[~2006-07-08 1:49 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-26 13:38 [PATCH 0/2] Virtual frame buffer Markus Armbruster
2006-06-26 13:39 ` [PATCH 1/2] Virtual frame buffer: frontend Markus Armbruster
2006-07-07 7:18 ` Markus Armbruster
2006-07-07 16:45 ` Christian Limpach
2006-07-10 7:37 ` Markus Armbruster
2006-07-10 10:57 ` Christian Limpach
2006-07-10 18:29 ` Markus Armbruster
2006-07-26 20:28 ` Christian Limpach
2006-07-27 5:11 ` Markus Armbruster
2006-07-27 7:26 ` Gerd Hoffmann
2006-08-04 8:00 ` Markus Armbruster
2006-08-04 8:34 ` Christian Limpach
2006-07-28 13:52 ` Laurent Vivier
2006-08-04 7:54 ` Markus Armbruster
2006-06-26 13:40 ` [PATCH 2/2] Virtual frame buffer: user space backend Markus Armbruster
2006-07-07 7:18 ` Markus Armbruster
2006-07-28 15:55 ` Laurent Vivier
2006-08-04 7:57 ` Markus Armbruster
2006-07-07 16:57 ` Christian Limpach
2006-07-07 17:31 ` Anthony Liguori
2006-07-07 18:33 ` Christian Limpach
2006-07-07 18:50 ` Anthony Liguori
2006-07-07 22:50 ` Christian Limpach
2006-07-07 23:05 ` Anthony Liguori
2006-07-08 1:10 ` Christian Limpach
2006-07-08 1:49 ` Anthony Liguori [this message]
2006-07-08 10:20 ` Christian Limpach
2006-07-08 0:35 ` Rik van Riel
2006-07-08 1:38 ` Christian Limpach
2006-07-10 7:37 ` Markus Armbruster
2006-07-10 18:29 ` Markus Armbruster
2006-07-07 7:17 ` [PATCH 0/2] Virtual frame buffer Markus Armbruster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pan.2006.07.08.01.49.49.657743@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.