那天,临近下班的时候,姑娘我将已经在A B手机上均运行良好的Demo发给相关同事,想着今天终于不用加班,欢天喜地准备回家做个大餐吃~
这时候,相关同事拿着设备找过来了:你看这是啥情况?一股不祥的预感扑面而来,果然,本该出现美图的屏幕上那是一片犀利的单色红啊!
本来我还很怀疑是由于他们没有更新我们的最新版本的库。。。后来发现,我错了。。。。再后来发现,真的就是同一个demo,同样版本的动态库,真心就是有的手机会跑不出效果啊。关键是,那些渲染不了的手机还是**某大牌的,Android版本也不算低,OpenGL ES 2.0肯定是支持的,着色器编程肯定也是支持的。。。。
这种“不明觉厉”的诡异bug最让人惴惴不安了。。。然后一晚上心里都不舒坦啊。。。
再后来,下了个CPU-Z(不是做广告哈),对每个手机的硬件配置中的GPU Renderer型号逐个记录了一下。
据不完全统计发现,Qualcomm的Adreno 305及以上的GPU Renderer是没问题的,而ARM的Mali系列都没正常工作。
而我们之前调试代码用的两机子都是Qualcomm的Adreno 305以上的。
最终,写相关着色器的同事改了他的着色器代码,据说是“着色器代码长度减短、尽量没用if else语句”,才保证了不同GPU平台的兼容。。。
虽然郁闷了一把,但也算长了个见识~~写几段文字记录下~~~~(*^__^*) ~~~~嘻嘻!