VMware Communities
oofgeek
Contributor
Contributor

VMWare Fusion 6 Pro - 3 Monitor Issue on rMBP

I just upgraded to VMWare Fusion 6 Pro and I am now running into an issue where I cannot get my Windows 8 VM to "Use All Displays in Full Screen".  I have a rMBP and have 1 monitor connected via HDMI and 2 through Thunderbolt (MiniDP).  This configuration has worked very well for me with Fusion 5 Pro, but after upgrading I cannot get 6 to use all of my monitors (they simply clone each other).  I've tried various suggestions of toggle between single window & full screen, toggling the "Use All Displays in Full Screen" option, shutting down the VM, rebooting both the host and guest OS, etc.  I have also completely uninstalled and reinstalled the VMWare Tools in the Guest OS, which didn't change anything.

I can get it to work if I remove one of the 3 monitors from the rMBP.  It doesn't matter what one I remove (HDMI or Thunderbolt), and then Fusion will use the 2 monitors that are still connected and extend the display to those two automatically.

I've been waiting forever to get the Linked Clone feature on Fusion (coming from Workstation), but I really don't want to give up the 3 monitor support, so any help would be greatly appreciated.

Also, I just looked through the logs and noticed this notification when I plug in the 3rd display...

2013-09-04T10:34:30.984-08:00| VMware Fusion| I120: IsPowerOffNeededForTopology: Guest topology limit: (5120 x 3200), 2 display(s).

2013-09-04T10:34:49.809-08:00| VMware Fusion| I120: IsPowerOffNeededForTopology: Guest topology limit: (5120 x 3200), 2 display(s).

2013-09-04T10:35:06.593-08:00| VMware Fusion| I120: IsPowerOffNeededForTopology: Guest topology limit: (5120 x 3200), 2 display(s).

2013-09-04T10:35:07.648-08:00| VMware Fusion| I120: __55-[PLSession updateViewMode:forDocument:withRetryCount:]_block_invoke, failed to update view mode from 2 to 1. error: Error Domain=VMDBErrorDomain Code=-20 "An internal reconfiguration was in progress." UserInfo=0x7fedb6447eb0 {NSLocalizedDescription=An internal reconfiguration was in progress., NSLocalizedRecoverySuggestion=}

2013-09-04T10:35:36.607-08:00| VMware Fusion| I120: IsPowerOffNeededForTopology: Guest topology limit: (5120 x 3200), 2 display(s).

2013-09-04T10:35:36.607-08:00| VMware Fusion| I120: IsPowerOffNeededForTopology: Guest can handle 2 display(s), but topology requests 3 display(s).  Guest can't set topology.

2013-09-04T10:36:28.545-08:00| VMware Fusion| I120: IsPowerOffNeededForTopology: Guest topology limit: (5120 x 3200), 2 display(s).

2013-09-04T10:36:28.545-08:00| VMware Fusion| I120: IsPowerOffNeededForTopology: Guest can handle 2 display(s), but topology requests 3 display(s).  Guest can't set topology.

2013-09-04T10:36:28.742-08:00| VMware Fusion| I120: IsPowerOffNeededForTopology: Guest topology limit: (5120 x 3200), 2 display(s).

2013-09-04T10:36:28.742-08:00| VMware Fusion| I120: IsPowerOffNeededForTopology: Guest can handle 2 display(s), but topology requests 3 display(s).  Guest can't set topology.

I just reverted back to Fusion 5.0.3 to test and I can use all 3 monitors.  The log also shows the support:

IsPowerOffNeededForTopology: Guest topology limit: (5760 x 3200), 3 display(s).

Thank you,

Ryan

Message was edited by: oofgeek

6 Replies
mudaltsov
Expert
Expert

Normally the virtual machine is supposed to detect how many monitors are attached to the Mac, and allow all of them to be used by the VM. In this case, it appears that the detection did not work for some reason, and the default 2-monitor limit is being used.

Could you please reproduce the problem and attach the vmware.log file from inside the VM bundle? (right-click on the VM in Finder and choose Show Package Contents). You'll need to use the "advanced editor" to attach files.

Reply
0 Kudos
oofgeek
Contributor
Contributor

Here is the log with the problem occurring.  If needed I also have the log from Fusion 5 that was successful in using all displays. 

Reply
0 Kudos
mudaltsov
Expert
Expert

Apparently the host display configuration is not being detected correctly:

2013-09-06T08:11:51.179-08:00| mks| I120: Largest historical display topology: 2 displays, bounding rect (1680 x 1050).

It would be useful to get the Fusion 5 log to compare. If that works correctly on the same machine, that would help pinpoint the possible regression.

Also, would you mind attaching a copy of the /Library/Preferences/com.apple.windowserver.plist file? That contains the window server settings, including the display topology (arrangements of multiple displays) that were used previously, or currently in use by your Mac.

I might have a possible workaround available, I just need to test it first.

