Re: [VirtualGL-Users] Question on VirtualGL mechanics in regards to TurboVNC/headless systems

20 views
Skip to first unread message

DRC

unread,
Feb 8, 2019, 12:36:50 AM2/8/19
to virtual...@googlegroups.com
You definitely need the "3D X server" to always be running in the background, and this is independent of the "2D X server", which in your case is a TurboVNC session.  The TurboVNC X server is a virtual X server ("X proxy"), so it doesn't actually touch the GPU.  It renders all of the X11 primitives and images from X11 applications into a framebuffer in main memory, so the only actual driver connected to the TurboVNC X server is the RFB server, which deals with sending changes to that framebuffer to a connected viewer or viewers.  VirtualGL's job is to marshal OpenGL commands from 3D applications (launched using vglrun) to the 3D X server, read back the rendered frames from the GPU in real time, and composite the frames into the application's X windows, which are in the TurboVNC session.

The main thing that vglserver_config does is insert a bit of code (either invoking the vglgenkey script or invoking xhost +LOCAL:) into the display manager startup scripts so that VirtualGL users (either the vglusers group or all users of the system, depending on the option you chose) can access the 3D X server while the display manager is sitting at the login prompt.  Inability to access Display :0 means that vglserver_config apparently didn't succeed in doing that, or something else is amiss with your server's configuration.  I use CentOS 7 as my primary development machine, so I know that vglserver_config works properly on that platform using both GDM and LightDM.

Other comments inline.


On 2/5/19 3:45 PM, johnbot wrote:

so i mucked around and set vgl display to 1 which I'm pretty sure is not what i wanted for split rendering.

If the GPU-attached X server ("3D X server") is using Display :0, which is normally the case, then you shouldn't need to change VGL_DISPLAY.  VGL_DISPLAY should point to the 3D X server, and DISPLAY should point to the 2D X server, but :0.0 is the default for VGL_DISPLAY if it isn't specified.


Rebooted after running systemctl set-default graphical.target  (not sure if required)

Shouldn't be required unless you changed it. graphical.target is the default in CentOS 7.

I've also attempted to run additional configuration following the Headless nvidia mini how-to

https://virtualgl.org/Documentation/HeadlessNV

Not applicable unless you are actually using a headless GPU (with no monitor outputs.)

I assume VGL display 0 needs to be available however the sanity checks are failing.


I've run the sanity checks with no output. 

xdpyinfo -display :0

/opt/VirtualGL/bin/glxinfo -display :0 -c


Your assumption is correct.  Not sure what could be wrong.  If you are using GDM, then I would suggest editing /etc/gdm/Init/Default and adding something like

    echo testing >/tmp/out

right before the xhost line that vglserver_config added.  Then verify whether /tmp/out is created when you restart the display manager (init 3/init 5).  I didn't ask whether you're using GDM or LightDM.  The output of vglserver_config that you posted indicates that both are installed.  Either should work fine on CentOS 7, so you might try switching from one to the other to see if that solves the problem.

Reply all
Reply to author
Forward
0 new messages