diff options
-rwxr-xr-x | Meta/run.sh | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/Meta/run.sh b/Meta/run.sh index da3d69cd3f..ffba395508 100755 --- a/Meta/run.sh +++ b/Meta/run.sh @@ -200,12 +200,26 @@ fi SERENITY_GL="${SERENITY_GL:-0}" if [ -z "$SERENITY_QEMU_DISPLAY_DEVICE" ]; then if [ "$SERENITY_GL" = "1" ]; then - SERENITY_QEMU_DISPLAY_DEVICE="virtio-vga-gl " + # QEMU appears to not support the GL backend for VirtIO GPU variant on macOS. + if [ "$(uname)" = "Darwin" ]; then + die "SERENITY_GL is not supported since there's no GL backend on macOS" + else + SERENITY_QEMU_DISPLAY_DEVICE="virtio-vga-gl " + fi + if [ "$SERENITY_SCREENS" -gt 1 ]; then die "SERENITY_GL and multi-monitor support cannot be setup simultaneously" fi elif [ "$SERENITY_SCREENS" -gt 1 ]; then - SERENITY_QEMU_DISPLAY_DEVICE="virtio-vga,max_outputs=$SERENITY_SCREENS " + # QEMU appears to not support the virtio-vga VirtIO GPU variant on macOS. + # To ensure we can still boot on macOS with VirtIO GPU, use the virtio-gpu-pci + # variant, which lacks any VGA compatibility (which is not relevant for us anyway). + if [ "$(uname)" = "Darwin" ]; then + SERENITY_QEMU_DISPLAY_DEVICE="virtio-gpu-pci,max_outputs=$SERENITY_SCREENS " + else + SERENITY_QEMU_DISPLAY_DEVICE="virtio-vga,max_outputs=$SERENITY_SCREENS " + fi + # QEMU appears to always relay absolute mouse coordinates relative to the screen that the mouse is # pointed to, without any way for us to know what screen it was. So, when dealing with multiple # displays force using relative coordinates only |