QEMU Virgil 3D with ArchLinux ARM AArch64 on MacBook Air M1
Based on initial work "Virgil 3D on macOS" by 小田喜陽彦 akihikodaki.
https://mail.gnu.org/archive/html/qemu-devel/2021-02/msg04235.html
With improvements:
- Get rid of ANGLE as EGL libraries. Virgil 3D solely uses OpenGL Core backend through SDL2 which wraps to NSOpenGL.
- No patch to "cocoa" display of QEMU. Minimal modification to SDL2 display to support Virgil 3D on macOS. QEMU cannot have both "cocoa" and "sdl2" display in the same build.
- Minimal change to libepoxy and virglrenderer, basically only have to make sure they built without libdrm and libEGL.
- Fix known issues with OpenGL Core
- Performance comparable to ANGLE OpenGL ES backend. WebGL Aquarium at 60 FPS. Chromium web rendering is accelerated.
The accelerated ArchLinux ARM is very snappy & usable with Apple HVF virtualization. It matches or even exceeds the performance of typical ARM Linux flavors running on RK3399 or RPi4 bare-metal. It probably makes M1 MacBooks the world fastest (... most expensive) Linux ARM laptops.
Nested VM is possible, and there is a demo of qemu-3dfx Glide passthrough from nested QEMU i386 instance running Blood 1.2 3Dfx DOS game.