kirikiroid2吧 关注:289,034贴子:1,364,577

【开发日志】20160531

只看楼主收藏回复

首先是声明:
目前版本的emotePlayer只是用来测试兼容性以及证明“可用”,并非“实用”版本,希望有较完美/流畅体验的玩家,还是等待未来更加完善的版本为好。
另外,艹车只支持DX/D3D版本的emote,最快也要一两个版本之后才能实现,届时原生KR2版本(也就是目前1.2.5实现的版本)的性能也会有极大提升。
然后是可以无视的正文(以下测试都在某渣渣荣耀4x上进行):
在两周前,emote插件总算编码完成(当然,到目前为止都还不算完美),真是可喜可贺。在PC上测试能到20+FPS,那还是没开优化的情况下。
于是抱着激动的心情放进手机测试,然而映照在我懵逼的表情上的,是无情的1.8FPS(猫娘x1)。
测试了一下各模块的耗时,发现了不少计算密集的函数耗时很多(基本都与绘图相关),便决定尝试进行代码优化。
在阅读了一些手册教程之后,带着新的理解重新审阅之前的代码,只感叹自己写的代码还是很有改进的潜力的。
于是陷入了那似乎永无止境的优化之中……
……苦逼优化中……
优化的成果还是相当喜人的,帧数从1.8FPS(猫娘x1)提升到了5.1FPS(猫娘x1),四舍五入就是2倍的性能提升有木有!
……喜人你妹!最后的结论是,结果还是被CPU绘图给拖累了。抱着试一试的想法切换成OpenGL,果然画面变得乱七八糟,而且帧数变成了更悲惨的0.7FPS(猫娘x1)。
没办法,之前做motionPlayer完全没有为GPU设计渲染,完全走的CPU处理路线,以至于切换到OpenGL后产生了大量的CPU->GPU->CPU->...的数据交换,浪费了大量的时间。
只好再继续实现OpenGL的兼容设计。在这期间也发现艹车和艹猫都有设计完全D3D绘图的流程,彻底抛弃KR2原生的绘图方式,这才是正途有木有!KR2那绘图简直太反GPU了。
于是这回在改进emotePlayer/motionPlayer时,也保留了将来为支持全GPU渲染流程的扩展,当然那工程量太大,现在能做的也只是为将来的功能先铺铺路。
……苦逼优化中……
最终,开启了OpenGL后,一只猫的情况下能有15~17FPS,总算脱离了“卡到想砸手机”的程度。
至此,初始版emotePlayer插件算是可以进入公测阶段了。
附这期间的一些心得:
一篇极好的neon汇编教程+范例:
https://people.xiph.org/~tterribe/daala/neon_tutorial.pdf
(给自己看的?)NEON汇编笔记:
·进入NEON指令代码时,实际执行时间会有所延迟
|如果处理量太少,使用NEON指令并无优势
·与内存的数据交换消耗的时钟周期较多,需要多费心优化
|声明内存对齐可以成倍减少时钟周期,栈上的变量也在对齐后传给SIMD指令
|A8芯片在前后两条指令分别是字节存取/字节变换(即非数值运算)指令和数值运算指令时,可以并行处理
|↑尽量不要在加载指令后立马就使用数据,规划好数值计算指令和字节存取/变换指令,尽量交错处理
|就算专门为A8优化,也不用担心A9及之后的CPU会导致性能下降
|PLD并不是万能的,多耗费了一个周期,有时却完全没有性能提升,反而还会下降
|↑在掌握的理论还不足以运用于实践时,只能无奈地反复测试来验证PLD可用与否


IP属地:福建1楼2016-05-31 17:29回复
    辛苦啦


    IP属地:云南来自Android客户端3楼2016-05-31 17:32
    回复
      2025-12-28 20:04:29
      广告
      不感兴趣
      开通SVIP免广告
      前排先占再看!


      IP属地:浙江7楼2016-05-31 17:53
      收起回复


        IP属地:广东来自Android客户端9楼2016-05-31 18:17
        回复
          大神辛苦了,话说这是召集同盟一起优化么


          IP属地:广西来自Android客户端11楼2016-05-31 18:26
          回复
            z大太菊,不管怎样,先跪再说!


            14楼2016-05-31 19:10
            收起回复
              我装作看的懂的样子


              IP属地:江苏来自Android客户端15楼2016-05-31 19:11
              回复
                z大好吊


                IP属地:广东来自手机贴吧16楼2016-05-31 20:27
                回复
                  2025-12-28 19:58:29
                  广告
                  不感兴趣
                  开通SVIP免广告
                  虽然看不懂是什么意思但是,Z大辛苦了
                  ♚------手ۖิ机ۖิ复ۖิ制ۖิۖิ这ۖิ几ۖิ个ۖิ字ۖิ看ۖิ你ۖิ多ۖิ久ۖิ能ۖิ删ۖิ完ۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิۖิ听说这个挺多经验的 ิۖิۣ ۣۣۖۖۖۖิۖิิۣۣۖۖิ ۖิิۣۣۖۖิۣ ۣۣۖۖۖิۖิิ ۣۣۖۖ ۖ ۣۣۖۖิ ۖิิۣۣۖۖิۣ ۣۣۖۖۖิۖิิ ۣۣۖۖ ۖ ۣۣۖۖิ ۖิิۣۣۖۖิۣ ۣۣۖۖۖิۖิิ ۣۣۖۖ ۖ ۣۣۖۖิ ۖิิۣۣۖۖิۣۣۣۖۖۖิۖิิ ۣۣۖۖ ۖ ۣۣۖۖิ ۖิิۣۣۖۖۖิۖิิ ۣۣۖۖ ۖ ۣۣۖۖ ۖ ۣۣۖۖิ ۖิิۣۣۖۖิ ۖิิۣۣۖۖۖิۖิิ ۣۣۖۖ ۖ ۣۣۖۖิ ۖิิۣۣۖۖิۣۣۣۖۖۖิۖิิ ۣۣۖۖ ۖ ۣۣۖۖิ ۖิิۣۣۖۖิۣ ۣۣۖۖۖิۖิิ ۣۣۖۖ ۖ ۣۣۖۖิ ۖิิۣۣۖۖิۣ ۣۣۖۖۖิۖิิ ۣۣۖۖ ۖ ۣۣ


                  IP属地:湖北来自Android客户端17楼2016-05-31 20:29
                  回复
                    辛苦了


                    IP属地:广东来自Android客户端19楼2016-05-31 21:29
                    回复
                      好厉害


                      IP属地:广西来自Android客户端21楼2016-06-01 02:53
                      回复
                        233,真不错,辛苦了


                        IP属地:广西来自Android客户端22楼2016-06-01 08:01
                        回复
                          萌新不明觉厉


                          IP属地:福建来自Android客户端23楼2016-06-01 08:06
                          回复
                            萌新不懂,前排膜拜大佬,大佬辛苦了


                            IP属地:福建来自Android客户端24楼2016-06-01 09:00
                            回复
                              2025-12-28 19:52:29
                              广告
                              不感兴趣
                              开通SVIP免广告


                              IP属地:湖南来自Android客户端25楼2016-06-01 14:32
                              回复