[Mesa-dev] Mesa driver for VirtualBox
Michael Thayer
michael.thayer at oracle.com
Thu Jun 20 07:47:53 PDT 2013
Hello,
I am looking at the possibility of writing a driver for VirtualBox
(ahem, yes) which could partly live inside of the Mesa tree. My initial
idea was to have the driver in two parts, a driver/client part in the
Mesa tree and a server part in the VirtualBox tree which would
communicate using an agreed-on protocol through a local socket. The
reasons for wanting to split the driver this way are on the one hand
that we still don't feel quite ready to commit our host-guest 3D
interface to eternity, and on the other that the driver part on the Mesa
side might well be useful in other contexts - controlled 3D access
(insofar as such a thing is possible) out of a sand box comes to mind.
I was considering a textual protocol between client and server which
would more or less model the Gallium3D API, with (texture and other)
buffers passed using shared memory via file descriptors. Gallium3D
would have the advantage that it is a much smaller target surface (if I
may use that word) than OpenGL. It has the disadvantage that it is
closer to D3D than to OpenGL, which may be better for modelling
hardware, but perhaps less so for proxying OpenGL APIs on a guest to
OpenGL APIs on a host. In particular the fact that we can't directly
access the GLSL shader source which applications on a guest system are
presumably trying to send us, and which we need to pass through to the
host, disturbs me somewhat. Of course, I realise that on the other hand
this potentially gives us access to shaders in different formats, but
our main target will still be OpenGL on OpenGL for the immediately
forseeable future. I understand that Gallium3D receives shaders in a
format close to compiled D3D shaders, which suggests that WineD3D might
be of use. An alternative is to go straight for a DRI driver rather
than a Gallium3D one. I would be interested in any thoughts and
suggestions!
For background, I have some knowledge of 3D programming but am certainly
no expert. I can browse the Mesa source code and the drivers in it
without getting too worried, but need to use a search engine as I do so
to feel confident that I understand what is happening in the code.
I look forward to reading any answers.
Thanks in advance!
Michael
--
ORACLE Deutschland B.V. & Co. KG Michael Thayer
Werkstrasse 24 VirtualBox engineering
71384 Weinstadt, Germany mailto:michael.thayer at oracle.com
Hauptverwaltung: Riesstr. 25, D-80992 München
Registergericht: Amtsgericht München, HRA 95603
Geschäftsführer: Jürgen Kunz
Komplementärin: ORACLE Deutschland Verwaltung B.V.
Hertogswetering 163/167, 3543 AS Utrecht, Niederlande
Handelsregister der Handelskammer Midden-Niederlande, Nr. 30143697
Geschäftsführer: Alexander van der Ven, Astrid Kepper, Val Maher
More information about the mesa-dev
mailing list