2010-06-06 4 views
0

Récemment, je me suis heurté à un problème très étrange: toucher l'écran de l'iPhone et bouger le doigt peut me coûter jusqu'à 50% de mon FPS. Oui, j'ai vérifié mon code pour les goulots d'étranglement possibles - pas le problème. Le dernier recours que j'ai essayé avant d'écrire ce post - commentant tout le code de traitement tactile et en regardant FPS alors. Les résultats sont: aucune touche - 58-60. Toucher et déplacer le doigt - 35-40 FPS instantanément.iPhone + OpenGL + Touches: FPS drop

Le rendu est effectué dans un thread séparé, de sorte qu'aucun événement de cycle principal ne doit entrer en conflit avec ce dernier. Cependant, c'est très crushial pour moi (et le jeu que je développe) de résoudre ce problème, car une telle chute de FPS est vraiment perceptible.

Nous vous remercions de votre aide à l'avance.

MISE À JOUR: semble que la mise en priorité du thread rendant à valeur plus élevée aide un peu ...

Répondre

2

L'iPhone, iPod Touch et iPad sont tous un seul processeur, des dispositifs à cœur unique. Le simple fait de placer votre code de rendu sur un fil séparé de la gestion des événements tactiles - bien que ce soit une bonne idée - n'empêchera pas le traitement tactile de ronger les cycles du processeur. La seule façon de faire monter vos framerates sera de rendre le code de manipulation tactile plus rapide ou de rendre le rendu plus rapide. Ce que vous poursuivez dépend des spécificités de votre application.

+0

Bon point. Cela explique également pourquoi la définition de la priorité de thread de rendu à une valeur plus élevée masque un effet. – Anton