|
@@ -200,12 +200,26 @@ fi
|
|
SERENITY_GL="${SERENITY_GL:-0}"
|
|
SERENITY_GL="${SERENITY_GL:-0}"
|
|
if [ -z "$SERENITY_QEMU_DISPLAY_DEVICE" ]; then
|
|
if [ -z "$SERENITY_QEMU_DISPLAY_DEVICE" ]; then
|
|
if [ "$SERENITY_GL" = "1" ]; 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
|
|
if [ "$SERENITY_SCREENS" -gt 1 ]; then
|
|
die "SERENITY_GL and multi-monitor support cannot be setup simultaneously"
|
|
die "SERENITY_GL and multi-monitor support cannot be setup simultaneously"
|
|
fi
|
|
fi
|
|
elif [ "$SERENITY_SCREENS" -gt 1 ]; then
|
|
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
|
|
# 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
|
|
# pointed to, without any way for us to know what screen it was. So, when dealing with multiple
|
|
# displays force using relative coordinates only
|
|
# displays force using relative coordinates only
|