From: Anthony Liguori <anthony@codemonkey.ws>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 3 of 7] [UPDATE] DisplayState interface change
Date: Tue, 02 Dec 2008 13:31:14 -0600 [thread overview]
Message-ID: <49358D02.3090703@codemonkey.ws> (raw)
In-Reply-To: <492D8BB1.8040306@eu.citrix.com>
Stefano Stabellini wrote:
> This patch changes the DisplayState interface adding support for
> multiple frontends at the same time (sdl and vnc) and implements most
> of the benefit of the shared_buf patch without the added complexity.
>
> Currently DisplayState is managed by sdl (or vnc) and sdl (or vnc) is
> also responsible for allocating the data and setting the depth.
> Vga.c (or another backend) will do any necessary conversion.
>
> The idea is to change it so that is vga.c (or another backend) together
> with console.c that fully manage the DisplayState interface allocating
> data and setting the depth (either 16 or 32 bit, if the guest uses a
> different resolution or is in text mode, vga.c (or another backend) is
> in charge of doing the conversion seamlessly).
>
> The other idea is that DisplayState supports *multiple* frontends
> like sdl and vnc; each of them can register some callbacks to be called
> when a display event occurs.
>
> The interesting changes are:
>
> - the new structures and related functions in console.h and console.c
>
> in particular the following functions are very helpful to manage a
> DisplaySurface:
>
> qemu_createDisplaySurface
> qemu_resizeDisplaySurface
> qemu_createDisplaySurfaceFrom
> qemu_freeDisplaySurface
>
These names suck. Please change them to something more in line with the
rest of the code.
> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
>
> ---
> diff -r f1fd23dcd333 hw/cirrus_vga.c
> --- a/hw/cirrus_vga.c Tue Nov 25 12:28:31 2008 +0000
> +++ b/hw/cirrus_vga.c Wed Nov 26 11:43:17 2008 +0000
> @@ -789,22 +789,16 @@
> if (BLTUNSAFE(s))
> return 0;
>
> - if (s->ds->dpy_copy) {
> - cirrus_do_copy(s, s->cirrus_blt_dstaddr - s->start_addr,
> - s->cirrus_blt_srcaddr - s->start_addr,
> - s->cirrus_blt_width, s->cirrus_blt_height);
> - } else {
> - (*s->cirrus_rop) (s, s->vram_ptr +
> - (s->cirrus_blt_dstaddr & s->cirrus_addr_mask),
> - s->vram_ptr +
> - (s->cirrus_blt_srcaddr & s->cirrus_addr_mask),
> - s->cirrus_blt_dstpitch, s->cirrus_blt_srcpitch,
> - s->cirrus_blt_width, s->cirrus_blt_height);
> + (*s->cirrus_rop) (s, s->vram_ptr +
> + (s->cirrus_blt_dstaddr & s->cirrus_addr_mask),
> + s->vram_ptr +
> + (s->cirrus_blt_srcaddr & s->cirrus_addr_mask),
> + s->cirrus_blt_dstpitch, s->cirrus_blt_srcpitch,
> + s->cirrus_blt_width, s->cirrus_blt_height);
>
You've eliminated the dpy_copy optimization? This is extremely
important for VNC.
Regards,
Anthony Liguori
next prev parent reply other threads:[~2008-12-02 19:31 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-26 17:47 [Qemu-devel] [PATCH 3 of 7] [UPDATE] DisplayState interface change Stefano Stabellini
2008-12-02 19:31 ` Anthony Liguori [this message]
2008-12-11 11:28 ` Stefano Stabellini
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=49358D02.3090703@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=qemu-devel@nongnu.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).