시나리오 및 질문:
내 주 사용자 X에서 동일한 Steam 게임의 두 인스턴스를 실행하고 있습니다. 이를 위해 기본 사용자에서 첫 번째 인스턴스를 시작하고 다른 사용자에서 다른 인스턴스를 시작합니다. 이는 예상대로 작동하지만 Vulkan이 두 번째 인스턴스에서 작동하도록 할 수 없습니다.
다른 사용자와 함께 두 번째 Steam 인스턴스를 실행하고 있습니다. xhost local:remoto && sudo -u remoto /usr/games/steam -applaunch 1041320.
-> WINED3D를 사용하는 것이 좋습니다. Vulkan을 사용하면 게임 프로세스가 CPU의 약 50%를 소모하기 때문에 Vulkan을 사용하여 실행해 보았습니다.
문제 해결:
다른 사용자의 sudo로 vulkan을 실행할 수 없음을 설명하기 위해 다음을 수행합니다.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.
sudo 대신 SSH X11 전달을 사용하여 위 시나리오를 실행해 보았지만 똑같은 결과를 얻었습니다.
위 시나리오에서 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
Vulkan은 "remoto" 사용자 Xsession에서 실행하면 제대로 작동합니다.