[Spice-devel] Windows 10 guest: 2D/3D Accel

Michal Suchánek msuchanek at suse.de
Tue May 9 15:56:03 UTC 2017


On Tue, 9 May 2017 17:22:46 +0200
Oscar Segarra <oscar.segarra at gmail.com> wrote:

> Hi, Christophe,
> 
> Thanks a lot again for the detailed explanation.
> 
> I understand perfectly the difference between client, host and guest.
> In my enviornment client is ferdora 25, host is Centos 7 and guest is
> Windows 10.
> 
> Regarding the 7th point:
> 
> *7. The “client” will talk to that protocol and display that on your
> screen. The client itself may use 3D acceleration to display things
> on your screen, but it’s not the “same” 3D acceleration as used in
> the guest. For example, if it gets a video stream from the server in
> 6, now it’s using the video decoding capabilities of the 3D card,
> even if your application in the guest is rendering 3D objects.*
> 
> This means that the client (physical endpoint) will use the GPU just
> for jpeg and mpeg decoding. It has no sense to buy an expensive card
> for the endpoint, isn't it?

It might be interesting project to support remote GL. There are some
specific challenges to this:

 - assuming you connect the client from the very start the guest can
   connect to the client while booting and probe the client card
   features to load the correct driver, etc. If you want to connect
   during guest runtime you need a fallback SW card and GPU hotplug
   support in the guest. If you do not have perfect GPU hotplug support
   in guest you will probably need to intercept all GL calls in the
   guest driver to build a GL rendering state which you can then push to
   any client that connects.
 - the 3D applications typically expect instanteous roundtrip to the
   card and do not optimize for the case when pulling a buffer from
   the card and pushing it back is quite expensive (requiring network
   roundtrip between client and guest). They should given the
   roundtrip between CPU and GPU is typically relatively slow and
   costly even between directly connected components but that is not
   what the applications do in practice. So your 3D applications will
   probably run quite slow even if your GPU hotplug and remote
   rendering were perfect. 

Overall it would be interesting project to try but I expect some pieces
might be quite technically challenging depending on the component mix
you want to support and I do not expect that real world usability will
be great. You will be probably able to run select applications
reasonably well but most will fail or run too slow to be usable.

Thanks

Michal


More information about the Spice-devel mailing list