Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: baton le Janvier 06, 2013, 10:17:33 pm

Titre: [RESOLU] Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
Posté par: baton le Janvier 06, 2013, 10:17:33 pm
Bonjour,

J'ai entamé un projet il y a quelque temps qui utilise Opengl et la Sfml pour les évent et le fenêtrage.
Je viens de mettre a jour tout le projet pour qu'il puisse tourner avec la Sfml2. La compilation ne pose pas de problème, dans les menu le jeu fonctionne correctement, mais dans le jeu (la ou toute la scène 3d est affiché) le programme freeze au bout de quelque secondes (qu'importe le nombre d'éléments affiché (même pour 0 éléments)). Si je regarde les processus, Xorg monte en flèche et semble être la cause du freeze. Une foi le freeze arrivé je peu faire echap (pour retourner dans le menu) et retourner dans le jeu, j'ai alors a nouveau quelque secondes de délai avant que ça freeze.

Je suis sous Debian 64bits avec la SFML2 64b et OpenGl 3.2.
A noté que le même code sur un MacBookPro 64bits fonctionne correctement.

Je ne sait pas par ou commencer et repasser en 1.6 ne m'arrangerai pas (la gestion des events de la sourie ne fonctionnais pas en 1.6 sous Mac).

Merci d'avance pour toutes suggestion.
Titre: Re : Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
Posté par: Laurent le Janvier 06, 2013, 10:50:25 pm
Aucune idée. Surtout que si tu fais de l'OpenGL, SFML n'est quasiment pas impliquée.

Si tu pouvais recréer le problème dans un code complet minimal, ça pourrait aider.
Titre: Re : Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
Posté par: baton le Janvier 06, 2013, 10:58:46 pm
Merci pour ta réponse,

Par le plus grand des hasard j'ai trouvé la ligne qui provoque le freeze :
sf::Mouse::setPosition(sf::Vector2i(WIDTH/2, HEIGHT/2), App);

Par contre je n'ai aucune idée du pourquoi du comment.
Titre: Re : Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
Posté par: Laurent le Janvier 06, 2013, 11:01:52 pm
Tu utilises quelle révision de SFML 2 ?
Titre: Re : Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
Posté par: baton le Janvier 06, 2013, 11:05:35 pm
J'ai télécharger hier cette version :
>> http://www.sfml-dev.org/download-fr.php
>>>> C++ | version 2.0 RC
>>>>>> Linux 64 bits (1.6 MB)
Titre: Re : Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
Posté par: Laurent le Janvier 06, 2013, 11:06:55 pm
Télécharge et compile les dernières sources, ça devrait résoudre ton problème.
Titre: Re : Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
Posté par: baton le Janvier 06, 2013, 11:10:05 pm
Hum plus facile a dire qu'a faire :)
Je me renseigne, merci pour l'aide.
Titre: Re : Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
Posté par: baton le Janvier 06, 2013, 11:46:35 pm
J'ai re compilé la SFML (merci pour le tuto avec cmake, trés pratique). Mais malheureusement cela n'a pas solutionnée mon problème.
Titre: Re : Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
Posté par: baton le Janvier 07, 2013, 12:08:33 am
Bon, pour ceux que ça intéresse, j'ai résolut le problème.

J'avais lu quelque part que la Sfml2 changeait quelque peu la gestion des events.
Je me suis dit que peut être la fonction sf::Mouse::setPosition était trop appelé (peut être même plus d'un fois par frame). Du coup j'ai simplement mis un booléen qui autorise l'appel a sf::Mouse::setPosition qu'une seul fois par frame (même si plusieurs event sont envoyé).

Le plus drôle c'est que ça corrige le problème!

Merci
Titre: Re : [RESOLU] Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
Posté par: Laurent le Janvier 07, 2013, 08:13:38 am
T'es vraiment sûr que tu utilises bien la version que tu as recompilée ? Parce que je suis absolument certain qu'elle doit résoudre ton problème :-\
Titre: Re : [RESOLU] Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
Posté par: baton le Janvier 07, 2013, 10:23:50 am
Je re compilerai ce soir en partant du dépôt git.
Une fois compilée il suffi de remplacer les .so c'est tout? Ou il faut aussi copier les headers?
Titre: Re : [RESOLU] Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
Posté par: Laurent le Janvier 07, 2013, 10:32:15 am
Il faut tout remplacer, en-têtes et bibliothèques. Mais tu devrais faire ça proprement : vire complètement ton ancienne version, puis installe proprement la nouvelle. Ne fais pas de remplacement manuel.
Titre: Re : [RESOLU] Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
Posté par: baton le Janvier 07, 2013, 11:42:01 am
Ah? Il existe une autre méthode que la manuel? Un petit lien? :)

Merci pour ton aide.
Titre: Re : [RESOLU] Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
Posté par: Laurent le Janvier 07, 2013, 11:50:31 am
Pour supprimer il faut le faire manuellement, mais pour installer tu fais l'habituel "make install".