I am trying to get an xrdp
session to use the GPU for display.
If I reboot the server then login with xrdp
using Xorg
I get this:
$ DISPLAY=:10 vglrun glxinfo -B
name of display: :10
Invalid MIT-MAGIC-COOKIE-1 key[VGL] ERROR: Could not open display :0.
If I get vglrun
to use :10
too it crashes:
$ DISPLAY=:10 vglrun -d :10 glxinfo -B
name of display: :10
display: :10 screen: 0
direct rendering: Yes
OpenGL vendor string: Mesa/X.org
OpenGL renderer string: llvmpipe (LLVM 12.0.0, 256 bits)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 21.0.3
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
Segmentation fault (core dumped)
If I then login directly on the server as the same user, then return to my xrdp
session and issue the same command:
$ DISPLAY=:10 vglrun glxinfo -B
name of display: :10
display: :10 screen: 0
direct rendering: Yes
Memory info (GL_NVX_gpu_memory_info):
Dedicated video memory: 8192 MB
Total available memory: 8192 MB
Currently available dedicated video memory: 7988 MB
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 980M/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 460.91.03
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL version string: 4.6.0 NVIDIA 460.91.03
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 460.91.03
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
The NVidia driver is available, and my application is accelerated on the server side.
I can set my account to auto-login, but as we are considering moving to headless cloud servers, I need a solution that doesn't require a physical login to DISPLAY=:0
. I've tried the suggestions on this question but I didn't have any luck.