Page 1 sur 1

[Profiler] Qu'est ce que gfx.waitForPresent ?

Publié : 11 Fév 2015 14:45
par soumois
Bonjour à tous !

Voilà, j'ai un petit problème avec les données que me renvoie mon profiler concernant le résultat de gfx.waitForPresent. ( l'image du dessus est un screenshoot de mon profiler )

J'ai beau regarder sur internet, je n'arrive pas à avoir une réponse concrète de ce qu'est le gfx.waitForPresent.

J'ai supprimé la syncho verticale ( au cas où ça serait ça ).

Quelqu'un aurait-t il une idée ?

Re: [Profiler] Qu'est ce que gfx.waitForPresent ?

Publié : 11 Fév 2015 15:00
par boubouk50
De ce que j'ai lu, ce serait le GPU qui a fini ses calculs avant la fin de la frame. Dans le cas d'un frameRate fixé à 60fps, les calculs doivent être effectués en 16ms. Si ton GPU a fini ses calculs avant cette limite alors il se met en attente de la suivante. Je n'ai pas vu par contre quelle incidence il a et son utilité pour le profiling.
Après pour la lecture des données, je suppose que l'on voit les temps d'attente du GPU... pas sûr...

Re: [Profiler] Qu'est ce que gfx.waitForPresent ?

Publié : 11 Fév 2015 15:04
par minirop
gfx.waitForPresent est la v-sync. aussi, est-ce que tu es sûr que la v-sync est désactivée ? car même si elle est désactivée dans Unity, elle peut être forcée au niveau du driver de ta carte graphique.
d'autres parlent de désactiver les ombres en temps réel voire de lancer Unity en compatibilité winXP.

Re: [Profiler] Qu'est ce que gfx.waitForPresent ?

Publié : 11 Fév 2015 15:21
par soumois
Oui, j'avais lu ça aussi. Mais alors pourquoi j'ai des pics ? Si c'était pour me caler à 60 fps, je devrais avoir quelque chose de régulier. Là, j'ai des pics entre 60 et 200 fps.

EDIT : J'ai donc bien la syncho verticale désactivé sur mon device et j'ai désactivé les ombres dans qualitySettings. ( c'était fait au moment du screenshot )

Re: [Profiler] Qu'est ce que gfx.waitForPresent ?

Publié : 28 Avr 2015 17:48
par sotec
je vais remonter le topic, car j'ai le même soucis :
- mon appli tourne entre 35 et 50 fps, avec Gfx.WaitForPresent() qui prend entre 70 et 90% du temps de calcul CPU
- ma V-Synch est également désactivé

ce n'est pas la première fois que je fouille ce problème :
- c'est la V-synch ( apparement non, vu qu'elle est désactivée ^^ )
- c'est pour mettre le frame rate à 60 fps ( encore raté vu que ça me passe à 35 fps )

par contre, j'ai finis par trouver d'où ça viens exactement :

Gfx.WaitForPresent is kind of a catch-all that appears anytime the CPU waits for the GPU to finish a frame. You can check the GPU profiler to see what's taking up the time.
https://forums.oculus.com/viewtopic.php?t=13444

dans le profiler, rajoute le GPU est tu va voir que gfx.waitForPresent() est synchrone avec le gpu.