Reply
0 Kudos
oofgeek
Contributor
Contributor

I have attached:

-  vmware log from the .vmwarevm package for the VM while I was using it on Fusion 5 today

-  logs from Windows 8 guest (I also had contacted support and they asked me to provide those logs, so I figured I'd attach them here.  They haven't provided any direction as of yet other than requesting logs.)

-  plist for windowserver.  Note that I am not currently connected to the 3 external monitors.  Not sure if the file updates as you change hardware configuration.  Though the modified timestamp is from back in June around the time I got the MacBook. 

Ryan

Reply
0 Kudos
mudaltsov
Expert
Expert

It's really odd, but your com.apple.windowserver.plist only contains settings for one display at 1680x1050. Have you had any issues with the screen arrangement not getting saved when you restart your Mac? If the timestamp is from June, then there may be something wrong with the permissions that is preventing the file (or its parent directory) from being modified.

Apparently Fusion 5 was a bit more resistant to this issue because it also checked the current topology:

2013-09-06T08:45:41.002-08:00| vmx| I120: Current display topology: 3 displays, bounding rect (5760 x 1200).

2013-09-06T08:45:41.002-08:00| vmx| I120: Largest historical display topology: 3 displays, bounding rect (5760 x 1200).

The repeated numbers for the historical topology are just because they were combined with the current one, otherwise it would list the smaller numbers as Fusion 6 does.

We're gonna work on resolving this problem in Fusion, in the meantime here is a workaround. Shut down the VM and quit Fusion, then add the following lines to the .vmx file:

svga.autodetect = "FALSE"

svga.numDisplays = "3"

svga.vramSize = "134217728"

svga.maxWidth = "8192"

svga.maxHeight = "4096"

This will turn off the automatic detection of the display limits, and allow the VM to use up to 3 displays. You can change it to 4 if you think you might connect a 4th display (using both Thunderbolt ports and HDMI). The absolute maximum number of supported displays is currently 8.

oofgeek
Contributor
Contributor

I think I was finally able to get things (mostly) working with this issue.  Here are a few items I found:

  • The suggestion you provided didn't immediately solve the problem, I was no longer getting the "Guest topology limit: (5120 x 3200), 2 display(s)." error, but the Windows 8 guest still wouldn't use all 3 of the monitors.  I could get it up to 2 as before, but not 3.  (I'm thinking a reinstall of the Tools may have helped with this issue, but see the following notes.)
  • The /Library/Preferences/com.apple.windowserver.plist file appears not to have been updated since I got my MacBook since I don't run as an administrator day to day.  I'm guessing I have never logged into the admin account itself while plugged into the 3 monitors.  I was able to see where the file: ~/Library/Preferences/ByHost/com.apple.windowserver.GUID.plist contained the history of my monitor topology for my non-admin account.  When I logged into my Admin account then the shared /Library/Preferences/com.apple.windowserver.plist file was updated with the topology as well. 
  • After I logged in as the admin and the windowserver.plist updated, I no longer received the Guest topology limit of 2 error, however I was still having issues with the guest actually displaying on 3 monitors.  I tested another Windows 8 guest VM and it seemed to work okay with 3 monitors.  I went through a repair of the VMWare Tools, and that didn't fix the issue, so I did a full uninstall, being careful to shutdown between each step of the process, and finally I was able to get all 3 monitors to work. 
  • My core issues seems to be resolved, but things still don't seem to be as solid as VMWare Fusion 5 though. 
    • I've had one instance where with all 3 monitors up on the Guest OS, the screens kept flickering, and the desktop wallpapers kept changing (I have a difference desktop wallpaper per screen).  The OS was also unresponsive, as any icons I clicked to open applications didn't respond (at least visually).  This flickering didn't stop until I finally switched back to Single Window mode and then back to full screen.
    • I've tested on 2 different VMs, and anytime the Windows 8 guest is shutdown in 3 screen full screen mode, when it is powered back on it completely forgets the 3 screen configuration, and clones a low res version of itself on 2 monitors with the 3rd monitor black.  If I toggle between Single Window mode and 3 screen Full Screen mode than it detects that toggle and works correctly.  This issue is intermittent on a guest restart.  Restart will sometimes remember the 3 screens and other times forget it.  Again I've repro'd this in 2 different Windows 8 VMs

  • There appears to be a possible regression with the restoration of the network adapters.  I have 2 networks attached to my Windows 8 guest, 1 custom that is private to VMWare only and 1 bridged.  The bridged allows access to my work network.  Network Adapter 1 was the Custom Network and Network Adapter 2 was the Bridged.  If I suspend/resume the VM, the Network Adapter 2 doesn't seem to reenable.  I have to either manually Disconnect/Connect the adapter through the Fusion menu, or Disable/Enable it in Windows for it to work after a resume.  When I swapped the networks on each adapter, then I was able to get Fusion to bring up my Bridged network on a resume (now Network Adapter 1). 

Ryan

Reply
0 Kudos