WineHQ et WoW 8.1

Bonjour à tous,

J’ai réinstallé mon Linux Mint tout fraîchement aujourd’hui et, à ma grande surprise, impossible de faire tourner WoW. J’ai tourné sous Linux de 2011 à 2017 et j’ai toujours pu jouer à WoW sans problème avec Wine. Je pars un an et demi sous Windows et quand je reviens, plus rien ne tourne.

Bref, je tourne sous Linux Mint 19.1 avec Wine 4.03rc3 Devel avec une GTX960. Je suis parvenu après maintes tentatives à faire tourner BattleNet grâce à la 4.03rc3 (impossible avec la stable 3.0.4). Cependant, quand je lance WoW, mon écran saute et, à la place du jeu, j’ai une image de mon bureau avec laquelle je ne peux pas interagir. Je peux simplement killer le process, mais ça me fait une belle jambe.

Est-ce un problème connu de la 8.1 avec Wine ? J’ai entendu des problèmes similaires avec le passage à la 8.1, mais pas de réponses convaincantes. Certains parlent de problème avec DirectX 11 et 12.
Pouvez-vous m’aider ?

Cordialement.

Pkz

Bonjour Cobistro,

Les systèmes Linux ne font pas parti de la liste des systèmes d’exploitation pour lesquels le jeu a été développé.
Nous ne disposons donc pas de d’informations particulières relatives à ce genre de configuration. Vous trouverez probablement plus d’information sur les forum dédiés à ce système d’exploitation.


Zarnalaki, du dimanche au jeudi entre 9h00 et 17h30.
Votre avis nous intéresse !

Salutations,

Je suis moi même sous GNU Linux (Opensuse) et je fais tourner le jeu parfaitement, mes fps sont quasiment identiques à ceux que j’ai sous windaube (entre 80 à 100% en fonction des zones) et ce sans baisser de paramètres graphiques.
Pour te dire, que ce soit en bg, openworld ou même raid, mes fps sont tout aussi stables.
Voici ma configuration : Ryzen 1700X 3.8 GHz, Gigabyte GTX 770 4GB, 8GB DDR4 2666 MHz.

Ton problème : La dernière fois que tu as tourné le jeu, tu devais sans doute utiliser Direct X 9, via wine, le tout étant correctement géré, tu pouvais espérer un minimum de performance, cela dit, le support pour DX9 n’est plus présent pour World of Warcraft depuis BFA, car c’est assez ancien et l’évolution oblige.
Par défaut c’est donc maintenant DX11 qui est employé, et ça, wine le gère moins bien.

Solution : Utiliser wine-staging ainsi que DXVK ou Proton en fonction de ce que ton matériel supporte. (DXVK a un plus large support cela dit).
Cela te permettra d’avoir des performances similaires à celles que tu as sous windows.
J’ai vérifié, ta carte graphique peut supporter vulkan ainsi que DX12 (donc DXVK et Proton).
(cf l’explication pour comprendre grossièrement pourquoi et comment).

Explication : En interne, l’objectif de wine est de “traduire” chaque appel effectué pour windows vers d’autres appels que ton système, lui, peut exécuter.
(Wine n’est pas un émulateur, donc une réécriture de chaque appel est nécessaire ou tout du moins de trouver son équivalent).

Parmis ces appels, certains sont ceux de Direct X (pour l’affichage graphique), wine va les traduire en appels OpenGL.

Le problème étant que les performances de wine laissent à désirer, ainsi que celles d’OpenGL (par défaut, les appels sont traduits vers OpenGL, et comme c’était bien plus simple de traduire des appels venant de DX9 vers OpenGL, on se retrouve désormais avec des performances bien pires qu’avant).

Il est cependant possible d’utiliser la nouvelle API graphique Vulkan qui est bien plus récente et plus robuste.

Valve (steam) contribue et maintiens deux projets :

  • dxvk (traduction des appels DX11 vers Vulkan)
  • proton (traduction des appels DX12 vers Vulkan)

