Отладка производительности металла - PullRequest
0 голосов
/ 18 мая 2018

У меня есть приложение Metal на iOS, где я беру видеокадры и пропускаю каждый кадр через несколько шейдеров, некоторые из них являются вычислительными шейдерами, применяемыми в несколько проходов, и 4 из них являются независимыми MTKView, которые отображают вычисленные текстуры (например, гистограмму)с предварительным просмотром видео.Иногда (но не всегда) на старом оборудовании, таком как iPhone 6s, я замечаю, что приложение стало слишком медленным с частотой кадров, падающей до 1 или 2 кадров в секунду.Пожалуйста, дайте мне знать, как отлаживать, какие металлические шейдеры засоряют GPU / GPU и как оптимизировать производительность кода, связанного с Metal.

1 Ответ

0 голосов
/ 27 мая 2018
  1. Запустите ваше приложение в Xcode.
  2. Выберите Отладка -> Захватить кадр GPU
  3. Выберите Навигатор проблем на левой панели инструментов
  4. Выберите Время выполнения
  5. Исправьте перечисленные проблемы, по крайней мере, с «высоким» приоритетом.
  6. Вы также можете увидеть, где расходуется производительность, посмотрев drawPrimitives и т. Д. В навигаторе отладки слева.

Чтобы просмотреть сведения о производительности шейдера, выберите вызов отрисовки или отправки из списка событий слева.Там есть раздел «производительность».

...