[vbox-dev] vbox 3D implementation

Mikhail Sennikovsky mikhail.sennikovsky at oracle.com
Fri Apr 11 09:25:56 GMT 2014

Hi Dong,

We do not use ICD SDK atm, so it should be possible to build all asutt using standard WDK/SDK headers/libs & tools.
We use XPDM-complient ICD interface to implement OpenGL support on windows.
As for D3D,  VBox WineD3D version is using VBoxOGL directly rather than via Opengl32 + ICD.
WDDM incarnation of VBox D3D in particular is actually using VBoxOGL as a layer for packing chromium commands which are then submitted via standard 3D/WDDM DDI.


On Apr 11, 2014, at 7:06 AM, DONG HE <hedonghust at gmail.com> wrote:

> Hi Mikhail & Klaus,
> Thanks a lot for your information. It is very helpful. 
> I had wrong impression that VBox 3D implementation is on top SVGA, which leaded me to the wrong place in the repository where has an uncompleted SVGA.
> Now I kinda have a big picture how VBox D3D&OpenGL driver works. 
> src\VBox\Additions\WINNT\Graphics\Video\mp\wddm contains the wddm miniport driver which talks to dxgkrnl.sys
> src\VBox\Additions\WINNT\Graphics\Video\disp\wddm has the wddm d3d user mode driver known as VBoxDispD3D.dll. D3D states will convert to OGL states with the help of Wine, and eventually goes to the OpenGL drivers,  VBoxOGL.dll(src/VBox/Additions/common/crOpenGL).
> However, a few things are still unclear to me, such as how those modules interact exactly.
> And the OGL driver appears to be a Windows OpenGL ICD driver. I wonder if I need a Microsoft ICD SDK to build the OpenGL driver successfully. Did anyone manage to build the WDDM driver and OpenGL driver separately before?  
> Regards,
> >Just to get a bit more precise info on the current 3D source code location:
> >
> >Guest-side code is located in
> >src/VBox/Additions/common/crOpenGL
> >src/VBox/Additions/WINNT/Graphics/Video (WDDM stuff)
> >src/VBox/Additions/WINNT/Graphics/Wine_new
> >
> >Host-side code is in
> >src/VBox/HostServices/SharedOpenGL
> >
> >Gues-Host shared code is
> >src/VBox/GuestHost/OpenGL
> >
> >Hope this helps.
> >
> >Mikhail
> >
> >On 02.04.2014 21:26, Klaus Espenlaub wrote:
> >> Hi Dong,
> >>
> >> On 01.04.2014 00:53, DONG HE wrote:
> >>> Hello VBox developers,
> >>>
> >>> Recently I have great interest in figuring out how VBox implement 3D
> >>> support for D3D and OpenGL. The learning work finally can not proceed as
> >>> a few files are missing from the SVN trunk check-out, which
> >>> are DevVGA-SVGA3d-shared.cpp, DevVGA-SVGA3d-win.cpp
> >>> and DevVGA-SVGA3d-ogl.cpp.
> >>> I wonder why those files are truncated from the repository or if they
> >>> exist in some experimental branches? Please give me some ideas. Thanks!
> >> You're looking at totally the wrong stuff. These files are totally
> >> unrelated to the existing 3D support.
> >>
> >> Check the contents of src/VBox/HostServices/SharedOpenGL for a lot of
> >> the code (there are bits and pieces elsewhere).
> >>
> >> Note that I'm not knowing any details how the whole thing works, so
> >> asking me personally won't get you much further.
> >>
> >> Klaus
> >>> Regards,
> >>> DONG

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.virtualbox.org/pipermail/vbox-dev/attachments/20140411/62e24c36/attachment.html>

More information about the vbox-dev mailing list