Vulkan étant beaucoup plus adapté au matériel de nos jours qu’OpenGL, on se retrouve à avoir des performances très largement supérieures à celles de ce dernier.

Sources (impossible de poster des liens apparemment, retire les guillemets et les espaces) :

  • dxvk : “github . com/doitsujin/dxvk”
  • proton : “github . com/ValveSoftware/Proton”
  • résumé : “steamcommunity . com/games/221410/announcements/detail/1696055855739350561”

L’installation n’est vraiment pas compliquée (voir GIT ou Reddit), rassure toi, même pas besoin de compiler sauf si tu veux quelque chose de bien précis.

Si tu as besoin d’aide, essais de me contacter sur ce personnage Eadwin (via le même serveur, Defias-Brotherhood, anglais) ou via ce forum.

Amuse toi bien.

1 mention « J’aime »

Merci à toi Eadwin pour ton aide. Je comprends ce que je dois faire mais je ne sais pas comment le faire.

Installer Wine-Staging => pas de problème
Intégrer DXVK => impossible

Voici ce que j’ai fait :
Installer winehq-staging (via la procédure sur le site de wine)
Installer les paquets : libvulkan1 libvulkan-utils mesa-vulkan
Utiliser la commande : winetricks --force setup_dxvk.verb (pour insérer les DLL DXVK dans Wine visible dans winecfg)

J’ai aussi essayé avec Lutris qui me semblait simple et tout inclure mais ce n’est pas le cas, il faut quand même insérer DXVK manuellement. C’est quand même dingue. Pourquoi c’est pas intégrer ?

Peux-tu m’aider ?

Merci encore.

Cobistro

Hello,

Je te proposes de faire ça proprement, j’ai d’abord besoin de données.

  • Utilise tu le driver NVIDIA propriétaire ou opensource ?
  • Quelle version du driver utilise tu ?
  • Quelle version de wine-staging utilises tu ? (la dernière je suppose)
  • De même, as tu pris la dernière version de dxvk ?

En effet, je ne connais pas bien Lutris, il est censé simplifier la chose mais je trouves personnellement que ça rend le tout bien pire car au final tu te retrouves être dépendant d’un programme externe (ce qui est le but), mais si ce programme casse, rien ne va plus.
Savoir mettre en place une configuration wine basique avec les dépendances associés, bien que plus compliqué, mais pas trop, est plus intéressant, ainsi tu sera plus apte à régler tes propres problèmes à l’avenir.

Il est primordial d’installer les drivers propriétaires (en passant par les dépôts ou en installant directement toi même).
L’idée est de privilégier les derniers drivers et si possible via dépôts comme ça ils se recompileront automatiquement lorsque tu mettra à jour ton kernel.
Les drivers opensources te donneront de bonnes performances pour du multimédia mais lorsqu’il est question de jeux ou de calculs plus gourmands, les propriétaires sont bien au dessus.

Petite info : si tu souhaite utiliser la toute dernière version de dxvk, il te faut un driver très récent.
Sinon il faut prendre une version de dxvk plus ancienne, ce qui ne changera pas forcément grand chose mais autant profiter des mises à jours, certaines peuvent être hautement bénéfiques sur divers programmes.

Au passage, avoir un profil wine pour chaque programme est plus adéquat, car il te permet d’avoir une configuration spécifique à un programme en particulier (ie : ce programme nécessite dxvk, mais pas celui ci, ou encore celui ci nécessite telle version…) et te permettra de mettre à jour sans pour autant casser tous tes programmes qui fonctionnent avec wine.

Donnes moi les informations demandées et ensuite je pourrais t’assister à créer un profil wine tout propre pour wow.

Personnellement, je tournes actuellement avec cette configuration :

  • Kernel linux 4.19.7-1
  • Driver Nvidia propriétaire 410.78 (via dépôts officiels de ma distribution, si elle ne propose rien de suffisamment récent alors je l’installe à la main).
  • Wine-staging : 3.21
  • DXVK 0.91 (je n’ai pas encore pris le temps d’upgrade)

