EFI GOP Mode 1366x768

Bug #1896561 reported by Benjamin David Lunt
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Expired
Undecided
Unassigned

Bug Description

When using the EFI firmware from https://www.kraxel.org/repos/jenkins/edk2/ (https://www.kraxel.org/repos/jenkins/edk2/edk2.git-ovmf-x64-0-20200919.1453.g7faece6985.noarch.rpm) (OVMF-pure-efi.fd and OVMF_VARS-pure-efi.fd) then using the GOP, setting the mode to 1366x768, QEMU uses a width of 1360 instead.

I am using QEMU for windows (https://qemu.weilnetz.de/) on a Windows 10 machine.

To verify, while in the EFI firmware loaded code (within BOOTx64.EFI) and before ExitBootServices(), I choose the 1360x768 mode. I then took notice of where the host window was and how many pixels it occupied. I then reset the emulation (without quitting) and chose the 1366x768 mode. QEMU set the host window to the exact same width as the 1360 mode. i.e.: The same exact pixels where shown in the host background. The window did not expand the extra 6 pixels.

I allowed the firmware to run its course to my test environment when using mode 1366x768, all pixels are 6 pixels off to the right. i.e.: 6 pixels down the Frame Buffer. If my test environment changes its HORZ WIDTH and PIXELS PER SCANLINE to 1360 while using this (1366x768) mode, the display is correct.

This told me that it could be a few things.
1) Since most (I didn't check them all) of the other modes have the width value's bits 2:0 clear, mode 1366x768 is the only mode the EDK2 firmware has with a width where bits 2:0 are not zero. Could EDK2 or QEMU (which for the Windows version may use SDL2 so it must be considered here) be clearing these bits? The value of 1366 when clearing bits 2:0 is 1360.

2) Could there be a typo in the code EDK2 where the width should have been 1366?
(I went looking at both QEMU (for Windows) and EDK2 and after looking at many lines of code, I could not find anywhere where this might happen.

By the way, in /ui/sdl2-2d.c (QEMU Windows version only?), there is a typo in a comment, missing the second 'e':

Line 156: * the native ones. Thes are the ones I have tested.

3) Could EDK2 be sending 1360 instead of 1366?
4) Could QEMU (passing it on to SDL2 in SDL_SetWindowSize()?) be destroying the value (bottom three bits)?

Anyway, using the latest version of the EDK2 from the URL listed above, choosing the 1366x768 mode, does not set QEMU (for Windows) to 1366 pixels in width.

Ben

Revision history for this message
Thomas Huth (th-huth) wrote :

The QEMU project is currently moving its bug tracking to another system.
For this we need to know which bugs are still valid and which could be
closed already. Thus we are setting the bug state to "Incomplete" now.

If the bug has already been fixed in the latest upstream version of QEMU,
then please close this ticket as "Fix released".

If it is not fixed yet and you think that this bug report here is still
valid, then you have two options:

1) If you already have an account on gitlab.com, please open a new ticket
for this problem in our new tracker here:

    https://gitlab.com/qemu-project/qemu/-/issues

and then close this ticket here on Launchpad (or let it expire auto-
matically after 60 days). Please mention the URL of this bug ticket on
Launchpad in the new ticket on GitLab.

2) If you don't have an account on gitlab.com and don't intend to get
one, but still would like to keep this ticket opened, then please switch
the state back to "New" or "Confirmed" within the next 60 days (other-
wise it will get closed as "Expired"). We will then eventually migrate
the ticket automatically to the new system (but you won't be the reporter
of the bug in the new system and thus you won't get notified on changes
anymore).

Thank you and sorry for the inconvenience.

Changed in qemu:
status: New → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for QEMU because there has been no activity for 60 days.]

Changed in qemu:
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.