qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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

  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).