This is the same release as v4.1.5 but with the change to default enable GPU acceleration for Linux reverted. This is due to a number of guest-side driver issues in the latest version of Mesa (#4983). As a result of these issues, we decided to disable GPU acceleration in Linux by default for new VMs created by the wizard. If you have an existing VM with graphical issues, you can disable GPU acceleration by going into the VM settings, under Display, change the Emulated Display Card to virtio-gpu-pci
or another card that does not have -gl
in the name. You can verify that GPU acceleration is disabled when the checkbox below the card is unchecked.
Highlights
- QEMU backend updated to v7.2.0. Also updated usbredir (0.13.0), virglrenderer (latest commit), ANGLE (latest commit)
- Improved renderer backend. Lots of bug fixes and stability improvements to GPU accelerated Linux VMs (most common crashes when GPU acceleration is enabled should be gone now). New option to change the renderer backend to ANGLE Metal and limit FPS (in Preferences). Switching to Metal is highly recommended.
- (iOS) TrollStore build (UTM.HV.ipa) now supports JIT. Additionally, there is now in-app settings.
- (iOS) TrollStore build now supports TSO (Total Store Ordering). TSO is used by Rosetta on the Mac to improve x86_64 emulation on ARM64. It can now be used on M1 iPads with QEMU to improve performance of FEX-Emu or a patched Rosetta. Note that it is recommended that TSO be disabled if you do not need to emulate x86_64 because it can reduce performance of other tasks.
- (macOS) AppleScript (OSA) support and CLI interface. You can control parts of UTM through the OSA interface. Currently there is support for listing VMs as well as start/stop/suspend operations and the ability to print out the guest serial port connections. More functionality will be added in the future. A command line application is also provided in
UTM.app/Contents/MacOS/utmctl
(which you can symlink to/usr/local/bin/utmctl
if desired) that can be used for automation tasks without needing to learn AppleScript. - (macOS 13+) Menu bar extra. You can enable the menu bar extra icon in Preferences (Cmd+,) as well as disable the dock icon. The menu bar extra provides a minimal interface to start/stop/suspend VMs and is useful when paired with headless VMs (a VM that does not have any display or terminal console installed).
Notes
- iOS 14 and macOS 11.3 are the minimum supported systems for UTM v4.x. Please use UTM v3.x for support down to iOS 11 and macOS 11
Newly created Linux VMs will now usevirtio-gpu-gl-pci
by default. It is recommended that you change the display card of existing QEMU backend Linux VMs to this card in order to take advantage of the improved renderer backend. This should result in improved performance in GUI rendering. Note that some applications (particularly 3D applications) may lock up or crash UTM and if you are experiencing issues, you can go back tovirtio-ramfb
orvirtio-vga
.- Newly created Windows VMs will now use
virtio-ramfb-gl
(Apple Silicon) orvirtio-vga-gl
(Intel) by default. There is NO 3D acceleration drivers for Windows yet, so unlike Linux, this will not improve any compatibility with applications. However, the GL backend can still be beneficial to Windows users because it has smoother animations and less tearing and artifacts. The overall benefits will not be as pronounced as for Linux VMs so it is optional that you change existing VMs to a-gl
display card. - (iOS) It is recommended that you switch to the Metal backend in Preferences for better performance. However, some applications such as
glxgears
will not work with the Metal backend.
Changes (v4.1.6)
- Wizard: Re-introduced the checkbox for "Hardware OpenGL Acceleration" which is disabled by default due to guest-side issues in the latest Mesa driver
Changes (v4.1.5)
- Improved rendering of non-GL graphics on the new renderer backend. This should reduce some of the tearing seen in earlier updates. For the best performance, it is recommended that a GL backend is selected.
- Support read-only disk images in QEMU backend as well as selecting images that are read-only (#4838) Note: all external drive images (ISOs) are now loaded as read-only, this was not enforced in previous versions due to an error in the logic.
- Newly created Windows VMs will now use
virtio-ramfb-gl
(Apple Silicon) orvirtio-vga-gl
(Intel) by default. See the Notes section for more information. - Fixed an issue where the incorrect tmp directory path was used by QEMU (#4882)
- Scripting: Fixed an issue where the proper error message was not displayed in some cases.
- CLI: Improved some help text.
- Localization: updated Japanese (thanks @MMP0)
Changes (v4.1.4)
- Fixed slow rendering of GRUB and EFI menus
- Introduced new optimizations to renderer: bliting done on GPU instead of CPU now (for non-GL rendering), guest draw calls that are faster than the monitor refresh rate are now consolidated before drawing at vblank, rendering of multiple displays can happen concurrently now
- Fixed rendering to multiple displays on the new renderer backend
- Fixed an issue in QEMU where the vmnet backend uses 100% of CPU when the VM is suspended (#4803)
- (iOS) TrollStore: Fixed JIT enable in the HV builds
- (iOS) TrollStore: New option to enable TSO (Total Store Ordering) in QEMU settings (see Highlights for more details)
- (iOS) Restored the default renderer backend to GL. This was changed in v4.1.3 because Metal is faster but the new backend can introduce regressions such as
glxgears
not working (#4856). As a result, the new backend is now opt-in but is still highly recommended. - (iOS) Fixed crash when changing VM settings on iOS 14 (#4864)
- (iOS) Fixed crash when starting a VM with UTM SE (#4848)
- (macOS) A tooltip will now reveal why suspend functionality is disabled
Changes (v4.1.3)
- Updated QEMU to v7.2.0
- Reworked CocoaSpice renderer to respond faster to GL updates from the guest, should improve frame pacing on GL supported Linux VMs
- Added global setting to change renderer backend, introduce ANGLE Metal as an option (and also the new default for iOS)
- Added global setting to limit FPS which can be used to improve frame pacing for a smoother rendering experience
- Settings: clearly show if the current display hardware supports GPU acceleration
- Wizard: GPU acceleration is now enabled by default when Linux is selected as the operating system
- Fixed crash due to an error with
GL_DRAW_COOKIE_INVALID
(#4722) - Fixed deadlock on startup caused by gstosxaudio (#2364)
- Fixed memory leak when GPU acceleration is enabled (#4449)
- Fixed crash in
-[MTLResourceList releaseAllObjectsAndReset]
(#3519) - Fixed Mesa issue causing some GNOME desktop to freeze when GPU acceleration is enabled
- Fixed incorrect logic when cloning a VM (#4815)
- Fixed some thread scheduling warning (#4352)
- Localization: updated French (thanks @FRtranslator)
- (iOS) TrollStore build: use
com.apple.private.security.no-sandbox
instead ofcom.apple.private.security.no-container
on recommendation of other devs and to align with how other apps perform JIT. - (iOS) Fixed blank screen when choosing "Open" in the wizard (#4842)
- (iOS) Fixed toolbar not auto-hiding before first interaction (#4844)
- (macOS) New design for global settings (Cmd+,) which better organizes the settings
- (macOS) utmctl: Fixed crash when
utmctl help attach
runs (#4817) - (macOS) utmctl: Fixed
utmctl stop
with--request
andkill
(#4850)
Changes (v4.1.2)
- Localization: updated Spanish (Latin America) (thanks @JezerM)
- Localization: updated Japanese (thanks @MMP0 and @skyarrow87)
- Localization: updated Chinese Simplified (thanks @changanmoon)
- (iOS) Fix new VM wizard not appearing on < iOS 14.5 (#4776)
- (macOS) Implement OSA interface for AppleScript
- (macOS) Introduce a CLI application (
UTM.app/Contents/MacOS/utmctl
) that wraps around the OSA interface for automation - (macOS 13+) New settings option to enable a menu bar extra icon for controlling VMs
- (macOS 13+) New settings option to disable the dock icon
- (macOS) Fix various alignment issues in settings (#4596) (thanks @JezerM)
- (macOS) Fix a crash when the pasteboard is updated (#4745)
- (macOS) Support custom resolutions for Apple Virtualization VMs
- (macOS) Fixed a UI freeze when canceling out of the settings for an Apple Virtualization VM
Changes (v4.1.1)
- Fixed launching SPARC machines (#4575)
- Fixed an error when attempting to save a VM where one of its removable drives is linked to a file that has been deleted
- Fixed IPSW/.utm download failing when the device goes to sleep (the download should resume after wake up)
- Restored scroll bars when system is set to always show scroll bars. Added a new SwiftUI crash workaround thanks to @evelyneee.
- Display all sizes in binary (MiB/GiB) mode in order to be consistent (#4396)
- Localization: added Polish (thanks @mavethee)
- Localization: updated Japanese (thanks @MMP0)
- Localization: updated Spanish (Latin America) (thanks @JezerM)
- Localization: updated French (thanks @FRtranslator)
- (macOS) Fixed the port forward UI on macOS 11 and introduce a new port forward UI for macOS 12+ (#4690)
- (macOS) Fixed "This virtual machine cannot be run on this machine." error on a newly created Apple VM (#4595)
- (macOS) Added new 21:9 widescreen resolution for Apple VMs (thanks @Tandolf)
- (macOS) Added a clarifying message about shared directory support on older macOS guests (#4594)
- (macOS) Added new shutdown options (software request and force kill) which can be toggled by long pressing the power button in the VM window (#4001)
- (macOS) Added a confirmation dialog when deleting a drive (#4687)
Changes (v4.1.0)
- Updated QEMU to v7.1.0
- Updated ANGLE and virglrenderer to latest commit
- Fixed an issue where user override of machine property settings was not applied properly
- Localization: updated Japanese (thanks @MMP0)
- Localization: updated Spanish (Latin America) (thanks @JezerM)
- (iOS) Added in-app settings popover which synchronizes with the Settings app (useful for TrollStore installs where the Settings app page is inaccessible) (#4446)
- (iOS) TrollStore: support JIT without needing a separate JIT enabler (thanks @PojavLauncherTeam for the idea)
Issues
Please check the full list on Github and help report any bug you find that is not listed.
Installation
File | Description | Installation | JIT | Hypervisor | USB |
---|---|---|---|---|---|
UTM.deb | Jailbroken iOS version | Open in Cydia, dpkg, or Sileo | Yes | Yes(1) | Yes |
UTM.dmg | macOS version | Mounting and copying UTM.app to /Applications | Yes | Yes | Yes |
UTM.ipa | Non-jailbroken iOS version (sideloading) | AltStore, etc (see guide) | Yes(2) | No | No |
UTM.HV.ipa | Non-jailbroken iOS version (TrollStore) | TrollStore | Yes | Yes(1) | Yes |
UTM.SE.ipa | Non-jailbroken iOS version (sideloading) | AltStore, enterprise signing, etc | No | No | No |
- Hypervisor on iOS requires an M1 iPad.
- Enabling JIT may require a separate JIT enabler such as Jitterbug or Jitstreamer.