#!/bin/bash set -euo pipefail # The second content element is mounted at "${content_target}-2" COMPONENT_PATH="$( cd -- "$(dirname "$0")"/.. ; pwd -P )-2" # Use the component mangler to bootstrap the environment if [ -f ${COMPONENT_PATH}/kernel-gpu-2404-sentinel ]; then . ${COMPONENT_PATH}/kernel-gpu-2404-provider-mangler fi SELF="$( cd -- "$(dirname "$0")/.." ; pwd -P )/usr" ARCH_TRIPLETS=( aarch64-linux-gnu ) # VDPAU_DRIVER_PATH only supports a single path, rely on LD_LIBRARY_PATH instead for arch in ${ARCH_TRIPLETS[@]}; do GBM_BACKENDS_PATH=${GBM_BACKENDS_PATH:+$GBM_BACKENDS_PATH:}${SELF}/lib/${arch}/gbm LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}${SELF}/lib/${arch}:${SELF}/lib/${arch}/vdpau LIBGL_DRIVERS_PATH=${LIBGL_DRIVERS_PATH:+$LIBGL_DRIVERS_PATH:}${SELF}/lib/${arch}/dri/ LIBVA_DRIVERS_PATH=${LIBVA_DRIVERS_PATH:+$LIBVA_DRIVERS_PATH:}${SELF}/lib/${arch}/dri/ done __EGL_VENDOR_LIBRARY_DIRS=${__EGL_VENDOR_LIBRARY_DIRS:+$__EGL_VENDOR_LIBRARY_DIRS:}${SELF}/share/glvnd/egl_vendor.d __EGL_EXTERNAL_PLATFORM_CONFIG_DIRS=${__EGL_EXTERNAL_PLATFORM_CONFIG_DIRS:+$__EGL_EXTERNAL_PLATFORM_CONFIG_DIRS:}${SELF}/share/egl/egl_external_platform.d DRIRC_CONFIGDIR=$( cd -- "$(dirname "$0")/../drirc.d" ; pwd -P ) VK_LAYER_PATH=${VK_LAYER_PATH:+$VK_LAYER_PATH:}${SELF}/share/vulkan/implicit_layer.d/:${SELF}/share/vulkan/explicit_layer.d/ XDG_DATA_DIRS=${XDG_DATA_DIRS:+$XDG_DATA_DIRS:}${SELF}/share XLOCALEDIR=${SELF}/share/X11/locale # These are in the default LD_LIBRARY_PATH, but in case the snap dropped it inadvertently if [ -d "/var/lib/snapd/lib/gl" ] && [[ ! ${LD_LIBRARY_PATH} =~ (^|:)/var/lib/snapd/lib/gl(:|$) ]]; then LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/var/lib/snapd/lib/gl fi if [ -d "/var/lib/snapd/lib/gl32" ] && [[ ! ${LD_LIBRARY_PATH} =~ (^|:)/var/lib/snapd/lib/gl32(:|$) ]]; then LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/var/lib/snapd/lib/gl32 fi if [ -d "/var/lib/snapd/lib/glvnd/egl_vendor.d" ]; then # This needs to be prepended, as glvnd goes depth-first on these # TODO maybe collect the JSONs into a separate location so their ordering matters, # and not the dir order __EGL_VENDOR_LIBRARY_DIRS=/var/lib/snapd/lib/glvnd/egl_vendor.d:${__EGL_VENDOR_LIBRARY_DIRS} fi if [ -d "/var/lib/snapd/lib/vulkan/icd.d" ]; then XDG_DATA_DIRS=${XDG_DATA_DIRS}:/var/lib/snapd/lib fi if [ -d "/var/lib/snapd/lib/gl/vdpau" ]; then LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/var/lib/snapd/lib/gl/vdpau fi if [ -d "/var/lib/snapd/lib/gl32/vdpau" ]; then LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/var/lib/snapd/lib/gl32/vdpau fi if [ -d "/var/lib/snapd/lib/gl/gbm" ]; then GBM_BACKENDS_PATH=${GBM_BACKENDS_PATH}:/var/lib/snapd/lib/gl/gbm fi if [ -d "/var/lib/snapd/lib/gl32/gbm" ]; then GBM_BACKENDS_PATH=${GBM_BACKENDS_PATH}:/var/lib/snapd/lib/gl32/gbm fi export GBM_BACKENDS_PATH export LD_LIBRARY_PATH export LIBGL_DRIVERS_PATH if [ "${__NV_PRIME_RENDER_OFFLOAD:-}" != 1 ]; then # Prevent picking VA-API (Intel/AMD) over NVIDIA VDPAU # https://download.nvidia.com/XFree86/Linux-x86_64/510.54/README/primerenderoffload.html#configureapplications export LIBVA_DRIVERS_PATH fi export __EGL_VENDOR_LIBRARY_DIRS export __EGL_EXTERNAL_PLATFORM_CONFIG_DIRS export DRIRC_CONFIGDIR export VK_LAYER_PATH export XDG_DATA_DIRS export XLOCALEDIR exec "$@"