Introduction to libglvnd
libglvnd is a vendor-neutral dispatch layer for arbitrating OpenGL
API calls between multiple vendors. It allows multiple drivers from
different vendors to coexist on the same filesystem, and determines
which vendor to dispatch each API call to at runtime.
In other words, this package contains OpenGL libraries and
wrappers. Mesa-25.0.2 also provides OpenGL libraries. You
will need to decide which provider you want to install from. This
package is required by NVIDIA-570.133.07 as that driver will not
be able to use Mesa's OpenGL
libraries; however, every other driver, including those in
Mesa, can simply use its OpenGL
libraries. Furthermore, no programs in this book require this
package. Problems may arise with some build systems expecting
certain files or binary-downloaded applications linked against this
package's libraries which are not provided by Mesa-25.0.2, though these
issues are few and far between.
It is up to you on which provider to install from. If you don't
want to install OpenGL libraries from this package, you can skip
this page and continue onto the next package. If you want to
install this package, but not NVIDIA-570.133.07, you will still
need to install Mesa-25.0.2. Its instructions will account for
this installation.
libglvnd Dependencies
Required
Xorg
Libraries
Installation of libglvnd
Install libglvnd by running the following commands:
mkdir build &&
cd build &&
meson setup .. --prefix=/usr --buildtype=release &&
ninja
Now as the root
user:
ninja install
lib32 Installation of libglvnd
First clean the build directory:
rm -rf *
Install lib32-libglvnd by running the following commands:
CC="gcc -m32" CXX="g++ -m32" \
PKG_CONFIG_PATH=/usr/lib32/pkgconfig \
meson setup --prefix=/usr \
--libdir=/usr/lib32 \
--buildtype=release \
.. &&
ninja
Now as the root
user:
DESTDIR=$PWD/DESTDIR ninja install &&
cp -vr DESTDIR/usr/lib32/* /usr/lib32 &&
rm -rf DESTDIR &&
ldconfig
Command Explanations
Note
Inspect meson_options.txt
for a
full list of options.
--buildtype=release
:
Specify a buildtype suitable for stable releases of the package, as
the default may produce unoptimized binaries.
Contents
Installed Programs:
None
Installed Libraries:
libEGL.so, libGL.so, libGLESv1_CM.so,
libGLESv2.so, libGLX.so, libGLdispatch.so, and
libOpenGL.so
Installed Directories:
/usr/include/{EGL,GLES{,2,3},glvnd,KHR}
Short Descriptions
libEGL.so
|
contains EGL window-system API functions
|
libGL.so
|
is a wrapper library to libGLdispatch.so and libGLX.so
|
libGLESv1_CM.so
|
is a wrapper library to libGLdispatch.so which exposes OpenGL
ES entrypoints
|
libGLESv2.so
|
is a wrapper library to libGLdispatch.so which exposes OpenGL
ES entrypoints
|
libGLX.so
|
manages loading GLX vendor libraries and dispatching GLX
core and extension functions to the right vendor
|
libGLdispatch.so
|
implements core GL dispatching and TLS
|
libOpenGL.so
|
is a wrapper library to libGLdispatch.so which exposes OpenGL
4.5 core and compatibility entry points
|