我一直在阅读此网址以了解表面抛光剂。
https://source.android.com/devices/graphics/arch-sf-hwc
其中,下面的块我无法理解。如果有人用一个例子解释,那就太棒了。
当没有任何东西时,叠加平面的效率可能低于GL组合 在屏幕上正在改变。叠加时尤其如此 内容具有透明像素,并且混合了重叠的层 一起。在这种情况下,HWC可以选择请求GLES 部分或全部图层的合成并保留合成缓冲区。 如果SurfaceFlinger回来要求合成同一组 缓冲区,HWC可以继续显示以前合成的 临时缓冲区。这可以改善空闲设备的电池寿命。
答案 0 :(得分:2)
想象一下合成两架飞机。
如果使用显示控制器覆盖平面,则扫描到面板的每个输出帧将读取两个平面。
如果使用GPU组合,则更改后的第一帧更昂贵:
...所以有四组内存访问而不是两组。但是,如果下次扫描没有任何变化,您可以跳过GPU组合步骤,只需让显示控制器读取先前合成的缓冲区:
...与仅使用覆盖平面相比,在扫描输出期间可以节省一帧读取。