#!/bin/bash

# Readback-display synchronization method
# 0: no sync, 1: D lags behind one frame, 2: fully synced
# export PRIMUS_SYNC=${PRIMUS_SYNC:-0}

# Verbosity level
# 0: only errors, 1: warnings (default), 2: profiling
# export PRIMUS_VERBOSE=${PRIMUS_VERBOSE:-1}

# Secondary display
# export PRIMUS_DISPLAY=${PRIMUS_DISPLAY:-:8}

# "Accelerating" libGL
# $LIB will be interpreted by the dynamic linker
# if (which dpkg-vendor >/dev/null && dpkg-vendor --derives-from Ubuntu) || \
#     [ -e /etc/dpkg/origins/ubuntu ]; then
#     # Ubuntu
#     export PRIMUS_libGLa=${PRIMUS_libGLa:-'/usr/$LIB/mesa/libGL.so.1'}
# else
#     # Debian
#     export PRIMUS_libGLa=${PRIMUS_libGLa:-'/usr/$LIB/libGL.so.1'}
# fi

# "Displaying" libGL
# if (which dpkg-vendor >/dev/null && dpkg-vendor --derives-from Ubuntu) || \
#     [ -e /etc/dpkg/origins/ubuntu ]; then
#     # Ubuntu
#     export PRIMUS_libGLa=${PRIMUS_libGLa:-'/usr/$LIB/mesa/libGL.so.1'}
# else
#     # Debian
#     export PRIMUS_libGLa=${PRIMUS_libGLa:-'/usr/$LIB/libGL.so.1'}
# fi 

# Directory containing primus libGL
PRIMUS_libGL=${PRIMUS_libGL:-'/usr/$LIB/primus'}

# On some distributions, e.g. on Gentoo, libnvidia-tls.so is not available
# in default search paths.  Add its path manually after the primus library
bblibs=$(echo -ne 'Q LibraryPath\0' | \
  socat - UNIX-CONNECT:/var/run/bumblebee.socket | sed 's/^Value: \(.*\)/\1/')

PRIMUS_libGL=${PRIMUS_libGL}${bblibs:+:$bblibs}

# Mesa drivers need a few symbols to be visible
# export PRIMUS_LOAD_GLOBAL=${PRIMUS_LOAD_GLOBAL:-'libglapi.so.0'}

# Need functions from primus libGL to take precedence
export LD_LIBRARY_PATH=${PRIMUS_libGL}${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}

# And go!
exec "$@"
