Wine 安装了 2 个专用 GPU,但使用了错误的 GPU

Wine 安装了 2 个专用 GPU,但使用了错误的 GPU

我安装了 2 个 GPU,一个 1080ti(我连接了 1 个显示器)和一个 1660ti,没有连接任何显示器。

我正在使用 Wine 运行一个应用程序,它在启动时崩溃了。有一些与表面渲染相关的错误,但它提到了我安装的第二张显卡(GTX 1660 Ti)。

我从 nVidia 驱动程序中解除了第二个 GPU 的绑定,并重新启动了显示管理器,Wine 应用程序运行正常。因此,只需让 Wine 使用正确的 GPU 进行渲染即可。在尝试研究这个问题时,我只看到有人使用 Wine 和集成英特尔显卡以及单身的专用的 nVidia 显卡。因此,这些问题的解决方案是使用 nVidia Optimus,但在我的案例中无法使用。

是否有某种环境变量或某种解决方案可以强制将 1080Ti 用作主 GPU全部应用程序?

答案1

事实证明这不是 Wine 的问题,而是 DXVK 的问题。DXVK 识别了两个 GPU,并选择使用 1660ti。运行后的日志WINEDEBUG=+wgl wine <exe>显示以下内容

info:  D3D11CoreCreateDevice: Probing D3D_FEATURE_LEVEL_11_1
info:  D3D11CoreCreateDevice: Using feature level D3D_FEATURE_LEVEL_11_1
info:  Device properties:
info:    Device name:     : NVIDIA GeForce GTX 1660 Ti
info:    Driver version   : 515.43.4

这表明它确实是 DXVK。在研究了 DXVK 之后,我发现了以下论点,它解决了这个问题; DXVK_FILTER_DEVICE_NAME

Wine 日志显示以下信息

info:  NVIDIA GeForce GTX 1660 Ti:
info:    Driver: 515.43.4
info:    Vulkan: 1.3.205
info:    Memory Heap[0]:
info:      Size: 6144 MiB
info:      Flags: 0x1
info:      Memory Type[1]: Property Flags = 0x1
info:    Memory Heap[1]:
info:      Size: 48209 MiB
info:      Flags: 0x0
info:      Memory Type[0]: Property Flags = 0x0
info:      Memory Type[2]: Property Flags = 0x6
info:      Memory Type[3]: Property Flags = 0xe
info:    Memory Heap[2]:
info:      Size: 246 MiB
info:      Flags: 0x1
info:      Memory Type[4]: Property Flags = 0x7
info:  NVIDIA GeForce GTX 1080 Ti:
info:    Driver: 515.43.4
info:    Vulkan: 1.3.205
info:    Memory Heap[0]:
info:      Size: 11264 MiB
info:      Flags: 0x1
info:      Memory Type[7]: Property Flags = 0x1
info:    Memory Heap[1]:
info:      Size: 48209 MiB
info:      Flags: 0x0
info:      Memory Type[0]: Property Flags = 0x0
info:      Memory Type[1]: Property Flags = 0x0
info:      Memory Type[2]: Property Flags = 0x0
info:      Memory Type[3]: Property Flags = 0x0
info:      Memory Type[4]: Property Flags = 0x0
info:      Memory Type[5]: Property Flags = 0x0
info:      Memory Type[6]: Property Flags = 0x0
info:      Memory Type[8]: Property Flags = 0x6
info:      Memory Type[9]: Property Flags = 0xe
info:    Memory Heap[2]:
info:      Size: 246 MiB
info:      Flags: 0x1
info:      Memory Type[10]: Property Flags = 0x7

它为我提供了我需要在参数中使用的设备名称(即NVIDIA GeForce GTX 1080 Ti。完整命令是DXVK_FILTER_DEVICE_NAME="NVIDIA GeForce GTX 1080 Ti" wine <exe>

相关内容