Интерпретация вывода dumpsys SurfaceFlinger

Недавно я начал использовать dumpsys SurfaceFlinger для сбора информации о графике Android. В настоящее время я работаю над платой разработки под названием Odroid-XU3. Дисплей представляет собой монитор Dell, который подключен к плате через кабель HDMI.

В самых последних нескольких строках вывода вышеуказанной команды у меня есть два дисплея, хотя я ожидаю, что будет только один. Один из них Display[0], а другой Display[1]. Столбец type каждого из дисплеев может быть HWC или GLES. Иногда они оба HWC или GLES, а иногда один HWC, а другой GLES.

В чем разница между Display[0] и Display[1]? Я попытался найти документацию, чтобы понять, как интерпретировать вывод вышеупомянутой команды, но не нашел ничего полезного.


person Matt    schedule 18.06.2015    source источник


Ответы (1)


Было бы полезно иметь вывод dumpsys в вашем вопросе, но я могу сделать несколько общих замечаний.

display[0] — это встроенный дисплей устройства. display[1] - это "внешний" дисплей, в вашем случае HDMI. Эти два индекса жестко связаны. (Ну, они были с KitKat; я не знаю, были ли они с тех пор, как не были жестко подключены.) Виртуальные дисплеи начинаются с индекса 2.

Фрагмент текста под дисплеем — это дамп аппаратного компоновщика. Он отображает слои на экране с кучей информации о положении, повороте и формате каждого слоя.

Ближе всего к документации можно найти в разделе HWC документа по графической архитектуре< /а>. Учитывая уровень системы, с которой вы работаете, я бы рекомендовал вам прочитать весь документ. Кроме того, вы можете попытаться понять смысл из исходный код.

Архивный документ объясняет разницу между «HWC» и «GLES» в выводе: «HWC» означает, что поверхность живет на наложении дисплея, а «GLES» означает, что вместо этого поверхность создается с помощью графического процессора.

person fadden    schedule 19.06.2015
comment
Display[1] действительно для внешнего дисплея. Я только что отключил дисплей и вижу только Display[0] на выходе. Единственная проблема в том, что на моей плате нет другого дисплея, например. Я могу видеть пользовательский интерфейс только через внешний дисплей. Поэтому я не уверен, чему соответствует Display[0]. - person Matt; 22.06.2015
comment
Когда я в последний раз смотрел на SurfaceFlinger, он действительно хотел иметь основной встроенный дисплей. Это не имело смысла для различных приложений (например, телевизионных приставок), но предположение было заложено. Я не помню, были ли накладные расходы, вызванные ненужной композицией на несуществующем дисплее — если Surfaces — это GLES. он может составлять их с помощью графического процессора. - person fadden; 23.06.2015
comment
Это может привести к ненужному результату. - person Matt; 23.06.2015