All of lore.kernel.org
 help / color / mirror / Atom feed
* Possible regression with VGA and resolutions in Windows 10?
@ 2020-07-23 14:24 Aaron Lauterer
  2020-07-23 16:19 ` Laszlo Ersek
  2020-07-24  9:41 ` Gerd Hoffmann
  0 siblings, 2 replies; 8+ messages in thread
From: Aaron Lauterer @ 2020-07-23 14:24 UTC (permalink / raw)
  To: qemu-devel; +Cc: kraxel

Hi all,

I think we have a regression introduced in commit 0221d73ce6.

Once I start a Windows 10 VM (build 18363) with `-device VGA` I have only the following resolutions to choose from instead of the much longer list:

1920x1080
1024x768
800x600

Linux guests work fine.

qemu-system-x86_64 \
   -name windows-resolution-test \
   -smp '2,sockets=1,cores=2,maxcpus=2' \
   -nodefaults \
   -cpu host,+kvm_pv_eoi,+kvm_pv_unhalt \
   -m 3072 \
   -device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' \
   -device 'usb-tablet,id=tablet,bus=uhci.0,port=1' \
   -device 'VGA,id=vga,vgamem_mb=32,bus=pci.0,addr=0x2' \
   -device 'virtio-scsi-pci,id=scsihw0,bus=pci.0,addr=0x5' \
   -drive 'file=/dev/zvol/rpool/data/vm-102-disk-0,if=none,id=drive-scsi0,discard=on,format=raw,cache=none,aio=native,detect-zeroes=unmap' \
   -device 'scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0,id=scsi0,rotation_rate=1,bootindex=100' \
   -machine pc,accel=kvm


I have not yet gotten around to bisect the SeaBIOS repository to know exactly which commit there is causing it.

If this is better handled at the SeaBIOS mailing list, let me know.


Aaron



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Possible regression with VGA and resolutions in Windows 10?
  2020-07-23 14:24 Possible regression with VGA and resolutions in Windows 10? Aaron Lauterer
@ 2020-07-23 16:19 ` Laszlo Ersek
  2020-07-24  9:41 ` Gerd Hoffmann
  1 sibling, 0 replies; 8+ messages in thread
From: Laszlo Ersek @ 2020-07-23 16:19 UTC (permalink / raw)
  To: Aaron Lauterer, qemu-devel; +Cc: kraxel

On 07/23/20 16:24, Aaron Lauterer wrote:
> Hi all,
> 
> I think we have a regression introduced in commit 0221d73ce6.
> 
> Once I start a Windows 10 VM (build 18363) with `-device VGA` I have
> only the following resolutions to choose from instead of the much longer
> list:
> 
> 1920x1080
> 1024x768
> 800x600
> 
> Linux guests work fine.
> 
> qemu-system-x86_64 \
>   -name windows-resolution-test \
>   -smp '2,sockets=1,cores=2,maxcpus=2' \
>   -nodefaults \
>   -cpu host,+kvm_pv_eoi,+kvm_pv_unhalt \
>   -m 3072 \
>   -device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' \
>   -device 'usb-tablet,id=tablet,bus=uhci.0,port=1' \
>   -device 'VGA,id=vga,vgamem_mb=32,bus=pci.0,addr=0x2' \
>   -device 'virtio-scsi-pci,id=scsihw0,bus=pci.0,addr=0x5' \
>   -drive
> 'file=/dev/zvol/rpool/data/vm-102-disk-0,if=none,id=drive-scsi0,discard=on,format=raw,cache=none,aio=native,detect-zeroes=unmap'
> \
>   -device
> 'scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0,id=scsi0,rotation_rate=1,bootindex=100'
> \
>   -machine pc,accel=kvm
> 
> 
> I have not yet gotten around to bisect the SeaBIOS repository to know
> exactly which commit there is causing it.
> 
> If this is better handled at the SeaBIOS mailing list, let me know.

I'm vaguely reminded of
<http://mid.mail-archive.com/20200625091709.8550-1-kraxel@redhat.com>,
but no promises.

Laszlo



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Possible regression with VGA and resolutions in Windows 10?
  2020-07-23 14:24 Possible regression with VGA and resolutions in Windows 10? Aaron Lauterer
  2020-07-23 16:19 ` Laszlo Ersek
@ 2020-07-24  9:41 ` Gerd Hoffmann
  2020-07-24 13:17   ` Aaron Lauterer
  1 sibling, 1 reply; 8+ messages in thread
From: Gerd Hoffmann @ 2020-07-24  9:41 UTC (permalink / raw)
  To: Aaron Lauterer; +Cc: qemu-devel

On Thu, Jul 23, 2020 at 04:24:06PM +0200, Aaron Lauterer wrote:
> Hi all,
> 
> I think we have a regression introduced in commit 0221d73ce6.
> 
> Once I start a Windows 10 VM (build 18363) with `-device VGA` I have only the following resolutions to choose from instead of the much longer list:
> 
> 1920x1080
> 1024x768
> 800x600

That is probably vgabios gaining edid support.

The list should be longer though, the qemu edid block has more
resolutions included.  The qemu-edid tool is a command line
interface to the edid generator, for testing purposes.

Try "qemu-edid | edid-decode" to see the decoded edid data.

Linux guests have the raw edid block in sysfs, see
/sys/class/drm/card0/card0-Virtual-1/edid.

>   -device 'VGA,id=vga,vgamem_mb=32,bus=pci.0,addr=0x2' \

Try adding "xres=<width>,yres=<height>" of you want a specific
display resolution.

Try adding "edid=off" to return to previous behavior.

HTH & take care,
  Gerd



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Possible regression with VGA and resolutions in Windows 10?
  2020-07-24  9:41 ` Gerd Hoffmann
