Pages: 1
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]
Dernière modification par Hawk (04-08-2009 19:36:19)
Hors ligne
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 ...
Hors ligne
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 ....
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 ...
sinon si tu utilise la svn, ses peut-être sa bien que je doute qu'il est changer le code par un, contre optimiser
Dernière modification par Magun (04-08-2009 22:06:18)
Hors ligne
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
@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
Pages: 1