Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [RESOLU] Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze  (Lu 4065 fois)

0 Membres et 2 Invités sur ce sujet

baton

  • Jr. Member
  • **
  • Messages: 65
    • Voir le profil
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.
« Modifié: Janvier 07, 2013, 12:08:51 am par baton »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
« Réponse #1 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.
Laurent Gomila - SFML developer

baton

  • Jr. Member
  • **
  • Messages: 65
    • Voir le profil
Re : Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
« Réponse #2 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.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
« Réponse #3 le: Janvier 06, 2013, 11:01:52 pm »
Tu utilises quelle révision de SFML 2 ?
Laurent Gomila - SFML developer

baton

  • Jr. Member
  • **
  • Messages: 65
    • Voir le profil
Re : Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
« Réponse #4 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)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
« Réponse #5 le: Janvier 06, 2013, 11:06:55 pm »
Télécharge et compile les dernières sources, ça devrait résoudre ton problème.
Laurent Gomila - SFML developer

baton

  • Jr. Member
  • **
  • Messages: 65
    • Voir le profil
Re : Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
« Réponse #6 le: Janvier 06, 2013, 11:10:05 pm »
Hum plus facile a dire qu'a faire :)
Je me renseigne, merci pour l'aide.

baton

  • Jr. Member
  • **
  • Messages: 65
    • Voir le profil
Re : Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
« Réponse #7 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.

baton

  • Jr. Member
  • **
  • Messages: 65
    • Voir le profil
Re : Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
« Réponse #8 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

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : [RESOLU] Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
« Réponse #9 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 :-\
Laurent Gomila - SFML developer

baton

  • Jr. Member
  • **
  • Messages: 65
    • Voir le profil
Re : [RESOLU] Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
« Réponse #10 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?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : [RESOLU] Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
« Réponse #11 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.
Laurent Gomila - SFML developer

baton

  • Jr. Member
  • **
  • Messages: 65
    • Voir le profil
Re : [RESOLU] Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
« Réponse #12 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.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : [RESOLU] Passage de la 1.6 a la 2.0 : Grosse perte de perf et freeze
« Réponse #13 le: Janvier 07, 2013, 11:50:31 am »
Pour supprimer il faut le faire manuellement, mais pour installer tu fais l'habituel "make install".
Laurent Gomila - SFML developer