一直喜欢玩魔兽争霸3这游戏,最近在Ubuntu26.04上玩的时候观察了一下日志,原来我之前玩的都没有经过独立显卡的驱动,而是使用了系统的软件驱动,这一切都要从日志记录开始。
系统环境 :
Wine版本:wine-11.0

CPU带有集显,还有一张很差劲的独显:NVIDIA GTX 750 Ti,我是怎么发现玩游戏时没有使用独立显卡的呢?
当我想通过日志查看游戏运行时记录发现:手工执行以下命令,并把日志输出到文件中war3_debug.log
wine /opt/warcraft3/Frozen\ Throne.exe 2>&1 |tee war3_debug.log
以下为日志记录中的核心问题: llvmpipe(CPU 软渲染),没有使用NVIDIA显卡记录。
0188:fixme:d3d:wined3d_guess_card No card selector available for card vendor 0000 (using GL_RENDERER “llvmpipe (LLVM 21.1.8, 256 bits)”).
00e4:fixme:kernelbase:AppPolicyGetProcessTerminationMethod FFFFFFFA, 0069FECC
0198:fixme:d3d:state_linepattern_w Setting line patterns is not supported in OpenGL core contexts.
如何确认显卡在系统中已经正确驱动呢?上面的截图已经说明了,但还可以进一步确认。
1、通过nvidia-smi确认,这个命令来自包nvidia-utils-580(这是Ubuntu26.04系统中,不同版本,型号可能命名不同),有输出说明显卡正确安装。
2、glxinfo | grep “direct rendering” 返回YES为正确
3、lspci -nn | grep -i vga 有看到NVIDIA信息为正确
4、lspci -nn |grep -i nvidia 能看到NVIDIA信息为正确
5、vulkaninfo | grep “NVIDIA” 能看到信息
通过上面几条命令都有正确信息返回,说明显卡正确并驱动。
那话又说回来没何使用wine运行游戏时没有识别到并使用独立显卡呢?
从上面日志来看,Wine 正在使用 llvmpipe(一种 CPU 软件渲染器)来运行游戏,这意味着你的独立显卡并没有被正确调用。这就是导致《魔兽争霸3》启动失败、黑屏或极度卡顿的根本原因。
要解决这个问题,让 War3 在 Linux 上流畅运行,你可以按照以下步骤进行排查和修复:
1. 安装并配置正确的显卡驱动
首先必须确保系统安装了官方的闭源显卡驱动(尤其是 NVIDIA 显卡),而不是默认的开源 Nouveau 驱动。
- 检查驱动状态:打开终端输入
nvidia-smi,如果能正常输出显卡型号和驱动版本,说明驱动已安装。如果提示找不到命令,则需要先安装驱动。 - 安装驱动(以 Ubuntu/Debian 为例):可以尝试在终端执行
sudo ubuntu-drivers autoinstall自动安装推荐的闭源驱动,完成后重启电脑。
2. 安装 32位 Vulkan 库与依赖
War3 是一款老游戏,在现代 Linux 上通过 Wine 运行时,强烈建议借助 DXVK(将 DirectX 9 转换为 Vulkan)来提升性能和兼容性。要彻底根治这个问题,必须让 War3 绕过 OpenGL,直接走 DirectX 转 Vulkan(DXVK) 的高速通道。
为了让 War3 等游戏流畅运行,我们通常会引入一个名为 DXVK 的开源项目。DXVK 提供了更高性能的 d3d9.dll、d3d11.dll、d3d10core.dll 以及 dxgi.dll
- 启用 32位架构支持:War3 是 32 位程序,必须先开启系统的 32 位支持。执行命令:
sudo dpkg --add-architecture i386
- 安装必要的图形库:执行以下命令安装 Vulkan 及其 32 位支持库:
sudo apt update
sudo apt install mesa-vulkan-drivers libvulkan1 mesa-vulkan-drivers:i386 libvulkan1:i386 dxvk
如果直接安装dxvk有问题,可以借助winetricks来安装。
sudo apt install winetricks
winetricks dxvk
完成上面的基本条件还要使用winecfg配置一下Wine,添加几个dll链接库。
dxgi.dlld3d10core.dlld3d11.dlld3d9.dll

在新增函数库顶替里输入,点添加,依次把这几个添加进去,确认保存即可。
再次启动游戏观察日志:
wine /opt/warcraft3/Frozen\ Throne.exe 2>&1 |tee war3_debug.log
日志中有以下记录,说明已经在使用独立显卡了。
info: Game: War3.exe
info: DXVK: v2.7.1-509-g1676dcaf342a9b1
info: Build: x86 gcc 14.2.0
info: Vulkan: Found vkGetInstanceProcAddr in winevulkan.dll @ 0x74c38140
info: Extension providers:
info: Platform WSI
info: OpenVR
info: OpenVR: could not open registry key, status 2
Unable to read VR Path Registry from C:\users\swper\AppData\Local\openvr\openvrpaths.vrpath
warn: OpenVR: Failed to initialize OpenVR
info: OpenXR
info: Enabled instance extensions:
info: VK_KHR_get_surface_capabilities2
info: VK_KHR_surface
info: VK_KHR_surface_maintenance1
info: VK_KHR_win32_surface
info: Found device: NVIDIA GeForce GTX 750 Ti (NVIDIA 580.159.3)
info: Found device: Intel(R) UHD Graphics 730 (ADL-S GT1) (Intel open-source Mesa driver 26.0.3)
info: Found device: llvmpipe (LLVM 21.1.8, 256 bits) (llvmpipe 26.0.3)
info: Skipping: Software driver
info: D3D9: VK_FORMAT_D16_UNORM_S8_UINT -> VK_FORMAT_D24_UNORM_S8_UINT
info: Process set as DPI aware
3. 为什么这样做能完美解决?
- 安装DXVK后,并对wine注入高性能 DLL,如:
d3d9.dll等文件注入到你的游戏环境中,并强制设为“原生(native)”优先调用。 - 彻底告别软渲染:DXVK 会将 War3 的 DirectX 指令直接翻译成现代显卡完美支持的 Vulkan 指令,从而彻底避开之前导致你花屏和卡顿的
llvmpipe软渲染陷阱。