Bug 1202419

Summary: Windows needs to send complete monitors_config message to client
Product: Red Hat Enterprise Linux 8 Reporter: Sandy Stutsman <sstutsma>
Component: spice-qxl-xddmAssignee: David Blechter <dblechte>
Status: CLOSED ERRATA QA Contact: SPICE QE bug list <spice-qe-bugs>
Severity: medium Docs Contact:
Priority: low    
Version: ---CC: bazulay, bmcclain, cfergeau, dblechte, djasa, gklein, lsurette, mgoldboi, pgrunt, rbalakri, Rhev-m-bugs, srevivo, tpelka, uril, ykaul
Target Milestone: rcKeywords: ZStream
Target Release: ---   
Hardware: All   
OS: Windows   
Whiteboard:
Fixed In Version: qxl-win-unsigned-0.1-22 qxl-win-0.1-24 Doc Type: Bug Fix
Doc Text:
Previously, the API for managing a monitor's position was not implemented, causing virtual monitors to change position (coordinates). Now, the API for managing monitor position has been implemented, so monitors stay in the expected position.
Story Points: ---
Clone Of:
: 1210796 1244878 1327266 (view as bug list) Environment:
Last Closed: 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:    
Bug Blocks: 1210796, 1244878, 1244880, 1248189, 1248196, 1265359, 1265360, 1265361, 1265363, 1327266    
Attachments:
Description Flags
Proposed patch for spice-gtk
none
screencast
none
spice-gtk log
none
full vdagent log from the client session none

Description Sandy Stutsman 2015-03-16 15:02:51 UTC
Description of problem:
Currently, Windows does not provide correct position information for multi-monitor in the monitors_config message to the spice client.

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


How reproducible:
Always

Steps to Reproduce:
1. Bring up a Windows VM with >1 monitor
2. Use the "Screen Resolution" applet to position the monitors
3. Notice that after clicking apply, the monitors are all positioned at the same X position

Actual results:
When using the Windows "Screen Resolution" to position monitors, the monitors are re-positioned at the same X location (0)

Expected results:
The monitor positions should remain at the position set by the user.

Additional info:
The solution required a new IOCTL to the Windows QXL driver that will allow VDAgent to pass updated position information to the driver which can then set it in the monitors_config message.

Comment 1 Sandy Stutsman 2015-07-23 15:37:11 UTC
Created attachment 1055428 [details]
Proposed patch for spice-gtk

Comment 3 Sandy Stutsman 2015-08-10 15:47:23 UTC
WRT to reproducting I've noticed that the monitors don't always reposition at the same x coordinate but they are still not ordered correctly without this change.

Comment 4 David Jaša 2015-08-14 12:19:49 UTC
Created attachment 1063001 [details]
screencast

I finally found a good reproducer:
1. in 4-monitor VM, enable all monitors
2. on < 4 monitor client, modify layout to something that computer wouldn't choose by itself
3. connect to the guest with -f (--full-screen=auto-conf on old clients)
4. look into vdagent log (C:\Windows\Temp\vdagent)

In the log, something like this is to be seen:
2076::INFO::2015-08-14 14:11:02,165::VDAgent::run::***Agent started in session 1***
...
2076::INFO::2015-08-14 14:11:31,743::VDAgent::handle_max_clipboard::Set max clipboard size: 104857600
2076::INFO::2015-08-14 14:11:31,758::VDAgent::handle_mon_config::0. 1920*1080*32 (0,0) 1
2076::INFO::2015-08-14 14:11:31,758::VDAgent::handle_mon_config::1. 3840*2160*32 (0,1080) 1
2076::INFO::2015-08-14 14:11:31,758::VDAgent::handle_mon_config::2. 1920*1080*32 (1920,0) 1
2076::INFO::2015-08-14 14:11:31,758::VDAgent::handle_mon_config::3. 0*0*0 (0,0) 1
2076::INFO::2015-08-14 14:11:31,758::VDAgent::handle_mon_config::3. detaching
// this was correct setting matching client layout

2076::INFO::2015-08-14 14:11:31,758::DesktopLayout::consistent_displays::#qxls 4 #others 0
2076::INFO::2015-08-14 14:11:31,774::DesktopLayout::set_displays::Set display mode 1920x1080
2076::INFO::2015-08-14 14:11:31,774::DesktopLayout::set_displays::Set display mode 3840x2160
2076::INFO::2015-08-14 14:11:31,805::DesktopLayout::set_displays::Set display mode 1920x1080
2076::INFO::2015-08-14 14:11:31,805::DesktopLayout::set_displays::Set display mode 0x0
2076::INFO::2015-08-14 14:11:31,821::DesktopLayout::consistent_displays::#qxls 4 #others 0
2076::INFO::2015-08-14 14:11:33,102::VDAgent::handle_mon_config::0. 1920*1080*32 (0,0) 1
2076::INFO::2015-08-14 14:11:33,118::VDAgent::handle_mon_config::1. 3840*2160*32 (0,0) 1
2076::INFO::2015-08-14 14:11:33,118::VDAgent::handle_mon_config::2. 1920*1080*32 (0,0) 1
// coordinates of all the monitrs are set to [0,0] leaving
// the layout to guest OS discretion

Comment 5 David Jaša 2015-08-14 12:29:51 UTC
Created attachment 1063008 [details]
spice-gtk log

Comment 6 David Jaša 2015-08-14 12:31:32 UTC
Created attachment 1063009 [details]
full vdagent log from the client session

Comment 20 David Blechter 2019-10-10 13:54:04 UTC
moving from RHEVM product to RHEL 8