Bug 1923886

Summary: Windows virtio-gpu dod driver cannot change resolution automatically
Product: Red Hat Enterprise Linux 8 Reporter: Vadim Rozenfeld <vrozenfe>
Component: virtio-winAssignee: Vadim Rozenfeld <vrozenfe>
virtio-win sub component: virtio-win-prewhql QA Contact: dehanmeng <demeng>
Status: CLOSED CURRENTRELEASE Docs Contact:
Severity: unspecified    
Priority: unspecified CC: demeng, fran, jinzhao, juzhang, lijin, rm
Version: 8.4Keywords: Triaged
Target Milestone: rc   
Target Release: 8.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-11-23 08:35:48 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Vadim Rozenfeld 2021-02-02 07:08:32 UTC
Description of problem:
Windows virtio-gpu dod driver cannot adjust display resolution automatically to match viewer's window size. 

Version-Release number of selected component (if applicable):


How reproducible:
Run Windows 10/8 with viogpudo.sys driver installed

Steps to Reproduce:
1. Check current display resolution
2. Resize main viewer's window 
3. Check display current resolution again.

Actual results:
The resolution will stay the same.

Expected results:
Display resolution should be adjusted to match the viewer's window size

Additional info:

Comment 1 dehanmeng 2021-02-02 09:05:30 UTC
Hi Vadim,
Which virtio-win-prewhql have you try on? for this issue I didn't hit on win10-like guest with prewhql-193, it can adjust display resolution automatically to match viewer's window size after installed viogpudo.
I guest you used the latest prewhql-pkg right?

Comment 2 Vadim Rozenfeld 2021-02-02 09:16:49 UTC
(In reply to dehanmeng from comment #1)
> Hi Vadim,
> Which virtio-win-prewhql have you try on? for this issue I didn't hit on
> win10-like guest with prewhql-193, it can adjust display resolution
> automatically to match viewer's window size after installed viogpudo.
> I guest you used the latest prewhql-pkg right?

Hi Dehan,

It adjusts display window size but not the actual Windows display resolution. 

Best,
Vadim.

Comment 3 Vadim Rozenfeld 2021-05-28 02:07:31 UTC
UM code part
https://github.com/virtio-win/kvm-guest-drivers-windows/pull/586

Comment 4 dehanmeng 2021-06-09 15:42:09 UTC
Hi Vadim,

I tried this new feature on guest win10-64(q35), details and a question as following:

version:
  RHEL-9.0.0-20210607.0
  virtio-win-prewhql-201
  virt-viewer-10.0-1.el9.x86_64.rpm

steps:
1. bootup win10-64 guest with virtio-vga device successfully.
2. install viogpudo driver in pkg virtio-win-prewhql-201.
3. copy  viogpuap.exe and vgpusrv.exe to C:\windows\system32
4. open cmd to run "vgpusrv.exe -i", service can be start successfully.
5. To connect this guest on host RHEL9 via "remote-viewer vnc:xx.xx.xx.xx:590x" and check button "Auto resize" on the top bar of remote-viewer windows.
6. Drag the corner of remote-viewer windows.

Actual result:
Resolution can change automatically successfully after the above operation.

Expected result:
As above

Thanks for your effort and @zhiyi help and mail update. I'll run this new support on other versions of windows guests. But another thing I want to confirm is that this new function is based on the latest version of virt-viewer, but the resize function of virt-viewer does not seem to work properly on RHEL850. If I am doing something wrong, please point it out and I'll give it another shot with your suggestions, thank you.

Cheers
Dehan Meng

Comment 5 Vadim Rozenfeld 2021-06-10 01:42:58 UTC
(In reply to dehanmeng from comment #4)
> Hi Vadim,
> 
> I tried this new feature on guest win10-64(q35), details and a question as
> following:
> 
> version:
>   RHEL-9.0.0-20210607.0
>   virtio-win-prewhql-201
>   virt-viewer-10.0-1.el9.x86_64.rpm
> 
> steps:
> 1. bootup win10-64 guest with virtio-vga device successfully.
> 2. install viogpudo driver in pkg virtio-win-prewhql-201.
> 3. copy  viogpuap.exe and vgpusrv.exe to C:\windows\system32
> 4. open cmd to run "vgpusrv.exe -i", service can be start successfully.
> 5. To connect this guest on host RHEL9 via "remote-viewer
> vnc:xx.xx.xx.xx:590x" and check button "Auto resize" on the top bar of
> remote-viewer windows.
> 6. Drag the corner of remote-viewer windows.
> 
> Actual result:
> Resolution can change automatically successfully after the above operation.
> 
> Expected result:
> As above
> 
> Thanks for your effort and @zhiyi help and mail update. I'll run this new
> support on other versions of windows guests. But another thing I want to
> confirm is that this new function is based on the latest version of
> virt-viewer, but the resize function of virt-viewer does not seem to work
> properly on RHEL850. If I am doing something wrong, please point it out and
> I'll give it another shot with your suggestions, thank you.
> 

Thank a lot. 
I cannot comment on RHEL850 virt-viewer because I never tried it on my system.
However, this feature is mostly based on virtio-gpu ability to notify guest
front-end (viogpudo.sys in our case) driver about scanout resizing event.

Another thing, that I want to mention is that by default the minimal 
resolution is limited as 640x480 unless, "FlexResolution" Registry parameter
is set to "1" 

Do you think we can move it to verified or it will be better to give it a bit 
more time to be sure that this feature is fully tested?

Best regards,
Vadim.

> Cheers
> Dehan Meng

Comment 7 dehanmeng 2021-06-10 03:21:13 UTC
Hi all,

Win10-64/32-q35, win2022-64-q35, win2012-64-pc has been tried on. All of them can match this new feature and work well. so verify this bug. 

Thanks,
Dehan Meng