场景和问题:
我在我的主用户 X 上运行同一个 Steam 游戏的两个实例。为此,我在我的主用户上启动第一个实例,在另一个用户上启动另一个实例。这按我的预期工作,但我无法让 Vulkan 在我的第二个实例上工作。
我正在运行另一个用户的第二个 Steam 实例:xhost local:remoto && sudo -u remoto /usr/games/steam -applaunch 1041320.
-> 使用 WINED3D 效果很好。我尝试使用 Vulkan 运行它,因为使用它游戏进程将消耗大约 50% 的 CPU。
故障排除:
为了说明 vulkan 无法通过另一个用户使用 sudo 运行,我这样做:xhost local:remoto && sudo -u remoto VK_LOADER_DEBUG=all vulkaninfo
输出:
error: XDG_RUNTIME_DIR not set in the environment.
ERROR: setupLoaderTermPhysDevs: Failed to detect any valid GPUs in the current config
ERROR: setupLoaderTrampPhysDevs: Failed during dispatch call of vkEnumeratePhysicalDevices' to lower layers or load
er to get count.
我尝试使用 SSH X11 转发而不是 sudo 来执行上述场景,但得到了完全相同的结果。
问题不在于直接渲染,因为我在上述场景中使用 WINED3D 运行游戏效果很好。
输出 xhost local:remoto && sudo -u remoto glxinfo | grep "OpenGL renderer string"
:
non-network local connections being added to access control list
OpenGL renderer string: Mesa DRI Intel(R) Haswell Desktop
VK_LOADER_DEBUG=all vulkaninfo
如果我在“remoto”用户 Xsession 上运行,Vulkan 可以正常工作。