dumpsys SurfaceFlinger 输出解释

dumpsys SurfaceFlinger output interpretation

最近,我开始使用dumpsys SurfaceFlinger 收集有关android 图形的一些信息。我目前在名为 Odroid-XU3 的开发板上工作。显示器是戴尔显示器,通过HDMI线连接到主板。

在上述命令输出的最后几行中,我有两个显示器,而我只希望有一个。其中一个是 Display[0],另一个是 Display[1]。每个显示的 type 列可以是 HWCGLES。有时它们都是 HWC 或 GLES,有时一个是 HWC,另一个是 GLES。

Display[0] 和 Display[1] 有什么区别? 我试图找到一份文档来了解如何解释上述命令的输出,但我没有找到任何有用的东西。

在你的问题中有 dumpsys 输出会有所帮助,但我可以做一些一般性的观察。

display[0]为设备内置显示屏。 display[1] 是 "external" 显示器,在您的情况下是 HDMI。这两个索引是硬连线的。 (好吧,它们是 KitKat 的;我不知道它们是否有非硬连线的东西。)虚拟显示器从索引 2 开始。

显示下方的文本块是硬件作曲家转储。它在屏幕上显示图层,以及关于每个图层的位置、旋转和格式的一堆信息。

最接近文档的内容可以在 graphics architecture doc. Given the level of the system you're working with, I would recommend you read the entire document. Beyond that, you can try to discern the meaning from the source code 的 HWC 部分找到。

arch 文档确实在输出中解释了 "HWC" 和 "GLES" 之间的区别:"HWC" 表示表面位于显示覆盖层上,而 "GLES" 表示surface 正在由 GPU 组成。