qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Izik Eidus <ieidus@redhat.com>
To: Alexander Graf <agraf@suse.de>
Cc: Yaniv Kamay <ykamay@redhat.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Spice project is now open
Date: Sat, 12 Dec 2009 00:46:35 +0200	[thread overview]
Message-ID: <20091212004635.0b57a8c0@redhat.com> (raw)
In-Reply-To: <8BF07900-1F21-4E1C-AFC7-FF9CC47525A3@suse.de>

On Fri, 11 Dec 2009 23:08:01 +0100
Alexander Graf <agraf@suse.de> wrote:

> 
> On 11.12.2009, at 22:13, Izik Eidus wrote:
> 
> > On Fri, 11 Dec 2009 14:46:55 -0600
> > Anthony Liguori <anthony@codemonkey.ws> wrote:
> > 
> >> Izik Eidus wrote:
> >>> I personaly dont like mjpeg, and yes in the end of the day you can
> >>> add the video streaming into vnc, but what is the point here?
> >>> 
> >> 
> >> What I'm trying to understand is, what can we do with Spice that
> >> we couldn't possibly do with vnc.  That means understanding each
> >> feature and then figuring out if there's a vnc analog.
> >> 
> >> If there are compellingly unique features to Spice that can't be 
> >> duplicated in vnc, then it's a no brainer.  If you can do most
> >> things in vnc but it would be hackish whereas Spice makes it all
> >> elegant, then provided we can merge Spice without a huge amount of
> >> pain, then it's a net win.
> >> 
> >> However, if we need to make a few changes to vnc in order to get
> >> the same performance as Spice, then it's not quite as clear that
> >> it's what we should be using.
> >> 
> >> We're talking about a major change here.  There is a ton of
> >> management software that assumes vnc today.  Even though there are
> >> Spice clients out there, there are embedded vnc clients in certain
> >> tools today along with java applets.
> >> 
> >> That's not to say we shouldn't embrace Spice, we just have to make
> >> sure we have a good reason to.
> > 
> > Ok, I understand your concerns.
> > 
> > But even though that spice and vnc achive in the end of the day the
> > same thing - they both allow remote rendering, they have fendumental
> > diffrent architacture.
> > 
> > Spice server work with a ring to the guest, it was build from day
> > one to work like that, In addition it was built from day one so
> > that the server will render only what it must to render (to allow
> > much higher virtualization denticity).
> 
> The ring is from qemu <-> guest, right? I mean, qemu <-> client would
> be a TCP transport anyways, so the ring argument is void.


Beside the fact that we dont have the network overhead...

> 
> > Just to make clear how much spice is diffrence from VNC is by the
> > fact that only the library itself (not including the drivers) have
> > 128,277 lines of code inside it. (In my old qemu repo i see almost
> > 600,000 lines for qemu) so this should give better prespective on
> > how much spice is diffrent from vnc.
> > 
> > So ofcurse in theory you can take all this 128,000 lines and push
> > them into qemu-vnc.c ?, but you got to remember that spice is not
> > just specific qemu thing, Spice should be used to work on physical
> > machines too, just cutting all this lines of code from spice and
> > throw it into qemu-vnc.c will be meaning a fork of spice inside
> > qemu....
> 
> I definitely understand your point of having a single protocol. The
> good news is that your physical machine stuff isn't released yet
> (AFAIK), so luckily there's still time to change parts of the
> protocol :-).
> 
> > It isnt just the rings and the rendering style that make spice
> > diffrence, it is the channels it have for each compoment, it is the
> > multiple drawing surfaces, and so on...
> 
> These should be fairly easy to implement in VNC too. In fact, I
> remember a project implementing off-screen drawing in VNC using a
> larger region of the screen than what was visible and then copyrect
> them in.

In theory you can even change the whole of VNC into SPICE or the whole
of VI into EMACS, so???, I personaly think changing code isnt the
problem, the problem is always the desgien, and SPICE have fandumental
diffrent desgien than VNC, (Here you can say: OK I can make my VNC
desgien like SPICE, or you can say I think SPICE dsgien is bad, or you
can just use SPICE...)

