Bug 1444429

Summary: Cannot get arbitrary display resolution
Product: Red Hat Enterprise Linux 8 Reporter: Radek Duda <rduda>
Component: spice-qxl-wddm-dodAssignee: Default Assignee for SPICE Bugs <rh-spice-bugs>
Status: CLOSED ERRATA QA Contact: SPICE QE bug list <spice-qe-bugs>
Severity: medium Docs Contact:
Priority: unspecified    
Version: ---CC: mtessun, rduda, spice-qe-bugs, tpelka, victortoso
Target Milestone: rcKeywords: Reopened
Target Release: ---   
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: 2018-05-15 17:59:41 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Spice RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1444514, 1482982    
Bug Blocks: 1425451    
Attachments:
Description Flags
spice-debug log while changing dimensions of client window none

Description Radek Duda 2017-04-21 10:15:39 UTC
Created attachment 1273274 [details]
spice-debug log while changing dimensions of client window

Description of problem:
Display resolution of guest vm does not adapt to remote-viewer's window dimensions accurately.

Version-Release number of selected component (if applicable):
client/host: rhel7.4beta:
spice-server-0.12.8-1.el7.x86_64
spice-gtk3-0.33-3.el7.x86_64
qemu-kvm-rhev-2.8.0-6.el7.x86_64
virt-viewer-5.0-2.el7.x86_64

guest: win10 64bit
with RHEV-Tools 4.1.5
and spice-qxl-wddm-dod-0.16

/usr/libexec/qemu-kvm -name guest=win10,debug-threads=on -S -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu
/domain-19-win10/master-key.aes -machine pc-i440fx-rhel7.0.0,accel=kvm,usb=off,dump-guest-core=off -cpu Broadwell,+rtm,+hle,hv_time,hv_relaxed,hv_vapic,hv_spinlocks=0x1fff -m 4096 -realtime mlock=off -smp 2,sock
ets=2,cores=1,threads=1 -uuid 391164e5-0a1e-40b6-ac98-1e3223ee2131 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-19-win10/monitor.sock,server,nowait -mon chardev=ch
armonitor,id=monitor,mode=control -rtc base=localtime,driftfix=slew -global kvm-pit.lost_tick_policy=delay -no-hpet -no-shutdown -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -boot strict=on -devic
e ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x5.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x5 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x5.0x1 -de
vice ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x5.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x6 -drive file=/home/rduda/Virtualky/win10.qcow2,format=qcow2,if=none,id=drive-i
de0-0-0 -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -drive file=/home/rduda/Virtualky/RHEV-toolsSetup_4.1_5.iso,format=raw,if=none,id=drive-ide0-0-1,readonly=on -device ide-cd,bu
s=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1 -netdev tap,fd=27,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:7d:7a:f7,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chard
ev=charserial0,id=serial0 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -device usb-tablet,id=input0,bus
=usb.0,port=1 -spice port=5900,addr=127.0.0.1,disable-ticketing,image-compression=off,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,max_output
s=1,bus=pci.0,addr=0x2 -device qxl,id=video1,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,max_outputs=1,bus=pci.0,addr=0x8 -device qxl,id=video2,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,max_outputs=1,bus=pci.0,addr=0x9 -device qxl,id=video3,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,max_outputs=1,bus=pci.0,addr=0xa -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0,bus=usb.0,port=2 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1,bus=usb.0,port=3 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x7 -msg timestamp=on


How reproducible:
always


Steps to Reproduce:
1. Boot VM guest and connect to it using remote-viewer (not in fullscreen)
2. Change dimensions of remote-viewer's window (mouse drag&drop), so that the resolution of guest display would have some non-standard value.

Actual results:
Resolution of guest's display is adjusted to standard value, which best matches dimensions of remote-viewer's window. Nevertheless those values does not correspond (because non-standard value was chosen). Therefore, in case of unmaximized state, dimensions of remote-viewer window are changed accordingly. In case of maximized remote-viewer's window, PPI of guest does not correspond to PPI of client's monitor, which results in blurry image.

Expected results:
Resolution of guest's display is adjusted to reasonable arbitrary value according to remote-viewer window dimensions. 
Dimensions of remote-viewer's window does not adapt to resolution, but vice versa: resolution adapts to dimensions of remote-viewer's window.


Additional info:

Comment 1 Pavel Grunt 2017-04-21 10:23:20 UTC
Do you have the latest spice-vdagent which supports qxl-wddm-dod ?

https://www.spice-space.org/download/windows/vdagent/vdagent-win-0.8.0

Comment 2 Radek Duda 2017-04-21 11:09:10 UTC
I have used vdagent from RHEV-tools 4.1.5, which is older than upstream version you provided. So yes the bug is not reproducible now. Thanks Pavel.

Comment 4 Radek Duda 2017-04-24 09:19:42 UTC
ok opening..

Comment 6 Radek Duda 2018-05-09 12:24:01 UTC
verified with win10 guest and vdagent-win-4.1.5. I can get now arbitrary resolution of guest by resizing remote-viewer

Comment 9 errata-xmlrpc 2018-05-15 17:59:41 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2018:1531

Comment 10 Franta Kust 2019-05-16 13:03:58 UTC
BZ<2>Jira Resync