iPhone + OpenGL + Touch: падение FPS

Недавно я столкнулся с очень странной проблемой: прикосновение к экрану iPhone и движение пальца может съесть до 50% моего FPS. Да, я проверил свой код на предмет возможных узких мест - не проблема. Последнее средство, которое я пробовал перед написанием этого поста, - закомментировал весь код обработки сенсорного ввода и затем посмотрел на FPS. Итоги такие: без касаний - 58-60. Касание и перемещение пальца - мгновенно 35-40 FPS.

Рендеринг выполняется в отдельном потоке, поэтому никакие основные события цикла выполнения не должны конфликтовать с ним. Однако мне (и игре, которую я разрабатываю) очень сложно решить эту проблему, потому что такое падение FPS действительно заметно.

Заранее благодарю за вашу помощь.

ОБНОВЛЕНИЕ: кажется, установка более высокого приоритета потока отрисовки немного помогает ...


person Anton    schedule 06.06.2010    source источник


Ответы (1)


Все iPhone, iPod Touch и iPad - это однопроцессорные одноядерные устройства. Простое размещение кода рендеринга в отдельном потоке от обработки событий касания - хотя это хорошая идея - не помешает обработке сенсорным вводом потреблять циклы ЦП. Единственный способ увеличить частоту кадров - это либо ускорить код обработки касания, либо ускорить рендеринг. Что вы будете делать, зависит от специфики вашего приложения.

person Jeff Kelley    schedule 06.06.2010
comment
Хорошая точка зрения. Это также объясняет, почему установка приоритета потока визуализации на более высокое значение маски немного влияет. - person Anton; 06.06.2010