I work on an application that - as a requirement from a company partner - still has to run on OpenGL 2 and may not (yet) be updated to OpenGL 3. I have now received reports that the application crashes on RHEL 8 when using the 470.74 NVIDIA x86_64 Kernel Module. Upon investigation, the libGL on the system seems to be missing some Framebuffer Object Extension (GL_EXT_framebuffer_object) functions, namely glFramebufferRenderbufferEXT, glCheckFramebufferStatusEXT, glGetRenderbufferParameterivEXT and glGetFramebufferAttachmentParameterivEXT. Of those, we only rely on glFramebufferRenderbufferEXT and glCheckFramebufferStatusEXT, but the absence causes the application to crash on the system.
Does anyone know:
Was the removal of these functions intentional or an oversight?
Will the functions return in a future driver version? If so, when can this be expected?
Which versions of the driver are affected?
Will additional functionality be removed? If so, is there a schedule available to developers?
Here is some additional information about the RHEL 8 system we checked the library on:
NVRM version: NVIDIA UNIX x86_64 Kernel Module 470.74 Mon Sep 13 23:09:15 UTC 2021
GCC version: gcc version 8.4.1 20200928 (Red Hat 8.4.1-1) (GCC)
readelf of libGL.so: libgl_readelf.log (271.1 KB)
I don’t see anything removed on any driver version when looking for glFramebufferRenderbufferEXT. libGL.so though belongs to libglvnd, while the nvidia installer also contains it, it’s most often installed through a distro package. Where does it link to?
ls -l /usr/lib64/libGL.so*
ls -l /usr/lib64/libGL.so*
lrwxrwxrwx 1 root root 14 16. Nov 2020 /usr/lib64/libGL.so.1 → libGL.so.1.7.0
-rwxr-xr-x 1 root root 559520 16. Nov 2020 /usr/lib64/libGL.so.1.7.0
I usually work on Windows and don’t really have a lot of experience with Linux. Where would the libGL link in case of a Nvidia driver vs the default distro driver?
I noticed that the libGL.so on the system is almost a year older than the libGLX_nvidia.so or the 470.74 driver. Could this mean that the driver was not installed correctly or replaced by some update?
Like said, libGL.so doesn’t belong to the driver but to GLVND, the vendor-neutral dispatcher, which switches between GL implementations (Mesa/Nvidia) depending on gpu used (intel/amd/nvidia). It’s perfectly fine, 1.7.0 being the latest version.