Tiens moi au courant.

Eadwin, Defias-Brotherhood Kingpin.

1 mention « J’aime »

Alors, j’ai réussi à l’installer en partant de zéro avec Lutris et en utilisant les scripts fournis sur le site officiel. Cependant, je n’utilise pas Wine-Staging mais un paquet bizarre “tkg-3.21-x86_64” que je ne sais pas trop ce que c’est. Par contre, ça fonctionne bien.

Cependant, je crois que tu as raison quand tu dis que c’est mieux de s’affranchir de Lutris.

Donc, j’utilise le driver NVIDIA propriétaire version 415 avec wine-staging-4.0rc4. Ma version de DXVK est la 0.94 mais je ne sais pas comment l’ajouter manuellement. D’ailleurs il s’agit aussi de la version que j’utilise avec Lutris.

Merci.

Cobistro

Très bien si tu as réussi, as tu des lags/freezes, de bons fps ?.

Apparemment « tkg-3.21-x86_64 » est un wine-staging compilé par les développeurs de Lutris avec, possiblement quelques modifications.
De plus, avoir un paquet séparé (« tkg… ») permet de faire cohabiter des installations de wine faites par Lutris plus facilement avec celles faites manuellement.

Pour faire unee installation manuelle, je procéderais ainsi :

  1. Désinstallation de Lutris et de ses dépendances ainsi que de wine (Il est possible de faire cohabiter les deux, je préfères être certain qu’il n’y ait pas de résidus, de plus, si tu fais une installation manuelle, je doutes que tu veuilles employer Lutris)
  2. Suppression du dossier de configuration de wine (par défaut : « ~/.wine », attention à ce qu’il ne contienne rien d’important comme ton installation de WoW)
  3. Installation de wine-staging (dernière version, dépôts si pas trop ancien sinon via site officiel)
  4. Création d’un préfixe wine dédié à World of Warcraft (voir plus bas)
  5. Installation des dépendances liées à wine s’il y en a dans le préfixe fraîchement créé via winetricks ou via les dépôts, voir plus bas)
  6. Installation de dxvk, dernière version, via le script fourni, en précisant le préfixe wine précédemment créé pour World of Warcraft, ainsi il ne sera installé que pour ce dernier (voir plus bas).
  7. Lancement du programme et tests.

Pour l’étape 4, l’idée est simplement de créer un répertoire dédié à chaque programme avec sa propre configuration de wine, voici comment je procède :

J’ai un endroit, sur une partition, qui est dédiée à mes programmes wines (histoire de pouvoir la partager avec mes autres distributions et de garder le tout très organisé)
Personnellement, il est situé ici « /usr/local/common/wine », c’est une partition que j’ai créé mais rien ne t’obliges à le mettre là, tu peux te contenter de tout mettre dans le home ou de simplement faire des liens symboliques).

Certains programmes peuvent se contenter de la configuration par défaut de wine, pour d’autres comme WoW, Battlenet ou même Twitch, je préfère crée un préfixe dédié histoire d’y garder une configuration adéquate à chaque programme.

Supposons que je veuilles installer WoW, alors je vais crée un nouveau préfixe via la commande : « WINEPREFIX=/usr/local/common/wine/wow winecfg ».

Cette commande sert à configurer un répertoire wine, je lui indique juste un préfixe via la variable WINEPREFIX, si tu ne le précise pas, ce sera « ~/.wine » qui sera utilisé par défaut.
Dans ce cas de figure, le répertoire sera nommé « wow » et sera ici "/usr/local/common/wine/".

Une fenêtre va s’ouvrir et elle te permet de configurer des petites choses, je laisses le tout par défaut, tu peux passer la version de windows sur 10 si tu le souhaites mais dans notre cas ça ne changera pas grand chose.

Maintenant qu’un répertoire a été créé spécifiquement pour World of Warcraft, on peut passer à l’étape 5 si nécessaire pour y installer des dépendances comme des polices d’écritures (pas toujours nécessaire).

