This repository has been archived by the owner on Nov 11, 2017. It is now read-only.
forked from LWSS/Fuzion
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathpreload
executable file
·123 lines (115 loc) · 5.3 KB
/
preload
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#!/bin/bash
LIBNAME=$(cat "$(pwd)"/build_id)
# An optimized way to find the CS:GO directory without specifying any absolute nor relative paths.
# This ensures the find command will not hang, even with a lot of symlinks in $HOME.
# There can be crash dumps in /var/lib with the same name.
GAMEROOT=$(dirname "$(find -L -O3 . "$HOME" -maxdepth 6 -type f -iname csgo_linux64 2>/dev/null | head -n 1)")
export LD_LIBRARY_PATH="$GAMEROOT"\
":$GAMEROOT/bin"\
":$GAMEROOT/bin/linux64"\
":$HOME/.steam/steam/ubuntu12_32"\
":$HOME/.steam/steam/ubuntu12_32/panorama"\
":/usr/lib64/atlas"\
":/usr/lib64/bind99"\
":/usr/lib64/iscsi"\
":/usr/lib64/nx"\
":/usr/lib64/qt-3.3/lib"\
":/usr/lib"\
":/lib64"\
":/usr/lib/i686"\
":/usr/lib/sse2"\
":/lib64/tls"\
":/lib64/sse2"\
":$HOME/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu"\
":$HOME/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib"\
":$HOME/.steam/steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu"\
":$HOME/.steam/steam/ubuntu12_32/steam-runtime/amd64/usr/lib"\
":$HOME/.steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu"\
":$HOME/.steam/ubuntu12_32/steam-runtime/amd64/lib"\
":$HOME/.steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu"\
":$HOME/.steam/ubuntu12_32/steam-runtime/amd64/usr/lib"\
":$HOME/.steam/steam/ubuntu12_32"\
":$HOME/.steam/steam/ubuntu12_64"
export LD_PRELOAD
LD_PRELOAD=$(pwd)/$LIBNAME
echo "Loading $LIBNAME"
GAMEEXE=csgo_linux64
# Max number of file descriptors
ulimit -n 2048
# Enable nVidia threaded optimizations
export __GL_THREADED_OPTIMIZATIONS=1
# Enable Mesa threaded shader compiles
export multithread_glsl_compiler=1
# And launch the game
# echo "$GAMEROOT"
cd "$GAMEROOT" || exit
STATUS=42
while [ $STATUS -eq 42 ]; do
if [ "${DEBUGGER}" == "gdb" ]; then
ARGSFILE=$(mktemp "$USER".hl2.gdb.XXXX)
echo b main > "$ARGSFILE"
echo run "$@" -game csgo >> "$ARGSFILE"
echo show args >> "$ARGSFILE"
if [[ "$(xrandr --listproviders | awk '/Providers/' | awk '{print $4}')" == "2" ]] &>/dev/null; then
xrandr --setprovideroffloadsink 1 0
echo -e "Launching CS:GO using PRIME GPU offloading... \\e[1;32m[SUCCESS]\\e[0m"
# DRI_PRIME=1 glxinfo | grep "OpenGL renderer"
DRI_PRIME=1 ${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} -x "$ARGSFILE"
rm "$ARGSFILE"
DRI_PRIME=1 ${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"
elif [ -x "$(command -v primusrun)" ]; then
echo -e "Launching CS:GO using primusrun... \\e[1;32m[SUCCESS]\\e[0m"
primusrun ${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} -x "$ARGSFILE"
rm "$ARGSFILE"
primusrun ${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"
elif [ -x "$(command -v optirun)" ]; then
echo -e "Launching CS:GO using optirun... \\e[1;32m[SUCCESS]\\e[0m"
optirun ${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} -x "$ARGSFILE"
rm "$ARGSFILE"
optirun ${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"
else
echo -e "Launching CS:GO... \\e[1;32m[SUCCESS]\\e[0m"
${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} -x "$ARGSFILE"
rm "$ARGSFILE"
${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"
fi
elif [ "${DEBUGGER}" == "lldb" ]; then
ARGSFILE=$(mktemp "$USER".hl2.lldb.XXXX)
echo "b main" > "$ARGSFILE"
echo "env DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH" > "$ARGSFILE"
if [[ "$(xrandr --listproviders | awk '/Providers/' | awk '{print $4}')" == "2" ]] &>/dev/null; then
xrandr --setprovideroffloadsink 1 0
echo -e "Launching CS:GO using PRIME GPU offloading... \\e[1;32m[SUCCESS]\\e[0m"
# DRI_PRIME=1 glxinfo | grep "OpenGL renderer"
DRI_PRIME=1 ${DEBUGGER} -s "$ARGSFILE" -- "${GAMEROOT}"/${GAMEEXE} "$@"
elif [ -x "$(command -v primusrun)" ]; then
echo -e "Launching CS:GO using primusrun... \\e[1;32m[SUCCESS]\\e[0m"
primusrun ${DEBUGGER} -s "$ARGSFILE" -- "${GAMEROOT}"/${GAMEEXE} "$@"
elif [ -x "$(command -v optirun)" ]; then
echo -e "Launching CS:GO using optirun... \\e[1;32m[SUCCESS]\\e[0m"
optirun ${DEBUGGER} -s "$ARGSFILE" -- "${GAMEROOT}"/${GAMEEXE} "$@"
else
echo -e "Launching CS:GO... \\e[1;32m[SUCCESS]\\e[0m"
${DEBUGGER} -s "$ARGSFILE" -- "${GAMEROOT}"/${GAMEEXE} "$@"
fi
rm "$ARGSFILE"
else
if [[ "$(xrandr --listproviders | awk '/Providers/' | awk '{print $4}')" == "2" ]] &>/dev/null; then
xrandr --setprovideroffloadsink 1 0
echo -e "Launching CS:GO using PRIME GPU offloading... \\e[1;32m[SUCCESS]\\e[0m"
# DRI_PRIME=1 glxinfo | grep "OpenGL renderer"
DRI_PRIME=1 ${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"
elif [ -x "$(command -v primusrun)" ]; then
echo -e "Launching CS:GO using primusrun... \\e[1;32m[SUCCESS]\\e[0m"
primusrun ${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"
elif [ -x "$(command -v optirun)" ]; then
echo -e "Launching CS:GO using optirun... \\e[1;32m[SUCCESS]\\e[0m"
optirun ${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"
else
echo -e "Launching CS:GO... \\e[1;32m[SUCCESS]\\e[0m"
${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"
fi
fi
STATUS=$?
done
exit $STATUS