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.tha...@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
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to