Etape 5 :
Un must-have pour beaucoup de programmes est « corefonts », il l’est en tout cas pour Battlenet, Twitch et bien d’autres, pour wow il était également recommandé de l’installer avant, installons le.

Je l’installe via winetricks (pas obligatoire mais adapté, c’est une sorte de gestionnaire de paquets fait pour wine, installe le si tu ne l’as pas, il sera dans tes dépôts) avec la commande suivante : « WINEPREFIX=/usr/local/common/wine/wow winetricks corefonts ».
(cf la documentation de winetricks si tu veux connaître son fonctionnement, il possède également une interface graphique).

:skull: Il est primordial de préciser le préfixe précédemment créé via la variable WINEPREFIX, sinon ça s’installera dans le répertoire par défaut qui est « ~/.wine ».

Etape 6 :
Je télécharges la dernière version de dxvk à l’adresse « github .com/doitsujin/dxvk/releases » (retire l’espace) en sélectionnant le .tar.gz car nous voulons une version déjà compilée.
Je décompresse l’archive et je me rends à la racine du dossier obtenu puis j’exécute la commande suivante : « WINEPREFIX=/usr/local/common/wine/wow winetricks --force setup_dxvk.verb ».
Cette commande est donnée par le wiki officiel, elle permet l’installation de dxvk en passant par winetricks.

:skull: Ne pas oublier le préfixe.

Etape 7 : Je crée un script bash très simple qui va me permettre de lancer le programme avec le bon préfixe et éventuellement d’activer ou désactiver certaines choses (comme la répétition des touches, certains jeux ont du mal).

J’ouvres un éditeur de texte, j’y rentres ces lignes :

#!/bin/bash
env WINEPREFIX=« /usr/local/common/wine/wow » WINEDEBUG=« -all STAGING_SHARED_MEMORY=1 STAGING_WRITECOPY=1 » wine « /media/windows/Program Files (x86)/World of Warcraft/_retail_/Wow.exe »

J’enregistre ici : « /usr/local/bin/wow.sh » (tu auras besoin des droits roots, sinon tu n’as qu’à le mettre sur ton bureau, l’avantage en le mettant ici est que ce sera visible comme commande).
Je le rends exécutable via « chmod +x /usr/local/bin/wow.sh ».
J’exécute le fichier et mon jeu ce lance.

Comme tu peux le voir, dans ce script je lui donnes en argument le préfixe wine créé pour l’occasion via WINEPREFIX ainsi qu’une autre variable WINEDEBUG qui me permet de spécifier des améliorations pour wine, ensuite, toujours sur la même ligne (deux lignes au total) j’invoque la commande « wine » et je donnes le chemin vers l’exécutable de WoW (à adapter selon ton cas, moi c’est ma partition windows qui est montée).
De même, tu peux omettre le .sh dans le nom si tu trouves cela redondant et tu peux créer un lanceur de programme via ton environnement de bureau s’il le supporte.

Si tu rencontres des soucis, exécute ce script sans la variable WINEDEBUG=« -all STAGING_SHARED_MEMORY=1 STAGING_WRITECOPY=1 » et exécute le dans un terminal pour voir toutes les traces.
Une fois que ton programme tourne, il est préférable de laisser celle-ci sinon tu aura des ralentissements provoqués par tous ces logs.

C’est terminé !
Bon, c’était un peu verbeux et j’en suis désolé mais il est important de savoir ce qu’ont fait, ça a l’air lourd comme ça mais ça ne l’est pas tant que ça.

A chaque fois que tu installera un programme, si tu penses qu’il a besoin d’une configuration séparée alors tu penseras à créer un préfixe et tu fera ça en un rien de temps.

L’important est que tu adaptes les chemins à ton cas, comme je l’ai dis, rien ne t’obliges à mettre tes préfixes au même endroit, mais organises toi car c’est essentiel pour garder le tout à jour.

Dis moi là où tu bloques et je verrais pour t’aider.

Eadwin, Defias-Brotherhood Kingpin.

3 mentions « J’aime »