• 15

【教學】開啟"強制使用GPU描繪"來提升手機速度

我的New One是4.42 + Sense5.5。開啟該功能後畫面幾乎都在閃爍紅色,把它關掉後又一切正常了。
好吧,這樣說的話就無解了

我還是繼續用好了,手機這樣真的比較順暢

但真是...
apa1102 wrote:
沒有為什麼, 因為這...(恕刪)

蓋子蓋 wrote:
好吧,這樣說的話就無...(恕刪)


沒開GPU渲染,我覺得玩薑餅好像沒有不順的問題
我是開啟GPU+省電模式 薑餅人沒有出現LAG現象

或說發熱狀況也越來越沒有感覺,不知道是同時有跟著開省點模式的原因嗎?!

不解!雖然省電模式是節省CPU部分
Jamlu39178 wrote:
沒開GPU渲染,我覺...(恕刪)
蓋子蓋 wrote:
我是開啟GPU+省電...(恕刪)

0.0
[技术普及贴]Android开发者选项的含义及使用说明
看过太多似是而非甚至完全错误的解释,干脆写一个帖子说明一下自己比较常用的开发者选项的含义,先从误解最多的“强制进行GPU绘制”开始。


(一)强制进行GPU绘制


了解Android开发的应该都清楚,Android的UI界面是通过Android开发框架库里面的Canvas(http://developer.android.com/reference/android/graphics/Canvas.html)绘制出来的。在1.x和2.x时代,Canvas的内部实现使用的是Skia图形库(https://code.google.com/p/skia/),它完全使用CPU进行绘制,也就是说UI界面每一个像素的颜色都是CPU计算出来的。


从3.x开始,Android通过hwui模块,为Canvas增加了另外一个实现 - OpenGLRenderer,顾名思义,就是通过OpenGL实现2D绘图,但是为了兼容性考虑,原来基于Skia的实现仍然被保留。


从4.x开始,在一个应用启动时,为应用创建的Canvas到底内部是使用OpenGL还是Skia,是按这样的规则决定的,针对4.x开发的应用默认使用OpenGL,针对2.x开发的应用默认使用Skia,但是应用在初始化的时候可以声明自己要使用硬件加速,也就是使用OpenGL。


也就是说一个针对2.x开发的应用可以在启动时自己开启硬件加速,但是如果它没有自己开启的话,默认是关闭的,而“强制进行GPU绘制”这个选项的意义就是“针对2.x开发的应用强制使用OpenGL”。

(二) 停用HW叠加层


这个选项主要是影响Android窗口混合器SurfaceFlinger的行为。在Android 1.x和2.x时代,SurfaceFlinger是使用OpenGL ES1进行窗口混合。


何谓窗口,何谓窗口混合,举个简单的例子,当应用弹出软键盘进行输入的时候,应用本身有一个窗口,软键盘又是另外一个窗口,叠加在应用的窗口之上,将这两个窗口进行叠加最后输出到屏幕上就是所谓的窗口混合。


为了提高窗口混合的效率和减少GPU的开销,Android 3.x引入hwcompser,硬件窗口混合器,这个模块的接口是由Android制定的,但是实现是由SoC厂商提供的,SurfaceFlinger在进行窗口混合时,先会询问SoC是否支持硬件混合器,如果支持,则使用硬件混合器,如果不支持,则沿用原来的自己的OpenGL混合器。


而“停用HW叠加层”选项的含义则是强制使用OpenGL混合器,不再使用SoC提供的硬件混合器,它主要是用来帮助判断SoC提供的硬件混合器是否有问题。一般而言,SoC提供的硬件混合器会提供更好的性能和更省电。


硬件混合器介绍:
https://wiki.mozilla.org/Platform/GFX/hwcomposer


使用硬件混合器的优势
What are the wins of using HWComposer over an OpenGL compositor?


Lower Power consumption(省电)
Chipset vendors could use simple HW layout to fullfill the needs of HWComposer, compared to GPU complex layout. Therefore, HWComposer could have the following benefits.



Offer all GPU resource for application(减少GPU占用)
Offload GPU task for screen composition

(三)显示GPU视图更新


这个选项很简单,就是应用如果使用了硬件加速,当它的当前窗口更新时,就是加一层红色的蒙版。


因为是否开启硬件加速实际上是针对窗口的,如果应用创建了多个窗口,它可以选择有些窗口开启硬件加速,有些窗口不开启,所以这个选项只用来判断当前应用的当前窗口是否开启硬件加速。


(四)显示硬件层更新


为了提升一些UI界面动画的效率,应用可以选择先把动画的部分区域先缓存起来,缓存到一个硬件图层(HW Layer),然后在动画过程中就直接绘制这个已经缓存的图层,减少动画过程中的绘制开销,从而保证60帧的动画效果。


开启这个选项就可以看到UI界面的哪些部分创建了硬件图层,这些区域会被加上一层绿色的蒙版
s0923539218 wrote:
[技术普及贴]...(恕刪)


所以現在開GPU有用嗎
血染征袍透甲紅, 當陽誰敢與爭鋒! 古來沖陣扶危主, 只有常山趙子龍。 -Keep Walking-

-趙雲- wrote:
所以現在開GPU有用...(恕刪)

沒有必要
蓋子蓋 wrote:
大大,最近我迷上了跑...(恕刪)


打個比方好了
電腦的內建顯示卡不需要安裝風扇,因為不會產生太多的廢熱
外接的獨立顯卡都會有獨立風扇,因為效能高,產生的廢熱也多

開啟GPU描繪 會 強制使用獨立顯卡
關閉GPU描繪 則是 系統自動判斷是否要使用

一個完善的系統有自動判斷的能力,理論上不應該開啟這個選項。
不過Android在這一區塊是不如iOS,很多需要使用GPU的情況,卻裝傻不運作而導致延遲

開啟對於遊戲效能跟系統整體運作有一定的幫助,而且成效是顯著的
但在不吃效能的遊戲下(2D遊戲),強制開啟GPU,就大材小用,換來的代價就是熱了
感謝大大解說,這樣明白了!!

設定一下好了!!!!

貓在天上飛 wrote:
打個比方好了電腦的內...(恕刪)
  • 15
內文搜尋
X
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 15)
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?