4. 第一步:VMware 虚拟机配置
4.1 VMware 图形界面设置
- 关闭虚拟机
- 虚拟机设置 → 显示器
- 勾选「加速 3D 图形」
- 「图形内存」拉到最大(本例为 8GB)
- 显示器数量可以先设为 1 个(多屏会加重虚拟显卡的像素填充负担,调试阶段先单屏确认)
4.2 编辑 .vmx 文件
在虚拟机文件目录下找到.vmx文件(如Windows 11 x64.vmx),用文本编辑器打开。
重要:必须先关机再编辑,否则 vmx 修改会在关机时被覆盖。
检查并确保以下配置存在:
mks.enable3d = "TRUE" svga.graphicsMemoryKB = "8388608"然后追加以下四行(我的显卡是AMD 的 7900xtx,如果你是英伟达或AMD其他型号,请不要照抄,去问AI核实):
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 调整虚拟显存
此外建议调整:
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 00000x09= 二进制0000 1001
改动了两个 bit:
- bit 0 (1) → 启用了某种通用兼容模式
- bit 3 (8) → 关掉了"强制软件渲染"标记
- bit 4 (16) → 原本置位的一个限制标记被清除
这是社区广泛验证过的值。如果
0x09在你的版本上不生效,可以尝试0x08、0x01或0x00逐个测试。
开始建模吧