From 6a03f787fbcd3418775d1e7f81989313bb5a3a6a Mon Sep 17 00:00:00 2001
From: Rye Mutt <rye@alchemyviewer.org>
Date: Sun, 17 Jan 2021 16:32:23 -0500
Subject: [PATCH] Add support for mangohud by defining env var AL_MANGO

---
 indra/newview/linux_tools/wrapper.sh | 70 ++++++----------------------
 1 file changed, 15 insertions(+), 55 deletions(-)

diff --git a/indra/newview/linux_tools/wrapper.sh b/indra/newview/linux_tools/wrapper.sh
index 12aacd680dd..c8e941b47f6 100755
--- a/indra/newview/linux_tools/wrapper.sh
+++ b/indra/newview/linux_tools/wrapper.sh
@@ -1,8 +1,6 @@
-#!/bin/bash
+#! /usr/bin/env bash
 
 ## Here are some configuration options for Linux Client Testers.
-## These options are for self-assisted troubleshooting during this beta
-## testing phase; you should not usually need to touch them.
 
 ## - Avoids using any FMOD STUDIO audio driver.
 #export LL_BAD_FMODSTUDIO_DRIVER=x
@@ -34,11 +32,6 @@
 ##   LL_GL_BLACKLIST which solves your problems.
 #export LL_GL_BLACKLIST=abcdefghijklmno
 
-## - Some ATI/Radeon users report random X server crashes when the mouse
-##   cursor changes shape.  If you suspect that you are a victim of this
-##   driver bug, try enabling this option and report whether it helps:
-#export LL_ATI_MOUSE_CURSOR_BUG=x
-
 if [ "`uname -m`" = "x86_64" ]; then
     echo '64-bit Linux detected.'
 fi
@@ -52,8 +45,18 @@ fi
 ##   you're building your own viewer, bear in mind that the executable
 ##   in the bin directory will be stripped: you should replace it with
 ##   an unstripped binary before you run.
-#export LL_WRAPPER='gdb --args'
-#export LL_WRAPPER='valgrind --smc-check=all --error-limit=no --log-file=secondlife.vg --leak-check=full --suppressions=/usr/lib/valgrind/glibc-2.5.supp --suppressions=secondlife-i686.supp'
+if [[ -v AL_GDB ]]; then
+    export LL_WRAPPER='gdb --args'
+fi
+
+if [[ -v AL_VALGRIND ]]; then
+    export LL_WRAPPER='valgrind --smc-check=all --error-limit=no --log-file=secondlife.vg --leak-check=full --suppressions=/usr/lib/valgrind/glibc-2.5.supp --suppressions=secondlife-i686.supp'
+fi
+
+if [[ -v AL_MANGO ]]; then
+    export MANGOHUD_DLSYM=1
+	export LL_WRAPPER='mangohud'
+fi
 
 ## For controlling various sanitizer options
 #export ASAN_OPTIONS="halt_on_error=0 detect_leaks=1 symbolize=1"
@@ -62,32 +65,6 @@ fi
 ## Allow Gnome 3 to properly display window title in app bar
 export SDL_VIDEO_X11_WMCLASS=Alchemy
 
-
-## - Avoids an often-buggy X feature that doesn't really benefit us anyway.
-# export SDL_VIDEO_X11_DGAMOUSE=0
-
-# ## - Works around a problem with misconfigured 64-bit systems not finding GL
-# I386_MULTIARCH="$(dpkg-architecture -ai386 -qDEB_HOST_MULTIARCH 2>/dev/null)"
-# MULTIARCH_ERR=$?
-# if [ $MULTIARCH_ERR -eq 0 ]; then
-#     echo 'Multi-arch support detected.'
-#     MULTIARCH_GL_DRIVERS="/usr/lib/${I386_MULTIARCH}/dri"
-#     export LIBGL_DRIVERS_PATH="${LIBGL_DRIVERS_PATH}:${MULTIARCH_GL_DRIVERS}:/usr/lib64/dri:/usr/lib32/dri:/usr/lib/dri"
-# else
-#     export LIBGL_DRIVERS_PATH="${LIBGL_DRIVERS_PATH}:/usr/lib64/dri:/usr/lib32/dri:/usr/lib/dri"
-# fi
-
-## - The 'scim' GTK IM module widely crashes the viewer.  Avoid it.
-# if [ "$GTK_IM_MODULE" = "scim" ]; then
-#     export GTK_IM_MODULE=xim
-# fi
-
-## - Automatically work around the ATI mouse cursor crash bug:
-## (this workaround is disabled as most fglrx users do not see the bug)
-#if lsmod | grep fglrx &>/dev/null ; then
-#	export LL_ATI_MOUSE_CURSOR_BUG=x
-#fi
-
 ## - Enable threaded mesa GL impl
 export mesa_glthread=true
 
@@ -110,24 +87,7 @@ cd "${RUN_PATH}"
 ##  subprocesses that care.
 export SAVED_LD_LIBRARY_PATH="${LD_LIBRARY_PATH}"
 
-# if [ -n "$LL_TCMALLOC" ]; then
-#    tcmalloc_libs='/usr/lib/libtcmalloc.so.0 /usr/lib/libstacktrace.so.0 /lib/libpthread.so.0'
-#    all=1
-#    for f in $tcmalloc_libs; do
-#        if [ ! -f $f ]; then
-#	    all=0
-#	fi
-#    done
-#    if [ $all != 1 ]; then
-#        echo 'Cannot use tcmalloc libraries: components missing' 1>&2
-#    else
-#	export LD_PRELOAD=$(echo $tcmalloc_libs | tr ' ' :)
-#	if [ -z "$HEAPCHECK" -a -z "$HEAPPROFILE" ]; then
-#	    export HEAPCHECK=${HEAPCHECK:-normal}
-#	fi
-#    fi
-#fi
-
+# Add our library directory
 export LD_LIBRARY_PATH="$PWD/lib:${LD_LIBRARY_PATH}"
 
 # Copy "$@" to ARGS array specifically to delete the --skip-gridargs switch.
@@ -160,7 +120,7 @@ fi
 
 echo
 echo '*******************************************************'
-echo 'This is a BETA release of the Alchemy Viewer linux client.'
+echo 'This is a BETA release of the Alchemy Viewer Linux client.'
 echo 'Thank you for testing!'
 echo 'Please see README-linux.txt before reporting problems.'
 echo
-- 
GitLab