[Spice-devel] Passed trough video card screen access

Boris Morozov umvirt at yandex.ru
Thu Aug 23 17:08:02 PDT 2012


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

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

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

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.

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

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