The forum

Vsync + Nvidia + Wine

Author Replies
Illynir Saturday 17 March 2012 at 16:11
IllynirAnonymous

Bonjour tout le monde :)

Je ne sait pas si je suis sur la bonne section et si c'est judicieux de posé ma question ici, mais j'ai un petit probléme que peut étre certain d'entre vous ont remarqué. Dans certains jeux, même en forcant la VSYNC dans le panneaux NVIDIA et dans le jeu, cela ne fonctionne pas. Cas typique : Mirror Edge, The last remnant, Stalkers (Un peu spécial par contre lui mais bref) et pas mal d'autre.

Le problème est connus, c'est un semi-problème des pilotes NVIDIA propriétaire qui remet la vsync a 0 indépendamment de la configuration dans le panneaux et dans le jeu/wine.

J'ai donc trouver ce thread qui en parle avec des devs de nvidia qui le reconnaissent : http://www.nvnews.net/vbulletin/showthread.php?t=163438

Et aussi une solution alternative d'apparence simple a mettre en pratique a la page 3 ici : http://www.nvnews.net/vbulletin/showpost.php?p=2536878&postcount=28

tout ceci pour wine 1.4 (mais ca devrait fonctionné avec les version RC et aussi celle d'aprés)

Il y a donc un patch, mais aussi une astuce alternative à faire avec le fichier "context.dll" dans le répertoire "wined3d".

Alors mon problème c'est que je suis pas encore assez doué pour compilé moi même WINE avec ce patch et savoir le mettre pour PlayOnLinux, et la deuxième, d'apparence simple avec le context.dll, c'est que j'ai chercher absolument PARTOUT sur mon DD, et impossible de trouver ce fichier (j'ai activé les fichiers caché bien entendu).

Donc si quelqu'un de sympa et de gentil pouvait m'expliquer soit ou se trouve ce fameux fichier, soit faire une compilation de wine avec ce patch pour POL, je lui serait reconnaissant éternellement :)

Je ne supporte pas le tearing dans les jeux, c'est quelque chose qui m'est insupportable :-/

Petit détail concernant ce bug, mais si on garde la composition du bureau, la Vsync fonctionne dans le jeu mais au prix de performances largement plus basse et de saut d'image désagréable.

Merci de m'avoir lu, je vous souhaite une bonne journée ;)
Illynir Monday 19 March 2012 at 16:17
IllynirAnonymous

Ça m'a pas l'air très vivant tout ça, peut être que je suis le seul que le tearing et ce bug gène faut croire ...

Bref j'ai réussit a compilé une version 64 bit de wine avec ce patch, donc je sait que ça fonctionne. Le probléme c'est que je ne sait pas comment mettre ma propre version compilé de WINE dans POL pour qu'elle soit reconnus. Et accessoirement je n'arrive pas a compilé une version 32 bit de WINE sur mon systéme 64, mais bon ça c'est une autre histoire.

Je trouve ça dommage de ne pas accorder l'importance qu'il mérite à ce problème mais bon.

Enfin bref, je vais continuer mes investigations.

EDIT : Ah oui, et aussi pour le fichier context.dll, c'est le mec qui avait fait une coquille, c'est bien entendu le fichier context.c a modifier avant la compilation.

Edited by Illynir

Quentin PÂRIS Monday 19 March 2012 at 16:24
Quentin PÂRISAnonymous

Il suffit juste d'appliquer un .patch ?
Illynir Monday 19 March 2012 at 16:57
IllynirAnonymous

Je ne sait pas si c'est un .patch, mais en tout cas la manip est super simple à faire lors de la compil.

Suffit juste avant de compilé d'aller chercher le fichier diff, trouvable ici : http://ompldr.org/vZDJmZQ/vsync.diff

Donc en gros dans le terminal pour appliquer le patch ca donne ça :

wget http://ompldr.org/vZDJmZQ/vsync.diff
patch -p1 < vsync.diff

Et c'est fait, c'est juste une ligne à changer dans le fichier context.c en faite.
Quentin PÂRIS Monday 19 March 2012 at 17:10
Quentin PÂRISAnonymous

C'est vraiment du patch crade ça... Enfin bon, je l'ajoute quand même dans POL si ça peut aider des gens.

Voici la page pour suivre l'avancement :

http://www.playonmac.com/wine/
Illynir Monday 19 March 2012 at 17:14
IllynirAnonymous

Oui le mec à fait ça vite fait pour éviter à WINE de prendre le contrôle de la VSYNC, vu que les pilote proprio passé d'un statut VSYNC ON/VSYNC OFF quand ca reprener la main. Logiquement avec ce patch, seul les pilote proprio garde la main sur la VSYNC et ne crée donc plus ce conflit.

Je suis conscient que c'est pas terrible, mais malheureusement c'est à NVIDIA de corriger ce bug dans leur pilote, WINE n'y est pour rien ( d'ailleurs la VSYNC fonctionne parfaitement avec les pilotes nouveau ... ), il faut qu'ils mettent une option dans le panneaux avec la VSYNC TOUJOURS ON/OFF, comme sur windows en faite. Et non l'option actuel qui s'active/se désactive tout seul ...

Enfin bref, mise a part ça, le patch fonctionne quand même très bien et je te remercie de le rajouter, tu m'a sauvé les yeux :)

Edited by Illynir

Quentin PÂRIS Monday 19 March 2012 at 18:40
Quentin PÂRISAnonymous

La compilation pour linux est terminée. Je marque ce sujet comme résolu, si un jour tu veux une autre version tu peux refaire une demande.
Illynir Monday 19 March 2012 at 19:38
IllynirAnonymous

Merci pour la compilation :)

This site allows content generated by members, and we promptly remove any content that infringes copyright according to our Terms of Service. To report copyright infringement, please send a notice to dmcayonlinux.com