understanding virtio-gpu
Enrico Weigelt, metux IT consult
lkml at metux.net
Wed Jun 30 09:25:56 UTC 2021
Hello folks,
I'm currently trying to understand how the virtio-gpu driver actually
works and got a few noob questions:
1. virtio_gpu_pci_quirk():
* what is the explicit framebuffer removal about ?
Do virtio-gpu devices support several framebuffer types (but only
one at a time) ? How does it happen that we can have that vga
framebuffer standing in our way in the first place ?
* why is it necessary to rename the device with "pci:" prefix ?
since (IMHO) virtio is an actual bus, that may even exist in HW,
but there're also several different virtio transports (got word that
somebody's also working on an socket-based one), it smells very
strange to me, making it look like a pci device.
does it only work w/ pci transport ?
what's the background of this ?
2. features[] array:
* virgl seems only supported on little endian, and the comment tells
that's because virgl is sending the command stream in native endian.
* IMHO, this approach isn't entirely correct, since here we're just
looking whether the driver/guest side is LE, but looking at the
host/device side. otoh, it should still work if both sides are BE.
* shouldn't we add some endianess handshake to the protocol ?
maybe both should announce what's their native endianess and whether
they're capable of doing the conversion, so they can aggree on what
to do exactly ?
I'm currently trying to find ways for using virgl in containers instead
of VMs, so the container workload doesn't need to have any gpu specific
(userland) drivers anymore. Not sure whether I'll need special kernel
support for this at all.
thx,
--mtx
--
---
Hinweis: unverschlüsselte E-Mails können leicht abgehört und manipuliert
werden ! Für eine vertrauliche Kommunikation senden Sie bitte ihren
GPG/PGP-Schlüssel zu.
---
Enrico Weigelt, metux IT consult
Free software and Linux embedded engineering
info at metux.net -- +49-151-27565287
More information about the dri-devel
mailing list