Force native resolution in Windows (2880x1800) on rMBP 15" with More Space

Discussion in 'Windows Virtual Machine' started by t2jd1967, Mar 14, 2014.

  1. t2jd1967

    t2jd1967 Bit poster

    Messages:
    5
    Parallels version 9.0.24217 with Windows 8.1 build 9600

    I have been running Parallels for a few years, previously on a MBA with Windows 7 with Office 2010 and since a few months on a 15" rMBP. Since the scaling of Windows 7 is terrible (1920x1200 full screen on the retina display is quite blurred) I have ventured out to try Windows 8.1 with Office 2013 and to a large degree have been pleasantly surprised.

    One thing that is seriously bugging me is that Parallels refuses to run at native resolution in any other OS X display mode than Best for Retina. I personally think that Best for Retina is pretty useless since you end up with a lot less screen real estate. When I run at the More Space option (effectively 1920x1200 on OS X), Parallels gives Windows in full screen mode the resolution 3840x2400. What now happens is that Windows starts to render at this resolution (which it can now perfectly well) only for OS X to scale it down to 2880x1800. And voila the text starts looking blurred again. Not as much as with Windows 7, but still noticeable. Only when I switch OS X to Best for Retina Parallels will give Windows the native 2880x1800 resolution and text looks perfectly sharp.

    Does anyone know of a way to force the native resolution in Parallels regardless of the OS X display setting?

    @Parallels, if you're reading, a configuration setting for this would be very welcome!!!
     
  2. joevt

    joevt Forum Maven

    Messages:
    1,204
    Use SwitchResX to enable a 2880 x 1800 non HiDPI mode. This will make the Mac OS UI elements a quarter of the size that they are in Best for Retina.

    People with non-Retina displays can test Retina display modes by using Quartz Debug.app from the Developer tools to enable HiDPI modes. HiDPI modes use a scale factor of 2 (width and height) when rendering UI elements. Older versions of Quartz Debug.app allowed using a variable scale factor between 1 and 3.

    When HiDPI modes are enabled, there will be a HiDPI mode for every resolution that is greater than a certain size. The HiDPI mode will show in the menu as half the width and height of the resolution the mode corresponds to.

    You can use SwitchResX to create scaled resolutions that are larger than your monitor's native resolution. For example, the MacBook Pro includes a scaled resolution of 3840 x 2400 even though the display is only 2880 x 1800. 3840 x 2400 allows a HiDPI mode of 1920 x 1200.

    Apple disabled scaled resolutions larger than the display size for some or all Radeon cards in Mavericks. In previous versions of Mac OS, I was able to create a scaled resolution as high as 3584 x 2240 on a Radeon HD 5870 1 GB. The Radeon allowed resolutions as tall or wide as 4096 pixels.

    Some large scaled resolutions will cause a kernel panic on NVIDIA cards which allows scaled resolutions up to 8192 wide or 4096 tall even in Mavericks. The largest 16:10 mode I could create is 6554 x 4096 on an NVIDIA GTX 680 2 GB. The largest 16:9 mode of the same height will cause a kernel panic (7282 x 4096), therefore a reduced height would be required.
     
  3. t2jd1967

    t2jd1967 Bit poster

    Messages:
    5
    Hi joevt, thank you very much for your reply, it has been a great help. I've been experimenting quite a lot with QuickResX and have now bought a license. Findings so far:

    Using QuickResX to change resolutions is a near-perfect solution. I say near-perfect as the changes in resolution force some of the windows on the Mac side to jump around (in particular Finder) and also windows get shrunk where there is not enough space on the desktop. On the Windows side it is slightly better although the resolution changes after the Parallels session is activated, so you can see the changes happening (my Windows 7 instance runs in a different Space).

    Getting QuickResX to do HiDPi resolutions beyond 2040x1275 requires activating the GT750M. This takes considerable energy and heats up the rMBP, which I don't like. Therefore I'll keep this resolution even though a bit higher would be nice (fi 2160x1375 or 2304x1440). Running 2880x1800 native is fine with the Iris Pro 5200, so that still works for Windows sessions. The Iris Pro 5200 seems hardware limited to 4095x4095 (which of course is fine with most applications).

    A general observation that I have had is that the way OS X scales with Retina is less ideal than I originally thought. Because it requires an effective doubling of resolution both horizontal and vertical (and thus a quadrupling of pixels), it requires substantial computing power, which I think is why the GT750M is running hot at high resolutions (say 2400x1500 = 4800x3000). Although the way Windows 7 takes care of the same issue is less generic and you get applications that are all funny when running anything other than 100% = 96dpi, the applications that do scale properly are simply better looking. Take for example Excel 2010 on Windows 7 vs Excel 2011 on Mac at 125% scaling (which would mean 2304x1350 HiDPi), the Excel on Windows simply looks sharper in every respect. Thus you get better performance, less heat and sharper texts on Windows than on Mac for those applications that support scaling.

    Lastly, I have decided to stick with Windows 7 and Office 2010, since these work perfectly fine on 125% at 2880x1800. Windows 8 and Office 2013 will have to wait a while longer.
     
  4. joevt

    joevt Forum Maven

    Messages:
    1,204
    Have you considered using non-Retina modes (e.g. 2304x1440 instead of 2304x1440 HiDPI)? That will keep the frame buffer size under the integrated graphics limit while reducing the Mac UI element apparent sizes the same amount as the HiDPI mode. It seems to me that after a certain ppi value, Retina doesn't add much to the quality but I don't have a Retina display to test that. It might be blurry because of the scaling.
     
  5. t2jd1967

    t2jd1967 Bit poster

    Messages:
    5
    Yes I have and yes the Retina effect seems to diminish the further you increase the display resolution, although on 2160x1350 and 2304x1440 it is still quite noticeable. I believe the Iris Pro 5200 should be capable of this resolution in terms of frame buffer, since you can run 4095x4095 (=16MP), but the hardware is limited to 4095 horizontal (if the SwitchResX software is accurate on this).
     
  6. joevt

    joevt Forum Maven

    Messages:
    1,204
    Yes, there are 3 limits - horizontal width, vertical height, and total size ((width + extra space for hardware cursor or whatever) * height * bytes per pixel). The width and height limits might be texture size limits - the texture being used for scaling or maybe some other scaling method is used.

    I believe SwitchResX doesn't know anything about the max size limits. It just sets the dimensions in the appropriate display override file in /System/Library/Displays/Overrides, then when you restart, the display driver checks the resolutions and doesn't activate any that are outside the limits. It may be that the driver is wrong and the hardware is capable of more but there's nothing we can do about that without modifying the driver code which is not open sourced by Apple.
     
  7. t2jd1967

    t2jd1967 Bit poster

    Messages:
    5
    I think you are probably right about SwitchResX not knowing the hardware limits, I probably mistakenly interpreted the limits from trying to add custom resolutions, since these are limited to 4095x4095 irrespective of which graphics card is active (I just checked). So 4080x2550 is at the upper range of what the Iris Pro 5200 can handle.

    BTW, I can perform most changes on the fly since I have gfxCardStatus installed and rarely get to do a reboot. Switching between cards makes immediately apparent which resolutions can only be used with the GT750M card active, since the resolutions that are too high for the Iris Pro 5200 card get the status "Not activated - invalid?" on the custom resolution panel within SwitchResX whenever I activate the integrated card.
     
  8. joevt

    joevt Forum Maven

    Messages:
    1,204
    You don't want to create a custom resolution. That allows you to set various timing parameters (pixel clock and blanking sizes). These settings appear to be limited by SwitchResX to 4095 x 4095. With custom resolutions, there are the additional limits of pixel clock from the hardware and from the connection (VGA DAC, DVI single link vs dual link, HDMI 1.1 vs 1.3, or DisplayPort 1.1 vs 1.2). The display will also have limits on pixel clock (digital displays only), and vertical and horizontal refresh rate ranges and allowable blanking sizes.

    Instead, you want to create scaled resolutions for the built-in 2880 x 1800 timing. SwitchResX will let you enter scaled resolutions up to 32767 x 32767.

    Usually when you create a resolution, it will say "Needs to reboot". Then when you restart, it will say "Active" if the driver accepted it, or "Not activated - invalid?" if the driver didn't accept it. But you're saying that switching between integrated and discreet is the same as a reboot?
     
  9. t2jd1967

    t2jd1967 Bit poster

    Messages:
    5
    I'm now quite happy to be working with 2040x1275 HiDPi for the OSX and 2880x1800 for both Parallels and Citrix Viewer, although I sometimes work with 2880x1800 in OSX as well. The sheer amount of desktop space is rather appealing ... :)
     

Share This Page