Re: [tigervnc-users] vncserver starts a mesa display instead of OpenGL

1,921 views
Skip to first unread message

DRC

unread,
Mar 1, 2018, 7:07:50 PM3/1/18
to tigervn...@googlegroups.com
I think you're misunderstanding how VirtualGL works. TigerVNC, or any
Xvnc server that supports OpenGL (RealVNC, TurboVNC 2.2+, etc.), will
always use Mesa. Mesa is an implementation of OpenGL, but it is not
hardware-accelerated in a remote display environment. VirtualGL
intercepts the GLX and OpenGL commands from 3D applications and forwards
them to Pbuffers on the hardware-accelerated X display (:0), then it
reads back the rendered 3D images and composites them into the
appropriate place in the application's X window(s) (on the VNC X
server.) Hence:

> glxinfo | grep -E 'vendor|direct'
direct rendering: No (If you want to find out why, try setting
LIBGL_DEBUG=verbose)
server glx vendor string: SGI
client glx vendor string: NVIDIA Corporation
OpenGL vendor string: VMware, Inc.

> vglrun glxinfo | grep -E 'vendor|direct'

direct rendering: Yes
server glx vendor string: VirtualGL
client glx vendor string: VirtualGL
OpenGL vendor string: NVIDIA Corporation

Any application that is started with vglrun will bypass the Mesa OpenGL
implementation in the VNC server. I think the main thing you're doing
wrong is that you should be running 'vglrun glxgears' in the VNC server,
not on the client. Refer to the VirtualGL User's Guide for more
information on how to configure the server for VirtualGL.

DRC

On 3/1/18 1:48 PM, Quincy Wofford wrote:
> I am attempting to use VirtualGL with a TigerVNC server and TurboVNC
> client. I noticed when I ran a server, and connected a client to it, I
> would get a segfault when attempting "vglrun glxgears" from the client.
>
> When I inspected the display that was created by TigerVNC server, I
> noticed that it was started with Mesa rather than OpenGL. My :0 display
> is running OpenGL. Should I be telling TigerVNC that I want it to start
> with OpenGL, somehow? Can someone comment on what I may be doing wrong?
>
> Thank you!
>
>
> ➜ usr glxinfo -display :0 -B
> name of display: :0
> display: :0 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: 7775 MB
> OpenGL vendor string: NVIDIA Corporation
> OpenGL renderer string: Quadro M4000/PCIe/SSE2
> OpenGL core profile version string: 4.6.0 NVIDIA 390.25
> 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 390.25
> 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 390.25
> OpenGL ES profile shading language version string: OpenGL ES GLSL ES
> 3.20
>
> ➜ usr vncserver
>
> New 'pn1619969.lanl.gov:1 (qwofford)' desktop is pn1619969.lanl.gov:1
>
> Starting applications specified in /home/qwofford/.vnc/xstartup
> Log file is /home/qwofford/.vnc/pn1619969.lanl.gov:1.log
>
> ➜ usr glxinfo -display :1 -B
> name of display: :1
> display: :1 screen: 0
> direct rendering: No (If you want to find out why, try setting
> LIBGL_DEBUG=verbose)
> OpenGL vendor string: Mesa Project
> OpenGL renderer string: Software Rasterizer
> OpenGL version string: 1.4 (2.1 Mesa 9.1.1)
>
>
Reply all
Reply to author
Forward
0 new messages