Repository navigation
Conversation
The Mac OS native driver used by the mac99 VGA device (QemuVga) takes its mode list from the EDID generated by QEMU: it reads the established timing bitmaps, the 0xF7 "Established Timings III" bitmap and the CEA-861 video data block, but not the standard timing section. edid_fill_modes() only sets the 0xF7 bit of a mode once the eight standard timing slots are full, so 1280x960, 1280x1024, 1440x900, 1600x1200, 1680x1050 and 1920x1200 end up as standard timings only and never show up in Monitors. Set the 0xF7 bit for every mode that defines one and add the display modes that were missing from the table: 1152x864, 2560x1440, 2560x1600, 1280x854 and 1600x1024 through the 0xF7 bitmap, plus the Apple 832x624 and 1152x870 established timings. The QemuVga driver shipped in pc-bios gains the matching entries in edidExtStdVModes (data only). Refs utmapp#7683 Assisted-by: DeepSeek:deepseek-v4.1-flash
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes the Mac OS guest mode list on the
mac99machine so that the resolutions QEMU already advertises in the EDID — plus the classic Apple display modes — appear in Monitors preferences.Why
The native driver used by the mac99 VGA device (
QemuVga) builds its mode list from the EDID generated by QEMU. It reads the established timing bitmaps, the 0xF7 "Established Timings III" bitmap and the CEA-861 video data block, but not the standard timing section. Inedid_fill_modes()the 0xF7 bit of a mode was only set once the eight standard timing slots were full, so 1280x960, 1280x1024, 1440x900, 1600x1200, 1680x1050 and 1920x1200 were advertised as standard timings only and never showed up in the guest. 2560x1440, the Apple 30" 2560x1600 and other display modes were not in the mode table at all.Changes
patches/qemu-10.0.12-utm.patch: new patch that always sets the 0xF7 bit for modes that define one, and adds 1152x864, 2560x1440, 2560x1600, 1280x854 and 1600x1024 through the 0xF7 bitmap, plus the Apple 832x624 and 1152x870 established timings.patches/data/qemu-10.0.12-utm/pc-bios/qemu_vga.ndrv: the four matching entries inedidExtStdVModes(indexes 40..43), a data-only change to the driver binary shipped inpc-bios.The driver filters out modes larger than the mapped framebuffer, so 2560x1600 and the 4K+ modes only appear with a large enough
VgaRamMib(32/64 MB); 2560x1440 fits in the 16 MB default.Testing
Testing: Tested by a human on macOS 27.0.1 (26A434), Mac Apple M4, with a Mac OS X 10.4.8 guest on QEMU
mac99(ppc). Before the change 2560x1440 was missing from Monitors (and so were 1280x960, 1280x1024, 1440x900, 1600x1200, 1680x1050 and 1920x1200); after the change they all appear, can be selected and work.The author acknowledges that this change has been tested and/or reviewed by a human in accordance with UTM's AI contribution guidelines.
Resolves #7683