[Spice-devel] Passed trough video card screen access

Alon Levy alevy at redhat.com
Fri Aug 24 02:25:17 PDT 2012



----- Original Message -----
> > That would work, but would not use most of the spice protocol.
> 
> Most of the SPICE protocol is not needed. Main objective for Windows
> SPICE-server is pass only framebuffer to SPICE-client, other
> features can be recieved from a hypervisor connection (sound,
> usb-redirection, keyboard & mouse input).
> 
> Only video compression features are needed. If this features are can
> be realised in Windows, we can start.

Oh, it's realized in the server, not in the guest, so it already does work for any guest, linux or windows. Successive opaque updates to the same large enough rectangle result in creation of a mjpeg video stream.

> 
> In far future SPICE-client video compression control is can be added
> to configure video compression behavior in real time.

Video compression is already there, what is missing is better codecs. But those require too much cpu for realtime or a hardware encoder (like some smartphones have, or some graphics cards probably - I'm not sure which and what codecs are supported. This would limit host/client pairing, or require us to have all the decoders in software on the client side - probably that).

> 
> > Well, if you are a developer and what to get your hands dirty, I'll
> > be
> > happy to help you rectify the situation. We would very much like to
> > see
> > both support for offloading to a local (host side) gpu, either via
> > passthrough or from the host side with a virtual gpu in the guest,
> > and
> > transfering the resulting rendered stream to a spice client.
> 
> I am a software reseller, web-developer & researcher. I don't have
> enough coding skills but i can offer ideas and perform manual
> testing on my testing platform [http://umvirt.ru/node/69] in free
> time.

ok, I'll pass it through google translate :)

> 
> I offer to create paid features section on SPICE project site to
> receive enough donations to invite a qualified Windows developer.
> Many users that can't buy RHEV, can make donation but there are no
> information.

Well, it's an open source project, anyone can donate code. But I can't say it's a bad idea - I guess it doesn't really need cooperation from any developers really, except in so much as reviewing and taking the patches when they land. There is already a list of features that we want to have, it's a mile long, search the wiki for features.

> 
> Also you can make paid certification of devices which can passed to
> vms ("RHEV compatible"). Like do Microsoft & VMware ("Windows
> compatible", "VMWare compatible").

Well, I guess that's another idea - I don't think we really need to certify anything, also we don't have a certification process to speak of.

I'll pass along your ideas, maybe someone in our management will like them :)

> 
> 24.08.2012, 00:21, "Alon Levy" <alevy at redhat.com>:
> > On Thu, Aug 23, 2012 at 11:26:21PM +1000, Boris Morozov wrote:
> >
> >>>  In the setup you describe windows guest should show two cards,
> >>>  qxl and the hardware. Does it?
> >>  Yes it does, there are two video cards. But only one of them can
> >>  be in active state in Windows 7. On Windows XP all two cards are
> >>  active and can work together (but short time and then system
> >>  goes hang or goes to BSOD).
> >
> > Oh, right - because our driver is the old XDDM :(
> >
> >>>  I wonder if there is a clone option at that point, and what it
> >>>  actually does. If it would copy the rendered content of the
> >>>  hardware card to the framebuffer of spice you would at least
> >>>  get something on the client.
> >>  The clone option is don't work beetween virtual and passed video
> >>  cards. I can clone only one output to other (dvi & d-sub ports)
> >>  of passed video card.
> >
> > Yeah, it would only work for devices managed by the same driver
> > under
> > WDDM, and I guess the ati driver is WDDM.
> >
> >>>  If it would copy the rendered content of the hardware card to
> >>>  the framebuffer of spice you would at least get something on
> >>>  the client. But it would probably be streamed in mjpeg if so.
> >>  There no way. Only VNC. And even if clone option were allowed
> >>  cloning frame buffer from real video card to virtual one, that
> >>  emulated by cpu, the host system perfomance may be reduced and
> >>  do the impact on perfomance of other vms running on it.
> >>  Especially when running games and movies.
> >>
> >>  Microsoft Hyper-V hypervisor is not try to emulate video card
> >>  when RemoteFX adapter is enabled. Standalone RDP-server which
> >>  installed in guest is used to serve remote connections.
> >>
> >>  May be better way is to write standalone SPICE-server application
> >>  for Windows (only display) like VNC one against writing
> >>  framebuffer redirection support in qemu & spice.
> >
> > Yes, that would work - there is the mirror driver as an example.
> > But the
> > only problem is that as opposed to Xspice, you cannot link the
> > windows
> > XDDM driver to spice server library. So you would have to use some
> > ipc
> > between a server process and the driver.
> >
> >>  I offer the idea of writing short SPICE-server application which
> >>  only grab framebuffer from video card and pass it content to
> >>  client.
> >
> > That would work, but would not use most of the spice protocol.
> >
> >>  SPICE-client that connected to hypervisor in common way after
> >>  loading Windows perform connection to guest's SPICE-server, and
> >>  perform changing default screen (vga, cirrus, qxl, vmvga) to
> >>  passed vga screen.
> >>
> >>  I perform test of SPICE client after passing vga card it screen
> >>  is not work but other features are works.
> >>
> >>  In future compression of framebuffer can be improved by using GPU
> >>  or hardware encoders like VmWare do. Because SPICE protocol is
> >>  open, hardware vendors can help to made complex offload solution
> >>  look like as Teradici APEX 2800
> >>  [http://www.teradici.com/pcoip-solutions/server-offload-solutions/where-to-buy-apex-2800.php]
> >>  but for SPICE against PCoIP.
> >>>  Never tried pci passthrough.
> >>  It is cheap and quite simply. I use KVM package from Fedora
> >>  recompiled to Ubuntu without applying extra patches all works
> >>  fine except that host hangs after guest shutdown some times. I
> >>  think this bug will be fixed soon.
> >>
> >>  P.S.: I like RHEV & SPICE-because it open and free against
> >>  Microsoft Hyper-V, Citrix XenDesktop, Nvidia VGX. SPICE
> >>  currently not support 3D rendering, it is major disadvantage for
> >>  Windows users which like usability features.
> >
> > Yes. Also we don't support DirectDraw, so many games just refuse to
> > work
> > period (I tried a bunch of windows games a while back to see what
> > actualy works
> > - almost nothing. DirectX 8/9 is basically what we need).
> >
> >>  Near two year i work with SPICE on linux guests for coding,
> >>  compiling and DOS gaming. SPICE show himself from good side. I
> >>  wish to promote RHEV, to make donation for your efforts. but
> >>  Russian companies are use Windows due to vendor lock-in
> >>  encouraged by government.
> >>
> >>  Microsoft, Citrix, Nvidia solutions in long term can cause vendor
> >>  lock-in to hardware or services. Clouds is good but there are
> >>  not only public clouds that controlled by megacorporations.
> >>  Independent clouds should be created by other users to save our
> >>  environment and health of users which suffers from dust of
> >>  desktop computers fans.
> >
> > Well, if you are a developer and what to get your hands dirty, I'll
> > be
> > happy to help you rectify the situation. We would very much like to
> > see
> > both support for offloading to a local (host side) gpu, either via
> > passthrough or from the host side with a virtual gpu in the guest,
> > and
> > transfering the resulting rendered stream to a spice client.
> >
> >>  23.08.2012, 19:27, "Alon Levy" <alevy at redhat.com>:
> >>>  ----- Original Message -----
> >>>>   I wish to migrate from tower cases into nettops to make
> >>>>   contribution
> >>>>   to ecology by using KVM based virtualization. I made some
> >>>>   expiriments that show me that i'am in right way but only one
> >>>>   thing
> >>>>   is obstacle from success.
> >>>>
> >>>>   Some days ago on my server i successfully passtrough AMD HD
> >>>>   6770
> >>>>   video card in Windows 7 virtual machine controled by KVM. It's
> >>>>   looks
> >>>>   cool. After video card driver install i become unable to work
> >>>>   with
> >>>>   SPICE client display. It's show only black screen with Windows
> >>>>   logo,
> >>>>   video card output used as default.
> >>>>
> >>>>   I've got temporary solution to use VNC to access videocard
> >>>>   framebuffer but it can't used to watch movies and play games.
> >>>>   In way
> >>>>   of using Spice i can watch movies and play old games without
> >>>>   hardware 3D-acceleration.
> >>>>
> >>>>   Is there way to get access to screen of passed video card from
> >>>>   Spice-client or standalone Spice-server for Windows guest is
> >>>>   needed?
> >>>  Not with the current spice server & qemu.
> >>>
> >>>  In the setup you describe windows guest should show two cards,
> >>>  qxl and the hardware. Does it? and both should be accesible
> >>>  from display settings. I wonder if there is a clone option at
> >>>  that point, and what it actually does. If it would copy the
> >>>  rendered content of the hardware card to the framebuffer of
> >>>  spice you would at least get something on the client. But it
> >>>  would probably be streamed in mjpeg if so. Never tried pci
> >>>  passthrough. Would be interested to know if you try this.
> >>>>   Best regards, Boris Morozov.
> >>>>   _______________________________________________
> >>>>   Spice-devel mailing list
> >>>>   Spice-devel at lists.freedesktop.org
> >>>>   http://lists.freedesktop.org/mailman/listinfo/spice-devel
> >>  --
> >>  Best regards, Boris Morozov.
> 
> --
> Best regards, Boris Morozov.
> 


More information about the Spice-devel mailing list