forked from SveSop/nvidia-libs
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathproton_setup.sh
More file actions
executable file
·74 lines (62 loc) · 2.96 KB
/
Copy pathproton_setup.sh
File metadata and controls
executable file
·74 lines (62 loc) · 2.96 KB
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
#!/bin/bash
nvlibs_dir="$(dirname "$(readlink -fm "$0")")"
lib='lib/wine'
arch='i386'
if [ ! -f "$nvlibs_dir/x64/nvcuda.dll" ]; then
echo "Files not found in $nvlibs_dir" >&2
exit 1
fi
if [ -z "$PROTON_LIBS" ]; then
echo -ne "PROTON_LIBS is not set!\n"
echo -ne "Example: PROTON_LIBS='$HOME/.steam/steam/steamapps/common/Proton - Experimental'\n"
exit 1
else
PROTON_LIBS="$(readlink -fm "$PROTON_LIBS")"
fi
if [ ! -f "$PROTON_LIBS/files/$lib/$arch-windows/dxgi.dll" ]; then
echo -ne "Proton files not found in $PROTON_LIBS! Proton not installed or wrong path!\n" >&2
exit 1
fi
# proton 10/Experimental support
if [ -d "$PROTON_LIBS/files/$lib/nvapi/$arch-windows" ]; then
cp -f "$nvlibs_dir/x32/nvapi.dll" "$PROTON_LIBS/files/$lib/nvapi/$arch-windows"
else
cp -f "$nvlibs_dir/x32/nvapi.dll" "$PROTON_LIBS/files/$lib/nvapi"
fi
arch='x86_64'
# proton 10/Experimental support
if [ -d "$PROTON_LIBS/files/lib64/wine" ]; then
lib='lib64/wine'
elif [ -d "$PROTON_LIBS/files/lib/wine" ]; then
lib='lib/wine'
else
echo -ne "Proton files not found in $PROTON_LIBS! Proton not installed or wrong path!\n" >&2
exit 1
fi
if [ -d "$PROTON_LIBS/files/$lib/nvapi/$arch-windows" ]; then
cp -f "$nvlibs_dir/x64/nvapi64.dll" "$PROTON_LIBS/files/$lib/nvapi/$arch-windows"
cp -f "$nvlibs_dir/x64/nvofapi64.dll" "$PROTON_LIBS/files/$lib/nvapi/$arch-windows"
else
cp -f "$nvlibs_dir/x64/nvapi64.dll" "$PROTON_LIBS/files/$lib/nvapi"
cp -f "$nvlibs_dir/x64/nvofapi64.dll" "$PROTON_LIBS/files/$lib/nvapi"
fi
cp -f "$nvlibs_dir/x64/nvcuda.dll" "$PROTON_LIBS/files/$lib/$arch-windows/nvcuda.dll"
cp -f "$nvlibs_dir/x64/nvcuvid.dll" "$PROTON_LIBS/files/$lib/$arch-windows/nvcuvid.dll"
cp -f "$nvlibs_dir/x64/nvencodeapi64.dll" "$PROTON_LIBS/files/$lib/$arch-windows/nvencodeapi64.dll"
cp -f "$nvlibs_dir/x64/nvoptix.dll" "$PROTON_LIBS/files/$lib/$arch-windows/nvoptix.dll"
ln -sfr "$PROTON_LIBS/files/$lib/$arch-windows/nvcuvid.dll" "$PROTON_LIBS/files/share/default_pfx/drive_c/windows/system32/nvcuvid.dll"
ln -sfr "$PROTON_LIBS/files/$lib/$arch-windows/nvencodeapi64.dll" "$PROTON_LIBS/files/share/default_pfx/drive_c/windows/system32/nvencodeapi64.dll"
ln -sfr "$PROTON_LIBS/files/$lib/$arch-windows/nvoptix.dll" "$PROTON_LIBS/files/share/default_pfx/drive_c/windows/system32/nvoptix.dll"
echo -n "Do you want to install 64-bit NVML files to proton? (This can break games like Portal RTX!) (Y/N): "
read -n 1 -r response
echo
if [[ "$response" =~ ^[Yy]$ ]]; then
echo -ne "Copying 64-bit NVML files..."
cp -f "$nvlibs_dir/x64/wine/$arch-unix/nvml.so" "$PROTON_LIBS/files/$lib/$arch-unix"
cp -f "$nvlibs_dir/x64/wine/$arch-windows/nvml.dll" "$PROTON_LIBS/files/$lib/$arch-windows"
ln -sfr "$PROTON_LIBS/files/$lib/$arch-windows/nvml.dll" "$PROTON_LIBS/files/share/default_pfx/drive_c/windows/system32/nvml.dll"
echo -ne "NVML Copied successfully\n"
else
echo -ne "Skipping NVML files\n"
fi
echo -ne "All done - Files dropped in $PROTON_LIBS\n"