2015-06-18 3 views
0

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

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

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

ответ

1

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

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

Часть текста под дисплеем - это отвал аппаратного композитора , Он отображает слои на экране, с кучей информации о положении, ротации и формате каждого слоя.

Наиболее близкое к документации можно найти в разделе HWC graphics architecture doc. Учитывая уровень системы, с которой вы работаете, я бы рекомендовал вам прочитать весь документ. Помимо этого, вы можете попытаться определить значение с source code.

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

+0

Дисплей [1] действительно предназначен для внешнего дисплея. Я просто отключил дисплей и увидел только вывод [0] на выходе. Единственная проблема заключается в том, что у моей доски нет другого дисплея, например. Я могу видеть только пользовательский интерфейс через внешний экран. Поэтому я не уверен, что соответствует Display [0]. – Mahdi

+0

Когда я в последний раз смотрел SurfaceFlinger, было действительно настроено иметь «первичный» встроенный дисплей. Это не имело смысла для различных приложений (например, телевизионных приставках), но предположение было подключено. Я не помню, если на несуществующем дисплее возникли накладные расходы из-за ненужного состава - если Surfaces - GLES ", это может быть составление их с помощью графического процессора. – fadden

+0

Возможно, это приведет к излишнему выходу. – Mahdi