> 
> > This why the VDI interfaces were made, it was made so who ever used
> > VNC, can still use it, whoever want to use SPICE can still use
> > spice,
> > 
> > By merging SPICE you just merge VDI interfaces, not the library
> > itself, it is so self contained thanks to the VDI interfaces, that
> > it almost dont touch anything inside qemu, I belive this was one of
> > the best aurgoments when Avi pushed kvm into the kernel - the fact
> > that it was a module that can be easyly removed if ppl dont want to
> > use it. 
> > 
> > 
> >> 
> >>> We acctuly want to kick away that video streaming, and move into
> >>> the DirectX and X video extentions video support (that will be
> >>> made using the qxl driver) - will give much better performence.
> >>> 
> >> 
> >> Okay, I suspect we're in agreement here then.
> > 
> > Thanks God ! ;-)
> > 
> > 
> >> 
> >>>> By the time we get to video memory, the display server has
> >>>> already straightened out what portions of the screen are visible
> >>>> and what aren't.  It will not render a hidden window and then
> >>>> render another window on top of it.
> >>>> 
> >>> 
> >>> I dont understand, if you have applciation that draw Rectangle,
> >>> and just another Rectanlge on top of it, wont it hide it?, doesnt
> >>> we want just to send the newest Rectangle?
> >>> 
> >> 
> >> If you're using something like gdk, the toolkit double buffers
> >> windows by default and does a single flip on expose.  So this sort
> >> of thing never makes it way to the X server.  But the other point
> >> is, if you draw a rectangle with gdk, all the X server ever sees
> >> is the drawing of an image.
> > 
> > Spice work on the driver primitives it doesnt know what is GDK, if
> > the X driver will draw rectangle and then another rectangle, VNC
> > will have to draw it twice, spice not.
> 
> Well, in fact VNC would wait for the refresh timer of the VGA
> framebuffer dirty thing and only send a single update too.

Yes but what will happen if you run vnc using paravirtual device?

> 
> But Anthony's point was that rectangle drawing isn't used anymore.
> Instead gtk/qt just draw it themselves and tell the X driver "here's
> an image".


And what about 3D ? or Xrender operations such as composing ?
(streching)?



> 
> Alex

  parent reply	other threads:[~2009-12-11 22:46 UTC|newest]

