经测试, OpenGL ES 在 arm64-v8a 上的指令优化不完美,特别是 glReadPixels()

2016 年 11 月 10 日
 begeekmyfriend

测试方法就是用 System.nanotime()的 benchmark , arm64-v8a 的执行时间是 armeabi-v7a 的一倍多。在 640x480 的 RGBA 格式上, arm64-v8a 是 40ms 以上, armeabi-v7a 是 20ms 以下。

14335 次点击
所在节点    Android
7 条回复
binsys
2016 年 11 月 10 日
这个在不同平台上差别比较大,不光是 ARCH 上的差别,比如 Qualcomm 自己的不同平台, Allwinner , MTK ,都不一样
wsy2220
2016 年 11 月 10 日
厂商的显卡驱动太渣吧
jaryguo2011
2016 年 11 月 10 日
求解释。用不同的指令集在同样的架构上速度不一样吗?还是说只是硬件架构不同导致的?
begeekmyfriend
2016 年 11 月 10 日
@jaryguo2011 原因可能是 @wsy2220 所说的 GLES 驱动适配问题,我也无能为力了。
guoxx_
2016 年 11 月 11 日
和 GPU 架构有很大关系。是不是 Tiled based deferred rendering, powervr 的架构就是这样的。 Immediate mode GPU 应该没问题,例如 terga.
kokutou
2016 年 11 月 12 日
知乎上不是有个这个问题么。。。
说就不该用这个 glReadPixels 函数。。。
begeekmyfriend
2016 年 11 月 12 日
@kokutou 就是我问的,但问题没描述清楚,答主的意思是不宜在渲染到屏幕的时候去 read ,这会导致同步阻塞。但我是渲染到 FBO 再去 read 的,这是教科书里所描述的用法。而且在 armeabi-v7a 架构下不存在掉帧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/319506

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX