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

v2:
- Removed "virtio-gpu-virgl: check page alignment of blob mapping"
- Fixed build on Linux
- Restored check on blob resources
- Renamed new structs in console.c

Joelle van Dyne (6):
  egl-helpers: store handle to native device
  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 | 112 +++++++++++++++++++++++++++++++---
 hw/display/virtio-gpu.c       |  10 ++-
 ui/console.c                  |  60 +++++++++++++++---
 ui/dbus-console.c             |   2 +-
 ui/dbus-listener.c            |   8 +--
 ui/egl-headless.c             |   4 +-
 ui/egl-helpers.c              |   4 +-
 ui/gtk-egl.c                  |   4 +-
 ui/gtk-gl-area.c              |   4 +-
 ui/sdl2-gl.c                  |   2 +-
 ui/spice-display.c            |   2 +-
 16 files changed, 220 insertions(+), 40 deletions(-)

-- 
2.50.1 (Apple Git-155)


Reply via email to