Thread overview: 128+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1072764996.1548651260538641101.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com>
2009-12-11 13:45 ` [Qemu-devel] Spice project is now open Yaniv Kamay
2009-12-11 14:03   ` Jun Koi
2009-12-11 14:17     ` Yaniv Kamay
2009-12-11 14:09   ` Alexander Graf
2009-12-11 14:28     ` Jun Koi
2009-12-11 16:34       ` Anthony Liguori
2009-12-11 16:52         ` Chris Wright
2009-12-11 17:01           ` Anthony Liguori
2009-12-11 17:31             ` Chris Wright
2009-12-11 17:02         ` Yaniv Kamay
2009-12-11 17:16           ` Anthony Liguori
2009-12-11 17:21             ` Alexander Graf
2009-12-11 17:28               ` Anthony Liguori
2009-12-11 17:18           ` Alexander Graf
2009-12-11 18:49           ` Glauber Costa
2009-12-11 15:57   ` Anthony Liguori
2009-12-11 16:47     ` Yaniv Kamay
2009-12-11 16:57       ` Chris Wright
2009-12-11 17:00       ` Anthony Liguori
2009-12-11 17:38         ` Johannes Schindelin
2009-12-11 18:48     ` Izik Eidus
2009-12-11 18:57       ` Ben Taylor
2009-12-11 19:06         ` Izik Eidus
2009-12-11 19:09         ` Glauber Costa
2009-12-11 19:00       ` Izik Eidus
2009-12-11 19:06         ` Anthony Liguori
2009-12-11 19:22           ` Izik Eidus
2009-12-11 19:37             ` Glauber Costa
2009-12-11 19:07         ` Glauber Costa
2009-12-11 19:24           ` Izik Eidus
2010-01-23 23:39           ` Izik Eidus
2009-12-11 19:03       ` malc
2009-12-11 19:10         ` Izik Eidus
2009-12-11 19:24           ` malc
2009-12-11 19:33             ` Izik Eidus
2009-12-11 19:53               ` malc
2009-12-11 20:26                 ` Izik Eidus
2009-12-13 11:11                   ` Izik Eidus
2009-12-11 19:04       ` Anthony Liguori
2009-12-11 19:15         ` Glauber Costa
2009-12-11 19:25           ` Izik Eidus
2009-12-11 19:42           ` Chris Wright
2009-12-11 19:21         ` Izik Eidus
2009-12-11 19:30           ` Anthony Liguori
2009-12-11 19:39             ` Izik Eidus
2009-12-11 19:51               ` Anthony Liguori
2009-12-11 20:21                 ` Izik Eidus
2009-12-11 20:46                   ` Anthony Liguori
2009-12-11 21:13                     ` Izik Eidus
2009-12-11 21:54                       ` Anthony Liguori
2009-12-11 22:34                         ` Izik Eidus
2009-12-12  0:54                         ` [Qemu-devel] " Paolo Bonzini
2009-12-12  3:34                           ` Anthony Liguori
2009-12-12  9:14                             ` Paolo Bonzini
2009-12-12 15:11                               ` Anthony Liguori
2009-12-12 16:09                                 ` Avi Kivity
2009-12-12 17:28                                   ` Anthony Liguori
2009-12-13 10:18                                     ` Avi Kivity
2009-12-11 22:08                       ` [Qemu-devel] " Alexander Graf
2009-12-11 22:33                         ` Dor Laor
2009-12-11 22:46                         ` Izik Eidus [this message]
2009-12-11 23:54                           ` Alexander Graf
2009-12-12  0:14                             ` Izik Eidus
2009-12-12  0:27                               ` Alexander Graf
2009-12-12  0:53                                 ` Izik Eidus
2009-12-12  1:08                                   ` Alexander Graf
2009-12-12  1:33                                     ` Izik Eidus
2009-12-11 23:58                           ` [Qemu-devel] X support for QXL and SPICE Soeren Sandmann
2009-12-12  0:05                             ` [Qemu-devel] " Alexander Graf
2009-12-12  0:31                               ` Izik Eidus
2009-12-12  0:37                                 ` Alexander Graf
2009-12-12  0:08                             ` Izik Eidus
2009-12-12  3:31                             ` [Qemu-devel] " Anthony Liguori
2009-12-12  3:52                               ` Izik Eidus
2009-12-12 15:13                                 ` Anthony Liguori
2009-12-12 15:29                                   ` Izik Eidus
2009-12-12 15:43                                     ` Alexander Graf
2009-12-12 16:01                                       ` Izik Eidus
2009-12-12  6:22                               ` Dave Airlie
2009-12-12 16:39                               ` Soeren Sandmann
2009-12-14 14:07                             ` Gerd Hoffmann
2009-12-14 13:56                         ` [Qemu-devel] Spice project is now open Gerd Hoffmann
2009-12-14 14:33                           ` Anthony Liguori
2009-12-11 20:32                 ` Izik Eidus
2009-12-11 20:48                   ` Anthony Liguori
2009-12-11 21:31                     ` Izik Eidus
2009-12-11 21:58                       ` Anthony Liguori
2009-12-11 22:55                         ` Chris Wright
2009-12-12  3:27                           ` Anthony Liguori
2009-12-12  1:03                         ` [Qemu-devel] " Paolo Bonzini
2009-12-12  3:44                           ` Anthony Liguori
2009-12-12 14:44                             ` Andrea Arcangeli
2009-12-12 15:03                               ` Anthony Liguori
2009-12-12 16:06                                 ` Andrea Arcangeli
2009-12-12 17:40                                   ` Anthony Liguori
2009-12-12 17:48                                     ` Izik Eidus
2009-12-12 19:26                                       ` Anthony Liguori
2009-12-12 19:48                                         ` Izik Eidus
2009-12-12 22:41                                           ` Dor Laor
2009-12-12 22:35                                     ` Dor Laor
2009-12-12 23:46                                       ` Anthony Liguori
2009-12-13  0:23                                         ` Daniel P. Berrange
2009-12-13 10:46                                         ` Avi Kivity
2009-12-14 14:42                                           ` Anthony Liguori
2009-12-14 14:53                                             ` Avi Kivity
2009-12-14 15:17                                               ` Daniel P. Berrange
2009-12-14 15:21                                                 ` Avi Kivity
2009-12-14 15:46                                                   ` Anthony Liguori
2009-12-14 15:10                                             ` Daniel P. Berrange
2009-12-14 15:50                                               ` Anthony Liguori
2009-12-14 16:00                                               ` Avi Kivity
2009-12-14 16:15                                                 ` Anthony Liguori
2009-12-14 17:52                                               ` Mark McLoughlin
2009-12-13 14:56                                         ` Gildas Le Nadan
2009-12-14 14:40                                       ` Gerd Hoffmann
2009-12-14 14:50                                         ` Anthony Liguori
2009-12-12 23:43                                     ` Andrea Arcangeli
2009-12-12 23:52                                       ` Anthony Liguori
2009-12-13  0:04                                         ` Andrea Arcangeli
2009-12-13  0:18                                           ` Anthony Liguori
2009-12-13  9:10                                             ` Izik Eidus
2009-12-15 13:25                                         ` Soeren Sandmann
2009-12-11 19:25         ` [Qemu-devel] " Mark McLoughlin
2009-12-11 19:38           ` Anthony Liguori
2009-12-11 19:45             ` Mark McLoughlin
2009-12-11 19:53               ` Anthony Liguori
     [not found] <1743803977.1552241260541384099.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com>
2009-12-11 14:23 ` Yaniv Kamay
     [not found] <232864779.1569611260551125791.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com>
2009-12-11 17:07 ` Yaniv Kamay

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=20091212004635.0b57a8c0@redhat.com \
    --to=ieidus@redhat.com \
    --cc=agraf@suse.de \
    --cc=qemu-devel@nongnu.org \
    --cc=ykamay@redhat.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 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).