vmwgfx *ERROR* Command buffer error leads GUI doesn't work after full screen
search cancel

vmwgfx *ERROR* Command buffer error leads GUI doesn't work after full screen

book

Article ID: 301148

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Symptoms:
  • When a non-3D accelerated VM is set to a certain resolution, e.g. by enlarging the guest window to full screen, the screen becomes blank and the dmesg in the guest shows “[drm:vmw_cmdbuf_work_func [vmwgfx]] *ERROR* Command buffer error".
  • The default vramSize set by the host is not enough to support the desired guest resolution.
  • Impacted VMs - Any Linux based 2D VM on hardware version 10 and earlier.


Resolution

This is a known issue to VMware.

Currently, there is workaround available as below.

Workaround:
To workaround this issue,
  1. Power off the virtual machine.
  2. Open the .vmx file in a text editor.
  3. If you are using ESX, you can proceed to step 4.

    If you are using an older version of hosted product (Workstation, ACE, Player, Server, or Fusion), add this line so that video memory settings changes made here will be respected by the virtual machine and not overridden by VMware Tools:

    svga.autodetect = "FALSE" 

    Note: If you are using ESX, this value is set by default.
     
  4. Calculate the amount of video memory required to support the highest desired resolution. Multiply the width by the height of the largest resolution desired, then multiply the result by 4. If the result exceeds 16777216 (or 4194304 for ESX Server), the video memory must be increased. Add or update this line in the .vmx file and then append the resulting value of the calculation:

    svga.vramSize = 

    Example: To add the resolution 2560 x 2048 to a Workstation virtual machine, multiply 2560 * 2048 * 4 to get 20971520. This is the amount of memory in bytes required for the resolution. The result, 20971520 bytes, exceeds the default of 16777216 bytes. Therefore, you must add this line to increase the video memory available:

    svga.vramSize = 20971520 

    Notes:
  5. Add or update the maxWidth and maxHeight values to provide the desired resolution. This value is used to report the maximum size of the attached virtual monitor to the guest operating system. Values cannot exceed the resolutions used to calculate the video memory size in step 4, to ensure that there is enough video memory available to support the resolution.

    svga.maxWidth = 2560
    svga.maxHeight = 2048


    Note: Certain resolutions are not supported by all guests. Virtual machines running Netware or FreeBSD guest operating systems may not support this resolution change.
     
  6. If you are using more than one display monitor in the virtual machine, add the following line to the .vmx file.

    svga.numDisplays = "number_of_displays"
    If you are using two display monitors then the entry would be svga.numDisplays = "2"

    Note: If the above value is not declared, the virtual machine will default to one display monitor.
     
  7. Save the file and open the virtual machine.


Additional Information

中文简体:vmwgfx *ERROR* Command buffer 错误导致 GUI 在全屏后不起作用