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

2016-11-10 11:52:52 +08:00
 begeekmyfriend

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

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

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

https://www.v2ex.com/t/319506

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

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

© 2021 V2EX