VMware Workstation 中 Ubuntu 24.04 切换 X11 后卡顿的解决方法

发布于 6 小时前 0 次阅读


环境

  • 宿主机:Windows 11,Intel Core i5-12600KF,32 GB 内存,NVIDIA GeForce RTX 4060
  • VMware Workstation Pro:26H1u1
  • 虚拟机:6 vCPU,8 GB 内存,3D 加速开启
  • Ubuntu:24.04.5 LTS
  • 内核:7.0.0-34-generic
  • GNOME:46.0
  • Mesa:25.2.8

问题现象

Ubuntu 24.04 默认使用 Wayland,桌面很流畅;切换到 X11 后,拖动窗口、GNOME 动画和滚动都会出现明显卡顿。

一开始怀疑 VMware 3D 加速异常,因为:

glxinfo -B

中出现:

Accelerated: no
Video memory: 1MB

但继续检查后发现,3D 加速和内核驱动其实都正常。

排查

确认当前会话:

echo $XDG_SESSION_TYPE

输出:

x11

检查虚拟显卡驱动:

lspci -k | grep -A4 -E 'VGA|3D|Display'

关键结果:

Kernel driver in use: vmwgfx

检查内核日志:

sudo dmesg | grep -iE 'vmwgfx|drm|svga'

可以看到 vmwgfx 已正常初始化,支持 3D、command buffers、SM 5.1 等,没有明显错误。

随后检查 Xorg:

journalctl -b _COMM=Xorg | grep -Ei 'vmware|modesetting|glamor|DRI|AIGLX'

发现 Xorg 默认实际使用的是 VMware 专用驱动:

LoadModule: "vmware"
Loading /usr/lib/xorg/modules/drivers/vmware_drv.so
vmware(0): Gallium3D XA version: 2.5.0

也就是说,原来的路径大致是:

Xorg
  ↓
xf86-video-vmware
  ↓
Gallium3D XA
  ↓
vmwgfx
  ↓
SVGA3D

解决方法

强制 Xorg 使用通用的 modesetting 驱动,而不是 xf86-video-vmware。

创建配置目录:

sudo mkdir -p /etc/X11/xorg.conf.d

创建配置文件:

sudo nano /etc/X11/xorg.conf.d/20-vmware-modesetting.conf

写入:

Section "Device"
    Identifier "VMware Graphics"
    Driver "modesetting"
EndSection

保存后重启:

sudo reboot

验证

重新登录 X11 后执行:

journalctl -b _COMM=Xorg | grep -Ei 'modesetting|glamor'

看到类似:

modeset(0): glamor X acceleration enabled on SVGA3D
modeset(0): glamor initialized

说明已经切换为:

Xorg
  ↓
modesetting
  ↓
glamor
  ↓
Mesa / SVGA3D
  ↓
vmwgfx

切换后,X11 下拖动窗口、动画和滚动恢复流畅,卡顿问题消失。

回滚

如果修改后出现黑屏或其他显示异常,可以切换到 TTY:

Ctrl + Alt + F3

删除配置并重启:

sudo rm /etc/X11/xorg.conf.d/20-vmware-modesetting.conf
sudo reboot

结论

这次问题并不是 VMware 3D 加速没有开启,也不是 vmwgfx 驱动失效,而是 X11 默认使用的 xf86-video-vmware + Gallium3D XA 路径在当前环境下性能较差。

改用:

modesetting + glamor

后,X11 卡顿消失。

另外,在 VMware Linux Guest 中,glxinfo -B 出现 Accelerated: no 或 Video memory: 1MB 时,不建议单独据此判断 3D 加速失效,应结合 vmwgfx、DRM 和 Xorg 日志一起判断。