xrandr and vmware resize issue

Dan Savilonis djs at n-cube.org
Sun Mar 14 16:28:20 PDT 2010


There seem to be some bugs in the vmware video driver that causes
resizing the display via xrandr to not change the physical dimensions
of the display. The result is a high dpi and large font sizes. I've
ignored this for years since gnome can just force the setting to 96dpi
but that doesn't help with non-gtk apps. Today, though, I finally set
out to narrow down but came up only with workarounds.

By default, xorg will choose 800x600 as the only acceptable default
resolution since it doesn't seem to like any of the default modes:

(II) VMWARE(0): Not using default mode "640x350" (vrefresh out of range)
(II) VMWARE(0): Not using default mode "320x175" (bad mode
clock/interlace/doublescan)
(II) VMWARE(0): Not using default mode "640x400" (vrefresh out of range)
(II) VMWARE(0): Not using default mode "320x200" (bad mode
clock/interlace/doublescan)
(II) VMWARE(0): Not using default mode "720x400" (vrefresh out of range)
(II) VMWARE(0): Not using default mode "360x200" (bad mode
clock/interlace/doublescan)
(II) VMWARE(0): Not using default mode "320x240" (bad mode
clock/interlace/doublescan)
(II) VMWARE(0): Not using default mode "640x480" (vrefresh out of range)
(II) VMWARE(0): Not using default mode "320x240" (bad mode
clock/interlace/doublescan)
(II) VMWARE(0): Not using default mode "640x480" (vrefresh out of range)
...
(--) VMWARE(0): Virtual size is 800x600 (pitch 800)
(**) VMWARE(0): *Default mode "800x600": 40.0 MHz, 37.9 kHz, 60.3 Hz
(II) VMWARE(0): Modeline "800x600"x60.3   40.00  800 840 968 1056  600
601 605 628 +hsync +vsync (37.9 kHz)
(**) VMWARE(0):  Default mode "800x600": 36.0 MHz, 35.2 kHz, 56.2 Hz
(II) VMWARE(0): Modeline "800x600"x56.2   36.00  800 824 896 1024  600
601 603 625 +hsync +vsync (35.2 kHz)
(**) VMWARE(0):  Default mode "640x480": 25.2 MHz, 31.5 kHz, 59.9 Hz
(II) VMWARE(0): Modeline "640x480"x59.9   25.18  640 656 752 800  480
490 492 525 -hsync -vsync (31.5 kHz)
(==) VMWARE(0): DPI set to (96, 96)

I worked around the problem by doing the following:

* Add a modeline to xorg.conf for desired resolution (e.g. 1280x1024)
* Adjust the HorizSync to allow this mode

This properly sets the dimensions for 96dpi at this resolution, but
they remain fixed if it is changed:

$ xrandr -s 1280x1024
$ xdpyinfo | grep dimensions
  dimensions:    1280x1024 pixels (339x271 millimeters)
$ xdpyinfo | grep "dots per inch"
  resolution:    96x96 dots per inch
$ xrandr -s 1600x1200
$ xdpyinfo | grep dimensions
  dimensions:    1600x1200 pixels (339x271 millimeters)
$ xdpyinfo | grep "dots per inch"
  resolution:    120x112 dots per inch


There is a bug open since 2008 describing this, but it has no updates:
http://bugs.freedesktop.org/show_bug.cgi?id=16049

I also found a note from the developer indicating there is a bug in
getting modelines:
http://communities.vmware.com/thread/201534

I've found a number of other threads, but they're all dead ends or use
the xorg.conf workaround for a fixed resolution. I'm rather surprised
this issue isn't more noticed than it is, so I wonder if there is some
other way to get this to work or if I'm missing something. Any
thoughts?

Thanks,
Dan



More information about the xorg mailing list