http://luluathena.com/
rss
email
twitter
facebook
  • About me
  • map

昨天遇到的诡异BUG

no comments
Posted on 6月 20 2013 by luluathena

前天终于找到了某无法稳定重现的帧率严重下降的BUG,是由于一个变量没有初始化,不由觉得人生都明朗了神马的。然后更新了一下SVN,又遇到一个无法稳定重现的诡异BUG。

在iPad上有时候启动游戏会发现场景中的静态模型的网格都发散了,而且一直在动。。。动态模型和粒子则无碍。

那网格发散的惨状颇似TBC时代我用ATI显卡玩WOW,一去外域就会有某些模型这样,有时候顶点还能突破天际,过一会儿就crash了。

又像我曾经调试布料的时候,物理参数没写好导致计算崩溃了。

好了回归正题。。。

用xcode截了两次运行结果的一帧GLES调用,并没有看出什么异常来,渲染状态、VBO都是对的,只是确实画不出正确的模型来了。

无奈只能去查SVN的log,但是忘记了我上次更新的时间。。。

回退了几个版本依旧有问题。这其中过程也曲折,不断的尝试中我发现以下几种行为可能会导致BUG:

跑大概五分钟自己的程序。 跑大概五分钟别的3D游戏,比如temple run、infinite blade、despicable me等。 跑一下QQ (我也不知道为什么但这个真的有可能会触发 = =) 关机重启

所以为了验证一个SVN版本到底会不会有BUG我要跑很多次游戏。。得到最终的结果时我已经跑了一天的游戏。

发现一两个星期前有人修改了vertex buffer及顶点池的代码,感觉可能性较高。回退到那天之前果然OK了。

为了进一步验证导致错误的SVN版本,继续二分查找似的去更新SVN,然后发现,导致错误的,是来自于我的提交。

之前一直使用的是GLES 1.1,后来我实现了GLES 2.0的版本,但还没有调通,加入了工程里,只是没有去引用它。结果还是造成了两个库的冲突。

最后知道真相的我眼泪掉下来。

之前在windows上模拟GLES时也遇到过问题,将1.1和2.0的lib同时加入到工程中会导致crash,只是没有想到,在iPad上是这样的呈现方式。

其实早该知道了,scaleform的GLES1.1与2.0版本也是通过不同的makefile不同的宏来区分的,可是就是被我忽视了。

 

虽然感觉蠢蠢的,但还是记录下来吧。如果能够帮助到需要的人,那就更好了~(虽然觉得可能性很小。。


  Tags: OpenGL ES Category: 总结|感想

Leave a Reply

点击这里取消回复。




分类目录

  • 生活 (217)
    • 不高兴 (65)
    • 伪文艺 (40)
    • 没头脑 (114)
  • 程序 (71)
    • 总结|感想 (19)
    • 笔记|翻译 (34)
    • 算法|应用 (17)
  • 绘画 (30)
    • SAI|PS (14)
    • 彩铅 (17)

标签

Bezier bloom BluePrint3D Cache cloth simulation coq CUDA D3D9 D3D10 Deferred Lighting Dynamic Texture Lookups evernote facial animation Gesture glsl iOS mali MSVC2008 NPAR OpenCV OpenGL OpenGL ES PBR PowerVR Python QT Ray Tracing SAI Self Calibration SSAO Stereo Match trimesh 优化 学习 工作 总结 手势 破窗理论 钢笔路径
2018年四月
一 二 三 四 五 六 日
« 4月    
 1
2345678
9101112131415
16171819202122
23242526272829
30  

近期文章

  • GDC2017游记
  • 从0开始pbr
  • 不好意思称作2015总结的总结
  • 迟到的2014年度总结
  • 毕业两年多后

文章归档


  • About me
  • map
Powered by Wordpress  |  Designed by WebTreats