This brings Vulkan guest paravirtualization to macOS hosts. The bulk of the work is being submitted to the virglrenderer project so this is a RFC for now.
In addition to Vulkan, we also introduce Metal texture scanout for GLES guests as well. We also added Metal texture rendering in the Cocoa backend but that builds upon the GLES work by Akihiko Odaki which is not currently upstream. Fork with all dependent changes: https://github.com/utmapp/qemu/tree/submit/macos-venus Instructions for building and testing with all related projects: https://gist.github.com/osy/a8f705050eed1c8421ad1a0855a8faa9 Joelle van Dyne (7): egl-helpers: store handle to native device virtio-gpu-virgl: check page alignment of blob mapping console: rename `d3d_tex2d` to `native` virtio-gpu-virgl: update virglrenderer defines virtio-gpu-virgl: support scanout of Metal textures console: add cleanup callback for ScanoutTexture virtio-gpu-virgl: add support for native blob scanout meson.build | 9 +++ include/ui/console.h | 31 ++++++++- include/ui/egl-helpers.h | 2 +- include/ui/gtk.h | 4 +- include/ui/sdl2.h | 2 +- hw/display/virtio-gpu-virgl.c | 126 +++++++++++++++++++++++++++++++--- hw/display/virtio-gpu.c | 2 + ui/console.c | 60 +++++++++++++--- ui/dbus-console.c | 2 +- ui/dbus-listener.c | 8 +-- ui/egl-headless.c | 2 +- ui/egl-helpers.c | 4 +- ui/gtk-egl.c | 2 +- ui/gtk-gl-area.c | 2 +- ui/sdl2-gl.c | 2 +- ui/spice-display.c | 2 +- 16 files changed, 225 insertions(+), 35 deletions(-) -- 2.41.0
