The new Mesa revision builds KosmicKrisp with the precompiled shader
compiler, and the driver now needs macOS 26 (and the aligned iOS,
tvOS, and visionOS 26 releases) at runtime. Bump the availability
gates on the settings picker and the VM start check to match.
Assisted-by: Claude:claude-fable-5-1
Xcode 27 no longer supports deploying to iOS 14 or macOS 11, and the
macOS 27 SDK breaks several dependency builds, so raise the minimum
versions and fix the dependency build:
- Bump IOS_SDKMINVER/MAC_SDKMINVER and the project deployment targets.
- Pass our deployment targets to the Hypervisor build, whose project
still targets iOS 14.
- Build ANGLE without -Werror; new clang warnings break it.
- Update MoltenVK to pick up the upstream minimum target bump and set
a visionOS minimum so it no longer inherits the SDK version.
- Patch QEMU apple-gfx to use PGCreateDeviceWithDescriptor, since
PGNewDeviceWithDescriptor is no longer exported by the macOS 27 SDK.
- Skip copying the IOKit headers on macOS where they are already in the
SDK and a second copy conflicts with the IOKit module.
- Export MACOSX_DEPLOYMENT_TARGET since libtool drops -target when
linking C++ libraries, which built libasprintf for macOS 27.
- Default CI to the installed Xcode.
Assisted-by: Claude:claude-opus-5
AudioOutputUnitStop() called from GStreamer in the main context thread
hangs under high memory load (e.g. concurrent LLM usage), causing all SPICE
services including video and input to hang while the VM is still running.
Short-term fix (this PR): run GStreamer state changes on a separate,
serialized worker thread per stream so the hang does not block other SPICE
services.
Long-term fix?: this appears to require either a fix from Apple or for
audio to run in a separate process. Once the connection to CoreAudio is
hung, it does not seem to be recoverable by the same process.
Assisted-by: Claude:claude-opus-4-8
We map the JIT region originally as RX and also mirror map
it as RX. Then we use attached debugger to flag the mirror
mapping as debugger owned. Finally, we change the original
map to RW which should not invalidate code-signing as the
mirror is debugger owned.
Thanks to @JJTech0130 for this workaround.
When resetting UEFI vars, add an option to preload Secure
Boot keys (previously this was always done). This allows for
the user to load their own UEFI keys.
Also update the preloaded UEFI keys to Microsoft 2023 keys.
Resolves#7005Resolves#7257