OpenGL doesn't use nvidia drivers on ubuntu 18.04 (uses llvmpipe)

I have an ubuntu 18.04 computer with an nvidia P5000 Quadro video card. I have installed the nvidia-440.82 drivers and seems like they are working fine, as indicated by nvidia-smi as shown below.

image

I would like to use VMWare Workstation with SVGA GPU sharing, so that i can run OpenGL based applications inside an instance of a virtual machine. But it looks like there is some misconfiguration with regards to OpenGL on the ubuntu 18.04 host. Instead of using the nvidia drivers, it seems to use the llvmpipe drivers. Please find the results of glxinfo | grep “:”,

glxinfo | grep “:”
name of display: localhost:10.0
display: localhost:10 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
GLX version: 1.4
GLX extensions:
Extended renderer info (GLX_MESA_query_renderer):
Vendor: VMware, Inc. (0xffffffff)
Device: llvmpipe (LLVM 9.0, 256 bits) (0xffffffff)
Version: 19.2.8
Accelerated: no
Video memory: 128337MB
Unified memory: no
Preferred profile: core (0x1)
Max core profile version: 3.3
Max compat profile version: 3.1
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.0
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: llvmpipe (LLVM 9.0, 256 bits)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 19.2.8
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.1 Mesa 19.2.8
OpenGL shading language version string: 1.40
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 19.2.8
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:
70 GLXFBConfigs:

I have already tried re-installing the nvidia drivers as some people had suggested in similar posts in the forums, but that hasn’t helped. I have attached the logs for nvidia-bug-report as well. Any help on this regard would be significantly helpful. Kindly let me know incase of any additional information.

nvidia-bug-report.log (1001.8 KB)

I don’t really understand what you’re trying to do or at least how.

name of display: localhost:10.0

looks like you’re connecting over ssh using X-forwarding so you’re querying the client’s glx, probably due to incompatibility falling back to software GL.
In general, the driver is installed fine, there’s just no Xserver started at all. It was two days ago but there was no monitor connected to it.
Furthermore I don’t know to what extent VMware WS nowadays supports hw accel with Linux as host os.
So, errrm…what?

Thanks for the very quick response. I am quiet a beginner and would like to just expand on what I am trying to do, and the current setup.

The ubuntu machine is only remotely accessible. I am using it through ssh. I would like to create a Virtual Machine with VMWare to run Windows based OpenGL applications. The application fails to function correctly citing OpenGL issues. Then I used glxinfo to check how OpenGL is configured on the ubuntu host and observed that it wasn’t using the nvidia drivers. With regards to the ubuntu machine, ideally I would like to be able to ssh into the machine as well as use the GUI with XRDP. How can I fix this OpenGL issue?

I don’t think that will lead to anything actually usable but it’s your decision.
First of all, VMware Workstation is a desktop product, so you will need to start an Xserver on the host. Since you have no monitor connected, you will have to fake one using the ConnectedMonitor xorg.conf option

Section "ServerLayout"
    Identifier     "layout"
    Screen      0  "nvidia" 0 0
EndSection

Section "Monitor"
  Identifier "Monitor0"
  VendorName "Unknown"
  ModelName "Fake"
  HorizSync 15.0 - 86.0
  VertRefresh 60
  Option "DPMS" "False"
EndSection

Section "Device"
    Identifier     "nvidia"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    Option         "ConnectedMonitor" "DFP-0"
    Option         "AllowEmptyInitialConfiguration"
EndSection

Section "Screen"
    Identifier     "nvidia"
    Device         "nvidia"
    Monitor        "Monitor0"
EndSection

Then use startx to start an Xserver. Afterwards, you can use e.g. x11vnc to make that Xserver display available for a VNC client. You can tunnel that over ssh to your client.
You should see a minimal Xserver, where you can run glxinfo |grep vendor and it should return ‘nvidia’. Then you can set up VMWare.
As you can see, this is just a rough outline to get you started.

1 Like