vbox6: basic 3D support

Implement GLX and X functionality through Mesa's EGL interface. This
requires multiple OpenGL contexts and in turn GEM context support in
libdrm/iris, as implemented in libdrm and intel_gpu_drv.

Update recipes and machine.vbox6 files accordingly,

issue #4380
This commit is contained in:
Sebastian Sumpf
2021-10-12 17:45:34 +02:00
committed by Norman Feske
parent 27883c976c
commit b98e07ed34
14 changed files with 319 additions and 69 deletions

View File

@@ -1,13 +1,17 @@
_/raw/vbox6
_/src/expat
_/src/init
_/src/jpeg
_/src/libc
_/src/libdrm
_/src/libiconv
_/src/libyuv
_/src/mesa
_/src/posix
_/src/stdcxx
_/src/vbox6
_/src/vfs
_/src/vfs_gpu
_/src/vfs_oss
_/src/vfs_pipe
_/src/zlib

View File

@@ -1,10 +1,11 @@
<runtime ram="4300M" caps="2500" binary="init">
<runtime ram="4300M" caps="8000" binary="init">
<requires>
<file_system label="vm"/>
<file_system label="shared"/>
<vm/>
<timer/>
<gpu/>
<gui/>
<nic/>
<rom label="capslock"/>
@@ -12,6 +13,7 @@
<report label="shape"/>
<report label="clipboard"/>
<rom label="clipboard"/>
<rom label="mesa_gpu_drv.lib.so"/>
<rm/>
<rtc/>
<rom label="usb_devices"/>
@@ -30,6 +32,7 @@
<service name="LOG"/>
<service name="VM"/>
<service name="Gui"/>
<service name="Gpu"/>
<service name="Timer"/>
<service name="Rtc"/>
<service name="Report"/>
@@ -44,14 +47,14 @@
<default caps="100"/>
<start name="vbox" caps="2000">
<start name="vbox" caps="7000">
<binary name="virtualbox6" />
<resource name="RAM" quantum="8G"/>
<exit propagate="yes"/>
<config vbox_file="machine.vbox6" xhci="yes" vm_name="linux" capslock="rom" ld_verbose="yes">
<vfs>
<dir name="dev">
<log/> <rtc/> <null/> <zero/> <oss name="dsp"/>
<log/> <rtc/> <null/> <gpu/> <zero/> <oss name="dsp"/>
</dir>
<dir name="pipe"> <pipe/> </dir>
<dir name="shared"> <fs label="shared" writeable="yes"/> </dir>
@@ -82,6 +85,8 @@
<parent label="virtualbox6-sharedclipboard.lib.so"/> </service>
<service name="ROM" label="VBoxSharedFolders.so">
<parent label="virtualbox6-sharedfolders.lib.so"/> </service>
<service name="ROM" label="mesa_gpu_drv.lib.so">
<parent label="mesa_gpu_drv.lib.so"/> </service>
<service name="Nic"> <parent/> </service>
<service name="Report" label="shape"> <parent label="shape"/> </service>
<service name="ROM" label="clipboard"> <parent label="clipboard"/> </service>
@@ -93,21 +98,29 @@
</config>
<content>
<rom label="egl.lib.so"/>
<rom label="expat.lib.so"/>
<rom label="glapi.lib.so"/>
<rom label="ld.lib.so"/>
<rom label="init"/>
<rom label="virtualbox6"/>
<rom label="jpeg.lib.so"/>
<rom label="libc.lib.so"/>
<rom label="libdrm.lib.so"/>
<rom label="libiconv.lib.so"/>
<rom label="libm.lib.so"/>
<rom label="libyuv.lib.so"/>
<rom label="mesa.lib.so"/>
<rom label="qemu-usb.lib.so"/>
<rom label="stdcxx.lib.so"/>
<rom label="vfs.lib.so"/>
<rom label="vfs_gpu.lib.so"/>
<rom label="vfs_oss.lib.so"/>
<rom label="vfs_pipe.lib.so"/>
<rom label="virtualbox6-shaderlib.lib.so"/>
<rom label="virtualbox6-sharedclipboard.lib.so"/>
<rom label="virtualbox6-sharedfolders.lib.so"/>
<rom label="zlib.lib.so"/>
</content>
</runtime>

View File

@@ -17,7 +17,14 @@
</CPU>
<Memory RAMSize="4096"/>
<HID Pointing="PS2Mouse"/>
<!-- normal operation -->
<Display VRAMSize="20" monitorCount="1" controller="VBoxSVGA"/>
<!-- 3D Linux
<Display controller="VMSVGA" VRAMSize="256" accelerate3D="true"/>
-->
<!-- 3D Windows
<Display VRAMSize="128" monitorCount="1" controller="VBoxSVGA" accelerate3D="true"/>
-->
<RemoteDisplay enabled="false"/>
<Paravirt provider="KVM"/>
<BIOS>

View File

@@ -6,6 +6,7 @@ gui_session
input_session
libc
libiconv
mesa
nic_session
nitpicker_gfx
os