libglvnd-1.7.0

Introduction to libglvnd

The libglvnd package dispatches OpenGL API calls to a given driver vendor at runtime. Some of the libraries are simply wrappers to the main dispatcher. Drivers that are built with libglvnd in mind provide their own OpenGL functionality. For Mesa-25.2.2, it will install libEGL_mesa and libGLX_mesa. For NVIDIA-580.82.07, it will provide libEGL_nvidia, libGLESv2_nvidia, and libGLX_nvidia. Each rendition is specific to the driver it comes from. The benefit of doing it this way is that a driver doesn't have to obey to the architecture an OpenGL vendor applies nor being absorbed by the vendor.

[Important]

Important

Read About OpenGL for some important information regarding libglvnd vs Mesa's OpenGL implementations. In short, this package is heavily recommended.

libglvnd Dependencies

Recommended

Installation of libglvnd

Install libglvnd by running the following commands:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D gles1=false      \
            -D hgl=false        \
            .. &&

ninja

Now as the root user:

ninja install

lib32 Installation of libglvnd

Install lib32-libglvnd by running the following commands:

rm -rf * &&
CC="gcc -m32" CXX="g++ -m32"         \
PKG_CONFIG_PATH=/usr/lib32/pkgconfig \
meson setup --prefix=/usr            \
            --libdir=/usr/lib32      \
            --buildtype=release      \
            -D gles1=false           \
            -D hgl=false             \
            .. &&

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]

Note

Inspect meson_options.txt or meson.options 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.

-D gles1=false: This disables an obsolete version of OpenGL ES.

-D hgl=false: This disables targeting Haiku by default as this guide is for Linux, not Haiku.

-D gles2=false: If you don't need OpenGL ES, use this option. Be sure to read the section called “About GLES (OpenGL ES)”.

Contents

Installed Programs: None
Installed Libraries: libEGL, libGL, libGLESv2, libGLX, libGLdispatch, and libOpenGL
Installed Directories: /usr/include/{EGL,GLES{2,3},glvnd,KHR}

Short Descriptions

libEGL

contains EGL window-system API functions

libGL

is the legacy OpenGL library; wrapper library calling libGLdispatch and libGLX

libGLESv2

exposes OpenGL ES 2.x and 3.x entrypoints; wrapper library calling libGLdispatch

libGLX

dispatches GLX extensions to the right vendor

libGLdispatch

dispatches OpenGL and TLS to the right vendor

libOpenGL

is the new OpenGL library and exposes OpenGL entrypoints; wrapper library calling libGLdispatch



[4] If Xorg Libraries is not installed, this package will not provide libGL or libGLX. libOpenGL will still be built. Many build systems will expect libGL to be present, so it is heavily recommended to install Xorg Libraries before installing this package.