4. 第一步:VMware 虚拟机配置
4.1 VMware 图形界面设置
- 关闭虚拟机
- 虚拟机设置 → 显示器
- 勾选 「加速 3D 图形」
- 「图形内存」拉到最大(本例为 8GB)
- 显示器数量可以先设为 1 个(多屏会加重虚拟显卡的像素填充负担,调试阶段先单屏确认)
4.2 编辑 .vmx 文件
在虚拟机文件目录下找到 .vmx 文件(如 Windows 11 x64.vmx),用文本编辑器打开。
重要:必须先关机再编辑,否则 vmx 修改会在关机时被覆盖。
检查并确保以下配置存在:
ini
mks.enable3d = "TRUE"
svga.graphicsMemoryKB = "8388608"
然后追加以下四行(我的显卡是AMD 的 7900xtx,如果你是英伟达或AMD其他型号,请不要照抄,去问AI核实):
ini
mks.gl.allowBlacklistedDrivers = "TRUE"
mks.enableDX12Renderer = "FALSE"
mks.enableDX11Renderer = "FALSE"
mks.enableGLRenderer = "TRUE"
逐条解释:
| 配置项 | 含义 |
|---|---|
mks.gl.allowBlacklistedDrivers = "TRUE" |
核心。允许 AMD 消费级显卡(RX 系列)参与 3D 加速。VMware 默认只信任专业卡(Radeon Pro / Quadro),消费卡在它眼里是"黑名单驱动"。 |
mks.enableDX12Renderer = "FALSE" |
关闭 DirectX 12 渲染路径。 |
mks.enableDX11Renderer = "FALSE" |
关闭 DirectX 11 渲染路径。 |
mks.enableGLRenderer = "TRUE" |
强制走 OpenGL 渲染路径。SOLIDWORKS 的生命线是 OpenGL,不是 DirectX。 |
为什么关 DX11/DX12?因为 VMware 的 DX 渲染后端在某些 AMD 卡上有兼容性问题。
且 SOLIDWORKS 本身只用 OpenGL,开着 DX 渲染路径会让 mksSandbox.exe 初始化额外的无用管线,消耗资源还可能导致不稳定。
4.3 调整虚拟显存
此外建议调整:
ini
svga.vramSize = "536870912"
svga.vramSize 是虚拟显卡上报给客户机的显存容量,单位字节。536870912 = 512MB,对 SOLIDWORKS 中等模型足够。
注意:这个值必须能被 65536 整除(Windows 客户机要求)。536870912 / 65536 = 8192,整除成立。
4.4 完整操作序列
1. 关闭虚拟机
2. 编辑 .vmx,添加上述配置行
3. 保存 .vmx
4. 启动虚拟机
5. 第二步:SOLIDWORKS 注册表修复
5.1 背景
SOLIDWORKS 启动时会检查 GPU 的 Vendor ID 和 Device ID,与内部白名单比对。VMware SVGA 3D 不在名单里,所以它强制打开「使用软件 OpenGL」并灰掉该选项(不可取消)。
注册表里的 Workarounds 值是一个位掩码,控制 SOLIDWORKS 对特定 GPU 的兼容性行为。其中某一位控制是否允许该 GPU 走硬件 OpenGL。
5.2 操作步骤
-
关闭 SOLIDWORKS(必须,否则注册表更改不会生效)
-
按
Win + R,输入regedit,回车 -
导航到:
HKEY_CURRENT_USER\Software\SolidWorks\SOLIDWORKS 20XX\Performance\Graphics\Hardware\VMware, Inc.20XX换成你的版本号,比如 2023 →SOLIDWORKS 2023 -
在右侧找到
Workarounds(DWORD 类型) -
双击修改,将值从
10(十六进制 0x10)改为9(十六进制 0x09)原值:0x00000010 (16) 改后:0x00000009 (9) -
点击确定,关闭注册表编辑器
5.3 含义注解
0x10 = 二进制 0001 0000
0x09 = 二进制 0000 1001
改动了两个 bit:
- bit 0 (1) → 启用了某种通用兼容模式
- bit 3 (8) → 关掉了"强制软件渲染"标记
- bit 4 (16) → 原本置位的一个限制标记被清除
这是社区广泛验证过的值。如果
0x09在你的版本上不生效,可以尝试0x08、0x01或0x00逐个测试。
开始建模吧
