[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