@ 2020-07-24 13:17   ` Aaron Lauterer
  2020-07-24 14:10     ` Gerd Hoffmann
  0 siblings, 1 reply; 8+ messages in thread
From: Aaron Lauterer @ 2020-07-24 13:17 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: qemu-devel



On 7/24/20 11:41 AM, Gerd Hoffmann wrote:
> On Thu, Jul 23, 2020 at 04:24:06PM +0200, Aaron Lauterer wrote:
>> Hi all,
>>
>> I think we have a regression introduced in commit 0221d73ce6.
>>
>> Once I start a Windows 10 VM (build 18363) with `-device VGA` I have only the following resolutions to choose from instead of the much longer list:
>>
>> 1920x1080
>> 1024x768
>> 800x600
> 
> That is probably vgabios gaining edid support.
> 
> The list should be longer though, the qemu edid block has more
> resolutions included.  The qemu-edid tool is a command line
> interface to the edid generator, for testing purposes.
> 
> Try "qemu-edid | edid-decode" to see the decoded edid data.
> 
> Linux guests have the raw edid block in sysfs, see
> /sys/class/drm/card0/card0-Virtual-1/edid.
> 
>>    -device 'VGA,id=vga,vgamem_mb=32,bus=pci.0,addr=0x2' \
> 
> Try adding "xres=<width>,yres=<height>" of you want a specific
> display resolution.
> 
> Try adding "edid=off" to return to previous behavior.

I did try that initially but it seemingly was ignored by Windows.

But I took another look at it and I was able to observe the following behavior with Win10:

Boot it first with edid enabled (by default) and I see only the short list of possible resolutions (I forgot 640x480, which is only shown in the Display Adapter Properties -> List all modes).

Boot it with edid=off and nothing changes, still the short list.
Uninstall the `Microsoft Basic Display Adapter` in Device Manager and reboot the VM. Now it recognizes all resolutions again.

The behavior is similar when setting a custom resolution with the xres and yres parameters. Setting it the first time works fine and it is shown along with the short list. Setting it to something different on the next boot will not be recognized unless the display adapter is uninstalled and the VM rebooted.

The same applies when changing from edid=off to edid=on. Only after uninstalling the display driver and a reboot will it change from showing the long list of resolution to the mentioned short one.


Knowing that uninstalling the display driver after setting edid=off will help is good enough for now.

Thanks for pointing that out again and nudging me in the right direction.

All the best,
Aaron


> 
> HTH & take care,
>    Gerd
> 
> 
> 



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Possible regression with VGA and resolutions in Windows 10?
  2020-07-24 13:17   ` Aaron Lauterer
@ 2020-07-24 14:10     ` Gerd Hoffmann
  2020-07-24 14:31       ` Daniel P. Berrangé
  2020-07-27 12:00       ` Aaron Lauterer
  0 siblings, 2 replies; 8+ messages in thread
From: Gerd Hoffmann @ 2020-07-24 14:10 UTC (permalink / raw)
  To: Aaron Lauterer; +Cc: qemu-devel

  Hi,

> The behavior is similar when setting a custom resolution with the xres
> and yres parameters. Setting it the first time works fine and it is
> shown along with the short list. Setting it to something different on
> the next boot will not be recognized unless the display adapter is
> uninstalled and the VM rebooted.

Interesting.  Seems Windows caches the list of resolutions (or the edid
blob) somewhere in the registry instead of loading it on every boot.
I've seen simliar behavior with usb device info.

[ something for the 5.1 release notes I think, thanks for testing this ]

That still leaves the question open why the list of resolutions is that
short  It should be more like this:

# qemu-edid | edid-decode | grep @
  640x480@60Hz
  800x600@60Hz
  1024x768@60Hz
  2048x1152@60Hz
  1920x1080@60Hz
    VIC 101 4096x2160@50Hz 
    VIC  96 3840x2160@50Hz 
    VIC  89 2560x1080@50Hz 
    VIC  31 1920x1080@50Hz 

Seems windows filters out a bunch for some reason ...

take care,
  Gerd



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Possible regression with VGA and resolutions in Windows 10?
  2020-07-24 14:10     ` Gerd Hoffmann
@ 2020-07-24 14:31       ` Daniel P. Berrangé
  2020-07-24 15:35         ` Gerd Hoffmann
  2020-07-27 12:00       ` Aaron Lauterer
  1 sibling, 1 reply; 8+ messages in thread
