如何在Google Glass中最大限度地减少GPU过度抽奖?

时间:2014-09-19 05:30:49

标签: google-glass google-gdk

我试图了解最近宣布的“GPU over draw”功能是如何工作的。为什么屏幕的某些部分被绘制两次或三次?这真的有用吗?这与布局嵌套有什么关系吗?如何最大限度地减少这种过度抽在Windows手机中,我们有一个像Bitmapcachemode这样的选项,可以缓存重绘并防止重复绘制。在Android中有类似的东西吗? (下面的代码段来自Google官方文档)

  

使用最新版本的玻璃,开发人员可以选择   打开GPU而不是绘图。当你打开此设置时,系统   将在屏幕上的每个像素中着色,具体取决于它的次数   是在最后一个油漆循环中绘制的。此设置可帮助您进行调试   深度嵌套布局或复杂绘制逻辑的性能问题。

Pixels drawn in their original color were only drawn once.
Pixels shaded in blue were drawn twice.
Pixels shaded in green were drawn three times.
Pixels shaded in light red were drawn four times.
Pixels shaded in dark red were drawn five or more times.
     

来源 - Google官方文档。

1 个答案:

答案 0 :(得分:1)

GPU overdraw功能只是一个用于可视化透支的调试工具。过度的透支会导致绘图/动画性能下降,因为它会占用UI线程的时间。

此功能已在Android中出现一段时间,Glass只是公开了一个菜单选项将其打开。有关详细信息,请参阅http://www.curious-creature.org/docs/android-performance-case-study-1.html的“可视化透支”部分。

过度绘制不一定是由嵌套布局引起的。当您具有绘制到屏幕的同一区域的其他视图的视图时,会发生重绘。例如,通常在您的活动中设置背景,但随后具有也具有背景的全屏视图。在这种情况下,您将在屏幕上绘制每个像素至少2次。要解决此特定问题,您可以删除活动的背景,因为它不会因子视图而可见。

目前Android无法自动检测并防止透支,因此开发人员可以在实施过程中对此进行说明。