mirror of
https://github.com/glfs-book/glfs.git
synced 2026-01-14 00:49:06 +00:00
libglvnd: Install libGLESv1_CM.
GLES v1 support was initially disabled as it was a belief among some of the editors and contributors that GLES v1, being an older API, was not required by any packages or games, or if games needed it, Steam would provide GLES v1. This commit serves as prove that the contradiction is correct. As for packages, pretty much all GLES packages use GLES v2/v3. Games on the other hand can use GLES v1. Steam does not supply GLES v1 and this can be confirmed via a find command in ~/.local/share/Steam. There is the bootstrap tarball which actually does contain libGLESv1_CM in /libglvnd-1.7.0/build/DESTDIR/usr/lib. The Steam runtimes (normal client runtime: steamrt64; Soldier and Sniper) don't package GLES v1 in any way besides what is provided by Wine as DLLs. So if a Linux native game needs GLES v1, it's up to the system to provide the capabilities. Thanks @renodr for bringing this to my attention.
This commit is contained in:
@ -9,6 +9,7 @@ NVVM70_VERSION="4"
|
||||
MANDATORY_64=1 MANDATORY_32=1
|
||||
X11_64=1 X11_32=1
|
||||
EGL_64=1 EGL_32=1
|
||||
GLESV1_64=1 GLESV1_32=1
|
||||
GLESV2_64=1 GLESV2_32=1
|
||||
VULKAN=1 VULKAN_EGL=0
|
||||
OPENCL_64=1 OPENCL_32=1
|
||||
@ -29,6 +30,8 @@ while [ $# -gt 0 ]; do
|
||||
--no-x11-lib32 ) X11_32=0 ;;
|
||||
--no-egl-64bit ) EGL_64=0 ;;
|
||||
--no-egl-lib32 ) EGL_32=0 ;;
|
||||
--no-glesv1-64bit ) GLESV1_64=0 ;;
|
||||
--no-glesv1-lib32 ) GLESV1_32=0 ;;
|
||||
--no-glesv2-64bit ) GLESV2_64=0 ;;
|
||||
--no-glesv2-lib32 ) GLESV2_32=0 ;;
|
||||
--no-vulkan ) VULKAN=0 ;;
|
||||
@ -137,7 +140,7 @@ if [ $MANIFEST_FILE_VERSION != $MANIFEST_VERSION ]; then
|
||||
fi
|
||||
|
||||
manifest_uninstall() {
|
||||
for type in {mandatory-64,mandatory-32,x11-64,x11-32,egl-64,egl-32,glesv2-64,glesv2-32,opencl-64,opencl-32,cuda-64,cuda-32,ngx,rt,settings}; do
|
||||
for type in {mandatory-64,mandatory-32,x11-64,x11-32,egl-64,egl-32,glesv1-64,glesv1-32,glesv2-64,glesv2-32,opencl-64,opencl-32,cuda-64,cuda-32,ngx,rt,settings}; do
|
||||
for bin in $(cat $NV_MANIFEST | grep $type | cut -d':' -f2-); do
|
||||
find $LIBDIR $LIB32 $BINDIR -name "$bin.so*" -exec $RM_BIN {} \;
|
||||
find $LIBDIR $LIB32 $BINDIR -name "$bin" -exec $RM_BIN {} \;
|
||||
@ -253,6 +256,21 @@ if [ $EGL_32 = 1 ]; then
|
||||
done
|
||||
fi
|
||||
|
||||
if [ $GLESV1_64 = 1 ]; then
|
||||
echo "Installing 64-bit GLESv1 libraries..."
|
||||
mkdir -pv $LIBDIR
|
||||
for lib in $(cat $NV_MANIFEST | grep glesv1-64: | cut -d':' -f2-); do
|
||||
$INSTALL_LIB $NV_X_RUN_DIR/$lib.so.$NVIDIA_VERSION $LIBDIR
|
||||
done
|
||||
fi
|
||||
if [ $GLESV1_32 = 1 ]; then
|
||||
echo "Installing lib32 GLESv1 libraries..."
|
||||
mkdir -pv $LIB32
|
||||
for lib in $(cat $NV_MANIFEST | grep glesv1-32: | cut -d':' -f2-); do
|
||||
$INSTALL_LIB $NV_X_RUN_DIR/32/$lib.so.$NVIDIA_VERSION $LIB32
|
||||
done
|
||||
fi
|
||||
|
||||
if [ $GLESV2_64 = 1 ]; then
|
||||
echo "Installing 64-bit GLESv2 libraries..."
|
||||
mkdir -pv $LIBDIR
|
||||
@ -385,7 +403,7 @@ fi
|
||||
|
||||
echo "Writing to $SHAREDIR/nvidia/installed_files..."
|
||||
mkdir -pv $SHAREDIR/nvidia
|
||||
for type in {mandatory-64,mandatory-32,x11-64,x11-32,egl-64,egl-32,glesv2-64,glesv2-32,opencl-64,opencl-32,cuda-64,cuda-32,ngx,rt,settings}; do
|
||||
for type in {mandatory-64,mandatory-32,x11-64,x11-32,egl-64,egl-32,glesv1-64,glesv1-32,glesv2-64,glesv2-32,opencl-64,opencl-32,cuda-64,cuda-32,ngx,rt,settings}; do
|
||||
for bin in $(cat $NV_MANIFEST | grep $type | cut -d':' -f2-); do
|
||||
find $LIBDIR $LIB32 $BINDIR -name "$bin.so*" >> $SHAREDIR/nvidia/installed_files1
|
||||
find $LIBDIR $LIB32 $BINDIR -name "$bin" >> $SHAREDIR/nvidia/installed_files1
|
||||
|
||||
@ -9,6 +9,7 @@ NVVM70_VERSION="4"
|
||||
MANDATORY_64=1 MANDATORY_32=1
|
||||
X11_64=1 X11_32=1
|
||||
EGL_64=1 EGL_32=1
|
||||
GLESV1_64=1 GLESV1_32=1
|
||||
GLESV2_64=1 GLESV2_32=1
|
||||
VULKAN=1 VULKAN_EGL=0
|
||||
OPENCL_64=1 OPENCL_32=1
|
||||
@ -29,6 +30,8 @@ while [ $# -gt 0 ]; do
|
||||
--no-x11-lib32 ) X11_32=0 ;;
|
||||
--no-egl-64bit ) EGL_64=0 ;;
|
||||
--no-egl-lib32 ) EGL_32=0 ;;
|
||||
--no-glesv1-64bit ) GLESV1_64=0 ;;
|
||||
--no-glesv1-lib32 ) GLESV1_32=0 ;;
|
||||
--no-glesv2-64bit ) GLESV2_64=0 ;;
|
||||
--no-glesv2-lib32 ) GLESV2_32=0 ;;
|
||||
--no-vulkan ) VULKAN=0 ;;
|
||||
@ -137,7 +140,7 @@ if [ $MANIFEST_FILE_VERSION != $MANIFEST_VERSION ]; then
|
||||
fi
|
||||
|
||||
manifest_uninstall() {
|
||||
for type in {mandatory-64,mandatory-32,x11-64,x11-32,egl-64,egl-32,glesv2-64,glesv2-32,opencl-64,opencl-32,cuda-64,cuda-32,ngx,rt,settings}; do
|
||||
for type in {mandatory-64,mandatory-32,x11-64,x11-32,egl-64,egl-32,glesv1-64,glesv1-32,glesv2-64,glesv2-32,opencl-64,opencl-32,cuda-64,cuda-32,ngx,rt,settings}; do
|
||||
for bin in $(cat $NV_MANIFEST | grep $type | cut -d':' -f2-); do
|
||||
find $LIBDIR $LIB32 $BINDIR -name "$bin.so*" -exec $RM_BIN {} \;
|
||||
find $LIBDIR $LIB32 $BINDIR -name "$bin" -exec $RM_BIN {} \;
|
||||
@ -253,6 +256,21 @@ if [ $EGL_32 = 1 ]; then
|
||||
done
|
||||
fi
|
||||
|
||||
if [ $GLESV1_64 = 1 ]; then
|
||||
echo "Installing 64-bit GLESv1 libraries..."
|
||||
mkdir -pv $LIBDIR
|
||||
for lib in $(cat $NV_MANIFEST | grep glesv1-64: | cut -d':' -f2-); do
|
||||
$INSTALL_LIB $NV_X_RUN_DIR/$lib.so.$NVIDIA_VERSION $LIBDIR
|
||||
done
|
||||
fi
|
||||
if [ $GLESV1_32 = 1 ]; then
|
||||
echo "Installing lib32 GLESv1 libraries..."
|
||||
mkdir -pv $LIB32
|
||||
for lib in $(cat $NV_MANIFEST | grep glesv1-32: | cut -d':' -f2-); do
|
||||
$INSTALL_LIB $NV_X_RUN_DIR/32/$lib.so.$NVIDIA_VERSION $LIB32
|
||||
done
|
||||
fi
|
||||
|
||||
if [ $GLESV2_64 = 1 ]; then
|
||||
echo "Installing 64-bit GLESv2 libraries..."
|
||||
mkdir -pv $LIBDIR
|
||||
@ -385,7 +403,7 @@ fi
|
||||
|
||||
echo "Writing to $SHAREDIR/nvidia/installed_files..."
|
||||
mkdir -pv $SHAREDIR/nvidia
|
||||
for type in {mandatory-64,mandatory-32,x11-64,x11-32,egl-64,egl-32,glesv2-64,glesv2-32,opencl-64,opencl-32,cuda-64,cuda-32,ngx,rt,settings}; do
|
||||
for type in {mandatory-64,mandatory-32,x11-64,x11-32,egl-64,egl-32,glesv1-64,glesv1-32,glesv2-64,glesv2-32,opencl-64,opencl-32,cuda-64,cuda-32,ngx,rt,settings}; do
|
||||
for bin in $(cat $NV_MANIFEST | grep $type | cut -d':' -f2-); do
|
||||
find $LIBDIR $LIB32 $BINDIR -name "$bin.so*" >> $SHAREDIR/nvidia/installed_files1
|
||||
find $LIBDIR $LIB32 $BINDIR -name "$bin" >> $SHAREDIR/nvidia/installed_files1
|
||||
|
||||
@ -5,6 +5,8 @@ x11-64: libGLX_nvidia libnvidia-fbc
|
||||
x11-32: libGLX_nvidia libnvidia-fbc
|
||||
egl-64: libEGL_nvidia
|
||||
egl-32: libEGL_nvidia
|
||||
glesv1-64: libGLESv1_CM_nvidia
|
||||
glesv1-32: libGLESv1_CM_nvidia
|
||||
glesv2-64: libGLESv2_nvidia
|
||||
glesv2-32: libGLESv2_nvidia
|
||||
opencl-64: libOpenCL libnvidia-opencl
|
||||
|
||||
@ -5,6 +5,8 @@ x11-64: libGLX_nvidia libnvidia-fbc
|
||||
x11-32: libGLX_nvidia libnvidia-fbc
|
||||
egl-64: libEGL_nvidia
|
||||
egl-32: libEGL_nvidia
|
||||
glesv1-64: libGLESv1_CM_nvidia
|
||||
glesv1-32: libGLESv1_CM_nvidia
|
||||
glesv2-64: libGLESv2_nvidia
|
||||
glesv2-32: libGLESv2_nvidia
|
||||
opencl-64: libOpenCL libnvidia-opencl
|
||||
|
||||
@ -40,6 +40,15 @@
|
||||
</listitem>
|
||||
-->
|
||||
|
||||
<listitem>
|
||||
<para>January 1st, 2025</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[zeckma] - libglvnd: Install libGLESv1_CM.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>December 31st, 2025</para>
|
||||
<itemizedlist>
|
||||
|
||||
@ -29,8 +29,7 @@
|
||||
<filename class="libraryfile">libEGL_mesa</filename> and <filename
|
||||
class="libraryfile">libGLX_mesa</filename>. For NVIDIA,
|
||||
it will provide <filename class="libraryfile">libEGL_nvidia</filename>,
|
||||
<filename class="libraryfile">libGLESv2_nvidia</filename>, and
|
||||
<filename class="libraryfile">libGLX_nvidia</filename>. Each
|
||||
<filename class="libraryfile">libGLX_nvidia</filename>, and others. Each
|
||||
implementation 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 uses, nor does it have to be absorbed by
|
||||
@ -81,7 +80,6 @@ cd build &&
|
||||
|
||||
meson setup --prefix=/usr \
|
||||
--buildtype=release \
|
||||
-D gles1=false \
|
||||
-D hgl=false \
|
||||
.. &&
|
||||
|
||||
@ -108,7 +106,6 @@ PKG_CONFIG_PATH=/usr/lib32/pkgconfig \
|
||||
meson setup --prefix=/usr \
|
||||
--libdir=/usr/lib32 \
|
||||
--buildtype=release \
|
||||
-D gles1=false \
|
||||
-D hgl=false \
|
||||
.. &&
|
||||
|
||||
@ -133,13 +130,13 @@ ldconfig</userinput></screen>
|
||||
&meson-buildtype-release;
|
||||
|
||||
<para>
|
||||
<parameter>-D gles1=false</parameter>: This disables an obsolete version
|
||||
of OpenGL ES.
|
||||
<parameter>-D hgl=false</parameter>: This disables targeting Haiku by
|
||||
default as this guide is for Linux, not Haiku.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<parameter>-D hgl=false</parameter>: This disables targeting Haiku by
|
||||
default as this guide is for Linux, not Haiku.
|
||||
<option>-D gles1=false</option>: If you don't need the older version of
|
||||
OpenGL ES, use this option. Some games use GLESv1 still.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -162,13 +159,14 @@ ldconfig</userinput></screen>
|
||||
<seg>
|
||||
libEGL,
|
||||
libGL,
|
||||
libGLESv1_CM,
|
||||
libGLESv2,
|
||||
libGLX,
|
||||
libGLdispatch, and
|
||||
libOpenGL
|
||||
</seg>
|
||||
<seg>
|
||||
/usr/include/{EGL,GL,GLES{2,3},glvnd,KHR}
|
||||
/usr/include/{EGL,GL,GLES{,2,3},glvnd,KHR}
|
||||
</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
@ -204,12 +202,30 @@ ldconfig</userinput></screen>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="glvnd-libGLESv1_CM">
|
||||
<term><filename class="libraryfile">libGLESv1_CM</filename></term>
|
||||
<listitem>
|
||||
<para>
|
||||
exposes the OpenGL ES 1.x common profile entrypoints;
|
||||
wrapper library calling <filename
|
||||
class="libraryfile">libGLdispatch</filename>
|
||||
</para>
|
||||
<indexterm zone="libglvnd glvnd-libGLESv1_CM">
|
||||
<primary sortas="b-glvnd-libGLESv1_CM">libGLESv1_CM</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="glvnd-libGLESv2">
|
||||
<term><filename class="libraryfile">libGLESv2</filename></term>
|
||||
<listitem>
|
||||
<para>
|
||||
exposes OpenGL ES 2.x and 3.x entrypoints; wrapper library calling
|
||||
<filename class="libraryfile">libGLdispatch</filename>
|
||||
exposes OpenGL ES 2.x and 3.x entrypoints; v2 and up removed
|
||||
profiles, which is why <filename
|
||||
class="libraryfile">libGLESv1_CM</filename> contains
|
||||
<literal>_CM</literal> but this library doesn't; wrapper library
|
||||
calling <filename
|
||||
class="libraryfile">libGLdispatch</filename>
|
||||
</para>
|
||||
<indexterm zone="libglvnd glvnd-libGLESv2">
|
||||
<primary sortas="b-glvnd-libGLESv2">libGLESv2</primary>
|
||||
|
||||
@ -174,7 +174,6 @@ meson setup --prefix=/usr \
|
||||
-D platforms=x11,wayland \
|
||||
-D gallium-drivers=auto \
|
||||
-D vulkan-drivers=auto \
|
||||
-D gles1=disabled \
|
||||
-D video-codecs=all \
|
||||
-D valgrind=disabled \
|
||||
-D libunwind=disabled \
|
||||
@ -215,7 +214,6 @@ meson setup --cross-file=lib32 \
|
||||
-D platforms=x11,wayland \
|
||||
-D gallium-drivers=auto \
|
||||
-D vulkan-drivers=auto \
|
||||
-D gles1=disabled \
|
||||
-D video-codecs=all \
|
||||
-D valgrind=disabled \
|
||||
-D libunwind=disabled \
|
||||
@ -435,9 +433,9 @@ ldconfig</userinput></screen>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<option>-D gles1=disabled</option>: This flag disables building a
|
||||
deprecated spec of OpenGL ES if <parameter>-D glvnd=enabled</parameter>
|
||||
was not passed.
|
||||
<option>-D gles1=disabled</option>: If you didn't pass
|
||||
<parameter>-D glvnd=enabled</parameter> and don't need GLESv1, use
|
||||
this option. Some games still use GLESv1.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
@ -517,6 +517,7 @@ wget &mesa-raw-repo;/include/EGL/eglext_angle.h \
|
||||
libcudadebugger,
|
||||
libcuda,
|
||||
libEGL_nvidia,
|
||||
libGLESv1_CM_nvidia,
|
||||
libGLESv2_nvidia,
|
||||
libGLX_nvidia,
|
||||
libglxserver_nvidia,
|
||||
|
||||
@ -495,6 +495,7 @@ wget &mesa-raw-repo;/include/EGL/eglext_angle.h \
|
||||
libcudadebugger,
|
||||
libcuda,
|
||||
libEGL_nvidia,
|
||||
libGLESv1_CM_nvidia,
|
||||
libGLESv2_nvidia,
|
||||
libGLX_nvidia,
|
||||
libglxserver_nvidia,
|
||||
@ -662,12 +663,25 @@ wget &mesa-raw-repo;/include/EGL/eglext_angle.h \
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libGLESv1_CM_nvidia">
|
||||
<term><filename class="libraryfile">libGLESv1_CM_nvidia</filename></term>
|
||||
<listitem>
|
||||
<para>
|
||||
provides the NVIDIA implementation
|
||||
of the OpenGL ES v1 common profile
|
||||
</para>
|
||||
<indexterm zone="nvidia libGLESv1_CM_nvidia">
|
||||
<primary sortas="c-libGLESv1_CM_nvidia">libGLESv1_CM_nvidia</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libGLESv2_nvidia">
|
||||
<term><filename class="libraryfile">libGLESv2_nvidia</filename></term>
|
||||
<listitem>
|
||||
<para>
|
||||
provides the NVIDIA implementation
|
||||
of OpenGL ES v2
|
||||
of OpenGL ES v2 and v3
|
||||
</para>
|
||||
<indexterm zone="nvidia libGLESv2_nvidia">
|
||||
<primary sortas="c-libGLESv2_nvidia">libGLESv2_nvidia</primary>
|
||||
|
||||
Reference in New Issue
Block a user