Hallo CB,
zu Anfang die wichtigsten Infos des Beitrages in aller Kürze:
############# Info #############
Offenbar gibt es seit einer Weile ein Github Projekt, was letztendlich genau das tut, was ich hier mache, nur in schlau
. Das Projekt heißt "Proton Sarek" und patcht ProtonGE Versionen, wie ich es unter anderem hier tue, aber mit Extras:
https://github.com/pythonlover02/Proton-Sarek
Offenbar könnte es auch in ProtonUp-Qt in Zukunft Einzug halten:
https://github.com/DavidoTek/ProtonUp-Qt/issues/464
Jedenfalls ist das vielleicht eine einfachere Alternative für den ein oder anderen. Mein Skript dürft ihr aber auch gerne verwenden, ich bastle immer mal wieder daran. Und es beschränkt sich nicht nur auf ProtonGE.
########### Mein Kram ##########
Pre-Turing NVIDIA Karten (Turing beginnt ab folgenden Modellen: Link) können in Steam maximal Proton 7 nutzen, spätere Proton-Versionen müssen gepatcht werden.
Ich habe weiter unten im Beitrag ein Skript dazu erstellt, dass ihr wie folgt einsetzen könnt:
Erstellt irgendwo, am besten in einen gesonderten Ordner, eine neue Datei, z.B. mit nano:
Kopiert dort das Skript aus dem Beitrag hinein und speichert die neue Datei ab.
Achtet dabei darauf, dass ihr im Skript die Variable für den Steam-Ordner entsprechend korrekt anpasst, sofern notwendig. Gemeint ist folgende Zeile im Skript:
Anschließend macht ihr das Skript ausführbar durch:
Danach könnt ihr das Skript einfach ausführen. Die benötigten Dateien werden hierbei automatisch geladen, ihr braucht also eine Internetverbindung.
Soviel zur Kurzfassung, ab jetzt der usprüngliche Eingangspost:
---------------------------------------------------------------------------------------------------------------------------------------
Hallo zusammen,
ich besitze ein ThinkpadW530, das noch eine Kepler Grafikkarte (Quadro K2000M) besitzt. Damit kann man aktuell in Verbindung mit den höchstmöglichen NVIDIA Treiber 470 maximal dxvk 1.10.3 einsetzen bzw. vkd3d 2.6. Das liegt daran, dass spätere Versionen auf eine neuere Vulkan Version setzen, die von dem Treiber nicht mehr unterstützt wird.
Bisher fand ich es doof, dass man dann in Steam auf Proton 7 setzen musste, was langsam doch arg alt wird. In Lutris konnte man bei egal welcher Wine Version die Versionen von dxvk und vkd3d selber festlegen. Eben weil das einfach geht, war ich mir sicher, dass das doch auch mit Steam alleine ohne Lutris möglich sein muss, hier die Libraries auszutauschen. Und tatsächlich geht das. Es reicht, in der jeweiligen Proton Version, die neuer als 7 ist, einfach die älteren dlls an die enstsprechende Stelle zu kopieren und die neueren zu ersetzen.
Dass das funktioniert, habe ich mit Tomb Raider I-III Remaster testen können, das läuft nämlich nicht mit Proton 7, mit neueren Versionen aber schon, z.B. Experimental. Nachdem ich diesem also die älteren dlls untergeschoben habe, lief es danach einwandfrei und butterweich flüssig auf der alten Kiste.
Damit ich das nicht jedes mal per Hand machen muss, habe ich gerade ein kleines shell script geschrieben, dass das in Zukunft für mich erledigt. Das möchte ich euch nicht vorenthalten. Gleich vorweg, das ist maximal dahingerotzt, und wirklich nicht perfekt. Das weiß ich selber
Bin etwas ungeübt in bash. Ich werde vermutlich in Zukunft noch etwas daran herumbasteln. Aber es funktioniert in der vorliegenden Fassung schonmal und ersetzt sowohl bei von Steam installierten Proton Versionen die Dateien und auch durch ProtonUp hinzugefügte GE Versionen. Es geht aber davon aus, dass nur das da ist, also kein Roberta etc., außerdem von einer Standardinstallation ohne, dass Proton auf einem anderen Speichermedium liegt. Wie gesagt, mal eben dahingerotztes Script. Wer will, kann das ja für sich anpassen, feel free.
Mit etwas Gück wird das alles in Zukunft gar nicht mehr nötig, wenn sich die Situation mit dem offenen Treiber weiter verbessert. Bis dahin ist es eine vielleicht auch eine Hilfe. Es müssen dazu von den entsprechenden github Repos von dxvk und vkd3d-proton die entsprechenden Versionen heruntergeladen werden und im gleichen Ordner, in dem das Skript liegt, entpackt werden.Vielleicht bau ich irgendwann auch einen automatischen Download ein, wer weiß. (done!)
So, aber nun genug gesabbelt, hier bitteschön:
notTuring.sh
zu Anfang die wichtigsten Infos des Beitrages in aller Kürze:
############# Info #############
Offenbar gibt es seit einer Weile ein Github Projekt, was letztendlich genau das tut, was ich hier mache, nur in schlau
https://github.com/pythonlover02/Proton-Sarek
Offenbar könnte es auch in ProtonUp-Qt in Zukunft Einzug halten:
https://github.com/DavidoTek/ProtonUp-Qt/issues/464
Jedenfalls ist das vielleicht eine einfachere Alternative für den ein oder anderen. Mein Skript dürft ihr aber auch gerne verwenden, ich bastle immer mal wieder daran. Und es beschränkt sich nicht nur auf ProtonGE.
########### Mein Kram ##########
Pre-Turing NVIDIA Karten (Turing beginnt ab folgenden Modellen: Link) können in Steam maximal Proton 7 nutzen, spätere Proton-Versionen müssen gepatcht werden.
Ich habe weiter unten im Beitrag ein Skript dazu erstellt, dass ihr wie folgt einsetzen könnt:
Erstellt irgendwo, am besten in einen gesonderten Ordner, eine neue Datei, z.B. mit nano:
Code:
nano notTuring.sh
Achtet dabei darauf, dass ihr im Skript die Variable für den Steam-Ordner entsprechend korrekt anpasst, sofern notwendig. Gemeint ist folgende Zeile im Skript:
Bash:
my_steampath="/home/$USER/.steam"
Code:
chmod u+x ./notTuring.sh
Code:
./notTuring.sh
Soviel zur Kurzfassung, ab jetzt der usprüngliche Eingangspost:
---------------------------------------------------------------------------------------------------------------------------------------
Hallo zusammen,
ich besitze ein ThinkpadW530, das noch eine Kepler Grafikkarte (Quadro K2000M) besitzt. Damit kann man aktuell in Verbindung mit den höchstmöglichen NVIDIA Treiber 470 maximal dxvk 1.10.3 einsetzen bzw. vkd3d 2.6. Das liegt daran, dass spätere Versionen auf eine neuere Vulkan Version setzen, die von dem Treiber nicht mehr unterstützt wird.
Bisher fand ich es doof, dass man dann in Steam auf Proton 7 setzen musste, was langsam doch arg alt wird. In Lutris konnte man bei egal welcher Wine Version die Versionen von dxvk und vkd3d selber festlegen. Eben weil das einfach geht, war ich mir sicher, dass das doch auch mit Steam alleine ohne Lutris möglich sein muss, hier die Libraries auszutauschen. Und tatsächlich geht das. Es reicht, in der jeweiligen Proton Version, die neuer als 7 ist, einfach die älteren dlls an die enstsprechende Stelle zu kopieren und die neueren zu ersetzen.
Dass das funktioniert, habe ich mit Tomb Raider I-III Remaster testen können, das läuft nämlich nicht mit Proton 7, mit neueren Versionen aber schon, z.B. Experimental. Nachdem ich diesem also die älteren dlls untergeschoben habe, lief es danach einwandfrei und butterweich flüssig auf der alten Kiste.
Damit ich das nicht jedes mal per Hand machen muss, habe ich gerade ein kleines shell script geschrieben, dass das in Zukunft für mich erledigt. Das möchte ich euch nicht vorenthalten. Gleich vorweg, das ist maximal dahingerotzt, und wirklich nicht perfekt. Das weiß ich selber
Mit etwas Gück wird das alles in Zukunft gar nicht mehr nötig, wenn sich die Situation mit dem offenen Treiber weiter verbessert. Bis dahin ist es eine vielleicht auch eine Hilfe. Es müssen dazu von den entsprechenden github Repos von dxvk und vkd3d-proton die entsprechenden Versionen heruntergeladen werden und im gleichen Ordner, in dem das Skript liegt, entpackt werden.
So, aber nun genug gesabbelt, hier bitteschön:
notTuring.sh
Bash:
#!/bin/bash
my_steampath="/home/$USER/.steam"
echo "Using Steam path: $my_steampath"
if [[ ! -d "$my_steampath" ]]; then
echo -e "\033[31mERROR: Steam not found!\033[0m"
exit 1
fi
if [[ ! -d "dxvk-1.10.3" ]]; then
echo -e "\033[31mDXVK 1.10.3 not found!\033[0m Downloading it from github..."
wget -q -T 5 --show-progress https://github.com/doitsujin/dxvk/releases/download/v1.10.3/dxvk-1.10.3.tar.gz
if [ ! $? -eq 0 ]; then
echo -e "\033[31mERROR: Something went wrong during download!\033[0m"
exit 1
fi
echo -n "Extracting archive..."
tar xzf dxvk-1.10.3.tar.gz
rm dxvk-1.10.3.tar.gz
echo -e " \033[32mdone!\033[0m"
fi
if [[ ! -d "vkd3d-proton-2.6" ]]; then
echo -e "\033[31mVKD3D-Proton 2.6 not found!\033[0m Downloading it from github..."
wget -q -T 5 --show-progress https://github.com/HansKristian-Work/vkd3d-proton/releases/download/v2.6/vkd3d-proton-2.6.tar.zst
if [ ! $? -eq 0 ]; then
echo -e "\033[31mERROR: Something went wrong during download!\033[0m"
exit 1
fi
echo -n "Extracting archive..."
tar --zstd -xf vkd3d-proton-2.6.tar.zst
rm vkd3d-proton-2.6.tar.zst
echo -e " \033[32mdone!\033[0m"
fi
for d in "$my_steampath/steam/steamapps/common/Proton"*
do
version=$(basename "$d")
if [[ "$version" == "Proton 8.0" ]]; then
echo -e "\033[33m$version\033[0m"
echo -n "---> Replacing DXVK with version 1.10.3..."
chmod u+w "$d/dist/lib64/wine/dxvk"
cp -f dxvk-1.10.3/x64/* "$d/dist/lib64/wine/dxvk"
chmod u-w "$d/dist/lib64/wine/dxvk"
chmod u+w "$d/dist/lib/wine/dxvk"
cp -f dxvk-1.10.3/x32/* "$d/dist/lib/wine/dxvk"
chmod u-w "$d/dist/lib/wine/dxvk"
echo -e " \033[32mdone!\033[0m"
echo -n "---> Replacing VKD3D-Proton with version 2.6..."
chmod u+w "$d/dist/lib64/wine/vkd3d-proton"
cp -f vkd3d-proton-2.6/x64/* "$d/dist/lib64/wine/vkd3d-proton"
chmod u-w "$d/dist/lib64/wine/vkd3d-proton"
chmod u+w "$d/dist/lib/wine/vkd3d-proton"
cp -f vkd3d-proton-2.6/x86/* "$d/dist/lib/wine/vkd3d-proton"
chmod u-w "$d/dist/lib/wine/vkd3d-proton"
echo -e " \033[32mdone!\033[0m"
fi
if [[ "$version" == "Proton 9.0 (Beta)" ]]; then
echo -e "\033[33m$version\033[0m"
echo -n "---> Replacing DXVK with version 1.10.3..."
chmod u+w "$d/files/lib64/wine/dxvk"
cp -f dxvk-1.10.3/x64/* "$d/files/lib64/wine/dxvk"
chmod u-w "$d/files/lib64/wine/dxvk"
chmod u+w "$d/files/lib/wine/dxvk"
cp -f dxvk-1.10.3/x32/* "$d/files/lib/wine/dxvk"
chmod u-w "$d/files/lib/wine/dxvk"
echo -e " \033[32mdone!\033[0m"
echo -n "---> Replacing VKD3D-Proton with version 2.6..."
chmod u+w "$d/files/lib64/wine/vkd3d-proton"
cp -f vkd3d-proton-2.6/x64/* "$d/files/lib64/wine/vkd3d-proton"
chmod u-w "$d/files/lib64/wine/vkd3d-proton"
chmod u+w "$d/files/lib/wine/vkd3d-proton"
cp -f vkd3d-proton-2.6/x86/* "$d/files/lib/wine/vkd3d-proton"
chmod u-w "$d/files/lib/wine/vkd3d-proton"
echo -e " \033[32mdone!\033[0m"
fi
if [[ "$version" == "Proton 10.0" ]]; then
echo -e "\033[33m$version\033[0m"
echo -n "---> Replacing DXVK with version 1.10.3..."
chmod u+w "$d/files/lib/wine/dxvk/i386-windows"
cp -f dxvk-1.10.3/x32/* "$d/files/lib/wine/dxvk/i386-windows"
chmod u-w "$d/files/lib/wine/dxvk/i386-windows"
chmod u+w "$d/files/lib/wine/dxvk/x86_64-windows"
cp -f dxvk-1.10.3/x64/* "$d/files/lib/wine/dxvk/x86_64-windows"
chmod u-w "$d/files/lib/wine/dxvk/x86_64-windows"
echo -e " \033[32mdone!\033[0m"
echo -n "---> Replacing VKD3D-Proton with version 2.6..."
chmod u+w "$d/files/lib/wine/vkd3d-proton/i386-windows"
cp -f vkd3d-proton-2.6/x86/* "$d/files/lib/wine/vkd3d-proton/i386-windows"
chmod u-w "$d/files/lib/wine/vkd3d-proton/i386-windows"
chmod u+w "$d/files/lib/wine/vkd3d-proton/x86_64-windows"
cp -f vkd3d-proton-2.6/x64/* "$d/files/lib/wine/vkd3d-proton/x86_64-windows"
chmod u-w "$d/files/lib/wine/vkd3d-proton/x86_64-windows"
echo -e " \033[32mdone!\033[0m"
fi
if [[ "$version" == "Proton - Experimental" ]]; then
echo -e "\033[33m$version\033[0m"
echo -n "---> Replacing DXVK with version 1.10.3..."
chmod u+w "$d/files/lib/wine/dxvk/i386-windows"
chmod u+w "$d/files/lib/wine/dxvk/x86_64-windows"
cp -f dxvk-1.10.3/x32/* "$d/files/lib/wine/dxvk/i386-windows"
cp -f dxvk-1.10.3/x64/* "$d/files/lib/wine/dxvk/x86_64-windows"
chmod u-w "$d/files/lib/wine/dxvk/i386-windows"
chmod u-w "$d/files/lib/wine/dxvk/x86_64-windows"
chmod u+w "$d/files/lib64/wine/dxvk/"
cp -f dxvk-1.10.3/x64/* "$d/files/lib64/wine/dxvk"
chmod u-w "$d/files/lib64/wine/dxvk"
echo -e " \033[32mdone!\033[0m"
echo -n "---> Replacing VKD3D-Proton with version 2.6..."
chmod u+w "$d/files/lib/wine/vkd3d-proton/i386-windows"
chmod u+w "$d/files/lib/wine/vkd3d-proton/x86_64-windows"
cp -f vkd3d-proton-2.6/x86/* "$d/files/lib/wine/vkd3d-proton/i386-windows"
cp -f vkd3d-proton-2.6/x64/* "$d/files/lib/wine/vkd3d-proton/x86_64-windows"
chmod u-w "$d/files/lib/wine/vkd3d-proton/i386-windows"
chmod u-w "$d/files/lib/wine/vkd3d-proton/x86_64-windows"
echo -e " \033[32mdone!\033[0m"
fi
done
if [[ -d "$my_steampath/steam/compatibilitytools.d" ]]; then
shopt -s nullglob
for d in "$my_steampath/steam/compatibilitytools.d/GE-Proton9"*
do
version=$(basename "$d")
echo -e "\033[33m$version\033[0m"
echo -n "---> Replacing DXVK with version 1.10.3..."
chmod u+w "$d/files/lib/wine/dxvk/"*
cp -f dxvk-1.10.3/x32/* "$d/files/lib/wine/dxvk"
chmod u-w "$d/files/lib/wine/dxvk/"*
chmod u+w "$d/files/lib64/wine/dxvk/"*
cp -f dxvk-1.10.3/x64/* "$d/files/lib64/wine/dxvk"
chmod u-w "$d/files/lib64/wine/dxvk/"*
echo -e " \033[32mdone!\033[0m"
echo -n "---> Replacing VKD3D-Proton with version 2.6..."
chmod u+w "$d/files/lib/wine/vkd3d-proton/"*
cp -f vkd3d-proton-2.6/x86/* "$d/files/lib/wine/vkd3d-proton"
chmod u-w "$d/files/lib/wine/vkd3d-proton/"*
chmod u+w "$d/files/lib64/wine/vkd3d-proton/"*
cp -f vkd3d-proton-2.6/x64/* "$d/files/lib64/wine/vkd3d-proton"
chmod u-w "$d/files/lib64/wine/vkd3d-proton/"*
echo -e " \033[32mdone!\033[0m"
done
for d in "$my_steampath/steam/compatibilitytools.d/GE-Proton10"*
do
version=$(basename "$d")
echo -e "\033[33m$version\033[0m"
echo -n "---> Replacing DXVK with version 1.10.3..."
chmod u+w "$d/files/lib/wine/dxvk/i386-windows"
cp -f dxvk-1.10.3/x32/* "$d/files/lib/wine/dxvk/i386-windows"
chmod u-w "$d/files/lib/wine/dxvk/i386-windows"
chmod u+w "$d/files/lib/wine/dxvk/x86_64-windows"
cp -f dxvk-1.10.3/x64/* "$d/files/lib/wine/dxvk/x86_64-windows"
chmod u-w "$d/files/lib/wine/dxvk/x86_64-windows"
echo -e " \033[32mdone!\033[0m"
echo -n "---> Replacing VKD3D-Proton with version 2.6..."
chmod u+w "$d/files/lib/wine/vkd3d-proton/i386-windows"
cp -f vkd3d-proton-2.6/x86/* "$d/files/lib/wine/vkd3d-proton/i386-windows"
chmod u-w "$d/files/lib/wine/vkd3d-proton/i386-windows"
chmod u+w "$d/files/lib/wine/vkd3d-proton/x86_64-windows"
cp -f vkd3d-proton-2.6/x64/* "$d/files/lib/wine/vkd3d-proton/x86_64-windows"
chmod u-w "$d/files/lib/wine/vkd3d-proton/x86_64-windows"
echo -e " \033[32mdone!\033[0m"
done
for d in "$my_steampath/steam/compatibilitytools.d/proton_tkg"*
do
if [[ "$d" == "$my_steampath/steam/compatibilitytools.d/proton_tkg_7.6.r12.g51472395.release" ]]; then
#Skipping proton_tkg_7
continue
fi
version=$(basename "$d")
echo -e "\033[33m$version\033[0m"
echo -n "---> Replacing DXVK with version 1.10.3..."
chmod u+w "$d/files/lib/wine/dxvk/"*
cp -f dxvk-1.10.3/x32/* "$d/files/lib/wine/dxvk"
chmod u-w "$d/files/lib/wine/dxvk/"*
chmod u+w "$d/files/lib64/wine/dxvk/"*
cp -f dxvk-1.10.3/x64/* "$d/files/lib64/wine/dxvk"
chmod u-w "$d/files/lib64/wine/dxvk/"*
echo -e " \033[32mdone!\033[0m"
echo -n "---> Replacing VKD3D-Proton with version 2.6..."
chmod u+w "$d/files/lib/wine/vkd3d-proton/"*
cp -f vkd3d-proton-2.6/x86/* "$d/files/lib/wine/vkd3d-proton"
chmod u-w "$d/files/lib/wine/vkd3d-proton/"*
chmod u+w "$d/files/lib64/wine/vkd3d-proton/"*
cp -f vkd3d-proton-2.6/x64/* "$d/files/lib64/wine/vkd3d-proton"
chmod u-w "$d/files/lib64/wine/vkd3d-proton/"*
echo -e " \033[32mdone!\033[0m"
done
fi
Zuletzt bearbeitet: