How to upgrade OpenGL?

#1

Hello,

I have OpenGL 3.1 on my pc and I need it to be 3.2 or more.
I’am struggle for hours do to this but I can’t
Could someone tell me how to proceed please ?

notes: my pc run through Ubuntu 18.04 and my graphic card drivers are up to date

Thank you to help me please

#2

Let’s see where you’re starting from. Please post the output of these commands:

glxinfo | grep ':' 
lspci
lshw -short

For each command, please post the output inside of triple-backticks, like this: ``` … ```. An example:

// Output goes here
#3

Thank you! :slightly_smiling_face:

  1. glxinfo | grep ':'
display: :50  screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
GLX version: 1.2
GLX extensions:
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: VMware, Inc. (0xffffffff)
    Device: llvmpipe (LLVM 9.0.0, 256 bits) (0xffffffff)
    Version: 19.3.0
    Accelerated: no
    Video memory: 7936MB
    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.1
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: llvmpipe (LLVM 9.0.0, 256 bits)
OpenGL version string: 3.1 Mesa 19.3.0-devel (git-f83f9d7 2019-09-07 bionic-oibaf-ppa)
OpenGL shading language version string: 1.40
OpenGL context flags: (none)
OpenGL extensions:
1 GLXFBConfigs:
  1. lspci
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 07)
00:14.0 USB controller: Intel Corporation 100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller (rev 31)
00:16.0 Communication controller: Intel Corporation 100 Series/C230 Series Chipset Family MEI Controller #1 (rev 31)
00:17.0 SATA controller: Intel Corporation Q170/Q150/B150/H170/H110/Z170/CM236 Chipset SATA Controller [AHCI Mode] (rev 31)
00:1c.0 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #5 (rev f1)
00:1d.0 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #9 (rev f1)
00:1d.2 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #11 (rev f1)
00:1d.3 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #12 (rev f1)
00:1f.0 ISA bridge: Intel Corporation C232 Chipset LPC/eSPI Controller (rev 31)
00:1f.2 Memory controller: Intel Corporation 100 Series/C230 Series Chipset Family Power Management Controller (rev 31)
00:1f.4 SMBus: Intel Corporation 100 Series/C230 Series Chipset Family SMBus (rev 31)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-LM (rev 31)
01:00.0 VGA compatible controller: NVIDIA Corporation GK208B [GeForce GT 710] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GK208 HDMI/DP Audio Controller (rev a1)

  1. lshw -short
===================================================
                         system         X150M-PRO ECC (Default string)
