#1 

04-08-2009 17:23:44

Hawk
Membres
Date d'inscription:
Messages: 91
IP: 82.121.139.131
Courriel  Site web

Bonjour à tous.

J'ai un problème qui me bloque énormément depuis une semaine. Je travail sur un moteur de jeu 3D depuis quelques mois, qui tournait assez bien il y a encore une semaine, à 60FPS (valeur que j'ai fixée)
Sans que je comprenne pourquoi, du jour au lendemain, je me retrouve à un FPS de 14 !! Du coup, ça rame énormément.
Pour comprendre ce phénomène, j'ai lancé gprof sous linux sur mon binaire, pour comprendre d'où venait le problème. Et voici un extrait du résultat :

Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls Ts/call Ts/call name
25.00 0.01 0.01 irr::core::array<unsigned char, irr::core::irrAllocator<unsigned char> >::operator[](unsigned int)
25.00 0.02 0.01 irr::video::CColorConverter::convert24BitTo24Bit(unsigned char const*, unsigned char*, int, int, int, bool, bool)
25.00 0.03 0.01 irr::video::SColor::getRed() const
25.00 0.04 0.01 irr::video::SColor::getAlpha() const

Un peu plus bas, dans le call graph :

granularity: each sample hit covers 4 byte(s) for 25.00% of 0.04 seconds

index % time self children called name
<spontaneous>
[1] 25.0 0.01 0.00 irr::core::array<unsigned char, irr::core::irrAllocator<unsigned char> >::operator[](unsigned int) [1]

  • ----------------------------------------------

<spontaneous>
[2] 25.0 0.01 0.00 irr::video::CColorConverter::convert24BitTo24Bit(unsigned char const*, unsigned char*, int, int, int, bool, bool) [2]
  • ----------------------------------------------

<spontaneous>
[3] 25.0 0.01 0.00 irr::video::SColor::getRed() const [3]
  • ----------------------------------------------

<spontaneous>
[4] 25.0 0.01 0.00 irr::video::SColor::getAlpha() const [4]


Je n'arrive pas à comprendre d'où vient ce phénomène.
Je suis sous Ubuntu 9.04, je compile avec gcc, j'utilise Irrlicht 1.5.
Est-ce que quelqu'un aurait une idée pour m'éclairer ?

D'avance merci.

EDIT : J'ai relancer mon binaire, et refait gprof dessus, je n'obtiens pas les même résultats !

Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls Ts/call Ts/call name
50.00 0.01 0.01 irr::video::CNullDriver::addAndDropMaterialRenderer(irr::video::IMaterialRenderer*)
25.00 0.01 0.01 irr::video::SMaterialLayer::SMaterialLayer()
25.00 0.02 0.01 irr::core::CMatrix4<float>::operator()(int, int) const

granularity: each sample hit covers 4 byte(s) for 50.00% of 0.02 seconds

index % time self children called name
<spontaneous>
[1] 50.0 0.01 0.00 irr::video::CNullDriver::addAndDropMaterialRenderer(irr::video::IMaterialRenderer*) [1]
  • ----------------------------------------------

<spontaneous>
[2] 25.0 0.01 0.00 irr::video::SMaterialLayer::SMaterialLayer() [2]
  • ----------------------------------------------

<spontaneous>
[3] 25.0 0.01 0.00 irr::core::CMatrix4<float>::operator()(int, int) const [3]


Hors ligne


#2 

04-08-2009 18:57:02

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 90.56.249.233
Courriel

Heu, j'avoue que si je comprend globalement ton soucis, pour le reste, je suis largué.

Les connaisseurs analyseront certainement les chiffre ci-dessus, mais moi ... hmm


Force et sagesse...

Hors ligne


#3 

04-08-2009 19:47:45

Magun
Administrateurs
Avatar de Magun
Date d'inscription:
Messages: 910
IP: 188.93.45.30
Courriel  Site web

j'avoue ça me fait cela de temps a autre avec irrlicht donc je ne peut pas te dire pourquoi, j'ai une petit idéee mais bon hmm ....
ba la seul chose que je peut te dire ses de regarder si l'anti-aliasing, vertical syncro et le stencil buffer ne sont pas activer, il on tendance a faire chuter les fps

ps : j'ai certainement de faute d'orthographe plus grosse que le monde mais j'ai pas mon correcteur la ... smile

sinon si tu utilise la svn, ses peut-être sa bien que je doute qu'il est changer le code par un, contre optimiser

Hors ligne


#4 

06-08-2009 10:55:53

dark calculator
Membres
Date d'inscription:
Messages: 153
IP: 82.252.241.50
Courriel

Juste une idée comme ça, ta pas fais une mise a jour d'ubuntu par hasard ?

Enfin test sur un autre système au cas où, avec la version a 60 FPS aussi si tu l'a encore.

je connaissais pas gprof sa a l'air pas mal mais du coup je peux pas te dire.

Enfin test quand même l'accélération graphique sous ubuntu si elle est pu activé a cause d'une maj c'est sur que sa réduit pas mal les FPS.

Je crois que c'est glxgears pour faire tester.


Hors ligne


#5 

07-08-2009 07:26:46

Hawk
Membres
Date d'inscription:
Messages: 91
IP: 91.103.40.50
Courriel  Site web

@Dark Calculator :
Effectivement, c'est un problème d'accélération graphique qui était désactivée.
Merci beaucoup, le problème est corrigé.


Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
120 invités en ligne
membre en ligne: -
RSS Feed