From: Daniel P. Berrangé @ 2020-07-24 14:31 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: Aaron Lauterer, qemu-devel

On Fri, Jul 24, 2020 at 04:10:32PM +0200, Gerd Hoffmann wrote:
>   Hi,
> 
> > The behavior is similar when setting a custom resolution with the xres
> > and yres parameters. Setting it the first time works fine and it is
> > shown along with the short list. Setting it to something different on
> > the next boot will not be recognized unless the display adapter is
> > uninstalled and the VM rebooted.
> 
> Interesting.  Seems Windows caches the list of resolutions (or the edid
> blob) somewhere in the registry instead of loading it on every boot.
> I've seen simliar behavior with usb device info.
> 
> [ something for the 5.1 release notes I think, thanks for testing this ]

Do we need to be disabling edid in the old machine types to prevent this
change in guest ABI due to the changed BIOS ?

eg existing VMs using a versioned machine type shouldn't suddenly get edid
enabled where previously it was not present. Only VMs using the new 5.1 or
unversioned machine types should see the change in behaviour.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Possible regression with VGA and resolutions in Windows 10?
  2020-07-24 14:31       ` Daniel P. Berrangé
@ 2020-07-24 15:35         ` Gerd Hoffmann
  0 siblings, 0 replies; 8+ messages in thread
From: Gerd Hoffmann @ 2020-07-24 15:35 UTC (permalink / raw)
  To: Daniel P. Berrangé; +Cc: Aaron Lauterer, qemu-devel

On Fri, Jul 24, 2020 at 03:31:23PM +0100, Daniel P. Berrangé wrote:
> On Fri, Jul 24, 2020 at 04:10:32PM +0200, Gerd Hoffmann wrote:
> >   Hi,
> > 
> > > The behavior is similar when setting a custom resolution with the xres
> > > and yres parameters. Setting it the first time works fine and it is
> > > shown along with the short list. Setting it to something different on
> > > the next boot will not be recognized unless the display adapter is
> > > uninstalled and the VM rebooted.
> > 
> > Interesting.  Seems Windows caches the list of resolutions (or the edid
> > blob) somewhere in the registry instead of loading it on every boot.
> > I've seen simliar behavior with usb device info.
> > 
> > [ something for the 5.1 release notes I think, thanks for testing this ]
> 
> Do we need to be disabling edid in the old machine types to prevent this
> change in guest ABI due to the changed BIOS ?
> 
> eg existing VMs using a versioned machine type shouldn't suddenly get edid
> enabled where previously it was not present. Only VMs using the new 5.1 or
> unversioned machine types should see the change in behaviour.

Well, the *device* feature actually is versioned, but it is present in
qemu for quite a while already.  Now the *vgabios* update makes the edid
available via bios interface.  We have two independent changes, so it
isn't that simple ...

take care,
  Gerd



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Possible regression with VGA and resolutions in Windows 10?
  2020-07-24 14:10     ` Gerd Hoffmann
  2020-07-24 14:31       ` Daniel P. Berrangé
@ 2020-07-27 12:00       ` Aaron Lauterer
  1 sibling, 0 replies; 8+ messages in thread
From: Aaron Lauterer @ 2020-07-27 12:00 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: qemu-devel

Hey,

On 7/24/20 4:10 PM, Gerd Hoffmann wrote:
> That still leaves the question open why the list of resolutions is that
> short  It should be more like this:
> 
> # qemu-edid | edid-decode | grep @
>    640x480@60Hz
>    800x600@60Hz
>    1024x768@60Hz
>    2048x1152@60Hz
>    1920x1080@60Hz
>      VIC 101 4096x2160@50Hz
>      VIC  96 3840x2160@50Hz
>      VIC  89 2560x1080@50Hz
>      VIC  31 1920x1080@50Hz
> 
> Seems windows filters out a bunch for some reason ...

When checking the Advanced Display Settings on can click on the "Display adaptor properties for Display 1". In that window one can click on "List all modes". In this list the 640x480 mode does show up.

The 2048x1152 does not show up anywhere, with edid on as well as when edid is off. So my guess is that this resolution is just not supported by the Windows Basic Display Adapter?
The same applies to the resolutions in the lines starting with VIC, though I did not check if the 1920x1080 is 60 or 50 Hz.

If there is anything else that I can do, let me know.

All the best,
Aaron



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2020-07-27 12:01 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-23 14:24 Possible regression with VGA and resolutions in Windows 10? Aaron Lauterer
2020-07-23 16:19 ` Laszlo Ersek
2020-07-24  9:41 ` Gerd Hoffmann
2020-07-24 13:17   ` Aaron Lauterer
2020-07-24 14:10     ` Gerd Hoffmann
2020-07-24 14:31       ` Daniel P. Berrangé
2020-07-24 15:35         ` Gerd Hoffmann
2020-07-27 12:00       ` Aaron Lauterer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.