/0                       bus            X150M-PRO ECC-CF
/0/0                     memory         64KiB BIOS
/0/3d                    memory         8GiB System Memory
/0/3d/0                  memory         [empty]
/0/3d/1                  memory         [empty]
/0/3d/2                  memory         [empty]
/0/3d/3                  memory         8GiB DIMM DDR4 Synchronous 2133 MHz (0,5 ns)
/0/43                    memory         256KiB L1 cache
/0/44                    memory         1MiB L2 cache
/0/45                    memory         8MiB L3 cache
/0/46                    processor      Intel(R) Xeon(R) CPU E3-1220 v5 @ 3.00GHz
/0/100                   bridge         Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/D
/0/100/1                 bridge         Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controll
/0/100/1/0               display        GK208B [GeForce GT 710]
/0/100/1/0.1             multimedia     GK208 HDMI/DP Audio Controller
/0/100/14                bus            100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller
/0/100/14/0   usb1       bus            xHCI Host Controller
/0/100/14/1   usb2       bus            xHCI Host Controller
/0/100/16                communication  100 Series/C230 Series Chipset Family MEI Controller #1
/0/100/17                storage        Q170/Q150/B150/H170/H110/Z170/CM236 Chipset SATA Controller [AH
/0/100/1c                bridge         100 Series/C230 Series Chipset Family PCI Express Root Port #5
/0/100/1d                bridge         100 Series/C230 Series Chipset Family PCI Express Root Port #9
/0/100/1d.2              bridge         100 Series/C230 Series Chipset Family PCI Express Root Port #11
/0/100/1d.3              bridge         100 Series/C230 Series Chipset Family PCI Express Root Port #12
/0/100/1f                bridge         C232 Chipset LPC/eSPI Controller
/0/100/1f.2              memory         Memory controller
/0/100/1f.4              bus            100 Series/C230 Series Chipset Family SMBus
/0/100/1f.6   eth0       network        Ethernet Connection (2) I219-LM
/0/1          scsi0      storage        
/0/1/0.0.0    /dev/sda   disk           250GB CT250MX500SSD1
/0/1/0.0.0/1  /dev/sda1  volume         2047KiB BIOS Boot partition
/0/1/0.0.0/2  /dev/sda2  volume         1GiB System partition
/0/1/0.0.0/3  /dev/sda3  volume         1023MiB Linux swap volume
/0/1/0.0.0/4  /dev/sda4  volume         230GiB LVM Physical Volume
/1                       power          To Be Filled By O.E.M.

That’s it :slight_smile:

(Actually it’s not a PC but a server)

#4

This indicates that you have an “NVidia GeForce GT 710” GPU installed in that box:

01:00.0 VGA compatible controller: NVIDIA Corporation GK208B [GeForce GT 710] (rev a1)
...
/0/100/1/0               display        GK208B [GeForce GT 710]

which supports OpenGL 4.6 with these capabilities (based on an OpenGL driver report):

However, this:

client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
...
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: llvmpipe (LLVM 9.0.0, 256 bits)
OpenGL version string: 3.1 Mesa 19.3.0-devel (git-f83f9d7 2019-09-07 bionic-oibaf-ppa)

indicates that either your system is not properly configured to perform OpenGL rendering using the NVidia graphics driver, or you are not allowed to render with it inside your VMWare-hosted virtual machine (at least with its current configuration). Instead, it looks like your OpenGL applications (like glxinfo) are being directed to render with the Mesa3D software rendering driver.

You need to install the NVidia graphics drivers for the GeForce GT 710 GPU on your machine.

Once they are (they may already be), then run your OpenGL program directly on the machine, not in a virtual machine hosted on the machine.

This is where you can download the drivers directly from NVidia, but for Linux it can be more convenient to just install the NVidia graphics drivers via a distro package. In many cases, updates are automatic via software update. So once you install and configure them, you can just forget about them:

Also, your X $DISPLAY being set to :50 (display #50) looks strange. Display #0 is more typical. I’m guessing this is because you are running this inside of a VMWare-hosted virtual machine, rather than directly on the machine itself, and VMWare is creating an emulated X display to provide to your X applications.

1 Like
#5

Wow very clear and complete! :grinning:

I will try the indications on the links you give in order to install properly the drivers.

But I don’t understand when you wrote :

run your OpenGL program directly on the machine, not in a virtual machine hosted on the machine.

How to do that?
I’am very newbie with Linux, so I use the server through X2GO with XFCE and you mean this is not the real way ?

Thank you again

#6

Oh, just go to the actual machine, log in directly via the graphical login, open a shell, and run an OpenGL program (e.g. glxinfo, glxgears, etc.).

I gather that X2GO is remote desktop software. For starters, put that aside and don’t use it. Log in directly.

Once the NVidia graphics drivers are properly installed and you are logged into the machine directly rather than through a virtual machine or remote desktop software, then your glxinfo results should look more like this:

> glxinfo | grep ':'
name of display: :0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
server glx extensions:
client glx vendor string: NVIDIA Corporation
client glx version string: 1.4
client glx extensions:
GLX version: 1.4
GLX extensions:
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 1650/PCIe/SSE2
OpenGL core profile version string: 4.5.0 NVIDIA 430.14
OpenGL core profile shading language version string: 4.50 NVIDIA
OpenGL core profile context flags: (none)                                                           
OpenGL core profile profile mask: core profile                                                      
OpenGL core profile extensions:                                                                     
OpenGL version string: 4.6.0 NVIDIA 430.14                                                          
OpenGL shading language version string: 4.60 NVIDIA                                                 
OpenGL context flags: (none)                                                                        
OpenGL profile mask: (none)                                                                         
OpenGL extensions:                                                                                  
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 430.14                                       
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20                           
OpenGL ES profile extensions:                                                                       
215 GLXFBConfigs:                                                                                   
1 Like
#7

Okay I will try this tomorrow and i will tell you, it’s time to sleep in my country now :slight_smile:

thanks a lot