[virglrenderer-devel] virtgpu 3d specs and custom guest driver
Elias Naur
mail at eliasnaur.com
Sun Mar 1 15:46:31 UTC 2020
Hi,
Please point me in the direction of the best place to start implementing
a custom virtio-gpu 3d driver.
I'm exploring the viability of developing GUI programs
capable of running directly in a virtual machine that exports
a virtio-gpu device.
I have:
A prototype Go unikernel,
https://git.sr.ht/~eliasnaur/microvisor
capable of running Go programs directly in Qemu.
A Go GUI library,
https://gioui.org
designed to be very portable (only needs GPU and input device access).
And finally, the virtio-gpu 2d specification,
https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-3200007
I'm about to start implementing a 2d virtio-gpu driver in Go, which I
hope will demonstrate drawing from inside the virtual machine.
However, I failed to find even preliminary specification, list of
commands or anything else to help with developing a 3d driver. It
is my impression that the virtio-gpu 3d interface is similar to
OpenGL, so I don't expect a serious impedance mismatch between the
existing Gio OpenGL ES backend and virtio-gpu.
Do you know of information better than studying, say, the Linux
guest driver? And what is the purpose of virglrenderer,
https://gitlab.freedesktop.org/virgl/virglrenderer
? From the name it sounds like it might help me develop and test the
driver by being a reference implementation of a virtgpu => OpenGL
translator.
Thank you,
-- elias
More information about the virglrenderer-devel
mailing list